高考信息管理系统java课程设计.docx
《高考信息管理系统java课程设计.docx》由会员分享,可在线阅读,更多相关《高考信息管理系统java课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
高考信息管理系统java课程设计
JAVA程序设计课程设计报告
课题:
姓名:
学号:
同组姓名:
专业班级:
指导教师:
设计时间:
2011-2-22
评阅意见:
评定成绩:
指导老师签名:
年月日
一、课程设计目的和意义
高考成绩的统计和查询工作是非常重要的,高考成绩面向的是全国范围内的考生,它涉及的面比较广、数据量大,如果在设计上出现什么问题,都会在社会上产生巨大的影响。
在这里我们只是简单地做一个高考成绩查询和统计的小系统,并没有考虑安全性等方面的的问题,主要目的是通过这个课程设计的学习,对用JAVA开发数据库系统有更为深刻的认识。
还有本次我们开发的是高考管理系统是以“3+2”为模型的。
高考成绩管理模块主要实现以下功能:
(1)高考成绩录入。
高考成绩录入包括成绩的添加、修改、编辑和自动统计等功能。
目前高考主要包括两个方面:
文科和理科。
文科成绩录入和理科成绩录入分别是两个不同的模块。
(2)高考成绩查询。
成绩查询也分为理科查询和文科查询两个部分,成绩查询部分最好是应用准考证查询,这是因为准考证号是全国统一并且唯一的,这样就避免了同名同姓出现查询重复的。
如图1所示,在这个系统中,包含4个模块:
理科成绩录入、理科成绩查询、文科成绩录入和文科成绩查询。
其中,理科成绩录入和文科成绩录入、理科成绩查询和文科成绩查询两个模块的设计思想基本一致。
(3)建立理(文)科成绩录入和查询界面。
建立一个理科数据库表,用来记录准考证号(这个作为数据库表的主键,惟一标识)、学生考号和姓名。
另外再建立一个理科数据库表,用来记录学生姓名、考号之外的其他信息,并记录各科的成绩。
(4)本系统查询与成绩设计。
系统设计要求在考生查询的同时自动进行统计工作,这是一种人性化的需求,统计和查询只需要一个事件代码和一个执行动作即可完成。
高考系统模块设计如下图1所示:
图1高考系统模块设计
二、高考信息管理系统数据库结构设计
文科数据表的设计与理科表的设计方式基本上一致,并且本人负责的是理科查询部分,在这里就不详细介绍文科的了,下面介绍理科表详细设计。
1、理科主数据表
建立理科主数据表,如表1所示。
表1理科主数据表的结构
字段名
字段类型
字段大小
说明
CardID
Bigint
8
准考证号
studentName
Varchar
50
学生姓名
schoolBefore
Varchar
50
考前学校
数据库结构设计如图2所示,该结构说明在数据表的结构创建时,设置了准考证号为关键字段,即在cardID的左边有一个钥匙的符号,是关键字的符号。
另个添加了学生姓名,还设计了该考生的考前学校,这样,当查询到该考号时就可以知道该生所在学校。
2、理科从数据表
从表的字段主要包括4个字段,即科目序号、考试成绩、准考证号和考试科目,如下表2所示。
表2理科从数据表
字段名
字段类型
字段大小
说明
subjectID
Bigint
8
科目序号
cardID
Bigint
8
准考证号
Subject
Varchar
50
考试科目
Achievement
Int
4
考试成绩
subjectNameID
Bigint
8
与考试科目对应(数学1;英语2;语文3;理综4)
理科从数据表设计如图3所示,该结构说明在数据表的结构创建时,设置了准考证号和科目序号一起作为关键字段,即在cardID和subjectID的左边有一个钥匙的符号,是关键字的符号。
另个添加了考试科目、考试成绩和与考试科目对应的字段。
图2理科主数据表
图3理科从数据表
三、主控界面的设计
主控界面主要用来调用其他界面,这个界面的主要作用是显示理科成绩录入、理科成绩查询、文科成绩录入和文科成绩查询4个界面,可以根据需要对其进行选择。
它的基本结构如图4所示。
图4主控界面图
1、主控界面放入控件与窗体布局:
(1)在控件中放入一个jPanel,将布局方式改为xyLayout.
(2)在控件中放入4个jLabel:
jLabel1、jLabel2、jLabel3、jLabel4,主要是用来设计整个界面的布局。
(3)在控件中放入4个jRadioButton:
rdbInputScnAch(理科成绩录入)、rdbQueryScnAch(理科成绩查询)、rdbInputArtAch(文科成绩录入)、rdbQueryArtAch(文科成绩查询)。
(4)添加鼠标单击事件rdbInputScnAch_mouseClickd(MouseEvente)、rdbQueryScnAch_mouseClickd(MouseEvente)、rdbInputArtAch_mouseClickd(MouseEvente)、rdbQuerytArtAch_mouseClickd(MouseEvente).
2、主控界面设计具体代码如下所示:
packageinfomanagement;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importcom.borland.jbcl.layout.*;
importjavax.swing.border.*;
publicclassFrame1extendsJFrame{
privateJPanelcontentPane;
privateBorderLayoutborderLayout1=newBorderLayout();
privateJPaneljPanel1=newJPanel();
//设置jPanel1的布局方式为xylayout,任意布局
privateXYLayoutxYLayout1=newXYLayout();
privateJLabeljLabel1=newJLabel();
privateTitledBordertitledBorder1;
privateJLabeljLabel2=newJLabel();
privateJLabeljLabel3=newJLabel();
privateJLabeljLabel4=newJLabel();
//理科成绩录入
privateJRadioButtonrdbInputScnAch=newJRadioButton();
//理科成绩查询
privateJRadioButtonrdbQqueryScnAch=newJRadioButton();
//文科成绩录入
privateJRadioButtonrdbInputArtAch=newJRadioButton();
//文科成绩查询
privateJRadioButtonrdbQueryArtAch=newJRadioButton();
//建立框架
publicFrame1(){
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try{
jbInit();
}
catch(Exceptione){
e.printStackTrace();
}
}
//组件初始化
privatevoidjbInit()throwsException{
contentPane=(JPanel)this.getContentPane();
titledBorder1=newTitledBorder("");
contentPane.setLayout(borderLayout1);
this.setSize(newDimension(399,288));
this.setTitle("FrameTitle");
jPanel1.setLayout(xYLayout1);
jLabel1.setFont(newjava.awt.Font("Dialog",0,23));
jLabel1.setForeground(Color.green);
jLabel1.setBorder(titledBorder1);
//输入项目标题
jLabel1.setText("通用高考成绩管理系统");
//设置jLabel2的边界为etch
jLabel2.setBorder(BorderFactory.createEtchedBorder());
jLabel3.setText("请选择");
jLabel4.setBorder(BorderFactory.createEtchedBorder());
jLabel4.setToolTipText("");
//将文字颜色设为红色
rdbInputScnAch.setForeground(Color.red);
//rdbInputScnAch的标题理科成绩录入
rdbInputScnAch.setText("理科成绩录入");
//加入jRadioButton事件,rdbInputScnAch(理科成绩录入)
rdbInputScnAch.addMouseListener(newjava.awt.event.MouseAdapter(){
//添加鼠标单击事件
publicvoidmouseClicked(MouseEvente){
rdbInputScnAch_mouseClicked(e);
}
});
//将文字颜色设为红色
rdbQqueryScnAch.setForeground(Color.red);
//rdbQqueryScnAch的标题理科成绩查询
rdbQqueryScnAch.setText("理科成绩查询");
//加入jRadioButton事件rdbQqueryScnAch("理科成绩查询")
rdbQqueryScnAch.addMouseListener(newjava.awt.event.MouseAdapter(){
//添加鼠标单击事件
publicvoidmouseClicked(MouseEvente){
rdbQqueryScnAch_mouseClicked(e);
}
});
//将文字颜色设为红色
rdbInputArtAch.setForeground(Color.red);
//rdbInputArtAch的标题文科成绩录入
rdbInputArtAch.setText("文科成绩录入");
//加入jRadioButton事件rdbInputArtAch("文科成绩录入")
rdbInputArtAch.addMouseListener(newjava.awt.event.MouseAdapter(){
//添加鼠标单击事件
publicvoidmouseClicked(MouseEvente){
rdbInputArtAch_mouseClicked(e);
}
});
//将文字颜色设为红色
rdbQueryArtAch.setForeground(Color.red);
//rdbQueryArtAch的标题文科成绩查询
rdbQueryArtAch.setText("文科成绩查询");
//加入jRadioButt