当前位置:文档之家› 数据库设计教务管理系统

数据库设计教务管理系统

计算机科学与技术学院、软件学院数据库设计与开发实验报告教务管理系统学生姓名:学号:班级:指导老师:目录第1 章需求分析....................................................................................................................... . (3)第2 章数据库设计................................................................................................................... . (3)2.1E-R 图分析 (3)2.2 数据库表设计 (4)2.2.1zhj_course表结构 (4)2.2.2zhj_student表结构 (4)2.2.3 zhj_teacher表结构 (4)2.2.4 zhj_C_T表结构 (4)2.2.5 zhj_C_S表结构 (4)第3 章数据库程序设计 (5)3.1 数据库及表的定义 (5)3.2 为数据库各表建立索引 (5)3.3 创建各表的存储过程 (5)3.3.1 普通存储过程(无参数) (6)3.3.2 带参数的存储过程 (7)3.3.3 带output参数的存储过程 (7)3.4 触发器设计 (8)3.4.1 插入触发器 (8)3.4.2 更新触发器 (9)3.4.3 删除触发器 (9)3.5 游标的应用 (10)第4 章用户交互界面 (11)4.1 、登录界面模块 (11)4.2 、学生登录模块 (12)4.2.1 个人信息管理 (12)4.2.2 选课模块 (13)4.2.3 查看与删除选课 (13)4.3 、教师登录模块 (14)4.3.1 选择授课............................................... . (14)4.3.2 查看授课 (14)4.3.3 录入成绩 (14)4.4 、系统管理员登录模块 (16)4.4.1 学生管理 (16)4.4.2 教师管理 (18)4.4.3 课程管理 (18)4.4.4 选课管理 (18)4.4.5 授课管理 (18)4.4.6 查看学生所选课程数目总分平均分 (18)第5 章总结 (19)第一章需求分析问题提出:每年系主任诽课都会遇到困难。

系主任希望用计算机记录教师的基本信息、每个学期的开课信息、学生基本信息、教师授课信息、以及学生选课的情况。

通常,每位教师可以选择多门课程授课,每位学生,也可以选择自己喜欢的教师。

本教务管理系统包括以下3个模块:1. 学生模块:学生通过登陆验证后进入系统,可以查询自己的相关信息,修改个人信息,所选课程的相关信息,成绩的相关信息,同时还可以选课,查询选课结果,删除已选课程。

2. 教师模块:教师通过登陆验证后进入系统,可以查询教师所教的班级的学生信息,可以选择授课,删除授课,同时教师还可以上传学生成绩。

3. 系统管理员模块:管理员(教务处)通过登陆验证后进入系统,可以实现对学生个人信息管理,包括增删改查,同时可以为学生选课,修改成绩(若学生选课失败可到教务处直接选课,若教师发现上传的成绩不对时可向教务处说明情况并修改学生成绩)。

对课程信息的增删改查,教师信息增删改查,授课管理还有学生选课科目数,总分平均分的统计,发布等。

第二章数据库设计2.1 E-R图分析2.2数据库表设计第三章数据库程序设计3.1数据库及表的定义(此部分由企业管理器完成,不详述)3.2为数据库各表建立索引(如果各表的数据海量可以加快查询速度)其他表索引同上3.3创建各表的存储过程3.3.1 普通存储过程(无参数)描述:该存储过程用于查询各表的信息(简化select语句),这里只展示表zhj_student,其他表实现方法相同3.3.2带参数的存储过程描述:该存储过程用于在学生表中插入信息,简化insert语句,这里只展示表zhj_student,其他表实现方法相同create proc zhj_student_insert@学号char(15),@姓名char(50),@性别char(2),@班级char(30),@邮箱char(30),@联系方式char(15)as insert into zhj_studentvalues(@学号,@姓名,@性别,@班级,@邮箱,@联系方式)描述:该存储过程用于修改学生记录create proc zhj_student_update@学号char(15),@姓名char(50),@性别char(2),@班级char(30),@邮箱char(30),@联系方式char(15)as update zhj_studentset student_name=@姓名,student_sex=@性别,student_class=@班级,student_email=@邮箱,student_phone=@联系方式where student_ID=@学号3.4 触发器设计3.4.1 插入触发器描述:插入新的信息后会有提示消息,便于用户确认是否执行成功,这里只展示表zhj_student,其他表实现方法同。

create trigger zhj_student_insert_triggeron zhj_studentfor insertAS RAISERROR ('正在修改zhj_student表', 16, 10)3.4.2 更新触发器描述:更新某项后会将被更新的元组的所有内容输出create trigger zhj_student_update_triggeron zhj_studentfor updateas select*from inserted3.4.3 删除触发器描述:删除信息后会把表中所有信息显示出来,便于用户确认。

实现方法与更新相同,不详述。

3.5 游标的应用描述:用于汇总学生的选课信息和成绩信息,将游标应用在存储过程中,方便调用,数据库中有一个表zhj_summary,每次应用游标时,清空zhj_summary表,将最新信息插入。

然后显示,便于用户查看。

create proc searchas declare@zhj cursorSET@zhj=CURSOR SCROLL DYNAMIC forselect student_ID from zhj_student group by student_IDbegindelete from zhj_summarydeclare@count int,@sum float,@avg float,@code intopen@zhjfetch next from@zhj into@codewhile (@@fetch_status=0)beginset@count=(select COUNT(C_S_ID)from zhj_C_S where student_ID=@code) set@sum=(select SUM(grade)from zhj_C_S where student_ID=@code)set@avg=@sum/@countinsert into zhj_summary values (@code,@count,@sum,@avg);fetch next from@zhj into@codeendclose@zhjdeallocate@zhjendselectzhj_summary.student_ID,zhj_student.student_name,count,sum,avgfrom zhj_student,zhj_summarywhere zhj_student.student_ID=zhj_summary.student_ID第四章用户交互界面4.1登陆界面模块4.2学生登陆模块可以选择在学生身份下可进行的操作4.2.1个人信息管理可查看个人信息,修改邮箱、电话,其他信息只有管理员有权修改4.2.2选课模块学生可在所列课程中点击单选钮、选择键进行选课如选择授课号为14005的课程4.2.3查看与删除选课可查看所选课程,如刚刚所选授课号为14005已在已选课程中。

选择选课号前的单选钮点击删除该选课可将已选课程删除4.3教师登陆模块教师登陆,查看个人信息,修改个人信息等与学生相同,不详述,以下为登陆后教师可进行的操作4.3.1选择授课教师可选择准备教授的课程,如选择课程号为2014001的课程4.3.2查看授课教师可查看授课信息,如之前所选课程号为2014001的课程已在列表中。

教师可点击单选钮、删除键将授课删除4.3.3录入成绩首先选择要登入成绩的课程,点击登入成绩教师输入成绩,点击提交登入成功,并显示已登入的成绩4.4系统管理员模块系统管理员登陆后可进行的操作4.4.1学生管理查看全部学生修改学生信息插入学生信息(学号在数据库中为自动增长)删除学生4.4.2教师管理对教师进行增删改查,与学生界面相同4.4.3课程管理对课程进行增删该查,与学生界面相同4.4.4选课管理对选课进行增删该查,与学生界面相同4.4.5授课管理对授课进行增删该查,与学生界面相同4.4.6学生所选课程数目和总分平均分第五章总结这次的实验收获颇丰。

在写之前觉得那些选课什么的都好困难,都觉得不会写,但是经过两个星期的研究学会了应用很多东西,让自己对java连接数据库的能力得到了很大水平的提升,学会了在代码中应用存储过程和游标,完成了选课、录入成绩等较复杂的功能。

这次写的是教务管理系统,在编写过程中对系统的操作流程有了很清晰的体会。

在与同学交流的过程中学到了很多东西,发现了自己的不足,我及时更正了一些错误,终于最后完成了这次实验。

这是我写的最累的一次实验了,因为时间比较紧,又只有一个人做,好多次都想要放弃一些功能,但是看到其他同学做到了,就觉得自己也能也应该做到,最后真的做到了,觉得很满足。

盛年不重来,一日难再晨。

及时宜自勉,岁月不待人。

相关主题