当前位置:文档之家› 教学管理系统设计

教学管理系统设计

教学管理系统的设计与实现一、概述每年都有新生的入学,毕业生的离开。

教师队伍的壮大,新课程的开设和旧课程的删除,以及学生每学期的成绩记录。

对它们的管理问题也是日益突显,所以需要一个专业的应用程序,利用数据库对这些数据进行组织和管理。

本系统——教学管理系统就是为了实现高效的管理这些数据而专门设计的。

该教学管理系统是用PowerBuilder数据库应用开发工具SQL嵌入式语言开发而来的。

它主要包括学生管理、成绩管理、班级管理、课程管理以及教师管理,对学校的日常教学系统进行有效地组织。

二、需求分析1、该教学管理系统是开发目标是有效管理学生,教师,课程等信息,实现这些信息的数据录入、浏览、修改、查询等,从而实现对信息的规范化、系统化、自动化管理。

根据对终端用户的调研,了解了用户端的需求,进行分析得出下面的几项需求:(1)由于信息具有一定的保密性,为了使拥有权限的管理员对数据进行管理,应该为用户设置密码保护,在用户访问是该系统时进行身份的鉴别,以提高系统的数据安全性。

(2)使用该教学系统,能够实时对学生,教师信息时行记录,并能够非常方便地浏览、添加、编辑和查询。

(2)成绩管理,能够对学生每学期的成绩进行录入,修改,并提供计算学生的平均成绩的功能,以及每个班级某些课程的平均分进行计算。

(4)学校的班级数可能增加,有些班级也可能被撤编,所以应用程序应该能够方便地对学生班级进行添加、编辑、删除。

同时班级系统还要记录算数学院和专业以及该班级的学生数量。

(5)课程管理描述了课程号、课程名称、授课教师等重要教学方面的信息,课程号用于方便学生的学课系统管理。

2、根据以上需求抽象出的实体有学生实体,班级实体,课程实体,教师实体,各实体的E-R图如下:总学图E-R学生实体1图班级人数专业学院班级名称班级号E-R图班级实体图2教师开课学期图课程实体E-R3图教师性别职称教师名教师号图E-R教师实体图4n1班级属于学生1选修成绩nnm讲授教师课程图5各实体联系E-R图三、数据库逻辑设计根据图5得出各个关系模式:(带下划线的为主码)学生信息表(学号,姓名,性别,出生日期,班级号,总学分)班级信息表(班级号,班级名,学院,专业,人数)课程信息表(课程号,课程名,学时,学分,开课学期,教师号)教师信息表(教师号,教师名,性别,职称)成绩信息表(学号,课程号,分数,学期,班级号)用户表(用户名,密码)其中用户表是教学管理系统注册用户使用的。

由关系模式得出关系表,如下:表1stu学生信息表表4teacher教师信息表表5 score成绩信息表表6 user用户信息表四、软件功能设计1、登录到教学管理系统可以完成系统管理功能,学生管理功能,成绩管理功能,班级管理功能,班级管理功能,课程管理功能和教师管理功能(如图6)。

系统管理:可以实现用户的添加和修改密码。

学生管理:可以对学生的记录进行添加,删除,修改和查询。

还可以统计某学生,某学期的所有课程的平均成绩。

成绩管理:可以对成绩记录进行添加,删除,修改和查询。

还可以统计某学生、某学期的所有课程的平均成绩及按班级,按课程计算平均成绩、最高成绩、最低成绩、及格率。

班级管理:可以对成绩记录进行添加,删除,修改和查询。

课程管理:可以对课程记录进行添加,删除,修改和查询。

教师管理:可以对课程记录进行添加,删除,修改和查询及教师授课情况的查询。

图6 软件功能图2、软件功能介绍(1)首先进入用户登录界面,在该界面输入有效的用户名与密码,单击“确认”登录。

如果没有用户名和密码的话也可以自己注册。

图7 用户登录界面图8用户注册密码(2)进入教学管理系统主应用界面后,单击对应的菜单栏选项,选择所需的操作。

图8主页面(3)打开学生管理菜单可以对学生的记录进行添加、删除、修改和查询。

图9学生管理页面可以对学生的姓名和班级分别进行查询。

图10 学生查询页面(4)打开成绩管理菜单可以对成绩的记录进行添加、删除、修改和查询。

图11成绩管理页面可以对学号,课程号分别查询,也可以学号、课程号一起查询。

图12 成绩查询页面1输入班级号、输入课程号计算平均成绩、最高成绩、最低成绩、及格率图12 成绩查询页面2统计某学生,某学期的所有课程的平均成绩图13 学期平均成绩查询页面打开班级管理菜单可以对班级的记录进行添加、删除、修改和查询。

(5)图14 班级管理页面输入班级号,对班级所有信息进行查询图15 班级查询页面打开课程管理菜单可以对课程的记录进行添加、删除、修改和查询。

(6)图16 课程管理页面输入课程号,对课程所有信息进行查询图17 课程查询页面打开教师管理菜单可以对教师的记录进行添加、删除、修改和查询。

(7)图18 教师管理页面输入教师号,可对教师所授课程时行查询图19教师查询页面五、程序源代码下面给出系统的部分设计图及部分源代码(1)在进行系统界面编程前,先建立数据库,并建立外键。

(2)数据库建立后,进行窗口编程。

首先建立一个新的工作空间和应用。

连接数据库,在应用的open事件下输入如下代码:// ProSQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connectstring='DSN=student'connect;if sqlca.sqlcode<>0 then敭獳条扥硯尨连接失败?不能连接数据源)returnend ifopen(w_login)(3)学生管理页面、成绩管理页面、班级管理页面、课程管理页面、教师管理页面功能似,类所以以学生管理页面为例,学生管理页面(图9)的代码如下:显示按钮cb_3的代码:dw_1.retrieve('%','%')添加按钮cb_tianjia的代码:string ls_ssexdec ls_szongif rb_1.checked thenls_ssex='男'elseif rb_2.checked thenls_ssex='女'end ifend ifls_szong=dec(sle_5.text)insert into stu values(:sle_1.text,:sle_2.text,:ls_ssex,:em_1.text,:sle_4.text,:ls_szong);commit;dw_1.retrieve('%','%')dw_1.scrolltorow(dw_1.rowcount())删除按钮cb_1的代码:dw_1.deleterow(dw_1.getrow())修改按钮cb_4的代码:dw_1.selectrow(dw_1.getrow(),false)晩挠形?整瑸尽修改thendw_1.selectrow(dw_1.getrow(),true)确认扣?琮硥?汳彥?整瑸搽彷?敧楴整獭牴湩?睤?朮瑥潲??学号)姓名)汳彥?整瑸搽彷?敧楴整獭牴湩?睤?朮瑥潲?? )) 浥?琮硥?瑳楲杮搨彷?敧楴整摭瑡?睤?朮瑥潲??出生日期汳彥?整瑸搽彷?敧楴整獭牴湩?睤?朮瑥潲??班级号)总学分)) 汳彥?整瑸猽牴湩?睤?朮瑥瑩浥敤楣慭?睤?朮瑥潲?? 晩搠彷?敧楴整獭牴湩?睤?朮瑥潲??性别)='男'thenrb_1.checked=truerb_2.checked=falseelserb_2.checked=truerb_1.checked=falseend ifelse扣?琮硥?修改string ls_ssexdec ls_szongif rb_1.checked then' ls_ssex='男elseif rb_2.checked then' ls_ssex=' 女end ifend ifls_szong=dec(sle_5.text),sle_1.text) 学号睤?献瑥瑩浥搨彷?敧牴睯?尬,sle_2.text) 睤?献瑥瑩浥搨彷?敧牴睯?尬姓名,sle_4.text)睤?献瑥瑩浥搨彷?敧牴睯?尬班级号,dec(sle_5.text)) 总学分睤?献瑥瑩浥搨彷?敧牴睯?尬,date(em_1.text)) 睤?献瑥瑩浥搨彷?敧牴睯?尬出生日期,ls_ssex) 睤?献瑥瑩浥搨彷?敧牴睯?尬性别commit;sle_1.text=\sle_2.text=\sle_4.text=\sle_5.text=\em_1.text=\rb_1.checked=falserb_2.checked=falseend ifcb_2修改按钮的代码:dw_1.update()d_stu. 其中dw_1DataObject的属性为(4)学生查询页面、成绩查询页面、班级查询页面、课程查询页面、教师查询页面功能类似,所以以学生查询页面为例,学生查询页面(图10)的代码如下:学生查询按钮cb_1的代码:dw_1.retrieve('%'+sle_1.text+'%','')班级查询按钮cb_2的代码:dw_1.retrieve('','%'+sle_2.text+'%')其中dw_1的DataObject属性为d_stu.(5)按班级号、按课程号计算平均成绩、最高成绩、最低成绩、及格率功能类似,所以以查询班级号的及格率为例,查询班级号的及格率页面(图12)的代码如下:Tab_1.tabpage_4.cb_7的clicked事件下的代码为:integer count1,result,count2declare jisuan cursor forselect 分数from scorewhere 班级号=:sle_7.text;open jisuan;fetch jisuan into :result;do while sqlca.sqlcode=0count2=count2+1if result>=60 thencount1=count1+1end iffetch jisuan into :result;loopclose jisuan;敭獳条扥硯尨提示?该班级的及格率是:+string((count1/count2)*100)+'%')(6)查询教师授课成绩页面(图19)的代码如下:Teacher表与course表以教师号为外键建立关联。

按钮Cb_1的clicked事件下的代码:dw_1.retrieve('%'+sle_1.text+'%')d_shouke属性为DataObject的dw_1其中五、结束语在做《教学管理系>的这段时间里让我了解了很多关于如何构建数据库的知识。

相关主题