java学生成绩管理系统分析报告.docx
- 文档编号:11155873
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:29
- 大小:137.78KB
java学生成绩管理系统分析报告.docx
《java学生成绩管理系统分析报告.docx》由会员分享,可在线阅读,更多相关《java学生成绩管理系统分析报告.docx(29页珍藏版)》请在冰豆网上搜索。
java学生成绩管理系统分析报告
java学生成绩管理系统报告
————————————————————————————————作者:
————————————————————————————————日期:
重庆邮电大学
计算机科学与技术学院
设计名称:
Java程序设计报告
设计题目:
学生成绩管理系统
学生学号:
专业班级:
学生姓名:
一、需求分析
编写目的:
学生成绩管理系统模块是为了实现学校人力资源的优化和学生成绩管理的科学管理而设计的,通过使用本系统,可以更加有效的管理学生信息,其大包括学生的基本信息,成绩信息并且具有信息的增加,查询,修改等功能。
需求分析说明书是为软件的开发者能更好的理解开发的需求,避免由于对问题认识的不清或错误理解而增加更多的开发成本。
需求分析是软件系统生存期中定义阶段的最后一个步骤;是作为整个软件开发范围的指南,是软件开发人员开发出正确的符合用户要求的软件的重点;是为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。
该文档将最终交给软件具体开发人员进行具体的开发,其针对的对象是软件开发人员。
解决了实现该系统需求的程序模块设计问题。
包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
详细设计中,程序设计员可参考此概要设计报告,在概要设计对学生信息管理系统所做的模块结构设计的基础上,对系统进行详细设计。
在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。
此需求规格说明书是对用户需求分析的结果,明确系统应具有的功能及性能与界面方面的需求,使系统分析员及软件开发组成员能清楚地了解用户的需求,并在此基础上完成后续工作和开发工作。
学生信息管理系统将由两部分组成:
置于学生信息的前台程序,以及置于管理员的数据库服务器。
1.1功能需求分析
该学生成绩管理系统具备三方面的功能:
一方面是学生用户,学生通过输入学号和密码进下该系统后,可以进行一些基础查询(学生信息查询、班级信息查询、课程信息查询)、成绩管理(成绩查询、计算平均分)重新登陆系统;一方面老师进入该系统则比学生多一些权限:
成绩输入、成绩查询。
具体功能:
1、选择[学生基本维护]菜单命令,即可进入[学生基本维护]功能窗体,在其中输入学生的相关信息,如果需要添加或修改学生信息,则单击相应的按纽,输入新信息后单击[添加]就可以了。
需要删除一条信息,则只要选择这条信息再点击[删除]。
在搜索条件中输入相关的条件,单击[查询]就可查找信息。
2、选择[学生信息查询]菜单命令,即可进入[学生信息查询]功能窗体,在其中的下拉列表中选择你要看的信息,则在下面的表格中显示你要的信息。
3、选择[成绩管理][添加成绩]菜单命令,即可进入[添加成绩]功能窗体,此功能权限只有管理员和教师。
4、选择[成绩管理][输入成绩]菜单命令,即可进入[输入成绩]功能窗体,
此功能权限只有管理员和教师。
5、选择[成绩管理][修改成绩]界面,此功能规管理员所有。
6、选择[成绩管理][查询成绩]界面此界面对学生也是可见的,它的权限规所有用户所有。
7、选择[登陆][重新登陆]则会返回登陆界面,为用户提供方便。
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.1系统功能结构设计
2.1.1模块的功能设计
根据需求分析阶段得到的功能需求,管理员、学生和教师用户通过输入口令号和密码进下该系统后,可以进行一些学生基础信息查询(学生信息查询、班级信息查询、课程信息查询)、学生信息维护、成绩管理(成绩查询、计算平均分)重新登陆系统、退出。
模块功能大概可以分为如下4个方面:
这几个模块学生基础维护、成绩管理、登陆、退出。
其中基础维护还要包括学生信息维护、班级信息维护、课程信息维护。
成绩管理包括成绩查询、添加成绩、成绩输入等。
综上所述,得到客户端功能模块图如下2.2所示。
2.2概要结构设计
E-R图:
三、详细设计及实现
3.1用户登陆模块
3.1.1代码实现
packagestu_manager;
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("tang")&&(f2.getText()).equals("051141"))
{
JOptionPane.showMessageDialog(null,"登录成功!
用户权限是管理员");
power="管理员";
XueShengframe1=newXueSheng();
frame1.setResizable(true);
}
elseif((f1.getText()).equals("tang")&&(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代码实现:
packagestu_manager;
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代码实现:
packagestu_manager;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjavax.swing.*;
publicclassFindextendsJFrameimplementsActionListener{
JTextFieldt1;
StringSTNO,r1,r2,r3,r4,r5,r6;
JButtonb1,b2;
XueShengxue;
Find(){
super("查询学生信息");
Containerc1=this.getContentPane();
setBackground(newColor(215,215,215));
c1.setLayout(newGridLayout(3,2));
JPanelpp=newJPanel();
JLabellabel0=newJLabel("请输入你的学号");
label0.setForeground(Color.blue);
pp.add(label0);
JPanelp1=newJPanel();
t1=newJTextField(10);
p1.add(newLabel(""));
p1.add(t1);
c1.add(p1);
JPanelp2=newJPanel();
b1=newJButton("查询");
b2=newJButton("退出");
b1.addActionListener(this);
b2.addActionListener(this);
p2.add(b1);
p2.add(b2);
c1.add(p2);
this.setVisible(true);
this.setBounds(200,200,400,300);
}
publicvoidactionPerformed(ActionEvente){
try{
if(e.getSource()==b1){
try{
STNO=t1.getText();
Class.forName(
"com.microsoft.sqlserver.jdbc.SQLServerDriver")
.newInstance();
Stringurl="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=ss";
StringuserName="sa";//默认用户名
StringuserPwd="051141";
Connectioncn=DriverManager.getConnection(url,userName,
userPwd);
Stringstr="selectStudent.SNAME,Student.SAGE,Student.SSEX,Student.STNO,Course.Cname,SC.GradefromStudent,Course,SCwhereStudent.STNO=SC.STNOandSC.Cno=Course.CnoandStudent.STNO='"+STNO+"'";
PreparedStatementps=cn.prepareStatement(str);
ResultSetrs=ps.executeQuery();
System.out.println("STNO="+STNO);
if(rs.next()){
r1=rs.getString("STNO");
r2=rs.getString("SNAME");
r3=rs.getString("SAGE");
r4=rs.getString("SSEX");
r5=rs.getString("Cname");
r6=rs.getString("Grade");
}else{
JOptionPane.showMessageDialog(null,"你输入的学号有误");
}
cn.close();
}catch(SQLExceptiong){
System.out.println("Error"+g.getErrorCode());
System.out.println("Merrage="+g.getMessage());
}catch(Exceptionf){
f.printStackTrace();
}
Filef=newFile();
this.dispose();
}
if(e.getSource()==b2){
t1.setText("");
t1.repaint();
}
}catch(NumberFormatExceptionex){
JOptionPane.showMessageDialog(null,"数据转换错误");
}
}
classFileextendsJFrameimplementsActionListener{
JTextFieldtt1,t2,t3,t4,t5,t6;
JButtonb3;
File(){
super("查询学生信息");
Containerc2=this.getContentPane();
setBackground(newColor(215,215,215));
c2.setLayout(newGridLayout(3,1));
tt1=newJTextField(r1);
t2=newJTextField(r2);
t3=newJTextField(r3);
t4=newJTextField(r4);
t5=newJTextField(r5);
t6=newJTextField(r6);
tt1.setEditable(false);
t2.setEditable(false);
t3.setEditable(false);
t4.setEditable(false);
t5.setEditable(false);
t6.setEditable(false);
JPanelpp1=newJPanel();
JLabellabel2=newJLabel("学号为"+STNO+"学生的信息");
pp1.add(label2);
label2.setFont(newFont("BOLD",Font.BOLD,28));
c2.add(pp1);
JPanelpp2=newJPanel(newGridLayout(6,2));
pp2.add(newJLabel("学号",SwingConstants.CENTER));
tt1.setText(STNO);
pp2.add(tt1);
pp2.add(newJLabel("姓名",SwingConstants.CENTER));
pp2.add(t2);
pp2.add(newJLabel("年龄",SwingConstants.CENTER));
pp2.add(t3);
pp2.add(newJLabe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 学生 成绩 管理 系统分析 报告