java学生成绩管理系统报告材料

上传人:沈*** 文档编号:100974180 上传时间:2022-06-04 格式:DOC 页数:35 大小:188.50KB
返回 下载 相关 举报
java学生成绩管理系统报告材料_第1页
第1页 / 共35页
java学生成绩管理系统报告材料_第2页
第2页 / 共35页
java学生成绩管理系统报告材料_第3页
第3页 / 共35页
点击查看更多>>
资源描述
word某某邮电大学计算机科学与技术学院设计名称: Java程序设计报告 设计题目: 学生成绩管理系统 学生学号:专业班级:学生某某:目录一、需求分析- 3 -1.1 功能需求分析- 4 -1.2 性能需求分析- 4 -1.3 数据库需求分析数据流图- 5 -1.3.1 数据结构- 5 -1.3.2 数据流:- 5 -二、概要结构设计- 6 - 6 - 6 -2.2 概要结构设计- 7 -三、详细设计与实现883.1.1 代码实现83.2 管理员界面133.2.1 代码实现:133.3 用户界面163.3.1 代码实现:163.4 添加模块243.4.1 添加模块代码实现:243.5 删除模块303.5.1 代码实现:31心得体会:34参考文献35一、需求分析编写目的:学生成绩管理系统模块是为了实现学校人力资源的优化和学生成绩管理的科学管理而设计的,通过使用本系统,可以更加有效的管理学生信息,其大包括学生的根本信息,成绩信息并且具有信息的增加,查询,修改等功能。需求分析说明书是为软件的开发者能更好的理解开发的需求,防止由于对问题认识的不清或错误理解而增加更多的开发本钱。需求分析是软件系统生存期中定义阶段的最后一个步骤;是作为整个软件开发X围的指南,是软件开发人员开发出正确的符合用户要求的软件的重点;是为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。该文档将最终交给软件具体开发人员进展具体的开发,其针对的对象是软件开发人员。解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成假如干个模块、决定各个模块之间的接口、模块之间传递的信息,以与数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进展详细的说明。详细设计中,程序设计员可参考此概要设计报告,在概要设计对学生信息管理系统所做的模块结构设计的根底上,对系统进展详细设计。在以后的软件测试以与软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。此需求规格说明书是对用户需求分析的结果,明确系统应具有的功能与性能与界面方面的需求,使系统分析员与软件开发组成员能清楚地了解用户的需求,并在此根底上完成后续工作和开发工作。学生信息管理系统将由两局部组成:置于学生信息的前台程序,以与置于管理员的数据库服务器。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)课程信息:包括课程编号(o)、课程名称(ame)、先行课Cpno成绩表;学号(STNO)、课程号(o)、成绩(Grade)1.3.2 数据流:1) 数据流名:口令号说明:根据这个口令号定位到用户管理数据库,以便进展身份验证。数据流来源:登陆界面输入的口令号和密码。数据流去向:其中用户口令信息将存在于整个操作过程中,防止非法登陆。数据流组成:口令号文本;密码文本2) 数据流名:寻找信息说明:根据用户在学生信息维护的时候所填写的信息。数据流来源:学生信息维护界面学生输入包含学号、班级编号、名称等。数据流去向:学号将存在整个操作,其它的存入数据库。数据流组成:学号文本;某某文本等3) 数据流名:寻找信息说明:根据用户在成绩管理的时候所填写的信息。数据流来源:成绩输入、修改、添加等界面用户输入包含课程编号、课程名称、成绩、教师。数据流去向:学号、班级编号、课程编号将存在整个操作,其它的存入数据库。数据流组成:课程编号文本、课程名称文本、教师文本等。4) 数据流名:返回信息说明:根据用户在学生信息维护的时候所填写的信息存入了数据库之后。数据流来源:由学生信息维护界面学生输入的包含学号、某某、性别等存入数据库的。数据流去向:学生信息维护界面。数据流组成:学号文本、某某文本、班级名称文本、性别文本等。5) 数据流名:返回信息说明:根据用户在成绩管理的时候所填写的信息存入数据库后。数据流来源:由成绩管理输入的包含班级名称、教师、课程名、成绩存入数据库的。数据流去向:成绩管理的各子界面。数据流组成:班级编号文本;班级名称文本;教师文本等;二、概要结构设计系统功能结构设计根据需求分析阶段得到的功能需求,管理员、学生和教师用户通过输入口令号和密码进下该系统后,可以进展一些学生根底信息查询学生信息查询、班级信息查询、课程信息查询、学生信息维护、成绩管理成绩查询、计算平均分重新登陆系统、退出。模块功能大概可以分为如下4个方面:这几个模块学生根底维护、成绩管理、登陆、退出。其中根底维护还要包括学生信息维护、班级信息维护、课程信息维护。成绩管理包括成绩查询、添加成绩、成绩输入等。综上所述,得到客户端功能模块图如下2.2所示。2.2 概要结构设计用户登陆管理员登陆登陆删除信息增加信息查询信息查询信息开课E-R 图:学生年龄系别课程系别 名称含有先行课成绩课名学号某某选课精彩文档三、详细设计与实现3.1.1 代码实现package stu_manager;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Login extends JFrame TextField f1;TextField f2;utton b1;utton b2;utton b3;String power;/表示权限Login() Container cp=getContentPane(); cp.setLayout(new GridLayout(4,1); Label l1=new Label(用户名); Label l2=new Label(密 码); Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel(); f1=new TextField(10); f2=new TextField(10); f2.setEchoChar(*); b1=new utton(登录); b2=new utton(重置); b3=new utton(退出); 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(new Enter(); b2.addActionListener(new ReWrite(); b3.addActionListener(new Close();public static void main(String args) Login log=new Login(); log.setTitle(系统登录); log.setBounds(200, 200, 300, 300); log.setBackground(Color.blue); log.setVisible(true);class Enter implements ActionListener public void actionPerformed(ActionEvent e) if(f1.getText().equals(tang)&(f2.getText().equals(051141) JOptionPane.showMessageDialog(null, 登录成功!用户权限是管理员); power=管理员; XueSheng frame1 = new XueSheng(); frame1.setResizable(true); else if(f1.getText().equals(tang)&(f2.getText().equals(123456) JOptionPane.showMessageDialog(null, 登录成功!登录成功!用户权限是游客); power=游客; Find f2 = new Find(); f2.setVisible(true); else JOptionPane.showMessageDialog(null, 登录失败,请重新登录!); class ReWrite implements ActionListener public void actionPerformed(ActionEvent e) f1.setText(); f2.setText(); f1.requestFocus(); class Close implements ActionListenerpublic void actionPerformed(ActionEvent e) utton bt=(utton)e.getSource(); if(bt=b3) System.exit(0); 3.2 管理员界面3.2.1 代码实现:package stu_manager;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.JFrame;public class XueSheng extends JFrame implements ActionListener utton cx, zj, tc, sc;XueSheng() setBounds(100, 100, 600, 600);JPanel panel2 = new JPanel();setContentPane(panel2);panel2.setLayout(null);JLabel label1 = new JLabel(欢迎进入学生信息管理界面);label1.setFont(new Font(BOLD, Font.BOLD, 28);panel2.add(label1);label1.setBounds(50, 20, 400, 100);cx = new utton(查询);panel2.add(cx);cx.setBounds(50, 200, 80, 50);zj = new utton(增加);panel2.add(zj);zj.setBounds(150, 200, 80, 50);sc = new utton(删除);panel2.add(sc);sc.setBounds(250, 200, 80, 50);tc = new utton(退出);panel2.add(tc);tc.setBounds(350, 200, 80, 50);cx.addActionListener(this);zj.addActionListener(this);sc.addActionListener(this);tc.addActionListener(this);setVisible(true);public void actionPerformed(ActionEvent e) if (e.getSource() = cx) Find f = new Find(); if(e.getSource()=zj)AddFI f = new AddFI(); if(e.getSource()=sc)Delet d = new Delet(); if(e.getSource()=tc)shutDown();private void shutDown()this.dispose();3.3 用户界面3.3.1 代码实现:package stu_manager;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.swing.*;publicclassFindextends JFrame implements ActionListener JTextField t1;String STNO, r1, r2, r3, r4, r5, r6;utton b1, b2;XueSheng xue;Find() super(查询学生信息);Container c1 = this.getContentPane();setBackground(new Color(215, 215, 215);c1.setLayout(new GridLayout(3, 2);JPanel pp = new JPanel();JLabel label0 = new JLabel(请输入你的学号);label0.setForeground(Color.blue);pp.add(label0);JPanel p1 = new JPanel();t1 = new JTextField(10);p1.add(new Label();p1.add(t1);c1.add(p1);JPanel p2 = new JPanel();b1 = new utton(查询);b2 = new utton(退出);b1.addActionListener(this);b2.addActionListener(this);p2.add(b1);p2.add(b2);c1.add(p2);this.setVisible(true);this.setBounds(200, 200, 400, 300);publicvoid actionPerformed(ActionEvent e) try if (e.getSource() = b1) try STNO = t1.getText();Class.forName(.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance();String url = jdbc:sqlserver:/localhost:1433; DatabaseName=ss;String userName = sa; / 默认用户名String userPwd = 051141;Connection = DriverManager.getConnection(url, userName,userPwd);String str = select Student.SNAME,Student.SAGE,Student.SSEX,Student.STNO,Course.ame,SC.Grade from Student,Course ,SC where Student.STNO = SC.STNO and SC.o = Course.o and Student.STNO =+STNO+;PreparedStatement ps = .prepareStatement(str);ResultSet rs = 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(ame);r6 = rs.getString(Grade); else JOptionPane.showMessageDialog(null, 你输入的学号有误);.close(); catch (SQLException g) System.out.println(Error + g.getErrorCode();System.out.println(Merrage= + g.getMessage(); catch (Exception f) f.printStackTrace();File f = new File();this.dispose();if (e.getSource() = b2) t1.setText();t1.repaint(); catch (NumberFormatException ex) JOptionPane.showMessageDialog(null, 数据转换错误);classFileextends JFrame implements ActionListener JTextField tt1, t2, t3, t4, t5, t6;utton b3;File() super(查询学生信息);Container c2 = this.getContentPane();setBackground(new Color(215, 215, 215);c2.setLayout(new GridLayout(3, 1);tt1 = new JTextField(r1);t2 = new JTextField(r2);t3 = new JTextField(r3);t4 = new JTextField(r4);t5 = new JTextField(r5);t6 = new JTextField(r6);tt1.setEditable(false);t2.setEditable(false);t3.setEditable(false);t4.setEditable(false);t5.setEditable(false);t6.setEditable(false);JPanel pp1 = new JPanel();JLabel label2 = new JLabel(学号为 + STNO + 学生的信息);pp1.add(label2);label2.setFont(new Font(BOLD, Font.BOLD, 28);c2.add(pp1);JPanel pp2 = new JPanel(new GridLayout(6, 2);pp2.add(new JLabel(学号, SwingConstants.CENTER);tt1.setText(STNO);pp2.add(tt1);pp2.add(new JLabel(某某, SwingConstants.CENTER);pp2.add(t2);pp2.add(new JLabel(年龄, SwingConstants.CENTER);pp2.add(t3);pp2.add(new JLabel(性别, SwingConstants.CENTER);pp2.add(t4);pp2.add(new JLabel(课程, SwingConstants.CENTER);pp2.add(t5);pp2.add(new JLabel(成绩, SwingConstants.CENTER);pp2.add(t6);c2.add(pp2);JPanel pp3 = new JPanel();b3 = new utton(返回);b3.addActionListener(this);pp3.add(b3);c2.add(pp3);this.setBounds(200, 200, 600, 400);setVisible(true);publicvoid actionPerformed(ActionEvent f) if (f.getSource() = b3) this.dispose();3.4 添加模块3.4.1 添加模块代码实现:package stu_manager;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class AddFI extends JFrame implements ActionListener JTextField STNOText, SNAMEText, SAGEText, SSEXText, SDEPTText;utton b1, b2, b3;String STNO, SNAME, SAGE, SSEX, SDEPT;public AddFI() Container c = this.getContentPane();c.setLayout(new GridLayout(3, 1);JPanel center = new JPanel(new GridLayout(5, 2);JPanel low = new JPanel(new FlowLayout();JLabel label1 = new JLabel(添加學生信息, SwingConstants.CENTER);label1.setFont(new Font(TRUE, Font.TRUETYPE_FONT, 20);c.add(label1);STNOText = new JTextField(30);SNAMEText = new JTextField(30);SSEXText = new JTextField(30);SAGEText = new JTextField(30);SDEPTText = new JTextField(30);center.add(new JLabel(学号, SwingConstants.CENTER);center.add(STNOText);center.add(new JLabel(某某, SwingConstants.CENTER);center.add(SNAMEText);center.add(new JLabel(性别, SwingConstants.CENTER);center.add(SSEXText);center.add(new JLabel(年龄, SwingConstants.CENTER);center.add(SAGEText);center.add(new JLabel(系别, SwingConstants.CENTER);center.add(SDEPTText);c.add(center);b1 = new utton(添加);b2 = new utton(去除);b3 = new utton(退出);low.add(b1);low.add(b2);low.add(b3);c.add(low);/ 為按鈕添加jiantingb1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);this.setBounds(200, 200, 600, 400);this.setVisible(true);this.setTitle(添加學生信息);public void actionPerformed(ActionEvent e) if (e.getSource() = b1) addFI();if (e.getSource() = b2) clearForm();if (e.getSource() = b3) shutdown();private void addFI() STNO = STNOText.getText();SNAME = SNAMEText.getText();SSEX = SSEXText.getText();SAGE = SAGEText.getText();SDEPT = SDEPTText.getText();if (STNO.length() = 0 | SNAME.length() = 0 | SAGE.length() = 0| SDEPT.length() = 0 | SSEX.length() = 0)JOptionPane.showMessageDialog(this, 请添加完全信息);else try Class.forName(.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance();String url = jdbc:sqlserver:/localhost:1433; DatabaseName=ss;String userName = sa; / 默认用户名String userPwd = 051141;Connection = DriverManager.getConnection(url, userName,userPwd);String str = INSERT INTO Student VALUES(?,?,?,?,?);PreparedStatement ps = .prepareStatement(str);ps.setString(1, STNO);ps.setString(2, SNAME);ps.setString(3, SSEX);ps.setString(4, SAGE);ps.setString(5, SDEPT);ps.executeUpdate();.close();JOptionPane.showMessageDialog(this, 添加成功);clearForm(); catch (SQLException e) System.out.println(ECode + e.getErrorCode();System.out.println(E M= + e.getMessage(); catch (Exception e) e.printStackTrace();private void clearForm() STNOText.setText();SNAMEText.setText();SAGEText.setText();SSEXText.setText();SDEPTText.setText();private void shutdown() this.dispose();3.5 删除模块3.5.1 代码实现:package stu_manager;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import javax.swing.*;public class Delet extends JFrame implements ActionListenerutton yes;utton cancle;JTextField text1;String STNO;Delet()Container c = this.getContentPane();c.setLayout(new GridLayout(3, 1);c.setFont(new Font(true,Font.TRUETYPE_FONT,13);JPanel p1 = new JPanel();JPanel p2 = new JPanel();JLabel label1 = new JLabel(删除学生信息,SwingConstants.CENTER);label1.setFont(new Font(true,Font.TRUETYPE_FONT,13);label1.setForeground(Color.red);c.add(label1);JLabel label2 = new JLabel(请输入学号); text1 = new JTextField(10);p1.add(label2);p1.add(text1);c.add(p1); yes = new utton(确定); cancle = new utton(退出);p2.add(yes);p2.add(cancle);c.add(p2);yes.addActionListener(this);cancle.addActionListener(this);this.setTitle(删除学生信息);this.setBounds(200,200,400,300);this.setVisible(true); public void actionPerformed(ActionEvent e)if(e.getSource()=yes)del();if(e.getSource()=cancle)shutDown();private void del()STNO = text1.getText();try Class.forName(.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance();String url = jdbc:sqlserver:/localhost:1433; DatabaseName=ss;String userName = sa; / 默认用户名String userPwd = 051141;Connection = DriverManager.getConnection(url, userName,userPwd);String str = DELETE FROM Student WHERE STNO =+STNO+;PreparedStatement ps = .prepareStatement(str);ps.executeUpdate();.close();JOptionPane.showMessageDialog(this, 删除成功);catch (SQLException e) System.out.println(ECode + e.getErrorCode();System.out.println(E M= + e.getMessage(); catch (Exception e) e.printStackTrace();private void shutDown()this.dispose();心得体会:经过很长时间看书,上网查资料,终于将学生信息管理系统完成了,总体而言,功能还是比拟齐全的,但也有一些小缺陷,没有做到尽善尽美。在数据库方面,建有学生信息表,学生成绩表,课程表,登陆表等,但在数据库方面,数据还是有点不够完善。相信经过这次的学习,以后碰到定能够得到改善。 由于能力所限,程序肯定还有不完善的地方,而在写程序的过程中,也遇到了不少的困难,首先,是工具和平台的选择,后来我选择了Eclipse编写程序,由于是英文版的,刚开始时,我还在为熟悉操作而困惑。后来又在为选择用哪个数据库而发愁了,因为我的电脑上没有安装SQL,只有Access,,转念一想,觉得应该使用Access,因为Access要较为简单一些,但转念一想,反正以后用得更多的肯定是SQL,于是我就安装了SQL2008。开始时,还在为怎么安装SQL2008而发愁,后来从网上查资料解决了,之后,又在为怎么连接数据库而困惑,经过看书和上网查资料,终于解决了这个让人头疼的问题。 在这个过程中我学到了很多东西,收获了许多,熟悉了Eclipse和Java的应用,还熟悉了数据库查询语言。 这次课程设计能够顺利的完成,需要感谢教师的严格要求和认真教诲,同时,也要感谢学和室友的帮助,在这个过程中,帮我发现了不少的错误。帮助改良了程序。参考文献1 X宝林,Java程序设计与案例. 高等教育, 20042 杨武 X贞,Java编程与应用,高等教育,20053 殷兆麟,Java网络应用编程,高等教育,20044 许满武,Java程序设计,高等教育社,20065 赵生慧,Java面向对象程序设计,高等教育,20076 某某微联教育管理服务某某,Web应用程序设计Java方向综合训练教程配盘. 高等教育, 2008精彩文档
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!