教学管理系统.docx
- 文档编号:7372412
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:31
- 大小:634.86KB
教学管理系统.docx
《教学管理系统.docx》由会员分享,可在线阅读,更多相关《教学管理系统.docx(31页珍藏版)》请在冰豆网上搜索。
教学管理系统
教学管理系统
课程设计报告
学期:
2010~2011学年第2学期
课程名称:
网络数据库课程设计
班级:
网络0901班
姓名:
王XX(学号)
指导老师:
刘引涛
目录
第1章前言1
第2章总体设计1
2.1项目背景1
2.2系统功能设置2
2.3系统功能模块2
第3章系统流程及库文件3
3.1系统流程3
3.2数据库需求分析4
3.3数据库概念结构设计4
3.4数据库逻辑结构设计5
3.5初始数据的输入7
第4章程序源码8
4.1登录界面8
4.2教师课程管理界面10
4.3教务处管理界面15
4.4学生选课管理界面21
第5章系统测试25
5.1系统不足25
5.2改进26
第6章用户操作说明26
6.1前期工程26
6.2系统演示26
第1章前言
信息管理系统(MIS)是集计算机技术、网络通信技术为一体的信息系统工程,它能够使企业运行的数据更加准确、及时、全面、详实,同时对各种信息进一步的加工,使企业领导层对生产、经营的决策依据更充分,更具有合理性科学性,并创造出更多的发展机会;另外也进一步加强企业的科学化、合理化、制度化、规范化管理,为企业的管理水平跨上新台阶,为企业持续、健康、稳定的发展打下基础。
MIS系统开发过程不仅仅是一个编写应用程序的过程,而是以软件工程的思想为指导,从可行性研究开始,经过系统分析、系统设计、系统实施等主要阶段而进行规范的开发过程。
目前国内使用和发展的MIS平台模式大体上分为两种:
客户机/服务器(Client/Server,简称C/S)模式和浏览器/服务器(Browser/Server,简称C/S)模式。
MIS系统不仅仅使用在企业中,它可以应用的方面很广,各行各业都可以应用:
金融、保险、农业、工业等等。
只要是有数据采集整理记录的方面,都可以应用。
学校作为一个独立的机构同样也不例外。
而且学校的各种情况都比较复杂,各个机构都各自独立,又相互联系,这就需要一个比较复杂的MIS系统。
学校的MIS系统一般由以下管理部分组成:
学生信息管理,教学管理,教务处管理,财务管理,物资管理,后勤管理等。
学校的各个系统又分为不同的管理人员,不同的管理人员所看到的以及所操作管理的部分又不同,这就需要给不同的操作者提供不同的操作管理权限。
不同身份的用户所需要的资料也不同,这需要给不同的用户提供不同的操作界面,进行不同的操作。
而且不同身份的客户所关心的问题也不同,比如学校的使用者大体分学生、教师、教务处、这就需要在做MIS系统开发之前一定要做好前期的需求分析,中期的系统设计、程序开发,而且也要注意后期的系统维护。
第2章总体设计
2.1项目背景
当今社会,科学技术飞速发展,知识更替日新月异。
随着计算机应用在全世界的普遍推广,各大中专院校都逐渐实现了计算机化管理,并且视野已经深入到Internet领域,实现了网络化管理。
在学校里,如果说学生管理是为学习环境提供强大的后勤保障,那么教学管理就可以说是学校发展的强劲动力。
加强教学管理,实现计算机化管理,不仅能使大中专院校教学水平上了一个新台阶,而且方便了教学管理人员对学院教学、教师授课、学生学习等几大环节的深入了解和全面掌握。
在学校实现教学管理的计算机化,是学校建设的一个重要的方面。
2.2系统功能设置
本文所作的软件是MIS系统中的教学管理系统,前台用Delphi开发,后台数据库使用的是SQL,采用的是B/S模式,其内容包括:
(1)登录界面(功能是为不同的用户提供不同的登录界面,实现不同权限的客户不同的操作功能)。
(2)教师课程申请(包括增开新课程、删除旧课程、修改已有课程,为学生选课时使用),教师的课程管理(包括开设的课程列表、所报课程的学生名单、输入学生的成绩)。
(3)教务处课程设置审批(包括审批课程详细内容、通过审批、拒绝申请),课程资源分配(主要完成上课教师和时间的分配。
每学期开始选课前需要清除所有原分配的资源,重新输入分配结果),选课结果查询管理界面(主要功能是将选课的结果转移到成绩单中,同时兼有修改功能),成绩单(主要完成每个课程成绩单的查询。
另外由于时间的缘故,未能实现成绩单的打印功能)。
(4)学生选课功能(主要功能是实现课程的查询,把要选的课程加入已选课程表);
(5)学生查询成绩功能(实现自己已学课程列表的成绩查询)。
2.3系统功能模块
系统各功能模块如图所示:
图2-1系统功能模块图
因为使用这套系统的人员不光是教务管理人员,还包括学生和教师。
不同的身份对数据库的操作权限也不同。
为了避免管理的混乱,需要针对不同的角色设计不同的客户端,分配不同的权限,对同一个数据库进行合理的修改。
教学管理信息系统是校园信息管理系统的一个重要的有机组成部分。
这个系统与校园其它系统之间是相互依赖、相互补充的,它需要从学生信息管理系统获取学生的个人信息,从教师信息管理系统获取任课教师的相关信息。
同时,此系统提供的成绩单又为其它系统提供了必要的参考。
第3章系统流程及库文件
3.1系统流程
流程图如图所示:
图3-1系统流程图
3.2数据库需求分析
根据图所示的数据流程,教学管理信息系统需要以下数据项:
课程:
课程号、课程名称、讲课教师、学分、学时、上课时间、上课地点、课程简介、课程状态。
选课结果:
记录编号、选课人、所选课程;
成绩单:
记录编号、学生、课程、成绩。
所需的外部数据支持:
学生:
学号、姓名、班级;
教师:
员工号、姓名、所在院系。
3.3数据库概念结构设计
本系统所需数据的E-R模型图如图所示:
图3-2数据库概念设计结构图
3.4数据库逻辑结构设计
根据上面的E-R图,需要三个基本信息表:
教师信息、学生信息、课程信息。
其中,教师信息和学生信息实际上是从其它信息管理系统的数据表中直接读取。
学生的选课信息需要用一个表来单独保存。
由于每学期期末前都要进行选课,一次选课结束后要将这个表的内容及时保存到成绩单数据表中。
使用本系统的不光是教务处的管理人员和教师,每个学生都需要登录到选课系统进行课程的选择。
因此,需要对不同的登录人员进行密码认证和权限的限制,防止出现越权行为。
用户名、密码和权限单独保存在一个数据表中。
另外需要一个表格保存各记录号的计数值和一个课程状态代码表,这八个数据表的结构如下图所示:
表3-1TEACHER教师个人信息表
字段名
数据类型
是否为空
说明
ID
CHAR(6)
NOTNULL
员工号(主关键字)
NAME
VARCHAR(20)
NOTNULL
姓名
DEPARTMENT
CHAR
(2)
NOTNULL
所属院系
表3-2STUDENT学生个人信息表
字段名
数据类型
是否为空
说明
ID
CHAR(6)
NOTNULL
学号(主关键字)
NAME
VARCHAR(20)
NOTNULL
姓名
CLASS
CHAR(4)
NULL
所在班级
表3-3COURSE课程信息表
字段名
数据类型
是否为空
说明
ID
CHAR(10)
NOTNULL
课程号(主关键字)
NAME
VARCHAR(50)
NOTNULL
课程名称
TEACHER
CHAR(6)
NOTNULL
任课教师(外部关键字TEACHER)
CREDIT_HOUR
SMALLINT
NULL
学分
PERIOD
SMALLINT
NULL
学时
CLASSTIME
VARCHAR(20)
NULL
上课时间
CLASSROOM
VARCHAR(20)
NULL
上课地点
INTRO
VARCHAR(4000)
NULL
课程简介
STATE
CHAR
(1)
NOTNULL
课程状态(外部关键字COURSE_STATE)
表3-3COURSE_SELECT课程状态代码表
字段名
数据类型
是否为空
说明
ID
INTEGER
NOTNULL
记录号(主关键字)
COURSE
CHAR(10)
NOTNULL
课程号(外部关键字COURSE)
STUDENT
CHAR(6)
NOTNULL
选课学生(外部关键字STUDENT)
表3-4SCORE成绩信息表
字段名
数据类型
是否为空
说明
ID
INTEGER
NOTNULL
记录号(主关键字)
STUDENT
CHAR(6)
NOTNULL
学号(外部关键字STUDENT)
COURSE
CHAR(10)
NOTNULL
课程号(外部关键字COURSE)
SCORE
FLOAT
NULL
成绩
表3-5USER_PASS用户密码信息表
字段名
数据类型
是否为空
说明
ID
CHAR(6)
NOTNULL
用户名(主关键字)
PASSWD
CHAR(15)
NOTNULL
密码
AUTHORITY
CHAR
(1)
NOTNULL
权限
表3-6COURSE_STATE课程状态代码表
字段名
数据类型
是否为空
说明
CODE
CHAR
(1)
NOTNULL
状态代码(主关键字)
DESCRIPTION
VARCHAR(20)
NOTNULL
描述
表3-7COUNTER计数信息表
字段名
数据类型
是否为空
说明
ID
CHAR
(1)
NOTNULL
计数器号(主关键字)
COUNTER_VALUE
CHAR(15)
NOTNULL
计数值
3.5初始数据的输入
在开发应用程序之前必须先输入部分基础的数据,包括部分教师的信息、用户名密码权限、所需的计数器和课程状态代码。
计数器的设置如表一所示,课程状态代码的设置如表二所示,用户权限设置的设置如表三所示。
表3-8计数器设置
计数器编号
说明
F
成绩记录编号
K
课程编号
X
选课编号
表3-9课程状态代码
状态代码
说明
0
申请增加新课
1
申请删除旧课
2
申请修改课程
3
课选(激活)
4
等待课程安排
5
已删除
6
拒绝申请
表3-10用户权限
权限代码
说明
0
学生
1
教师
2
教务处
第4章程序源码
以下为程序的源码:
4.1登录界面
图4-1管理系统登录界面
用户认证的过程在“登录”按钮B_login的OnClick事件处理程序中完成,代码如下:
procedureTF_Login.B_loginClick(Sender:
TObject);
begin
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;
ifT_user.RecordCount=1then//判断用户名是否存在
begin
ifT_user['AUTHORITY']='0'then
begin
F_main_st:
=TF_main_st.Create(Self);
try
F_main_st.ShowModal;
finally
end;
end
else
ifT_user['AUTHORITY']='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
end;
end
end
else
Application.MessageBox('密码不正确,请重新确认,注意大小写!
','密码不匹配',MB_OK);
End
else
Application.MessageBox('请确认用户名是否正确!
','无此用户',MB_OK);
end;
4.2教师课程管理界面
图4-2教师课程管理界面
申请界面的OnShow事件和“恢复表单”按钮的OnClick事件使用同一个事件处理程序,主要是初始化申请表单,代码如下:
procedureTF_main_tc.B_resetClick(Sender:
TObject);//初始化申请表单
begin
i_state_1.ItemIndex:
=0;//申请初始化到增开新课
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事件处理程序代码如下:
procedureTF_main_tc.FormClose(Sender:
TObject;varAction:
TCloseAction);
begin
F_Login.i_user.Text:
='';//登录界面清空
F_Login.i_passwd.Text:
='';
Close;//释放
end;
当修改申请的内容时,程序要根据情况决定是否显示已开课程列表。
控制代码在i_state_1的OnClick事件处理程序中,代码如下:
procedureTF_main_tc.i_state_1Click(Sender:
TObject);
begin
ifi_state_1.ItemIndex>0then//如果不是新开课程,则显示列表
begin
T_course_1.Filter:
='TEACHER='''+F_Login.i_user.Text+'''ANDSTATE<>''5''ANDSTATE<>''1''';
T_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;
如果是删除或修改旧的课程,在单击课程列表时,将在输入框中显示课程的详细信息,代码如下:
procedureTF_main_tc.o_course_1CellClick(Column:
TColumn);
begin
ifT_course_1.Activethen//判断课程信息表是否激活
begin
i_name_1.Text:
=T_course_1['NAME'];//提取课程名称
i_credit_hour_1.Text:
=T_course_1['CREDIT_HOUR']//提取课程学分
i_period_1.Text:
=T_course_1['PERIOD'];//提取课程学时
i_intro_1.Lines.Clear;//清除简介
i_intro_1.Lines.Add(T_course_1['INTRO']);//提取课程简介
end;
end;
表单的提交在提交按钮B_submit的OnClick事件处理程序中进行,代码如下:
procedureTF_main_tc.B_submitClick(Sender:
TObject);
var
counter:
integer;//用于计数
course_id:
String;//用于保存课程编号
begin
casei_state_1.ItemIndexof//根据不同申请,分别处理
0:
//0:
增加新课
begin
//获取课程计数
T_counter_K.Open;//打开计数器表
counter:
=T_counter_K['COUNTER_VALUE'];//获取计数值
inc(counter);//增加计数值
T_counter_K.Edit;//修改计数器
T_counter_K['COUNTER_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;//添加年份信息
//添加课程信息
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_1['STATE']:
='1';//改变课程状态
T_course_1.Post;//提交修改
end;
2:
//2:
申请修改
begin
T_course_1.Filtered:
=False;
T_course_1.Edit;//进行修改
T_course_1['NAME']:
=i_name_1.Text;//修改课程名称
T_course_1['CREDIT_HOUR']:
=i_credit_hour_1.Value;//修改课程学分
T_course_1['PERIOD']:
=i_period_1.Value;//修改课程学时
T_course_1['INTRO']:
=i_intro_1.Lines.Text;//修改课程信息
T_course_1['STATE']:
='2';//修改课程状态
T_course_1.Post;//提交
end;
end;
B_resetClick(nil);//恢复表单
end;
图4-3管理系统课程列表界面
在界面初始化的时候,需要列出可选的课程列表。
TabSheet2的OnShow事件处理代码如下:
procedureTF_main_tc.TabSheet2Show(Sender:
TObject);
begin
//选取激活的课程
T_course_1.Filter:
='TEACHER='''+F_Login.i_user.Text+'''ANDSTATE=''3''';//设置过滤条件
T_course_1.Filtered:
=True;//激活过滤器
T_course_1.Open;//打开数据表
o_course_2CellClick(nil);//显示学生名单和成绩输入表
T_students.Open;//打开学生名单表
end;
当单击课程列表时,显示相应课程的学生名单和成绩单输入表。
程序代码在o_course_2的OnCellClick事件处理中:
procedureTF_main_tc.o_course_2CellClick(Column:
TColumn);
begin
Q_students.Close;//关闭查询
Q_students.Params.ParamValues['COURSE']:
=T_course_1['ID'];//设置课程参数
Q_students.Open;//重新打开查询
end;
4.3教务处管理界面
图4-4管理系统课程设置界面
界面初始化工作在TabSheet1的OnShow事件处理程序中完成,代码如下:
procedureTF_main_jwc.TabSheet1Show(Sender:
TObject);//界面初始化
begin//打开申请课程列表
T_course_apply.Open;//打开教师信息表
T_teacher.Open;
end;
“通过审批”按钮的代码如下:
procedureTF_main_jwc.B_passClick(Sender:
TObject);//通过审批
begin
Q_update.Close;//关闭查询
Q_update.SQL.Clear;//清除语句
Q_update.SQL.Add('UPDATECOURSE');
Q_update.SQL.Add('SETSTATE="4"');//4:
通过
Q_update.SQL.Add('WHEREID="'+T_course_apply['ID']+'"');
Q_update.ExecSQL;
T_course_apply.Refresh;
end;
“拒绝请求”的按钮代码如下:
procedureTF_main_jwc.B_rejectClick(Sender:
TObject);//拒绝请求
begin
Q_update.Close;//关闭查询
Q_update.SQL.Clear;//清除SQL语句
Q_update.SQL.Add('UPDATECOURSE');//添加修改课程状态的SQL语句
Q_update.SQL.Add('SETSTATE=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学管理 系统