java学生成绩管理系统.docx
《java学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《java学生成绩管理系统.docx(32页珍藏版)》请在冰豆网上搜索。
java学生成绩管理系统
西安文理学院
计算机科学系
课程设计报告
设计名称:
软件课程设计
设计题目:
学生成绩管理系统
学生学号:
14102080217
专业班级:
软件工程二班
学生姓名:
陈健
学生成绩:
指导教师(职称):
杨全()
课题工作时间:
2011.4.11至2011.4.21
说明:
1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全面的评价。
4、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。
答辩小组成员应由2人及以上教师组成。
5、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设计的情况另行规定。
6、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按不及格处理。
学生姓名
陈健
学号
专业
班级
08级软件二班
设计题目
基于C/S模式的学生成绩记录查询系统
内容概要:
学生成绩记录查询系统(C/S)的设计与实现。
具体要求如下:
1)创建学生信息(学生的新增、删除、修改、查询);
2)课程成绩维护(成绩的新增、删除、修改、查询);
3)按学号或姓名查询课程成绩;
4)显示某课程60分以下、60~79、80~89、90分以上各分数段的学生信息;
5)报表输出(根据用户需要打印有关资料);
6)判断用户标识和口令,并进行权限管理;
7)修改当前用户的密码及用户管理。
备注:
每个学生信息包括:
学号、姓名、课程名、成绩。
文献资料:
[1]张海藩.软件工程导论.清华大学出版社,2010
[2]沈洪,施明利.VB程序设计案例汇编.清华大学出版社,2010
[3]孟德欣.VB程序设计.清华大学出版社,2011
[4]石志国.VB.NET数据库编程.清华大学出版社,2009
[5]张友生.软件体系结构原理、方法与实践.清华大学出版社,2010
设计要求:
1.采用客户/服务器方式作为系统开发结构;
2.后台数据库(服务器)采用MicrosoftSQLServer2000;
3.用户使用界面(客户端)采用高级程序设计语言(如VB6.0)进行开发;
4.程序必须上机调试运行通过,并获得满意的结果;
5.提交打印稿的课程设计报告。
工作期限:
设计工作自2011年4月11日至2011年4月21日止。
指导教师:
杨全系主任:
日期:
2011年4月11日
计算机科学系课程设计进度安排表
专业:
姓名:
学号:
日期
内容
备注
5月31日~
6月1日
分析题目,查阅相关资料
6月2日~
6月3日
拟定整体方案,编写程序
6月4日~
6月6日
程序编写
6月7日~
6月8日
调试程序
6月9日~
6月10日
整理报告
6月11日~
6月11日
答辩
月日~
月日
月日~
月日
月日~
月日
月日~
月日
月日~
月日
月日~月日
月日~
月日
月日~
月日
月日~
月日
指导教师签名:
2010年5月28日
指导教师评语
指导教师:
(签字)
日期:
2010年6月10日
答辩记录表
学生姓名:
学号:
班级:
软件二班
答辩地点:
答辩内容记录:
答辩成绩
合计
分值
各项分值
评分标准
实际得分
合计得分
备注
25
10
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
答辩小组成员(签字):
2010年6月11日
成绩评定表
学生姓名:
陈健学号:
班级:
类别
合计
分值
各项分值
评分标准
实际得分
合计得分
备注
平时表现
10
10
按时参加设计指导,无违反纪律情况。
完成情况
30
20
按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。
10
能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。
报告质量
35
10
报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。
5
课题背景介绍清楚,综述分析充分。
5
设计方案合理、可行,论证严谨,逻辑性强,具有说服力。
5
符号统一;图表完备、符合规范要求。
5
能对整个设计过程进行全面的总结,得出有价值的结论或结果。
5
参考文献数量在2篇以上,格式符合要求,在正文中正确引用。
答辩情况
25
10
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
总评成绩:
分
指导教师:
(签字)
日期:
2010年6月15日
摘要
摘要:
随着计算机技术的飞速发展和高等教育体制改革的不断深入,传统教育管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成教学管理工作。
提高教学管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。
基于Java与SQLserver数据库技术建立一个高校成绩管理系统该系统为管理员、学生和教师提供了查询、修改、增加记录、删除等功能,功能比较落齐全,基本上能满足学生和老师的要求。
关键词:
Java;需求分析;概要设计;学生成绩管理系统;
TheDesignAndRealizationOftheeducationaladministrationmanagementsystemBasedOnJAVA
Author:
ChenJian
Tutor:
YangQuan
Abstract:
Flytechnicallyalongwiththecalculatortodevelopsoonandthehighereducationsystemreformofcontinuouslythorough,traditionaleducationmanagementthemethod,meansandworkefficiencieshavealreadycan'tadaptthenewdevelopmentdemand,can'tcompletetheteachingmanagementworknicely.Themainpaththatraisestheeducationaladministrationmanagementlevelisathoughtthatrenewsthegovernor,strengthenningthescienceunderstandingtomanagetheactivity.AccordingtotheJAVAbuildupthatsystemofaneducationaladministrationofhighschoolmanagementsystem'spursuestudieswiththedatabasetechniquetolivingtoprovidedthesearch,modify,save,increasetherecordandselectelectivecoursesetc.withteacherfunction,thefunctionrelativelyfallswell-found,cansatisfytherequestbetweenstudentandteacherbasically.
Keyword:
JAVA;Theneedanalysis;Theessentiadesign;Database;Detaileddesign
前言
学生成绩管理工作是高校教育工作的一项重要内容。
教务管理工作是指学校管理人员按照一定教育方针,运用先进的管理手段,组织、协调、指挥并指导各用户活动,以便高效率、高质量地完成各项教学任务,完成国家所制定的教育目标。
学生成绩管理工作是学校教学工作的中枢,是保证高校教学机制正常运转的枢纽,它是一项目的性、计划性、适用性、创造性和科学性很强的工作。
学生成绩工作关系到高校教学秩序的稳定。
随着计算机技术的飞速发展和高等教育体制改革的不断深入,传统教育管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成教学管理工作。
提高教务管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。
同时,运用先进的信息技术,开发高校综合成绩管理信息系统,是深化教务体制改革的有利措施。
JAVA以GUI的编程方式、面向对象的程序设计、众多的GUI组件和强大的数据库应用开发支持,在竞争激励的开发工具市场中越来越羸得程序设计者的青睐。
JAVA是Windows系统下的可视化集成开发工具,提供了强大的可视化组件功能,使程序员能够快速、高效地开发出Windows系统下的应用程序,特别是在数据库和网络方面,JAVA与其它开发工具相比更是胜出一筹。
可视化主要是指开发图形用户界面,而只需调用GUI组件即可。
1需求分析
1.1功能需求分析
该学生成绩管理系统具备三方面的功能:
一方面是学生用户,学生通过输入学号和密码进下该系统后,可以进行一些基础查询(学生信息查询、班级信息查询、课程信息查询)、成绩管理(成绩查询、计算平均分)重新登陆系统;一方面老师进入该系统则比学生多一些权限:
成绩输入、成绩查询。
具体功能的详细描述如下
1.1.1选择[学生基本维护]菜单命令,即可进入[学生基本维护]功能窗体,在其中输入学生的相关信息,如果需要添加或修改学生信息,则单击相应的按纽,输入新信息后单击[添加]就可以了。
需要删除一条信息,则只要选择这条信息再点击[删除]。
在搜索条件中输入相关的条件,单击[查询]就可查找信息。
1.1.2选择[学生信息查询]菜单命令,即可进入[学生信息查询]功能窗体,在其中的下拉列表中选择你要看的信息,则在下面的表格中显示你要的信息。
1.1.3选择[成绩管理][添加成绩]菜单命令,即可进入[添加成绩]功能窗体,此功能权限只有管理员和教师。
1.1.4选择[成绩管理][输入成绩]菜单命令,即可进入[输入成绩]功能窗体,
此功能权限只有管理员和教师。
1.1.5选择[成绩管理][修改成绩]界面,此功能规管理员所有。
1.1.6选择[成绩管理][查询成绩]界面此界面对学生也是可见的,它的权限规所有用户所有。
1.1.7选择[登陆][重新登陆]则会返回登陆界面,为用户提供方便。
1.1.8选择[退出]将退出整个系统。
1.2性能需求分析
时间特性要求:
在软件方面,响应时间有点慢,因为是用Eclipse做的,它占用内存比较大,更新处理时间比较快而且迅速。
安全性:
设立口令号和密码验证方式,防止非法用户登录进行操作。
也就是用户只有管理员、学生和教师才能进入这个系统,用户凭口令号和密码进入此系统,系统会自动判断用户是那种类型,分别拥有不同的权限。
1.3数据库需求分析――数据流图
1.3.1数据结构
在系统中功能模块主要牵涉到的信息包括:
是学生信息(Student)、课程信息(Course)、成绩表(SC).
学生信息:
包含学号(STNO)、姓名(SNAME)、年龄(SAGE)、性别(SSEX)、系别(SDEPT)
课程信息:
包括课程编号(Cno)、课程名称(Cname)、先行课(Cpno)
成绩表;学号(STNO)、课程号(Cno)、成绩(Grade)
1.3.2数据流:
1)数据流名:
口令号
说明:
根据这个口令号定位到用户管理数据库,以便进行身份验证。
数据流来源:
登陆界面输入的口令号和密码。
数据流去向:
其中用户口令信息将存在于整个操作过程中,防止非法登陆。
数据流组成:
口令号(文本);密码(文本)
2)数据流名:
寻找信息
说明:
根据用户在学生信息维护的时候所填写的信息。
数据流来源:
学生信息维护界面学生输入包含学号、班级编号、名称等。
数据流去向:
学号将存在整个操作,其它的存入数据库。
数据流组成:
学号(文本);姓名(文本)等
3)数据流名:
寻找信息
说明:
根据用户在成绩管理的时候所填写的信息。
数据流来源:
成绩输入、修改、添加等界面用户输入包含课程编号、课程名称、成绩、教师。
数据流去向:
学号、班级编号、课程编号将存在整个操作,其它的存入数据库。
数据流组成:
课程编号(文本)、课程名称(文本)、教师(文本)等。
4)数据流名:
返回信息
说明:
根据用户在学生信息维护的时候所填写的信息存入了数据库之后。
数据流来源:
由学生信息维护界面学生输入的包含学号、姓名、性别等存入数据库的。
数据流去向:
学生信息维护界面。
数据流组成:
学号(文本)、姓名(文本)、班级名称(文本)、性别(文本)等。
5)数据流名:
返回信息
说明:
根据用户在成绩管理的时候所填写的信息存入数据库后。
数据流来源:
由成绩管理输入的包含班级名称、教师、课程名、成绩存入数据库的。
数据流去向:
成绩管理的各子界面。
数据流组成:
班级编号(文本);班级名称(文本);教师(文本)等;
2概要结构设计
2.1系统功能结构设计
2.1.1模块的功能设计
根据需求分析阶段得到的功能需求,管理员、学生和教师用户通过输入口令号和密码进下该系统后,可以进行一些学生基础信息查询(学生信息查询、班级信息查询、课程信息查询)、学生信息维护、成绩管理(成绩查询、计算平均分)重新登陆系统、退出。
模块功能大概可以分为如下4个方面:
这几个模块学生基础维护、成绩管理、登陆、退出。
其中基础维护还要包括学生信息维护、班级信息维护、课程信息维护。
成绩管理包括成绩查询、添加成绩、成绩输入等。
综上所述,得到客户端功能模块图如下2.1所示。
2.2概要结构设计
E-R图:
3详细设计及实现
3.1用户登陆模块
3.1.1代码实现
packagecom.kk;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassLoginextendsJFrame{
privatestaticfinallongserialVersionUID=4949257312955311099L;
TextFieldf1;
TextFieldf2;
JButtonb1;
JButtonb2;
JButtonb3;
Stringpower;//表示权限
Login(){
Containercp=getContentPane();
cp.setLayout(newGridLayout(4,1));
Labell1=newLabel("用户名");
Labell2=newLabel("密码");
Panelp1=newPanel();
Panelp2=newPanel();
Panelp3=newPanel();
f1=newTextField(10);
f2=newTextField(10);
f2.setEchoChar('*');
b1=newJButton("登录");
b2=newJButton("重置");
b3=newJButton("退出");
p1.add(l1);
p1.add(f1);
p2.add(l2);
p2.add(f2);
p3.add(b1);
p3.add(b2);
p3.add(b3);
cp.add(p1);
cp.add(p2);
cp.add(p3);
b1.addActionListener(newEnter());
b2.addActionListener(newReWrite());
b3.addActionListener(newClose());
}
publicstaticvoidmain(String[]args){
Loginlog=newLogin();
log.setTitle("系统登录");
log.setBounds(200,200,300,300);
log.setBackground(Color.blue);
log.setVisible(true);
}
classEnterimplementsActionListener{
publicvoidactionPerformed(ActionEvente)
{
if((f1.getText()).equals("1410")&&(f2.getText()).equals("chenjian"))
{
JOptionPane.showMessageDialog(null,"登录成功!
用户权限是管理员");
power="管理员";
XueShengframe1=newXueSheng();
frame1.setVisible(true);
}
elseif((f1.getText()).equals("abc")&&(f2.getText()).equals("123456"))
{
JOptionPane.showMessageDialog(null,"登录成功!
登录成功!
用户权限是游客");
power="游客";
Findf2=newFind();
f2.setVisible(true);
}
elseJOptionPane.showMessageDialog(null,"登录失败,请重新登录!
");
}
}
classReWriteimplementsActionListener{
publicvoidactionPerformed(ActionEvente)
{
f1.setText("");
f2.setText("");
f1.requestFocus();
}
}
classCloseimplementsActionListener{
publicvoidactionPerformed(ActionEvente)
{
JButtonbt=(JButton)e.getSource();
if(bt==b3)
System.exit(0);
}
}
}
3.2管理员界面
3.2.1代码实现:
packagecom.kk;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.JFrame;
publicclassXueShengextendsJFrameimplementsActionListener{
JButtoncx,zj,tc,sc;
XueSheng(){
setBounds(100,100,600,600);
JPanelpanel2=newJPanel();
setContentPane(panel2);
panel2.setLayout(null);
JLabellabel1=newJLabel("欢迎进入学生信息管理界面");
label1.setFont(newFont("BOLD",Font.BOLD,28));
panel2.add(label1);
label1.setBounds(50,20,400,100);
cx=newJButton("查询");
panel2.add(cx);
cx.setBounds(50,200,80,50);
zj=newJButton("增加");
panel2.add(zj);
zj.setBounds(150,200,80,50);
sc=newJButton("删除");
panel2.add(sc);
sc.setBounds(250,200,80,50);
tc=newJButton("退出");
panel2.add(tc);
tc.setBounds(350,200,80,50);
cx.addActionListener(this);
zj.addActionListener(this);
sc.addActionListener(this);
tc.addActionListener(this);
setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==cx){
Findf=newFind();
}
if(e.getSource()==zj){
AddFIf=newAddFI();
}
if(e.getSource()==sc){
Deletd=newDelet();
}
if(e.getSource()==tc){
shutDown();
}
}
privatevoidshutDown(){
this.dispose();
}
}
3.3用户界面
3.3.1代码实现:
packagecom.kk;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importja