2015广工数据库课程设计报告(附java源码).doc

上传人:聆听****声音 文档编号:352319 上传时间:2023-04-29 格式:DOC 页数:44 大小:422KB
下载 相关 举报
2015广工数据库课程设计报告(附java源码).doc_第1页
第1页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第2页
第2页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第3页
第3页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第4页
第4页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第5页
第5页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第6页
第6页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第7页
第7页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第8页
第8页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第9页
第9页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第10页
第10页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第11页
第11页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第12页
第12页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第13页
第13页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第14页
第14页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第15页
第15页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第16页
第16页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第17页
第17页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第18页
第18页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第19页
第19页 / 共44页
2015广工数据库课程设计报告(附java源码).doc_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

2015广工数据库课程设计报告(附java源码).doc

《2015广工数据库课程设计报告(附java源码).doc》由会员分享,可在线阅读,更多相关《2015广工数据库课程设计报告(附java源码).doc(44页珍藏版)》请在冰点文库上搜索。

2015广工数据库课程设计报告(附java源码).doc

课程设计(论文)

课程名称数据库课程设计

题目名称__成绩管理系统_____

学生学院计算机学院

专业班级

学号__________

学生姓名_______________

指导教师顾国生

2016年1月

目录

引言………………………………………………………………………………..5

1相关技术介绍……………………………………………………………………5

2需求分析…………………………………………………………………………6

2.1数据字典…………………………………………………………………...6

2.2数据流图…………………………………………………………………..6

3概念结构设计……………………………………………………………………7

4逻辑结构设计……………………………………………………………………8

4.1数据库设计………………………………………………………………..8

4.2关系模式…………………………………………………………………..8

4.3系统模块图及各功能模块说明……………………………………………………....9

5数据库的物理结构设计…………………………………………………………10

6用户界面设计……………………………………………………………………12

7系统测试方案与测试报告………………………………………………………14

7.1测试方案…………………………………………………………………..14

7.2测试报告…………………………………………………………………..14

8安装和使用说明…………………………………………………………………19

9心得体会…………………………………………………………………………19

10参考文献………………………………………………………………………..20

引言

信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。

虽然计算机与人类的关系愈来愈密切,但是还有人由于计算机操作不方便而继续用手工劳动。

计算机的最大好处在于利用它能够进行信息管理。

使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

而成绩管理系统恰恰符合了教学需求,当教师需要录入学生信息时,成绩管理系统就能大大方便教师的操作,提高效率。

成绩管理系统主要提供了学生成绩的录入,包括学生的平时成绩,总评成绩,补考成绩,挂科成绩,各类的成绩的打印及优秀学生的评选。

一、相关技术介绍

这个课程设计是用java+MySql编写的,java是为数据库结构和应用程序开发而设计的功能强大的面向对象的环境。

MySql其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

二、需求分析

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),

FOREIGNKEY(s_no)REFERENCESstudent(s_no),

c_noCHAR(8),

FOREIGNKEY(c_no)REFERENCEScourse(c_no),

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模板 > 简洁抽象

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2