学生成绩管理系统数据库课程设计呕心沥血整理版.docx
《学生成绩管理系统数据库课程设计呕心沥血整理版.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据库课程设计呕心沥血整理版.docx(40页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统数据库课程设计呕心沥血整理版
德州学院信息管理学院
课程设计报告
实习名称数据库课程设计
设计题目基于Java+MySQL的学生成绩管理系统的设计与实现
实习时间2013.6。
17—2013.6。
30
专业班级2011级计算机网络技术专
指导老师王丽丽
教学单位(盖章)
小组分工情况:
学号
姓名
分工
201111007034
徐晴
代码编写
201111007017
梁庆美
代码编写
201111007014
赵玉翠
文档编写
201111007030
郭文晓
文档编写
201111007018
张翠萍
PPT设计
201111007005
铁文娇
PPT设计
二〇一三年六月三十日
摘要……………………………………………………………………………………………。
1
10参考文献…………………………………………………………………………………..29
德州学院学生成绩管理系统的设计与实现
摘要:
学生成绩管理系统主要用于各类大学院校在教学这一部分的管理,是针对于教务处对课程、对学生、对学生成绩进行合理地安排以及统筹计划,以便让教务处以最短的工作时间内把学生的成绩核算出来,提高教务处的办事效率.同时,能够随时对学生基本信息、学生成绩进行各种查询,以便及时很好地对需要了解的信息得到相应的反馈,能有效的帮助教务处的工作,可使学院教职工减轻工作压力,比较系统地对、教务教学上的各项服务和信息进行管理。
本系统是针对学生成绩管理进行设计的,主要用户为学校教务管理老师,但学生也可参与对自己信息的核对确认.主要采用的开发工具是JAVA和MYSQL。
在开发过程中利用面向对象的程序思想和严格按照软件工程的开发过程来进行分析和设计。
本系统所要完成以下几个主要功能,其中有学生成绩管理、学生基本信息管理等等,实现对学生基本信息和成绩进行录入、修改、删除、查询等操作。
系统基本满足了学生成绩管理的功能需要,确实为学校对学生的管理提供了便利.本系统界面友好、操作简单,对学生基本情况和成绩加快了查询速度、加强了管理,使各项管理更加规范化。
关键词:
模块化;数据库;数据库管理系统
1引言
1。
1问题的提出
在我国,各大中小学校的各类信息管理系统并非一个新的课题.大多数学校信息管理系统不完善,甚至有的学校根本就没有任何信息管理系统,所有的管理工作几乎都是靠手工完成。
特别是在西部贫困地区,学校的信息管理都依然靠手工操作,这十分落后,效率极低,成本很大,而且极易出错。
随着计算机技术不断地日新月异地发展,信息化是社会进程的必然趋势,学校的信息管理只有快,精,准,才能发挥其作用。
从人工操作改为计算机的自动化系统,人工操作必将被计算机代替。
1。
2国内外研究的现状
信息技术的日益发展深入到社会的各个角落,学生宿舍管理也不例外,尤其作为高等院校的宿舍管理工作,是高校各项工作的一个重要组成部分,其管理水平的高低将直接影响到人才培养的质量.随着高等教育的发展、高校规模的扩大、学生人数增加、学生宿舍各种信息的汇总、统计和分析等管理工作面临着诸多困难,管理工作也越来越繁重和琐碎。
因此宿舍管理的信息化、网络化越来越受到人们的重视,它既可以大大提高学生宿舍管理的绩效,也可以为学生解决后顾之忧.同时随着计算机技术的普及和发展,管理的自动化已成为必然趋势。
因此,为了提高高校的整体管理水平,计算机在高等院校宿舍管理中的应用日益普及,这使得学生宿舍管理自动化的实现成为高校管理环节中的重要一环。
1。
3目的与分析
本课题主要的目的是学生成绩管理系统,主要任务为建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平.帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化.高校学生的成绩管理工作量大、繁杂,人工处理非常困难.学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。
学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境.
2程序的主要功能
2.1添加功能
添加一个学生的基本信息,包括student_ID,student_Name,born_Date,math_Grade,English_Grade。
2。
2删除功能
能够对一个学生的信息进行删除按student_ID进行删除.
2。
3显示功能
显示所有学生的主要信息包括student_ID,student_Name,born_Date,math_Grade,English_Grade。
2.4查找功能
根据你键入的student_ID,显示其详细信息!
2。
5修改功能
对学生的信息和成绩进行修改。
3程序运行平台
编程工具:
eclipse
编程语言:
JAVA
数据库:
MYSQL
具体操作如下:
具体操作如下:
新建SutGradeManage项目,然后再编写相应的java文件,再编译,链接,执行等,用户就可登录进该系统进行相应的操作.
4总体设计
图4。
1系统总体框架图
5数据库设计
数据库设计是要在一个给定的应用环境(DBMS)中,通过合理的逻辑设计和有效的物理设计,构造较优的数据库模式、子模式,建立数据库和设计应用程序,满足用户的各种信息需求.
5.1数据库概念设计
在数据库设计中,先要对系统分析所得的数据字典中的数据存储进行分析,然后得出系统的关系模式,可以采用实体—-联系图(简称E——R图)的方法进行数据结构的描述。
E-—R图由实体、属性、联系三部分组成。
图〈5。
1。
1〉登录信息E—R图
图〈5.1.2〉学生信息E—R图
5。
2表结构
表1dbo。
users表
字段
类型
约束
默认值
说明
userName
VARCHAR2(20CHAR)
PK
用户名
userPwd
VARCHAR2(20CHAR)
notnull
密码
表2dbo。
student表
字段
类型
约束
默认值
说明
student_ID
CHAR(10BYTE)
PK
学号
student_Name
VARCHAR2(20CHAR)
notnull
姓名
born_Date
CHAR(11BYTE)
出生日期
math_Grade
CHAR(4CHAR)
数学成绩
English_Grade
CHAR(4CHAR)
英语成绩
5。
3视图
表3dbo.vi视图
字段
类型
是否可空
insertable
updatable
deletable
说明
math_Grade
CHAR(4CHAR)
Yes
YES
YES
YES
数学成绩
English_Grade
CHAR(4CHAR)
Yes
YES
YES
YES
英语成绩
student_ID
CHAR(10)
No
YES
YES
YES
学号
student_Name
VARCHAR2(80)
No
YES
YES
YES
姓名
born_Date
CHAR(11BYTE)
Yes
Yes
Yes
Yes
出生日期
6模块分析
6.1添加模块
学生信息添加部分代码:
classcharuextendsJFrameimplementsActionListener{
JFrameframe=newJFrame(”添加数据");
JPanelimagePanel;
ImageIconbg;
Buttonsure;
TextFieldinput1,input2,input3,input4,input5;
TextAreashow;
Boxbox1,box2,box3,box4;
intk,s1,j;
Connectioncon;
Statementsql;
ResultSetrs;
charu(){
Toolkitkit=Toolkit。
getDefaultToolkit();
Imageimg=kit。
getImage(”tubiao.jpg”);
frame.setIconImage(img);
input1=newTextField(10);
input2=newTextField(10);
input3=newTextField(10);
input4=newTextField(10);
input5=newTextField(10);
box2=Box。
createVerticalBox();
box2.add(input1);
box2。
add(Box.createVerticalStrut(8));
box2。
add(input2);
box2.add(Box。
createVerticalStrut(8));
box2。
add(input3);
box2。
add(Box。
createVerticalStrut(8));
box2。
add(input4);
box2.add(Box。
createVerticalStrut(8));
box2。
add(input5);
box1=Box。
createVerticalBox();
box1.add(newLabel(”学号:
”));
box1。
add(Box.createVerticalStrut(8));
box1.add(newLabel(”姓名:
”));
box1。
add(Box.createVerticalStrut(8));
box1。
add(newLabel("生日:
”));
box1.add(Box。
createVerticalStrut(8));
box1.add(newLabel(”数学:
”));
box1。
add(Box.createVerticalStrut(8));
box1。
add(newLabel(”英语:
”));
box3=Box。
createHorizontalBox();
box3.add(box1);
box3。
add(Box。
createHorizontalStrut
(1));
box3。
add(box2);
show=newTextArea(6,43);
sure=newButton(”确定");
box4=Box。
createHorizontalBox();
Labellabel1=newLabel("请输入数据”);
label1。
setFont(newFont("宋体",Font。
BOLD,20));
label1.setForeground(Color。
blue);
box4.add(label1);
box4.add(Box。
createHorizontalStrut
(1));
box4。
add(sure);
sure。
addActionListener(this);
bg=newImageIcon("cru。
jpg”);
JLabellabel=newJLabel(bg);
label。
setBounds(0,0,bg。
getIconWidth(),bg。
getIconHeight());
imagePanel=(JPanel)frame.getContentPane();
imagePanel.setOpaque(false);
imagePanel.setLayout(newFlowLayout());
show。
setEditable(false);
imagePanel.add(box4,BorderLayout。
NORTH);
imagePanel。
add(box3,BorderLayout.CENTER);
imagePanel。
add(show,BorderLayout.SOUTH);
frame。
getLayeredPane()。
setLayout(null);
frame。
getLayeredPane()。
add(label,newInteger(Integer。
MIN_VALUE));
//frame。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame。
setSize(bg。
getIconWidth(),bg。
getIconHeight());
frame.setBounds(700,200,540,440);
frame。
setResizable(false);
frame.setVisible(true);
validate();
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
dispose();
}
});
}
publicvoidactionPerformed(ActionEventee){
Strings1,s2,s3,s4,s5,insert1,recode,name,date,number;
intm1,m2,math,english;
s1=input1。
getText();
s2=input2。
getText();
s3=input3。
getText();
s4=input4。
getText();
s5=input5.getText();
number=s1;
name=s2;
date=s3;
m1=Integer。
parseInt(s4);
math=m1;
m2=Integer。
parseInt(s5);
english=m2;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundExceptioneee){
System.out。
println(”"+eee);
}
try{
con=DriverManager。
getConnection("jdbc:
odbc:
sun",”gxy”,”123");
sql=con.createStatement();
recode=”(”+”’"+number+"’”+",”+”’”+name+"’”+","
+”’”+date+”’"+",”+math+”,”+english+”)";
insert1=”INSERTINTOchengjibiaoVALUES”+recode;
sql。
executeUpdate(insert1);
show.setText(”你插入了:
");
show。
append(”学号:
”+number+”姓名:
”+name+”出生:
”+date
+”数学”+math+"英语"+english);
show。
append(”\n");
}catch(SQLExceptione){
System。
out。
println(e);
JOptionPane.showMessageDialog(this,"你输入的学号已存在,请核对重新输入!
");
}
}
}
6。
2显示模块
显示模块将输出所有学生的主要信息;
主要代码为:
classchuangkouextendsJFrameimplementsActionListener{
JFrameframe=newJFrame(”选择窗口");
JPanelimagePanel;
ImageIconbg;
Buttonbutton1,button2,button3,button4,button5,button6;
Boxbox;
Labellabel;
Panelp1;
chuangkou(){
Toolkitkit=Toolkit。
getDefaultToolkit();
Imageimg=kit。
getImage(”tubiao.jpg”);
frame。
setIconImage(img);
p1=newPanel();
label=newLabel("欢迎使用成绩管理系统",Label.CENTER);
label.setFont(newFont("隶书",Font。
BOLD,30));
label.setBackground(Color。
green);
p1.add(label);
button1=newButton("添加”);
button2=newButton("删除”);
button3=newButton(”修改”);
button4=newButton(”查询");
button5=newButton("返回”);
button6=newButton("退出”);
box=Box。
createHorizontalBox();
box。
add(button1);
box。
add(Box.createHorizontalStrut(8));
box。
add(button2);
box。
add(Box.createHorizontalStrut(8));
box.add(button3);
box。
add(Box。
createHorizontalStrut(8));
box。
add(button4);
box.add(Box。
createHorizontalStrut(8));
box。
add(button5);
box。
add(Box。
createHorizontalStrut(8));
box。
add(button6);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
button5。
addActionListener(this);
button6。
addActionListener(this);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
dispose();
}
});
bg=newImageIcon(”ckou.jpg”);
JLabellabel=newJLabel(bg);
label.setBounds(0,0,bg。
getIconWidth(),bg.getIconHeight());
imagePanel=(JPanel)frame.getContentPane();
imagePanel.setOpaque(false);
imagePanel.setLayout(newFlowLayout());
imagePanel。
add(p1,BorderLayout.NORTH);
imagePanel.add(box,BorderLayout。
CENTER);
frame.getLayeredPane()。
setLayout(null);
frame。
getLayeredPane()。
add(label,newInteger(Integer。
MIN_VALUE));
frame。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭后状态
frame。
setSize(bg。
getIconWidth(),bg.getIconHeight());
frame。
setBounds(200,200,500,300);
frame。
setResizable(false);//设置窗口大小不可改变
frame。
setVisible(true);
validate();
}
publicvoidactionPerformed(ActionEvente){
if(e。
getSource()==button6){
System.exit(0);
}
if(e.getSource()==button1){
newcharu();
}
if(e。
getSource()==button2){
newshanchu();
}
if(e。
getSource()==button3){
newxiugai();
}
if(e。
getSource()==button4){
newchaxun();
}
if(e。
getSource()==button5){
newdenglu();
frame。
dispose();
}else{
}
}
}
6。
3修改模块
首先由用户输入要修改的学生的成绩
主要代码:
classxiugaiextendsJFrameimplementsActionListener{
JFrameframe=newJFrame("修改成绩");
JPanelimagePanel;
ImageIconbg;
Buttonxiug;
TextFieldinput1,input2,input3;
TextAreashow;
Boxbox1,box2,box3;
Panelp1,p2;
intk,s1,j;
Connectioncon;
State