java程序设计学生成绩信息管理系统.docx

上传人:b****2 文档编号:23009263 上传时间:2023-04-30 格式:DOCX 页数:77 大小:882.58KB
下载 相关 举报
java程序设计学生成绩信息管理系统.docx_第1页
第1页 / 共77页
java程序设计学生成绩信息管理系统.docx_第2页
第2页 / 共77页
java程序设计学生成绩信息管理系统.docx_第3页
第3页 / 共77页
java程序设计学生成绩信息管理系统.docx_第4页
第4页 / 共77页
java程序设计学生成绩信息管理系统.docx_第5页
第5页 / 共77页
点击查看更多>>
下载资源
资源描述

java程序设计学生成绩信息管理系统.docx

《java程序设计学生成绩信息管理系统.docx》由会员分享,可在线阅读,更多相关《java程序设计学生成绩信息管理系统.docx(77页珍藏版)》请在冰豆网上搜索。

java程序设计学生成绩信息管理系统.docx

java程序设计学生成绩信息管理系统

 

 

 

JAVA程序设计——学生信息管理系统 

 

 

 

 

 

题  目 学生信息管理系统

学  院  软件学院       

专  业               

班  别            

学  号             

姓  名     XXX   

                 

2015年6月10日

 

 

 

 

 

 

 

 

 

2

 

一、课程题目

设计一个简易的学生成绩管理系统。

用于记录学生的各科成绩,以及实现常用的统计功能。

(1)记录学生的基本信息,如姓名、学号、专业、班级等

(2)记录各科成绩

(3)实现常用的统计功能,如:

单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值……

(4)使用图形方式显示某些数据,如直方图显示各分数段的人数、绘制各科分数分布曲线……(可选)

(5)必须使用数据库。

其它功能可自行扩展。

 

二、题目分析与设计

1. 注明所使用的开发环境(Eclipse、NetBeans,JBuilder)。

开发环境:

Eclipse

2. 论述题目的需求。

给出软件功能架构图。

题目需求:

通过数据库记录学生成绩和信息,并通过数据库读取这些信息,实现单个学生查找、全体学生查找等功能和单科排名、平均分、总分排名、平均分等功能。

其他扩展功能:

登录界面,保存到txt文件。

 

软件功能架构图:

其中,删除、修改、单个查找功能均通过学号定位学生

3. 论述界面设计过程,指出其设计上的创意及组件的布局策略。

界面设计过程:

主要界面包括登录界面,主功能界面,各个子功能界面。

登录界面包括3个面板,每个面板放入相应的标签、文本框、按钮等组件,登录界面采用3行1列的网格布局;主功能界面包括菜单栏和若干面板,面板中放入标签或若干按钮,菜单栏的菜单项与按钮相对应,主功能界面采用7行1列的网格布局;学生管理类子功能(增加学生、删除学生、修改学生、单个查找)界面采用6行2列的网格布局,每个网格均放入一个面板,每个面板放入标签、文本框、组合框、按钮等组件,以达到较友好的界面效果;学生查找类子功能界面(查看全体、按年级查询、按班别查询、按专业查询)和成绩管理类子功能(单科排名、总分排名、合格学生、挂科学生)界面采用边界布局,界面的上部放入一个面板,面板放入相应的按钮或组合框,中部放入一个文本域。

所有错误信息等信息均通过对话框的形式显示相应信息。

4. 论述程序逻辑的实现,包括类的设计、对象的协作过程等,必要时加以各种图形和表格辅助论述。

不得以粘贴代码的方式代替设计部分。

类的设计过程:

本程序包括19个类文件,每个类文件只含有一个类,分别是包含main方法的主类 Main,实现登录功能的类 Login, 实现各种功能选择功能的类 Function, 实现数据库连接的类DataBaseCreate,实现学生信息编辑功能类StudentEdit, 执行增加学生功能的类AddStudent,执行删除学生功能的类DeleteStudent,执行修改学生功能的类 UpdateStudent,执行单个查询功能的类IndexOfSingle, (由于AddStudent,DeleteStudent,UpdateStudent,IndexOfSingle界面和操作基本相同,所以上4类均继承StudentEdit) 实现条件查找和成绩管理功能的类IndexOrManage, 执行查询全体功能的类LookAllStudents,执行按年级查询功能的类IndexOfGrade,执行按班别查询功能的类IndexOfClass,执行按专业查询的类IndexOfMajor,执行单科排名功能的类 SubjectScoreRanking,执行总分排名功能的类TotalScoreRanking,执行查找单科及格学生功能的类PassStudents,执行查找单科不及格学生功能的类NotPassStudents,(由于LookAllStudents,IndexOfGrade,IndexOfClass,IndexOfMajor,SubjectScoreRanking,TotalScoreRanking,PassStudents,NotPassStudents,界面和操作基本相同,所以上8类均继承IndexOrManage)执行将文本域内容保存到TXT文件的类TxtSave。

以上19个类,除了Main类以外,均包含一个构造方法,有些还包含actionPerformed(e)方法。

对象的协作过程:

三、测试分析

小四字体,1.5倍行距。

对程序的测试情况作出分析。

至少包括但不限于需要具备以下内容:

1. 阐述扩展包(仅限于SUN官方发布)的部署过程,并将扩展包附于光盘源程序中;给出数据库的详细配置说明。

导入扩展包

mysql-connector-java-5.1.25-bin.jar

数据库配置说明:

数据库mySQL

数据库服务器localhost

端口3306

用户名root

密码空

数据库名studentmanagement

Student表

2. 典型测试数据的构建,并且给出测试数据的预计结果

原数据:

测试数据:

添加学生

10005张兰女2012 2 信息工程19930506 82 74 58 

删除学生  10000

修改学生 10001

李嘉女2011 4 网络工程 19920304 54  85 86.5

单个查找 10003

查询全体

按年级查找​2011级

按班别查找​1班

按专业查找​软件工程

单科排名并显示平均分​语文

总分排名并显示平均分​

单科及格学生​英语

单科不及格学生​语文

保存Txt​总分

预测结果:

均成功完成操作

3. 本程序的测试情况,与预计结果作对比

测试情况:

成功完成相关操作

添加学生

10005张兰女2012 2 信息工程19930506 82 74 58 

删除学生 10000

修改学生 10001

李嘉女2011 4 网络工程 19920304 54 85 86.5

单个查找 10003​  20001

查询全体

按年级查找​2011级

按班别查找​1班

按专业查找​软件工程

单科排名并显示平均分​语文

总分排名并显示平均分 ​

单科及格学生​英语

单科不及格学生​语文

 

 

保存Txt​总分排名

 

 

 

 

 

 

 

 

 

 

 

附录:

源代码

小四字体,1.5倍行距。

只需列出程序中所有的包及相关的文件。

不需要打印源代码。

程序中所有的包及相关的文件:

代码:

import javax.swing.JFrame;

 

public class Main{

 

​/**

​ * @param args

​ */

​public static void main(String[]args){

 

​Loginlogin=new Login();

​login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

​}

 

}

 

import java.awt.*;

import java.awt.event.*;

 

import javax.swing.*;

//登录界面

public class Login extends JFrame implements ActionListener{

​JButton b1=new JButton("登录");

​JButton b2=new JButton("退出");

​JLabel la1=new JLabel("用户名");

​JLabel la2=new JLabel("密  码");

​JPanel p1=new JPanel();

​JPanel p2=new JPanel();

​JPanel p3=new JPanel();

​JTextField name=new JTextField(15);

​JPasswordField pw=new JPasswordField(15);

​public Login(){

​setTitle("学生成绩管理系统");

​getContentPane().setLayout(new GridLayout(3,1));

​getContentPane().add(p1);

​getContentPane().add(p2);

​getContentPane().add(p3);

​p1.add(la1);

​p1.add(name);

​p2.add(la2);

​p2.add(pw);

​p3.add(b1);

​p3.add(b2);

​setBounds(500,250,100,100);

​pack();

​setVisible(true);

​pw.setEchoChar('*');

​b1.addActionListener(this);

​b2.addActionListener(this);

​}

 

​public void actionPerformed(ActionEvente){

​if(e.getActionCommand()=="登录"){

​Stringpassword=pw.getText();

​Stringuser=name.getText();

​if(user.equals("admin")&&password.equals("admin")){

​Functionfunction=new Function();

​function.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

​setVisible(false);

​}

​​else{

​JOptionPane.showMessageDialog(null, "用户名或密码错误", "Error",JOptionPane.INFORMATION_MESSAGE);

​}

​}

​else if(e.getActionCommand()=="退出"){

​System.exit(0);

​}

​}

}

 

import java.sql.*;

//连接数据库类

public class DataBaseCreate{

​//连接数据库静态方法,若产生错误,则抛出相应错误信息

​public static ConnectiongetConnection()throwsSQLException,java.lang.ClassNotFoundException{

​//建立本地数据库连接,编码规则转换为utf-8(正常录入中文)

​Stringurl="jdbc:

mysql:

//localhost:

3306/studentmanagement?

useUnicode=true&characterEncoding=utf8";

​Class.forName("com.mysql.jdbc.Driver");

​StringuserName="root";

​Connectioncon=DriverManager.getConnection(url,userName, "");

​return con;

​}

}

 

import javax.swing.JFrame;

 

public class Main{

 

​/**

​ * @param args

​ */

​public static void main(String[]args){

 

​Loginlogin=new Login();

​login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

​}

 

}

 

 

import java.awt.*;

import java.awt.event.*;

 

import javax.swing.*;

//主要功能界面

public class Function extends JFrame implements ActionListener{

​JPanel p1=new JPanel();

​JPanel p2=new JPanel();

​JPanel p6=new JPanel();

​JPanel p3=new JPanel();

​JPanel p4=new JPanel();

​JPanel p5=new JPanel();

​JButton add=new JButton("增加学生");

​JButton del=new JButton("删除学生");

​JButton update=new JButton("修改学生");

​JButton single=new JButton("单个查询");

​JButton look=new JButton("查看全体");

​JButton b11=new JButton("按年级查找");

​JButton b12=new JButton("按班别查找");

​JButton b13=new JButton("按专业查找");

​JLabel la1=new JLabel("学生管理");

​JLabel la2=new JLabel("成绩管理");

​JLabel la3=new JLabel("学生查找");

​JButton b1=new JButton("单科排名");

​JButton b2=new JButton("总分排名");

​JButton b3=new JButton("合格学生");

​JButton b4=new JButton("挂科学生");

​JMenuItem items[][]=new JMenuItem[4][];

​JMenuBar bar=new JMenuBar();

​JMenu m1=new JMenu("开始");

​JMenu m2=new JMenu("学生管理");

​JMenu m3=new JMenu("学生查找");

​JMenu m4=new JMenu("成绩管理");

 

 

 

​//构造方法

​public Function(){

​setTitle("学生成绩管理系统");

​//设计菜单栏

​items[0]=new JMenuItem[2];

​items[1]=new JMenuItem[4];

​items[2]=new JMenuItem[4];

​items[3]=new JMenuItem[4];

​m1.add(items[0][0]=new JMenuItem("返回"));

​m1.add(items[0][1]=new JMenuItem("退出"));

​m2.add(items[1][0]=new JMenuItem("增加学生"));

​m2.add(items[1][1]=new JMenuItem("删除学生"));

​m2.add(items[1][2]=new JMenuItem("修改学生"));

​m2.add(items[1][3]=new JMenuItem("单个查询"));

​m3.add(items[2][0]=new JMenuItem("查看全体"));

​m3.add(items[2][1]=new JMenuItem("按年级查找"));

​m3.add(items[2][2]=new JMenuItem("按班别查找"));

​m3.add(items[2][3]=new JMenuItem("按专业查找"));

​m4.add(items[3][0]=new JMenuItem("单科排名"));

​m4.add(items[3][1]=new JMenuItem("总分排名"));

​m4.add(items[3][2]=new JMenuItem("合格学生"));

​m4.add(items[3][3]=new JMenuItem("挂科学生"));

​bar.add(m1);

​bar.add(m2);

​bar.add(m3);

​bar.add(m4);

 

​​

​//设计布局

​getContentPane().setLayout(new GridLayout(7,1));

​getContentPane().add(bar);

​getContentPane().add(p1);

​getContentPane().add(p2);

​getContentPane().add(p6);

​getContentPane().add(p3);

​getContentPane().add(p4);

​getContentPane().add(p5);

​p1.add(la1);

​p2.add(add);

​p2.add(del);

​p2.add(update);

​p2.add(single);

​p6.add(la3);

​p3.add(look);

​p3.add(b11);

​p3.add(b12);

​p3.add(b13);

​p4.add(la2);

​p5.add(b1);

​p5.add(b2);

​p5.add(b3);

​p5.add(b4);

​setBounds(500,250,100,100);

​pack();

​setVisible(true);

​//注册监听器

​add.addActionListener(this);

​del.addActionListener(this);

​update.addActionListener(this);

​look.addActionListener(this);

​single.addActionListener(this);

​b11.addActionListener(this);

​b12.addActionListener(this);

​b13.addActionListener(this);

​b1.addActionListener(this);

​b2.addActionListener(this);

​b3.addActionListener(this);

​b4.addActionListener(this);

​items[0][0].addActionListener(this);

​items[0][1].addActionListener(this);

​items[1][0].addActionListener(this);

​items[1][1].addActionListener(this);

​items[1][2].addActionListener(this);

​items[1][3].addActionListener(this);

​items[2][0].addActionListener(this);

​items[2][1].addActionListener(this);

​items[2][2].addActionListener(this);

​items[2][3].addActionListener(this);

​items[3][0].addActionListener(this);

​items[3][1].addActionListener(this);

​items[3][2].addActionListener(this);

​items[3][3].addActionListener(this);

​}

 

​//按钮事件响应,对用对应的类对象

​public void actionPerformed(ActionEvente){

​if(e.getActionCommand()=="增加学生"){

​AddStudent addStudent =new AddStudent();

​}

​else if(e.getActionCommand()=="删除学生"){

​DeleteStudent delStudent=new DeleteStudent();

​}

​else if(e.getActionCommand()=="修改学生"){

​UpdateStudent delStudent=new UpdateStudent();

​}

​else if(e.getActionCommand()=="单个查询"){

​IndexSingle is=new IndexSingle();

​}

​else if(e.getActionCommand()=="查看全体"){

​LookAllStudents look=new LookAllStudents();

​}

​else if(e.getActionCommand()=="按年级查找"){

​IndexOfGrade ig=new IndexOfGrade();

​}

​else if(e.getActionCommand()=="按班别查找"){

​IndexOfClass ic=new IndexOfClass();

​}

​else if(e.getActionCommand()=="按专业查找"){

​IndexOfMajor im=new IndexOfMajor();

​}

​else if(e.getActionCommand()=="单科排名"){

​SubjectScoreRanking subject= new SubjectScoreRanking();

​}

​else if(e.getActionCommand()=="总分排名"){

​TotalScoreRanking subject= new TotalScoreRanking();

​}

​else if(e.getActionCommand()=="合格学生"){

​PassStudents pass=new PassStudents();

​}

​else if(e.getActionCommand()=="挂科学生"){

​NotPassStudents notPass=new NotPassStudents();

​}

​else if(e.getActionCommand()=="返回"){

​setVisible(false);

​Loginlogin=new Login();

​login.setDefaultCloseO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1