数据库课程设计教务管理系统Word文件下载.docx
《数据库课程设计教务管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库课程设计教务管理系统Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
教师可以查看学习该课程的学生名单。
课程结束后,教师可以录入课程成绩。
一个教师可以教授多个班的多门课程,每门课由多位老师讲授。
课程分两类,必修课和选修课。
系统要记录每个学生学习各门必修课的成绩,还要记录学生选修了哪些选修课以及课程成绩。
学生可以查看自己各门课程的成绩。
学生还可以进行评教,给老师打分。
管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。
要求:
1.完成本系统的需求分析,写出功能需求和数据需求描述;
2.完成数据库的概念结构设计、逻辑结构设计、物理结构设计;
3.完成本系统的部分功能模块的程序界面设计。
指导教师:
2017年12月29日
课程设计评语
成绩:
_______________
年月日
一、概述...........................................................2
1.1、本设计的目的与意义............................................2
1.2、数据库开发工具和应用程序开发工具..............................2
二、需求分析........................................................2
2.1功能需求.......................................................2
2.2数据需求.......................................................2
三、概念结构设计....................................................2
3.1、E-R模型设计..................................................2
3.2、总体E-R图描述...............................................4
四、逻辑结构设计...................................................4
4.1、关系模型.....................................................4
4.2、关系模式的优化与说明.........................................4
五、物理结构设计....................................................5
5.1建立数据库.....................................................5
5.2表与表结构.....................................................5
六、应用程序设计....................................................6
6.1、系统总体结构..................................................6
6.2、系统界面与源代码..............................................7
6.2.1、界面........................................................8
6.2.2、功能描述....................................................9
6.2.3、程序源代码.................................................10
七、设计总结........................................................23
一、概述
本系统后台数据库采用MicrosoftSQLServer数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;
前台采用Microsoft公司的VisualStudio2010作为主要开发工具,可与SQLServer2008数据库无缝链接。
二、需求分析
2.1、功能需求
本系统的功能如下:
1)学生信息查询:
学生可以根据学号、姓名、专业进行查询.
2)学生信息管理:
主要是用于学生信息更新、插入、删除;
3)学生成绩录入:
用于学生成绩管理,录入学生成绩,也可以更新;
2.2、数据需求
本系统需要的数据如下:
学生:
学号、姓名、性别、年龄
教师:
工号、姓名、性别、年龄
班级:
班号、班名、人数、
课程:
课程号、课程名、上课时间、上课地点
专业:
专业号、专业名
三、概念结构设计
3.1、E-R模型设计(E-R图)
学生和教师实体及其属性E-R图
教师与课程E-R图
部分实体的E-R图
总体E-R图
3.2、总体E-R图描述
学生与班级之间的联系是所属关系(一对多关系)
班级与专业之间的联系是所属关系(一对多关系)
班级与课程之间的联系是学习关系(多对多关系)
学生选修一门选修课(一对多关系)
学生评教老师所教课程(多对多关系)
老师教授课程(多对多关系)
四、逻辑结构设计
4.1、关系模型
学生(学号、姓名、性别、年龄、班号、选修课程号、分数)
教师(工号、姓名、性别、年龄)
班级(班号、班名、人数、专业名)
课程(课程号、课程名)
成绩(必修课程号、班号、学号、分数)
评教(学号、工号、课程号、评分)
教授(工号、课程号)
课程表(课程号、工号、上课时间、上课地点)(实现排课功能)
用户(用户名、密码、用户类型)(存储登陆查询系统的人员信息)
加粗表示外键、加下划线表示主码
4.2、关系模式的优化与说明
例如:
教授关系的依赖关系如下:
(工号、课程号)—〉工号、课程号
所以教授关系模式属于第三范式
教师关系的依赖关系如下:
工号—>
因为没有非主属性对码的部分函数依赖,也没有非主属性对码的传递函数依赖
所以教师关系模式属于第三范式
五、物理结构设计
5.1、数据库的建立
5.2、表与表结构
班级(Class)表的结构
课程(Course)表的结构
学生(Student)表的结构
教师(Teacher)表的结构
评教(Judge)表的结构
教授(Teach)表的结构
成绩(Grade)表的结构
管理员(admin)表的结构
六、应用程序设计
6.1、系统总体结构
1)主界面:
登陆界面,通过选择用户类型,输入用户名密码,点击登录进入不同界面。
2)子界面:
不同用户类型的界面不相同,学生可以查询成绩,管理员可以添加学生信息以及查询删除学生信息。
6.2、系统界面与源代码
6.2.1、界面
登陆界面
学生界面
管理员界面
6.2.2、功能描述
1)学生查询学习课程的成绩
2)管理员管理学生信息
4)管理员添加学生信息
5)管理员删除学生信息
5)删除学号为1的触发触发器功能
6.2.3、程序源代码
管理员实现查询、删除功能的代码(删除学号为1的用到了触发器):
packageManager.zhen;
importjava.awt.*;
importjava.awt.EventQueue;
importjavax.swing.JInternalFrame;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importjavax.swing.table.DefaultTableModel;
importjavax.swing.ComboBoxModel;
importjavax.swing.GroupLayout;
importjavax.swing.GroupLayout.Alignment;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JTextField;
importjavax.swing.LayoutStyle.ComponentPlacement;
importjavax.swing.JButton;
importjavax.swing.JTable;
importjavax.swing.JComboBox;
importjavax.swing.JDesktopPane;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.*;
importjava.util.Vector;
importjavax.swing.DefaultComboBoxModel;
importjavax.swing.JScrollPane;
importjavax.swing.ScrollPaneConstants;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
publicclassForm_editextendsJInternalFrame{
privateJDesktopPaneDesktop;
privateDbUtildbUtil=newDbUtil();
privateJPanelcontentPane;
privateJTextFieldtxt_sno;
privateJTabletable;
privateJTextFieldtxtsname;
privateJTextFieldtxtcno;
privateJTextFieldtxtgrade;
privateJTextFieldtxtsno;
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
Form_bookeditframe=newForm