1、。计算机科学与技术学院、软件学院数据库设计与开发实验报告教务管理系统学生姓名:学号:班级:指导老师:目录 第 1 章 需求分析. .3第 2 章 数据库设计. .32.1E-R 图分析.32.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 章 数据库程序设计.53.1 数据库及表的定义.53.2 为数据库各表建立索引.53.3 创建各表的存储过程.5 3.3.1 普通存储过程(无参数).6 3.3.2 带参数的
2、存储过程.7 3.3.3 带output参数的存储过程.73.4 触发器设计.8 3.4.1 插入触发器.8 3.4.2 更新触发器.9 3.4.3 删除触发器.93.5 游标的应用.10第4 章 用户交互界面.114.1 、登录界面模块.114.2 、学生登录模块.12 4.2.1 个人信息管理.12 4.2.2 选课模块.13 4.2.3 查看与删除选课.134.3 、教师登录模块.14 4.3.1 选择授课. .14 4.3.2 查看授课.14 4.3.3 录入成绩.144.4 、系统管理员登录模块.16 4.4.1 学生管理.16 4.4.2 教师管理.18 4.4.3 课程管理.18
3、4.4.4 选课管理.184.4.5 授课管理.184.4.6 查看学生所选课程数目总分平均分.18第 5 章 总结.19 第一章 需求分析问题提出: 每年系主任诽课都会遇到困难。系主任希望用计算机记录教师的基本信息、每个学期的开课信息、学生基本信息、教师授课信息、以及学生选课的情况。通常,每位教师可以选择多门课程授课,每位学生,也可以选择自己喜欢的教师。 本教务管理系统包括以下3个模块: 1. 学生模块: 学生通过登陆验证后进入系统,可以查询自己的相关信息,修改个人信息,所选课程的相关信息, 成绩的相关信息,同时还可以选课,查询选课结果,删除已选课程。 2. 教师模块: 教师通过登陆验证后进
4、入系统,可以查询教师所教的班级的学生信息,可以选择授课,删除授课,同时教师还可以上传学生成绩。 3. 系统管理员模块: 管理员(教务处)通过登陆验证后进入系统,可以实现对学生个人信息管理,包括增删改查,同时可以为学生选课,修改成绩(若学生选课失败可到教务处直接选课,若教师发现上传的成绩不对时可向教务处说明情况并修改学生成绩)。对课程信息的增删改查,教师信息增删改查,授课管理还有学生选课科目数,总分平均分的统计,发布等。第二章 数据库设计2.1 E-R图分析2.2数据库表设计2.2.1zhj_course表结构字段数据结构长度是否允许空值备注课程号course_IDint否主键课程名course
5、_namechar15否备注course_remarkchar20是2.2.2zhj_student表结构字段数据结构长度是否允许空值备注学号student_IDint否主键姓名student_namechar15否性别student_sexchar2是班级student_classchar10是邮箱student_emailchar20是联系方式student_phonechar20是2.2.3zhj_teacher表结构字段数据结构长度是否允许空值备注教师工号teacher_IDint否主键姓名teacher_nameChar10否电话teacher_phonechar20是2.2.4C_
6、T表结构字段数据结构长度是否允许空值备注授课号C_T_IDint否主键教师工号teacher_IDint否外键课程号course_IDint否外键2.2.5C_S表结构字段数据结构长度是否允许空值备注选课号C_S_IDint否主键学号student_IDint否外键授课号C_T_IDint否外键成绩gradeint是第三章 数据库程序设计3.1数据库及表的定义(此部分由企业管理器完成,不详述)3.2为数据库各表建立索引(如果各表的数据海量可以加快查询速度)其他表索引同上3.3创建各表的存储过程3.3.1 普通存储过程(无参数)描述:该存储过程用于查询各表的信息(简化select语句),这里只展
7、示表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学号 ch
8、ar(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_
9、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 游标的应用 描述:用于汇总学生的选课信息和成绩信息,将游标应用在存储过程中,方 便调
10、用,数据库中有一个表zhj_summary,每次应用游标时,清空zhj_summary表,将最新信息插入。然后显示,便于用户查看。create proc searchas declare zhj cursor SET zhj = CURSOR SCROLL DYNAMIC for select student_ID from zhj_student group by student_IDbegin delete from zhj_summary declare count int, sum float, avg float, code int open zhj fetch next from
11、zhj into code while (fetch_status=0) begin set 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 code end close zhj deallocate
12、 zhj end select zhj_summary.student_ID, zhj_student.student_name,count,sum, avg from zhj_student,zhj_summary where zhj_student.student_ID= zhj_summary.student_ID第四章 用户交互界面4.1登陆界面模块4.2学生登陆模块可以选择在学生身份下可进行的操作4.2.1个人信息管理可查看个人信息,修改邮箱、电话,其他信息只有管理员有权修改4.2.2选课模块学生可在所列课程中点击单选钮、选择键进行选课 如选择授课号为14005的课程 4.2.3查看
13、与删除选课 可查看所选课程,如刚刚所选授课号为14005已在已选课程中。选择选课号前的单选钮点击删除该选课可将已选课程删除4.3教师登陆模块教师登陆,查看个人信息,修改个人信息等与学生相同,不详述,以下为登陆后教师可进行的操作4.3.1选择授课教师可选择准备教授的课程,如选择课程号为2014001的课程4.3.2查看授课教师可查看授课信息,如之前所选课程号为2014001的课程已在列表中。教师可点击单选钮、删除键将授课删除4.3.3录入成绩首先选择要登入成绩的课程,点击登入成绩教师输入成绩,点击提交登入成功,并显示已登入的成绩4.4系统管理员模块系统管理员登陆后可进行的操作4.4.1学生管理查
14、看全部学生修改学生信息插入学生信息(学号在数据库中为自动增长)删除学生4.4.2教师管理对教师进行增删改查,与学生界面相同4.4.3课程管理对课程进行增删该查,与学生界面相同4.4.4选课管理对选课进行增删该查,与学生界面相同4.4.5授课管理对授课进行增删该查,与学生界面相同4.4.6学生所选课程数目和总分平均分第五章 总结 这次的实验收获颇丰。在写之前觉得那些选课什么的都好困难,都觉得不会写,但是经过两个星期的研究学会了应用很多东西,让自己对java连接数据库的能力得到了很大水平的提升,学会了在代码中应用存储过程和游标,完成了选课、录入成绩等较复杂的功能。这次写的是教务管理系统,在编写过程中对系统的操作流程有了很清晰的体会。在与同学交流的过程中学到了很多东西,发现了自己的不足,我及时更正了一些错误,终于最后完成了这次实验。这是我写的最累的一次实验了,因为时间比较紧,又只有一个人做,好多次都想要放弃一些功能,但是看到其他同学做到了,就觉得自己也能也应该做到,最后真的做到了,觉得很满足。THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考-可编辑修改-