《毕业设计(论文)DELPHI+ACCESS学生综合管理系统论文.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)DELPHI+ACCESS学生综合管理系统论文.doc(45页珍藏版)》请在三一办公上搜索。
1、学生综合管理系统 设计人:摘要本文档根据学校对我们的毕业设计的系统的要求,对系统进行了分析设计,得到了本文档.修改历史日期版本作者修改内容评审号更改请求号1.0项目初步设计目录第一章概述1第二章功能模块22.1功能模块概述22.1.1学生管理(StudentManage)22.1.2成绩管理(ResultManage)32.1.3系统管理(SystemManage)3第三章系统架构53.1显示层53.1.1主界面63.1.2学生管理子模块63.1.3成绩管理子模块73.1.4系统管理子模块.73.2业务逻辑层83.2.1学生管理(studentmanage)83.2.2成绩管理(resultm
2、anage)83.2.3系统管理(systemmanage)93.3数据操作层9第四章数据字典10第五章程序结构12第六章界面设计166.1主界面166.2学生管理176.3成绩管理186.4系统管理186.5学生资料报表196.6学生成绩报表20第七章总 结217.1关键技术问题及其解决217.2系统评价21第八章系统部分源程23第九章参考文献42第一章 概述本文档根据毕业设计所提出的项目要求,对项目进行了分析,产生了本设计文档.本设计文档描述了,项目的需要完成的功能,系统总体结构.系统中具体的操作类,以及相关的数据字典.根据毕业设计说明书所提出的项目要求,我们定义了项目的需求:1. 系统管
3、理学生资料以及学生成绩,并可以查询打印相关的报表.2. 学校实行的学分制.3. 学生每一个学期可以自由的选择自己想学习的课程.4. 每学期的课程没有相同课程.作为一个毕业设计的研究项目,我们省略了与项目主要功能无关的其它数据.系统采用了DELPHI+ACCESS开发.有效的利用DELPHI的快速RAD程序开发能力,高效的完成程序的开发.系统在分析过程中,采用了ROSE分析设计工具,本文档中所有的图形都用ROSE完成.第二章 功能模块2.1 功能模块概述系统主要包括了三大模块的功能,分别是学生管理,成绩管理,以及系统管理.2.1.1 学生管理(StudentManage)2.2.1.1 学生资料
4、录入(StudentInput)接收管理员录入的学生资料,并且检查资料的合法性,将资料保存到数据库中.2.2.1.2 学生资料修改(StudentEdit)接收管理员录入的需修改的学生资料,并且检查资料的合法性,将资料更新到数据库中.2.2.1.3 学生资料查询(StudentSearch)接收管理员录入的查询内容,从数据库中检索学生的资料,并且显示出来.2.2.1.4 班级学生列表(StudentList)管理员选择班级,列出该级的学生资料.2.1.2 成绩管理(ResultManage)2.2.1.1 成绩录入(ResultInput)接收管理员录入的成绩,将成绩保存到数据库中.2.2.1
5、.2 成绩修改(ResultEdit)接收管理员录入的需修改的成绩,将成绩更新到数据库中.2.2.1.3 学生成绩列表(ResultListByStudent)管理员选择一个学生以后,列出这个学生所有的成绩.2.2.1.4 学生需补考的成绩列表(FailtResultListByStudent)管理员选择一个学生以后,列出这个学生所有需要补考的成绩清单.2.2.1.5 班级需补考的成绩列表(FailtResultListByStudent)管理员选择一个班级以后,列出这个班级所有的补考成绩清单.2.2.1.6 学生选课(CurriculumSelectByStudent)管理员录入选择本学期选
6、择要学习的课程.2.1.3 系统管理(SystemManage)2.2.1.1 班级管理(ClassManage)管理员设置班级的信息.包括对班级资料进行的增删改.2.2.1.2 课程管理(CurriculumManage)管理员设置课程的信息.包括对课程进行的增删改.第三章 系统架构3.1 显示层显示层主要实现对于操作数据的显示,以及管理员相关的操作界面的实现.显示层包括了主界面,学生管理子模块,成绩管理子模块,系统管理子模块.3.1.1 主界面主界面主要显示系统的功能菜单以及相关的功能按钮.3.1.2 学生管理子模块学生管理子模块包括了学生列表界面,学生资料修改界面,学生资料录入界面,以及
7、学生资料查询界面.从学生列表界面,可以进入到学生资料录入界面和学生资料修改界面,以及学生资料查询界面.3.1.3 成绩管理子模块成绩管理子模块包括了成绩列表界面,成绩修改界面,成绩录入界面,以及成绩查询界面.从成绩列表界面,可以进入到成绩录入界面和成绩修改界面,以及成绩查询界面.3.1.4 系统管理子模块.系统管理子模块包括了班级管理界面和课程管理界面,以及系统关于的界面.3.2 业务逻辑层3.2.1 学生管理(studentmanage)学生管理模块主要负责根据显示层学生管理子模块录入的相关信息,调用数据操作层,完成相关的操作.主要的功能有:学生资料录入, 学生资料修改, 班级学生资料列表,
8、学生资料查询3.2.2 成绩管理(resultmanage)成绩管理模块主要负责根据显示层成绩管理子模块录入的相关信息,调用数据操作层,完成相关的操作.主要的功能有:成绩录入,成绩修改,学生成绩列表,学生补考成绩列表,学生选课.3.2.3 系统管理(systemmanage)成绩管理模块主要负责根据显示层系统管理子模块录入的相关信息,调用数据操作层,完成相关的操作.主要的功能有:班级管理,课程管理.3.3 数据操作层数据操作层,主要负责与数据库的连接以及操作数据库的相关数据表.DataCount对象负责与数据库建立连接.其它的对象对数据库中的表一一对应,完成对数据库中相关的数据表的操作.第四章
9、 数据字典上图显示各个数据表的内容,数据类型以及各个数据表中间的关联关系.以下详细说明各个表中的字段字段表数据类型中文名备注Class(班级表)classNoInt班级编号classNameVarchar50班级名称graduationCreditint毕业所需的学分classNumint班级人数Student(学生资料表)studentNoint学生编号studentNameVarchar50学生名称classNoint班级编号Curriculum(课程表)curriNoint课程编号curriNameVarchar50课程名称curriCreditint课程学分Result(成绩表)stu
10、dentNoint学生编号curriNoint课程编号resultfloat成绩classNoint班级编号isFailboolean是否通过第五章 程序结构1 总体结构2 模块结构显示层显示层主要实现对于操作数据的显示,以及管理员相关的操作界面的实现.显示层包括了主界面,学生管理子模块,成绩管理子模块,系统管理子模块.主界面主界面主要显示系统的功能菜单以及相关的功能按钮.学生管理子模块学生管理子模块包括了学生列表界面,学生资料修改界面,学生资料录入界面,以及学生资料查询界面.从学生列表界面,可以进入到学生资料录入界面和学生资料修改界面,以及学生资料查询界面.成绩管理子模块成绩管理子模块包括了
11、成绩列表界面,成绩修改界面,成绩录入界面,以及成绩检索界面.从成绩列表界面,可以进入到成绩录入界面和成绩修改界面,以及成绩检索界面.系统管理子模块.系统管理子模块包括了班级管理界面和课程管理界面,以及系统关于的界面.报表打印报表打印模块直接在主界面上有一个下拉接单,点击下接菜单可以进入学生资料打印和学生成绩打印.业务逻辑层学生管理(studentmanage)学生管理模块主要负责根据显示层学生管理子模块录入的相关信息,调用数据操作层,完成相关的操作.主要的功能有:学生资料录入, 学生资料修改, 班级学生资料列表,学生资料查询成绩管理(resultmanage)成绩管理模块主要负责根据显示层成绩
12、管理子模块录入的相关信息,调用数据操作层,完成相关的操作.主要的功能有:成绩录入,成绩修改,学生成绩列表,学生补考成绩列表,学生选课.系统管理(systemmanage)成绩管理模块主要负责根据显示层系统管理子模块录入的相关信息,调用数据操作层,完成相关的操作.主要的功能有:班级管理,课程管理.报表打印学生资料打印学生资料打印模块主要负责制作所有学生资料的报表,并且可以实现预览,选择不同的打印打印等功能.学生成绩打印学生资料打印模块主要负责制作所有学生成绩的报表(成绩按照班级学生课程排列),并且可以实现预览,选择不同的打印打印等功能.数据操作层数据操作层,主要负责与数据库的连接以及操作数据库的
13、相关数据表.DataConnect对象负责与数据库建立连接.其它的对象对数据库中的表一一对应,完成对数据库中相关的数据表的操作.第六章 界面设计6.1 主界面6.2 学生管理6.3 成绩管理6.4 系统管理6.5 学生资料报表6.6 学生成绩报表第七章 总 结7.1 关键技术问题及其解决3 访问本地数据库,以及访问的安全处理1) 系统采用delphi自带的ADO数据库连接控件,连接到数据库.2) 系统在连接本地数据库时,采用了相对路径.保持了软件的灵活性.使软件不需要安装,只需要拷贝整个目录到任意路径就可使用.3) 系统对采用的access数据库设置了密码.保存了除系统以外的人不能随意访问本数
14、据库.4) 考虑到可能破解exe文件查找到数据库的密码(因为连接字符串中需要设置密码),所以系统采用aspack对系统进行了加密压缩处理.进一步加强了系统的安全性.4 简单直观的界面设计1) 系统在界面设计去除了过多的弹出窗口设计.将所有的界面集中在主界面显示操作.使操作非常的简洁直观.2) 系统在设计时,对主要操作按钮以及输入框都进行了说明.当鼠标移动到相关的操作按钮以及输入框时,说明自动显示.3) 系统为了方便用户输入,都对系统进行了tab次序定位.当用户输入数据时,输入完一个,只需按tab键,自动的按需要输入的数据的次序.依次得到焦点.5 程序运行效率的考虑1) 为了有效提高系统的运行效
15、率,我们尽量的使用了delphi自带的控件,没有采用其它的第三方控件.2) 在进行数据库设计了,为了提供数据读取速度.尽量的减少了数据库的多级关联.采取了适当的数据沉冗.7.2 系统评价1.功能评价3) 系统采用ROSE设计工具,采用了UML建模的方式进行系统的分析和设计,符合国际软件工程的方式.4) 系统采用了delphi+access的快速开发方式.高质快速的完成了软件开发.5) 系统采取了一定的安全处理措施,安全有效的保存了系统数据的安全性.6) 系统在进行数据库设计时,尝试使用了中文作为字段名.取得成功.改变了以往只使用英文作为字段名的习惯.并且与DELPHI结合能够.进一步的提高系统
16、开发速度.2.可扩充性 系统采用了DELPHI开发,可以在系统源代码的基础上快速的添加其它的功能模块.3.可能存在的问题及改进意见系统由于是一个简单的项目,没有充分的考虑实际学生管理中的一些情况.在软件实用性方面还有待进一步的改进.建议系统在下次开发时,进一步的深入学校教学当中,采集实际的学生管理和成绩管理中所遇到的一些情况.进一步改进软件.加强软件的实用性.第八章 系统部分源程1(部分)程序清单,要加注释/-/ 功能描述: 程序主模块,包括了本系统所有的业务逻辑的代码/ 作者: / 开发时间: 2003-07-12/-unit Unit_Main;interfaceuses Windows,
17、 Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList, ComCtrls, ToolWin, Menus, StdCtrls, unit_dm, Grids, DBGrids, Buttons, ExtCtrls, Mask, DBCtrls, DB, Unit_bb2;type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; ToolBar1: TToolBar; ImageLis
18、t1: TImageList; ToolButton2: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; ToolButton8: TToolButton; ToolButton9: TToolButton; PageControl1: TPageControl; ts_student: TTabSheet; ts_cj: TTabSheet; ts_sm: TTabSheet; ts_bb1: TTabSheet; GroupBox1: TGroupBox; Label1: TLabel; dbe_curri_
19、name: TDBEdit; Label2: TLabel; dbe_curri_xf: TDBEdit; Bevel1: TBevel; sb_curri_insert: TSpeedButton; sb_curri_edit: TSpeedButton; sb_curri_delete: TSpeedButton; sb_curri_save: TSpeedButton; sb_curri_canel: TSpeedButton; GroupBox2: TGroupBox; Label3: TLabel; Label4: TLabel; Bevel2: TBevel; sb_class_i
20、nsert: TSpeedButton; sb_class_edit: TSpeedButton; sb_class_delete: TSpeedButton; sb_class_save: TSpeedButton; sb_class_canel: TSpeedButton; dbe_class_name: TDBEdit; dbe_class_xf: TDBEdit; DBGrid2: TDBGrid; DBGrid1: TDBGrid; Label5: TLabel; dbe_student_no: TDBEdit; Label6: TLabel; dbe_student_name: T
21、DBEdit; Label7: TLabel; dbcb_student_sex: TDBComboBox; Label8: TLabel; dbcb_student_class: TDBLookupComboBox; Bevel3: TBevel; Label9: TLabel; dbe_student_yb: TDBEdit; Label10: TLabel; dbe_student_address: TDBEdit; sb_student_insert: TSpeedButton; sb_student_edit: TSpeedButton; sb_student_delete: TSp
22、eedButton; sb_student_save: TSpeedButton; sb_student_canel: TSpeedButton; Panel1: TPanel; GroupBox3: TGroupBox; DBGrid3: TDBGrid; DBLookupListBox1: TDBLookupListBox; sb_student_search: TSpeedButton; ed_student_search: TEdit; Panel2: TPanel; GroupBox4: TGroupBox; GroupBox5: TGroupBox; DBLookupListBox
23、2: TDBLookupListBox; GroupBox6: TGroupBox; DBGrid5: TDBGrid; DBGrid4: TDBGrid; sb_cj_insert: TSpeedButton; sb_cj_delete: TSpeedButton; sb_cj_edit: TSpeedButton; Bevel4: TBevel; sb_cj_save: TSpeedButton; sb_cj_canel: TSpeedButton; Label11: TLabel; Label12: TLabel; dbe_cj_xf: TDBEdit; Label13: TLabel;
24、 dbcb_cj_bk: TDBComboBox; dblcb_cj_name: TDBLookupComboBox; N3: TMenuItem; ToolButton10: TToolButton; PopupMenu1: TPopupMenu; N4: TMenuItem; N5: TMenuItem; ts_bb2: TTabSheet; Panel3: TPanel; ts_about: TTabSheet; Label14: TLabel; Label15: TLabel; Bevel5: TBevel; Label16: TLabel; Label17: TLabel; proc
25、edure sb_curri_insertClick(Sender: TObject); procedure sb_curri_editClick(Sender: TObject); procedure sb_curri_saveClick(Sender: TObject); procedure sb_curri_canelClick(Sender: TObject); procedure sb_curri_deleteClick(Sender: TObject); procedure sb_class_insertClick(Sender: TObject); procedure sb_cl
26、ass_editClick(Sender: TObject); procedure sb_class_deleteClick(Sender: TObject); procedure sb_class_canelClick(Sender: TObject); procedure sb_class_saveClick(Sender: TObject); procedure sb_student_deleteClick(Sender: TObject); procedure sb_student_insertClick(Sender: TObject); procedure sb_student_e
27、ditClick(Sender: TObject); procedure sb_student_saveClick(Sender: TObject); procedure sb_student_searchClick(Sender: TObject); procedure N3Click(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure sb_student_canelClick(Sender: TObject); procedure sb_cj_inser
28、tClick(Sender: TObject); procedure sb_cj_editClick(Sender: TObject); procedure sb_cj_deleteClick(Sender: TObject); procedure sb_cj_saveClick(Sender: TObject); procedure sb_cj_canelClick(Sender: TObject); procedure ToolButton9Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); proced
29、ure ToolButton7Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure DBLookupListBox1Click(Sender: TObject); procedure Panel3Click(Sender: TObject); procedure DBLookup
30、ListBox2Click(Sender: TObject); procedure DBGrid5DblClick(Sender: TObject); private Private declarations public Public declarations procedure set_curri_state(state:String); procedure set_class_state(state:String); procedure set_student_state(state:String); procedure set_cj_state(state:String); end;v
31、ar Form1: TForm1;implementationuses Unit_About, Unit_bb1;$R *.dfm/-/ 功能描述: 进入课程新增模块/-procedure TForm1.sb_curri_insertClick(Sender: TObject);begin dm.adot_curri.Insert; form1.set_curri_state(open);end;/-/ 功能描述: 设置课程管理表单的不同录入状态/ 参数说明: state = open 将表单设置为录入状态/ state = close 将表单设置为查看状态/-procedure TForm1
32、.set_curri_state(state:String);begin if state = openthen begin form1.dbe_curri_name.Enabled:=true; form1.dbe_curri_xf.Enabled:=true; form1.sb_curri_insert.Enabled:=false; form1.sb_curri_edit.Enabled:=false; form1.sb_curri_delete.Enabled:=false; form1.sb_curri_save.Enabled:=true; form1.sb_curri_canel
33、.Enabled:=true; end; if state = closethen begin form1.dbe_curri_name.Enabled:=false; form1.dbe_curri_xf.Enabled:=false; form1.sb_curri_insert.Enabled:=true; form1.sb_curri_edit.Enabled:=true; form1.sb_curri_delete.Enabled:=true; form1.sb_curri_save.Enabled:=false; form1.sb_curri_canel.Enabled:=false
34、; end;end;/-/ 功能描述: 设置班级管理表单的不同录入状态/ 参数说明: state = open 将表单设置为录入状态/ state = close 将表单设置为查看状态/-procedure TForm1.set_class_state(state:String);begin if state = openthen begin form1.dbe_class_name.Enabled:=true; form1.dbe_class_xf.Enabled:=true; form1.sb_class_insert.Enabled:=false; form1.sb_class_edit
35、.Enabled:=false; form1.sb_class_delete.Enabled:=false; form1.sb_class_save.Enabled:=true; form1.sb_class_canel.Enabled:=true; end; if state = closethen begin form1.dbe_class_name.Enabled:=false; form1.dbe_class_xf.Enabled:=false; form1.sb_class_insert.Enabled:=true; form1.sb_class_edit.Enabled:=true
36、; form1.sb_class_delete.Enabled:=true; form1.sb_class_save.Enabled:=false; form1.sb_class_canel.Enabled:=false; end;end;/-/ 功能描述: 设置学生管理表单的不同录入状态/ 参数说明: state = open 将表单设置为录入状态/ state = close 将表单设置为查看状态/-procedure TForm1.set_student_state(state:String);begin if state = openthen begin form1.dbe_stude
37、nt_name.Enabled:=true; form1.dbe_student_yb.Enabled:=true; form1.dbe_student_no.Enabled:=true; form1.dbe_student_address.Enabled:=true; form1.dbcb_student_sex.Enabled:=true; form1.dbcb_student_class.Enabled:=true; form1.sb_student_insert.Enabled:=false; form1.sb_student_edit.Enabled:=false; form1.sb
38、_student_delete.Enabled:=false; form1.sb_student_save.Enabled:=true; form1.sb_student_canel.Enabled:=true; end; if state = closethen begin form1.dbe_student_name.Enabled:=false; form1.dbe_student_yb.Enabled:=false; form1.dbe_student_no.Enabled:=false; form1.dbe_student_address.Enabled:=false; form1.
39、dbcb_student_sex.Enabled:=false; form1.dbcb_student_class.Enabled:=false; form1.sb_student_insert.Enabled:=true; form1.sb_student_edit.Enabled:=true; form1.sb_student_delete.Enabled:=true; form1.sb_student_save.Enabled:=false; form1.sb_student_canel.Enabled:=false; end;end;/-/ 功能描述: 设置成绩管理表单的不同录入状态/
40、 参数说明: state = open 将表单设置为录入状态/ state = close 将表单设置为查看状态/-procedure TForm1.set_cj_state(state:String);begin if state = openthen begin form1.dblcb_cj_name.Enabled:=true; form1.dbe_cj_xf.Enabled:=true; form1.dbcb_cj_bk.Enabled:=true; form1.sb_cj_insert.Enabled:=false; form1.sb_cj_edit.Enabled:=false; form1.sb_cj_delete.Enabled:=false; form1.sb_cj_save.Enabled:=true; form1.sb_cj_canel.Enabled:=true; end; if state = closethen begin form1.dblcb_cj_name.Enabled:=fal