《毕业设计(论文)-教学管理系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-教学管理系统设计.doc(31页珍藏版)》请在三一文库上搜索。
1、华东交通大学毕业设计(论文)题目: 学 院:理工学院专 业:计算机科学与技术班 级:姓 名:学 号:指导教师:完成日期:2010-5-4毕业设计(论文)诚信声明本人郑重声明:所呈交的毕业设计(论文)是我个人在导师指导下进行的研究工作及取得的研究成果。就我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表和撰写的研究成果,也不包含为获得华东交通大学或其他教育机构的学位或证书所使用过的材料。如在文中涉及抄袭或剽窃行为,本人愿承担由此而造成的一切后果及责任。本人签名 导师签名 2010年 5 月 日华东交通大学毕业设计(论文)评阅书姓名学号专业毕业设计(论文)题目答辩小组评语:等级
2、 组长签字:年 月 日答辩委员会综合评语: 等级 答辩委员会主任签字:年 月 日(学院公章)注:答辩小组根据评阅人的评阅签署意见、初步评定成绩,交答辩委员会审定,盖学院公章。“等级”用优、良、中、及、不及五级制(可按学院制定的毕业设计(论文)成绩评定办法评定最后成绩)。华东交通大学毕业设计(论文)答辩记录姓名学号毕业届别专业计算机科学与技术题目答辩时间答辩组成员(签字):答辩记录: 记录人(签字): 年 月 日 答辩小组组长(签字):年 月 日附注:目 录第一章 前言-2第二章 总体设计-3 2.1 项目背景-3 2.2 系统功能设置-3 2.3 系统功能模块-3第三章 系统流程及库文件-(4
3、-8)3.1 系统流程-43.2 数据库需求分析-43.3 数据库概念结构设计-53.4 数据库逻辑结构设计-(5-8)第四章 程序源码-(8-21)4.1 登录界面-(8-9)4.2 教师课程管理界面-(9-13)4.3 教务处管理界面-(13-18)4.4 学生选课管理界面-(18-21)第五章 系统测试-215.1 系统不足-215.2 学生选课管理界面-21第六章 用户操作说明-(21-26)6.1 前期工程-216.2 系统演示-(22-26)致谢-25参考文献-25第一章 前 言信息管理系统(MIS)是集计算机技术、网络通信技术为一体的信息系统工程,它能够使企业运行的数据更加准确、
4、及时、全面、详实,同时对各种信息进一步的加工,使企业领导层对生产、经营的决策依据更充分,更具有合理性科学性,并创造出更多的发展机会;另外也进一步加强企业的科学化、合理化、制度化、规范化管理,为企业的管理水平跨上新台阶,为企业持续、健康、稳定的发展打下基础。MIS系统开发过程不仅仅是一个编写应用程序的过程,而是以软件工程的思想为指导,从可行性研究开始,经过系统分析、系统设计、系统实施等主要阶段而进行规范的开发过程。目前国内使用和发展的MIS平台模式大体上分为两种:客户机/服务器(Client/Server,简称C/S)模式和浏览器/服务器(Browser/Server,简称C/S)模式。MIS系
5、统不仅仅使用在企业中,它可以应用的方面很广,各行各业都可以应用:金融、保险、农业、工业等等。只要是有数据采集整理纪录的方面,都可以应用。学校作为一个独立的机构同样也不例外。而且学校的各种情况都比较复杂,各个机构都各自独立,又相互联系,这就需要一个比较复杂的MIS系统。学校的MIS系统一般由以下管理部分组成:学生信息管理,教学管理,教务处管理,财务管理,物资管理,后勤管理等。学校的各个系统又分为不同的管理人员,不同的管理人员所看到的以及所操作管理的部分又不同,这就需要给不同的操作者提供不同的操作管理权限。不同身份的用户所需要的资料也不同,这需要给不同的用户提供不同的操作界面,进行不同的操作。而且
6、不同身份的客户所关心的问题也不同,比如学校的使用者大体分学生、教师、教务处、这就需要在做MIS系统开发之前一定要做好前期的需求分析,中期的系统设计、程序开发,而且也要注意后期的系统维护。关键字:教学管理、课程申请、审批、选课、查询第二章 总体设计2.1 项目背景当今社会,科学技术飞速发展,知识更替日新月异。随着计算机应用在全世界的普遍推广,各大中专院校都逐渐实现了计算机化管理,并且视野已经深入到Internet领域,实现了网络化管理。在学校里,如果说学生管理是为学习环境提供强大的后勤保障,那么教学管理就可以说是学校发展的强劲动力。加强教学管理,实现计算机化管理,不仅能使大中专院教学水平上了一个
7、新台阶,而且方便了教学管理人员对学院教学、教师授课、学生学习等几大环节的深入了解和全面掌握。在学校实现教学管理的计算机化,是学校建设的一个重要的方面。2.2 系统功能设置本文所作的软件是MIS系统中的教学管理系统,前台用Delphi所开发,后台数据库使用的是SQL,采用的是B/S模式,其内容包括:(1) 登录界面(功能为为不同的用户提供不同的登录界面,实现不同权限的客户不同的操作功能);(2) 教师课程申请(包括增开新课程、删除旧课程、修改已有课程,为学生选课时使用),教师的课程管理(包括开设的课程列表、所报课程的学生名单、输入学生的成绩);(3) 教务处课程设置审批(包括审批课程详细内容、通
8、过审批、拒绝申请),课程资源分配(主要完成上课教师和时间的分配。每学期开始选课前需要清除所有原分配的资源,重新输入分配结果),选课结果查询管理界面(主要功能是将选课的结果转移到成绩单中,同时兼有修改功能),成绩单(主要完成每个课程成绩单的查询。另外由于时间的缘故,未能实现成绩单的打印功能);(4) 学生选课功能(主要功能是实现课程的查询,把要选的课程加入已选课程表),学生查询成绩功能(实现自己已学课程列表的成绩查询);2.3 系统功能模块系统各功能模块如图所示:因为使用这套系统的人员不光是教务管理人员,还包括学生和教室。不同的身份对数据库的操作权限也不同。为了避免管理的混乱,需要针对不同的角色
9、设计不同的客户端,分配不同的权限,对同一个数据库进行合理的修改。 教学管理信息体统是校园信息管理系统的一个重要的有机组成部分。这个系统与校园其它系统之间实现互依赖、相互补充的,他需要从学生信息管理系统获取学生的个人信息,从教室信息管理系统获取任课教师的相关信息。同时,此系统提供的成绩单又为其它系统提供了必要的参考。第三章 系统流程及库文件2.4 系统流程 流程图如图所示: 3.2 数据库需求分析 根据图所室的数据流程,教学管理信息系统需要下数据项:A. 课程:课程号、课程名称、讲课教师、学分、学时、上课时间、上课地点、课程简介、课程状态。B. 选课结果:记录编号、选课人、所选课程。C. 成绩单
10、:记录编号、学生、课程、成绩所需的外部数据支持A. 学生:学号、姓名、班级;B. 教师:员工号、姓名、所在院系;3.4 数据库概念结构设计本系统所需数据的E-R模型图如图所示:3.5 数据库逻辑结构设计根据上面的E-R图,需要三个基本信息表:教室信息、学生信息、课程信息。其中,教师信息和学生信息在实际系统是从其它信息管理系统的数据表中直接读取。学生的选课信息需要用一个表来单独保存。由于每学期期末前都要进行选课,一次选课结束后要讲这个表的内容及时保存到成绩单数据表中。使用本系统的不光是教务处的管理人员和教师,每个学生都需要登录倒选课系统进行课程的选择。因此,需要对不同的登录人员进行密码认证和权限
11、的限制,防止出现越权行为。用户名、密码和权限单独保存在一个数据表中。另外需要一个表格保存各记录号的计数值和一个课程状态代码表,这八个数据表的结构如下图所示:TEACHER 教师个人信息表 字段名数据类型是否为空说 明IDCHAR(6)NOT NULL员工号(主关键字)NAMEVARCHAR(20)NOT NULL姓 名DEPARTMENTCHAR(2)NOT NULL所属院系STUDENT 学生个人信息表字段名数据类型是否为空说 明IDCHAR(6)NOT NULL学号(主关键字)NAMEVARCHAR(20)NOT NULL姓 名CLASSCHAR(4)NULL所在班级COURSE 课程信息
12、表字段名数据类型是否为空说 明IDCHAR(10)NOT NULL课程号(主关键字)NAMEVARCHAR(50)NOT NULL课程名称TEACHERCHAR(6)NOT NULL任课教师(外部关键字TEACHER)CREDIT_HOURSMALLINTNULL学 分PERIODSMALLINTNULL学 时CLASSTIMEVARCHAR(20) NULL上课时间CLASSROOMVARCHAR(20)NULL上课地点INTROVARCHAR(4000)NULL课程简介STATECHAR(1)NOT NULL课程状态(外部关键字COURSE_STATE)COURSE_SELECT 课程状态
13、代码表字段名数据类型是否为空说 明IDINTEGERNOT NULL记录号(主关键字)COURSECHAR(10)NOT NULL课程号(外部关键字COURSE)STUDENTCHAR(6)NOT NULL选课学生(外部关键字STUDENT)SCORE 成绩信息表字段名数据类型是否为空说 明IDINTEGERNOT NULL记录号(主关键字)STUDENTCHAR(6)NOT NULL学号(外部关键字STUDENT)COURSECHAR(10)NOT NULL课程号(外部关键字COURSE)SCOREFLOATNULL成 绩USER_PASS 用户密码信息表字段名数据类型是否为空说 明IDCH
14、AR(6)NOT NULL用户名(主关键字)PASSWDCHAR(15)NOT NULL密 码AUTHORITYCHAR(1)NOT NULL权 限COURSE_STATE 课程状态代码表字段名数据类型是否为空说 明CODECHAR(1)NOT NULL状态代码(主关键字)DESCRIPTIONVARCHAR(20) NOT NULL描 述COUNTER 计数信息表字段名数据类型是否为空说 明IDCHAR(1)NOT NULL计数器号(主关键字)COUNTER_VALUE CHAR(15)NOT NULL计数值3.6初始数据的输入 在开发应用程序之前必须先输入部分基础的数据,包括部分教师的信息
15、、用户名密码权限、所需的计数器和课程状态代码。计数器的设置如图一所示,课程状态代码的设置如图二所示,用户权限设置的设置如图三所示。图一:计数器设置计数器编号说明F成绩记录编号K课程编号X选课编号图二:课程状态代码状态代码说明0申请增加新课1申请删除旧课2申请修改课程3课选(激活)4等待课程安排5已删除6拒绝申请图三:用户权限权限代码说明0学生1教师2教务处第四章 程序源码以下为程序的原码:4.1 登录界面: 用户认证的过程在“登录”按钮B_login的OnClick事件处理程序中完成,代码如下:procedure TF_Login.B_loginClick(Sender: TObject);b
16、egin try Database1.Connected:=True; /打开数据库连接 T_user.Filter:=ID=+i_user.Text+; /根据输入的用户名设置过滤器 T_user.Filtered:=True; /激活过滤器 T_user.Open; /捕获信息 except Application.MessageBox(请与系统管理员联系。, 数据库连接错误!, MB_OK); Application.Terminate; /数据库连接错误,报错并中断程序 end; if T_user.RecordCount=1 then /判断用户名是否存在 begin if T_us
17、erAUTHORITY=0 then begin F_main_st:=TF_main_st.Create(Self); try F_main_st.ShowModal; finally end;endelse if T_userAUTHORITY=1 then begin F_main_tc:=TF_main_tc.Create(Self); try F_main_tc.ShowModal; finally end;end else begin F_main_jwc:=TF_main_jwc.Create(Self); try F_main_jwc.ShowModal; finally en
18、d; end end else Application.MessageBox(密码不正确,请重新确认,注意大小写!, 密码不匹配, MB_OK); End else Application.MessageBox(请确认用户名是否正确!, 无此用户, MB_OK); end; 4.1 教师课程管理界面:申请界面的OnShow事件和“恢复表单”按钮的OnClick事件使用同一个事件处理程序,主要是初始化申请表单,代码如下:procedure TF_main_tc.B_resetClick(Sender: TObject); /初始化申请表单 begin i_state_1.ItemIndex:=0
19、; /申请初始化到增开新课 i_state_1Click(nil); /调用申请修改程序 i_name_1.Text:=; /清除课程名 i_credit_hour_1.Text:=0; /初始化学分 i_period_1.Text:=0; /初始化学时 i_intro_1.Lines.Clear; /清除课程简介 end;关闭窗口时,要同时关闭整个应用程序,因此窗体OnClose事件处理程序代码如下:procedure TF_main_tc.FormClose(Sender: TObject; var Action: TCloseAction);begin F_Login.i_user.Te
20、xt:=; /登录界面清空F_Login.i_passwd.Text:=;Close; /释放 end;当修改申请的内容时,程序要根据情况决定是否显示已开课程列表。控制代码在i_state_1的OnClick时间处理程序中,代码如下:procedure TF_main_tc.i_state_1Click(Sender: TObject);begin if i_state_1.ItemIndex0 then /如果不是新开课程,则显示列表 begin T_course_1.Filter:=TEACHER=+F_Login.i_user.Text+ AND STATE5 AND STATE1; T
21、_course_1.Filtered:=True; /获取当前教师所开的课程 T_course_1.Open; /不包括已删除和申请删除的课程 o_course_1.Enabled:=True; /激活已开课程列表 o_course_1CellClick(nil); end else begin /如果是新开课程 T_course_1.Close; /关闭已开课程数据表 o_course_1.Enabled:=False; /取消课程列表显示 end;end;如果是删除或修改旧的课程,在单击课程列表时,将在输入框中显示课程的详细信息,代码如下:procedure TF_main_tc.o_co
22、urse_1CellClick(Column: TColumn);begin if T_course_1.Active then /判断课程信息表是否激活 begin i_name_1.Text:=T_course_1NAME; /提取课程名称 i_credit_hour_1.Text:=T_course_1CREDIT_HOUR; /提取课程学分 i_period_1.Text:=T_course_1PERIOD; /提取课程学时 i_intro_1.Lines.Clear; /清除简介 i_intro_1.Lines.Add(T_course_1INTRO); /提取课程简介 end;en
23、d;表单的提交在提交按钮B_submit的OnClick事件处理程序中进行,代码如下:procedure TF_main_tc.B_submitClick(Sender: TObject);var counter:integer; /用于计数 course_id:String; /用于保存课程编号begin case i_state_1.ItemIndex of /根据不同申请,分别处理 0: /0:增加新课 begin /获取课程计数 T_counter_K.Open; /打开计数器表 counter:=T_counter_KCOUNTER_VALUE; /获取计数值 inc(counter
24、); /增加计数值 T_counter_K.Edit; /修改计数器 T_counter_KCOUNTER_VALUE:=counter; /输入新值 T_counter_K.Post; /提交修改 T_counter_K.Close; /关闭计数器表 /合成课程编号 course_id:=00000+IntToStr(counter); /将计数值转换为字符串 course_id:=copy(course_id,length(course_id)-6,6); /截取固定长度字符串 course_id:=FormatDateTime(yyyy,now)+course_id; /添加年份信息 /
25、添加课程信息 T_course_1.Filtered:=False; /取消过滤 T_course_1.Open; T_course_1.AppendRecord(course_id, i_name_1.Text, F_login.i_user.Text, i_credit_hour_1.Text, i_period_1.Text, , , i_intro_1.Lines, 0); /追加纪录 end; 1: /1:删除 begin T_course_1.Filtered:=False; /取消过滤 T_course_1.Edit; /进行修改 T_course_1STATE:=1; /改变课
26、程状态 T_course_1.Post; /提交修改 end; 2: /2:申请修改 begin T_course_1.Filtered:=False; T_course_1.Edit; /进行修改 T_course_1NAME:=i_name_1.Text; /修改课程名称 T_course_1CREDIT_HOUR:=i_credit_hour_1.Value; /修改课程学分 T_course_1PERIOD:=i_period_1.Value; /修改课程学时 T_course_1INTRO:=i_intro_1.Lines.Text; /修改课程信息 T_course_1STATE:
27、=2; /修改课程状态 T_course_1.Post; /提交 end; end; B_resetClick(nil); /恢复表单end;在界面初始化的时候,需要列出可选的课程列表。TabSheet2的OnShow事件处理代码如下:procedure TF_main_tc.TabSheet2Show(Sender: TObject);begin /选取激活的课程 T_course_1.Filter:=TEACHER=+F_Login.i_user.Text+ AND STATE=3; /设置过滤条件 T_course_1.Filtered:=True; /激活过滤器 T_course_1.
28、Open; /打开数据表 o_course_2CellClick(nil); /显示学生名单和成绩输入表 T_students.Open; /打开学生名单表end;当单击课程列表时,显示相应课程的学生名单和成绩单输入表。程序代码在o_course_2的OnCellClick事件处理中:procedure TF_main_tc.o_course_2CellClick(Column: TColumn);begin Q_students.Close; /关闭查询 Q_students.Params.ParamValuesCOURSE:=T_course_1ID; /设置课程参数 Q_students
29、.Open; /重新打开查询end;4.3 教务处管理界面:界面初始化工作在TabSheet1的OnShow事件处理程序中完成,代码如下:procedure TF_main_jwc.TabSheet1Show(Sender: TObject); /界面初始化begin /打开申请课程列表 T_course_apply.Open; /打开教师信息表 T_teacher.Open;end;“通过审批”按钮的代码如下:procedure TF_main_jwc.B_passClick(Sender: TObject); /通过审批begin Q_update.Close; /关闭查询 Q_update.SQL.Clear; /清除语句 Q_update.SQL.Add(UPDATE COURSE); Q_update.SQL.Add(SET STATE=4); /4:通过 Q_update.SQL.Add(WHERE ID=+T_course_apply