2015广工数据库课程设计报告(附java源码)Word格式文档下载.doc
- 文档编号:469486
- 上传时间:2023-04-29
- 格式:DOC
- 页数:44
- 大小:422KB
2015广工数据库课程设计报告(附java源码)Word格式文档下载.doc
《2015广工数据库课程设计报告(附java源码)Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《2015广工数据库课程设计报告(附java源码)Word格式文档下载.doc(44页珍藏版)》请在冰点文库上搜索。
2.1数据字典
学生信息:
学号,姓名,性别,班级,专业,已获学分
选课表:
学号,课程号,课程名,是否获取学分
课程:
课程号,课程名,课程学分
成绩表:
学号,课程号,课程名,平时成绩,考试趁机,补考成绩,重修成绩,总评成绩
2.2数据流图
系统登录
成绩管理系统
重修成绩打印
重修名单打印
补考成绩打印
补考名单打印
总评成绩打印
重修成绩登记
补考成绩登记
考试成绩登记
信息打印
退出
成绩登记
优秀学生打印
三、概念结构设计
E-R图:
上课时间
课程学分
课程名
课程号
是否获取学分
总评成绩
重修成绩
补考成绩
平时成绩
考试成绩
学号
系别
班级
已获学分
性别
姓名
学生成绩
课程信息
学生信息
选课信息
选课
提供课程
拥有
四、逻辑结构设计
4.1数据库设计:
数据库由以下表组成:
Student:
学生信息表
Choose_course:
选课表
Course:
课程表
Score:
成绩表
具体功能如下:
根据学生选课表对学生成绩表进行各科成绩的录入
4.2关系模式
学生信息表(学号,姓名,性别,班级,专业,已获学分),其中学号为主码。
选课表(学号,课程号,课程名,是否获取学分),其中学号和课程号为外码。
课程(课程号,课程名,课程学分),其中课程号为主码。
成绩表(学号,课程号,课程名,平时成绩,考试趁机,补考成绩,重修成绩,总评成绩),其中学号和课程号为外码。
4.3系统模块图请参照2.2中的数据流图。
各模块功能说明:
系统登录:
该系统使用时需登录,默认账号为:
3113005818,密码为123。
成绩登记:
用于登记各类成绩
考试成绩登记:
用于登记考试成绩及平时成绩。
补考成绩登记:
用于登记补考成绩。
重修成绩登记:
用于登记重修成绩。
打印:
用于打印各种信息
总评成绩打印:
用于打印总评成绩。
其中:
总评成绩=30%*平时成绩+70*考试成绩。
补考名单打印:
用于打印补考名单,即总评成绩不到60分的学生。
补考成绩打印:
用于打印补考学生的成绩。
重修名单打印:
用于打印重修名单,及总评成绩不到60且补考成绩也不到60的学生。
重修成绩打印:
用于打印重修学生的成绩。
优秀学生打印:
用于打印优秀学生。
及该学生每科总评成绩均大于85.
退出:
退出系统。
五、数据库物理结构设计
创建数据库:
首先打开MySql可视化工具,我使用的是navicatformySq建立数据库,首先向创建一个连接,然后在打开连接并右键选择创建grade_management数据库,并依次创建各表。
如下图所示:
创建各表的脚本文件如下
创建学生表:
CREATETABLEstudent(
s_noCHAR(8)PRIMARYKEY,
s_nameCHAR(8)NOTNULL,
s_sexCHAR
(2),
s_classCHAR(8),
s_specCHAR(8)
)
创建课程表:
CREATETABLEcourse(
c_noCHAR(8)PRIMARYKEY,
c_nameCHAR(8)NOTNULL,
c_pointSMALLINT,
c_timeSMALLINT
创建选课表:
CREATETABLEchoose_couse(
s_noCHAR(8)NOTNULL,
FOREIGNKEY(s_no)REFERENCESstudent(s_no),
c_noCHAR(8)NOTNULL,
FOREIGNKEY(c_no)REFERENCEScourse(c_no),
c_nameCHAR(8)
创建成绩表:
CREATETABLEscore(
s_noCHAR(8),
c_noCHAR(8),
c_nameCHAR(8),
ord_scoreINT,
exam_scoreINT,
makeup_scoreINT,
renovate_scoreINT,
final_scoreINT
建表完成后在C:
\ProgramData\MySQL\MySQLServer5.1\data\grade_management目录下会有四个表,如下:
六、用户界面的设计
登录界面如下:
主界面如下:
选择界面如下:
打印界面如下:
七、系统测试方案与测试报告:
7.1测试方案:
添加学生成绩测试
添加学生补考成绩测试:
添加学生重修成绩测试:
学生总评成绩打印测试
学生补考名单打印测试:
学生补考成绩单打印测试:
学生重修通知单打印测试:
学生重修成绩单打印测试:
优秀学生名单打印:
7.2测试报告
添加学生成绩测试:
学生总评成绩打印测试:
八、安装和使用说明
本程序使用的数据库软件是MySql,安装MySql后需设置MySql的用户登录口令为root,并建立数据库grade_management,并建建表文件导入该目录下,或者直接新建grade_management的四个表并填写数据。
程序已经打包为一个jar可执行的java文件,需在有安装java虚拟机的环境下才能正常打开使用。
九、心得体会
通过本次的数据库课程设计,我进一步的了解了数据库的开发和使用,与看课本学习不同的是,这次是动手实践去做,而不仅仅局限于课本上的理论知识,更加进一步加深了对数据库的理解。
并且,本次课程设计采用的开发语言是java,很多java知识自己完全不懂,之前也没有很深入的去学习java,所以很多知识点或者说是实现功能都是从网上找的或者看书找到的,虽然说这样做是辛苦点,而且效率会低点。
但是,从中我确实也学到了不少知识。
从一开始的java连接数据库,开始不知道怎么做,无从下手,后来翻书找到了实现的方法,当时确实自己是挺开始的。
后来又接着遇到不少难题,比如界面转换,这是我做本次数据库课设最失败的地方,本来想在一个界面实现多个登记表的填写装换,后来发现不行,新添加的表总是覆盖前面添加的表导致表不可见。
无奈,只得用弹窗的方式把表格呈现出来,当时也花费了比较多的时间。
或许是自己知识的漏洞吧,接下来还得好好学习java知识。
再者,就是电脑的系统一直装不了sqlserver,所以只能更换为MySql。
还有一点感触最深的就是或许我的程序bug漏洞百出,又或者有各种各样的不好。
但是,我想说的就是这个程序是我一个按键一个按键敲出来的!
!
忙活了几天,有时也熬到了2,3点,但是看着一个程序一个个功能的实现,之前的所有辛苦也是值得的!
最后谢谢老师本学期数据库的指导,提前祝老师新年快乐!
十、参考文献
《数据库系统概论(第五版),王珊萨师煊,高等教育出版社》
《疯狂java讲义》
源代码(需导入java连接数据库mysql的驱动)
importjava.awt.Button;
importjava.awt.Canvas;
importjava.awt.Color;
importjava.awt.Dimension;
importjava.awt.Graphics;
importjava.awt.Point;
importjava.awt.Toolkit;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjavax.swing.JButton;
importjavax.swing.JDialog;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JMenuItem;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
importjavax.swing.JPasswordField;
importjavax.swing.JScrollPane;
importjavax.swing.JTable;
importjavax.swing.JTextField;
importjavax.swing.SwingUtilities;
publicclassTeachingManageSystemextendsWindowAdapter
{
JFramefm=newJFrame("
成绩管理系统"
);
//窗口
JFramefmS=newJFrame("
考试成绩登记"
JFramefmD=newJFrame("
成绩打印"
JFramefm1=newJFrame("
JFramefm2=newJFrame("
补考成绩登记"
JFramefm3=newJFrame("
重修成绩登记"
JFramefm_score=newJFrame("
期末成绩单"
JFramefm4=newJFrame("
补考通知单"
JFramefm5=newJFrame("
补考成绩单"
JFramefm6=newJFrame("
重修通知单"
JFramefm7=newJFrame("
重修成绩单"
JFramefm8=newJFrame("
优秀学生名单"
JMenuBarmb=newJMenuBar();
//菜单栏
JMenus_rg=newJMenu("
成绩登记"
JMenuprint=newJMenu("
打印"
JMenuexit=newJMenu("
退出"
JMenuItemexam_rg=newJMenuItem("
//菜单项
JMenuItemmakeup_rg=newJMenuItem("
JMenuItemrenovate_rg=newJMenuItem("
JMenuItemfinal_score=newJMenuItem("
总评成绩"
JMenuItemmakeup_notice=newJMenuItem("
JMenuItemmakeup_score=newJMenuItem("
JMenuItemrenovate_notice=newJMenuItem("
JMenuItemrenovate_score=newJMenuItem("
JMenuItemexcellent_student=newJMenuItem("
JMenuItemexit_system=newJMenuItem("
退出系统"
JPaneljp1=newJPanel();
//用于装考试信息
JPaneljp2=newJPanel();
//用于装教职工信息
JPaneljp3=newJPanel();
//用于装系别信息
JPaneljp_score=newJPanel();
//用于打印成绩单
JPaneljp4=newJPanel();
//用于打印补考通知单
JPaneljp5=newJPanel();
//用于答应补考成绩单
JPaneljp6=newJPanel();
//用于打印重修通知单
JPaneljp7=newJPanel();
//用于打印重修成绩单
JPaneljp8=newJPanel();
//用于打印优秀学生名单
JTablejt1;
JScrollPanejs1;
Object[][]obj=newObject[16][5];
JTablejt2;
JScrollPanejs2;
Object[][]obj2=newObject[16][4];
JTablejt3;
JScrollPanejs3;
Object[][]obj3=newObject[16][4];
JScrollPanejs_score;
Buttonbt1=newButton("
保存"
Buttonbt2=newButton("
Buttonbt3=newButton("
Stringdriver="
com.mysql.jdbc.Driver"
;
//连接数据库
privateMyCanvasdrawArea=newMyCanvas();
//用于显示打印的画布
privateMyCanvas2drawArea2=newMyCanvas2();
privateMyCanvas3drawArea3=newMyCanvas3();
privateMyCanvas4drawArea4=newMyCanvas4();
privateMyCanvas5drawArea5=newMyCanvas5();
privateMyCanvas6drawArea6=newMyCanvas6();
intStyle;
JDialogjd1=newJDialog();
//对话框
JDialogjd2=newJDialog();
publicstaticvoidmain(String[]args)throwsException
{
(newTeachingManageSystem()).log();
//(newTeachingManageSystem()).frame();
}
voidinitial()throwsException
exit.add(exit_system);
exit_system.addActionListener(newItemListener());
s_rg.add(exam_rg);
//成绩登记菜单添加菜单项
s_rg.add(makeup_rg);
s_rg.add(renovate_rg);
exam_rg.addActionListener(newItemListener());
//菜单项添加监听器
makeup_rg.addActionListener(newItemListener());
renovate_rg.addActionListener(newItemListener());
print.add(final_score);
//信息查询菜单添加菜单项
print.add(makeup_notice);
print.add(makeup_score);
print.add(renovate_notice);
print.add(renovate_score);
print.add(excellent_student);
final_score.addActionListener(newItemListener());
//绑定监听器
makeup_notice.addActionListener(newItemListener());
makeup_score.addActionListener(newItemListener());
renovate_notice.addActionListener(newItemListener());
renovate_score.addActionListener(newItemListener());
excellent_student.addActionListener(newItemListener());
mb.add(s_rg);
//菜单栏添加菜单
mb.add(print);
mb.add(exit);
fm.setJMenuBar(mb);
//窗口添加菜单栏
bt1.addActionListener(newButtonListener());
//按钮绑定监听器
bt2.addActionListener(newButtonListener());
bt3.addActionListener(newButtonListener());
getTable();
//成绩登记表
js1.setBounds(20,20,450,200);
jp1.setLayout(null);
jp1.add(js1);
bt1.setBounds(410,240,50,20);
jp1.add(bt1);
jp1.setVisible(true);
fm1.add(jp1);
fm1.setSize(500,320);
getTable2();
//补考成绩表
js2.setBounds(20,20,450,200);
//jp2.setBorder(newTitledBorder("
补考考试成绩登记表"
));
jp2.setLayout(null);
jp2.add(js2);
bt2.setBounds(410,240,50,20);
jp2.add(bt2);
jp2.setVisible(true);
fm2.add(jp2);
fm2.setSize(500,320);
getTable3();
//重修成绩表
js3.setBounds(20,20,450,200);
//jp3.setBorder(newTitledBorder("
重修考试成绩登记表"
jp3.setLayout(null);
jp3.add(js3);
bt3.setBounds(410,240,50,20);
jp3.add(bt3);
jp3.se
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2015 数据库 课程设计 报告 java 源码