java程序设计-学生成绩信息管理系统_第1页
java程序设计-学生成绩信息管理系统_第2页
java程序设计-学生成绩信息管理系统_第3页
java程序设计-学生成绩信息管理系统_第4页
java程序设计-学生成绩信息管理系统_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

学生信息管理系统学

软件学院

XXX

2015年6月10日

2

一、课程题目设计一个简易的学生成绩管理系统。用于记录学生的各科成绩,以及实现常用的统计功能。(1)记录学生的基本信息,如姓名、学号、专业、班级等(2)记录各科成绩(3)实现常用的统计功能,如:单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值……(4)使用图形方式显示某些数据,如直方图显示各分数段的人数、绘制各科分数分布曲线……(可选)(5)必须使用数据库。其它功能可自行扩展。

二、题目分析与设计1.

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

论述题目的需求。给出软件功能架构图。题目需求:通过数据库记录学生成绩和信息,并通过数据库读取这些信息,实现单个学生查找、全体学生查找等功能和单科排名、平均分、总分排名、平均分等功能。其他扩展功能:登录界面,保存到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数据库服务器localhost端口3306用户名root密码空数据库名studentmanagementStudent表2.

典型测试数据的构建,并且给出测试数据的预计结果原数据:测试数据:添加学生10005张兰女2012

2

信息工程19930506

82

74

58

删除学生

10000修改学生

10001李嘉女2011

4

网络工程

19920304

54

85

单个查找

10003查询全体按年级查找​2011级按班别查找​1班按专业查找​软件工程单科排名并显示平均分​语文总分排名并显示平均分​单科及格学生​英语单科不及格学生​语文保存Txt​总分预测结果:均成功完成操作3.

本程序的测试情况,与预计结果作对比测试情况:成功完成相关操作添加学生10005张兰女2012

2

信息工程19930506

82

74

58

删除学生

10000修改学生

10001李嘉女2011

4

网络工程

19920304

54

85

单个查找

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.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);​}​else

if(e.getActionCommand()=="退出"){​System.exit(0);​}​}

}

import

java.awt.GridLayout;import

.*;

import

javax.swing.*;

public

class

StudentEdit

extends

JFrame{

​JPanel

p1=new

JPanel();​JPanel

p2=new

JPanel();​JPanel

p3=new

JPanel();​JPanel

p4=new

JPanel();​JPanel

p5=new

JPanel();​JPanel

p6=new

JPanel();​JPanel

p7=new

JPanel();​JPanel

p8=new

JPanel();​JPanel

p9=new

JPanel();​JPanel

p10=new

JPanel();​JPanel

p11=new

JPanel();​JPanel

p12=new

JPanel();​​JLabel

la1=new

JLabel("学号");​JLabel

la2=new

JLabel("姓名");​JLabel

la3=new

JLabel("性别");​JLabel

la4=new

JLabel("生日");​JLabel

la5=new

JLabel("年级");​JLabel

la6=new

JLabel("班别");​JLabel

la7=new

JLabel("语文");​JLabel

la8=new

JLabel("英语");​JLabel

la9=new

JLabel("数学");​JLabel

la10=new

JLabel("专业");​​JButton

b1=new

JButton("确定");​JButton

b2=new

JButton("取消");​​JTextField

num=new

JTextField(10);​JTextField

name=new

JTextField(10);​JTextField

chinese=new

JTextField(10);​JTextField

english=new

JTextField(10);​JTextField

maths=new

JTextField(10);​JTextField

birth=new

JTextField(10);​​String[]

sex={"","男","女"};​JComboBox

s=new

JComboBox(sex);​String[]

grades={"","2010","2011","2012","2013"};​JComboBox

grade=new

JComboBox(grades);​String[]

classes={"","1","2","3","4","5","6"};​JComboBox

clas=new

JComboBox(classes);​String[]

majors={"","网络工程","软件工程","信息工程","计算机科学"};​JComboBox

major=new

JComboBox(majors);​​public

StudentEdit(){​p1.add(la1);​p1.add(num);​​p2.add(la2);​p2.add(name);​​p3.add(la3);​p3.add(s);​​p4.add(la4);​p4.add(birth);​​p5.add(la5);​p5.add(grade);​​p6.add(la6);​p6.add(clas);​​p7.add(la7);​p7.add(chinese);​​p8.add(la8);​p8.add(english);​​p9.add(la9);​p9.add(maths);​​p10.add(la10);​p10.add(major);​​p11.add(b1);​p11.add(b2);​//设计布局​getContentPane().setLayout(new

GridLayout(6,2));​getContentPane().add(p1);​getContentPane().add(p2);​getContentPane().add(p3);​getContentPane().add(p4);​getContentPane().add(p5);​getContentPane().add(p6);​getContentPane().add(p7);​getContentPane().add(p8);​getContentPane().add(p9);​getContentPane().add(p10);​getContentPane().add(p11);​getContentPane().add(p12);​​setBounds(500,250,100,100);​pack();​setVisible(true);​​}}

importjava.awt.event.*;importjava.sql.*;

importjavax.swing.JOptionPane;

publicclassAddStudentextendsStudentEditimplementsActionListener{

​publicAddStudent(){​super();​b1.addActionListener(this);​b2.addActionListener(this);​}​​publicvoidactionPerformed(ActionEvente){​​if(e.getActionCommand()=="确定"){​//计算总分​//调用字符串转换浮点数方法​floattotal=Float.parseFloat(chinese.getText())+Float.parseFloat(english.getText())+Float.parseFloat(maths.getText());​​try{​//建立数据库连接​Connectioncon=DataBaseCreate.getConnection();​Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);​//添加数据到数据库​sql.executeUpdate("insertintostudent(Num,Name,Sex,Grade,Class,Major,Birth,Chinese,English,Maths,Total)"+​"values('"+num.getText()+"','"+name.getText()+"','"+s.getSelectedItem()+​"','"+grade.getSelectedItem()+"','"+clas.getSelectedItem()+"','"+major.getSelectedItem()+​"','"+birth.getText()+"',"+chinese.getText()+","+english.getText()+","+maths.getText()+","+total+")");​//关闭数据库连接​sql.close();​con.close();​JOptionPane.showMessageDialog(null,"成功录入学生信息与成绩","Message",​JOptionPane.INFORMATION_MESSAGE);​setVisible(false);​​}catch(java.lang.ClassNotFoundExceptionerr){​//捕捉错误,以对话框形式显示错误信息​​JOptionPane.showMessageDialog(null,err.getMessage(),"ClassNotFoundException:",​JOptionPane.INFORMATION_MESSAGE);​}catch(SQLExceptionex){​JOptionPane.showMessageDialog(null,ex.getMessage(),"SQLException:",JOptionPane.INFORMATION_MESSAGE);​}​}​elseif(e.getActionCommand()=="取消"){​setVisible(false);​}​}

}

import

java.awt.event.*;import

java.sql.Connection;import

java.sql.ResultSet;import

java.sql.SQLException;import

java.sql.Statement;

import

javax.swing.JButton;import

javax.swing.JOptionPane;

public

class

DeleteStudent

extends

StudentEdit

implements

ActionListener{​JButton

b3=new

JButton("删除");​​public

DeleteStudent(){​super();​​p12.add(b3);​//对非必要文本框设置不可编辑​s.setEnabled(false);​name.setEditable(false);​birth.setEditable(false);​grade.setEnabled(false);​clas.setEnabled(false);​chinese.setEditable(false);​english.setEditable(false);​maths.setEditable(false);​major.setEnabled(false);​b1.addActionListener(this);​b2.addActionListener(this);​b3.addActionListener(this);​}​@Override​public

void

actionPerformed(ActionEvente){​//

TODO

自动生成的方法存根​if(e.getActionCommand()=="确定"){​Stringnumber=num.getText();​if(number.equals("")){​JOptionPane.showMessageDialog(null,

"不存在此学生",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​​}​else​try{​Connectioncon=DataBaseCreate.getConnection();​Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);​//查找Num字段中与number相等的数据​ResultSetrs=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");​​if(rs.next()){​//显示到文本框​​s.setSelectedItem(rs.getString("Sex"));​name.setText(rs.getString("Name"));​birth.setText(rs.getString("Birth"));​chinese.setText(rs.getString("Chinese"));​english.setText(rs.getString("English"));​maths.setText(rs.getString("Maths"));​s.setSelectedItem(rs.getString("Sex"));​clas.setSelectedItem(rs.getString("Class"));​grade.setSelectedItem(rs.getString("Grade"));​major.setSelectedItem(rs.getString("Major"));​}​else{​JOptionPane.showMessageDialog(null,

"不存在此学生",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​}​​sql.close();​con.close();​​}catch(java.lang.ClassNotFoundExceptionerr){​JOptionPane.showMessageDialog(null,err.getMessage(),

"ClassNotFoundException:",​JOptionPane.INFORMATION_MESSAGE);​}catch

(SQLExceptionex){​JOptionPane.showMessageDialog(null,ex.getMessage(),

"SQLException:",JOptionPane.INFORMATION_MESSAGE);​}​}​else

if(e.getActionCommand()=="取消"){​setVisible(false);​}​else

if(e.getActionCommand()=="删除"){​Stringnumber=num.getText();​if(number.equals("")){​JOptionPane.showMessageDialog(null,

"不存在此学生",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​​}​else​try{​Connectioncon=DataBaseCreate.getConnection();​Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);​ResultSetrs=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");​​if(rs.next()){​//删除number所在行数据​rs.deleteRow();​//清空文本框​s.setSelectedItem("");​num.setText("");​name.setText("");​birth.setText("");​chinese.setText("");​english.setText("");​maths.setText("");​s.setSelectedItem("");​clas.setSelectedItem("");​grade.setSelectedItem("");​major.setSelectedItem("");​​JOptionPane.showMessageDialog(null,

"删除成功",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​}​else{​JOptionPane.showMessageDialog(null,

"不存在此学生",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​}​​sql.close();​con.close();​setVisible(false);​​}catch(java.lang.ClassNotFoundExceptionerr){​JOptionPane.showMessageDialog(null,err.getMessage(),

"ClassNotFoundException:",​JOptionPane.INFORMATION_MESSAGE);​}catch

(SQLExceptionex){​JOptionPane.showMessageDialog(null,ex.getMessage(),

"SQLException:",JOptionPane.INFORMATION_MESSAGE);​}​​}​}}

import

java.awt.event.ActionEvent;import

java.awt.event.ActionListener;import

java.sql.Connection;import

java.sql.ResultSet;import

java.sql.SQLException;import

java.sql.Statement;

import

javax.swing.JButton;import

javax.swing.JOptionPane;

public

class

UpdateStudent

extends

StudentEdit

implements

ActionListener{​​JButton

b3=new

JButton("修改");​​public

UpdateStudent(){​super();​p12.add(b3);​//对非必要文本框设置不可编辑​s.setEnabled(false);​name.setEditable(false);​birth.setEditable(false);​grade.setEnabled(false);​clas.setEnabled(false);​chinese.setEditable(false);​english.setEditable(false);​maths.setEditable(false);​major.setEnabled(false);​//注册监听器​b1.addActionListener(this);​b2.addActionListener(this);​b3.addActionListener(this);​}​@Override​public

void

actionPerformed(ActionEvente){​//

TODO

自动生成的方法存根​if(e.getActionCommand()=="确定"){​Stringnumber=num.getText();​if(number.equals("")){​JOptionPane.showMessageDialog(null,

"不存在此学生",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​​}​else​try{​Connectioncon=DataBaseCreate.getConnection();​Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);​ResultSetrs=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");​//通过学号查找并显示数据到文本框​if(rs.next()){​s.setSelectedItem(rs.getString("Sex"));​name.setText(rs.getString("Name"));​birth.setText(rs.getString("Birth"));​chinese.setText(rs.getString("Chinese"));​english.setText(rs.getString("English"));​maths.setText(rs.getString("Maths"));​s.setSelectedItem(rs.getString("Sex"));​clas.setSelectedItem(rs.getString("Class"));​grade.setSelectedItem(rs.getString("Grade"));​major.setSelectedItem(rs.getString("Major"));​//必要文本框设为可编辑​num.setEditable(false);​s.setEnabled(true);​name.setEditable(true);​birth.setEditable(true);​grade.setEnabled(true);​clas.setEnabled(true);​chinese.setEditable(true);​english.setEditable(true);​maths.setEditable(true);​major.setEnabled(true);​b1.setEnabled(false);​}​else{​JOptionPane.showMessageDialog(null,

"不存在此学生",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​}​​sql.close();​con.close();​​}catch(java.lang.ClassNotFoundExceptionerr){​JOptionPane.showMessageDialog(null,err.getMessage(),

"ClassNotFoundException:",​JOptionPane.INFORMATION_MESSAGE);​}catch

(SQLExceptionex){​JOptionPane.showMessageDialog(null,ex.getMessage(),

"SQLException:",JOptionPane.INFORMATION_MESSAGE);​}​}​else

if(e.getActionCommand()=="取消"){​setVisible(false);​}​else

if(e.getActionCommand()=="修改"){​Stringnumber=num.getText();​float

total=Float.parseFloat(​chinese.getText())+Float.parseFloat(english.getText())+Float.parseFloat(maths.getText());​​​try{​Connectioncon=DataBaseCreate.getConnection();​Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);​//通过学号查找数据​ResultSetrs1=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");​if(rs1.next()){​//修改各字段数值​rs1.updateString("Name",

name.getText());​rs1.updateString("Birth",

birth.getText());​rs1.updateString("Sex",(String)

s.getSelectedItem());​rs1.updateString("Class",(String)

clas.getSelectedItem());​rs1.updateString("Grade",(String)

grade.getSelectedItem());​rs1.updateString("Major",(String)

major.getSelectedItem());​rs1.updateString("Chinese",

chinese.getText());​rs1.updateString("English",

english.getText());​rs1.updateString("Maths",

maths.getText());​rs1.updateFloat("Total",total);​rs1.updateRow();​}​else{​JOptionPane.showMessageDialog(null,

"不存在此学生",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​}​​sql.close();​con.close();​JOptionPane.showMessageDialog(null,

"成功修改学生信息与成绩",

"Message",​JOptionPane.INFORMATION_MESSAGE);​setVisible(false);​​}catch(java.lang.ClassNotFoundExceptionerr){​JOptionPane.showMessageDialog(null,err.getMessage(),

"ClassNotFoundException:",​JOptionPane.INFORMATION_MESSAGE);​}catch

(SQLExceptionex){​JOptionPane.showMessageDialog(null,ex.getMessage(),

"SQLException:",JOptionPane.INFORMATION_MESSAGE);​}​​}​}}

import

java.awt.event.ActionEvent;import

java.awt.event.ActionListener;import

java.sql.Connection;import

java.sql.ResultSet;import

java.sql.SQLException;import

java.sql.Statement;

import

javax.swing.JOptionPane;

public

class

IndexSingle

extends

StudentEdit

implements

ActionListener{​​public

IndexSingle(){​super();​​​//对非必要文本框设置不可编辑​s.setEnabled(false);​name.setEditable(false);​birth.setEditable(false);​grade.setEnabled(false);​clas.setEnabled(false);​chinese.setEditable(false);​english.setEditable(false);​maths.setEditable(false);​major.setEnabled(false);​b1.addActionListener(this);​b2.addActionListener(this);​​}​@Override​public

void

actionPerformed(ActionEvente){​//

TODO

自动生成的方法存根​if(e.getActionCommand()=="确定"){​Stringnumber=num.getText();​if(number.equals("")){​JOptionPane.showMessageDialog(null,

"不存在此学生",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​​}​else​try{​Connectioncon=DataBaseCreate.getConnection();​Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);​//查找Num字段中与number相等的数据​ResultSetrs=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");​​if(rs.next()){​//显示到文本框​​s.setSelectedItem(rs.getString("Sex"));​name.setText(rs.getString("Name"));​birth.setText(rs.getString("Birth"));​chinese.setText(rs.getString("Chinese"));​english.setText(rs.getString("English"));​maths.setText(rs.getString("Maths"));​s.setSelectedItem(rs.getString("Sex"));​clas.setSelectedItem(rs.getString("Class"));​grade.setSelectedItem(rs.getString("Grade"));​major.setSelectedItem(rs.getString("Major"));​}​else{​JOptionPane.showMessageDialog(null,

"不存在此学生",

"Messages",​JOptionPane.INFORMATION_MESSAGE);​}​​sql.close();​con.close();​​}catch(java.lang.ClassNotFoundExceptionerr){​JOptionPane.showMessageDialog(null,err.getMessage(),

"ClassNotFoundException:",​JOptionPane.INFORMATION_MESSAGE);​}catch

(SQLExceptionex){​JOptionPane.showMessageDialog(null,ex.getMessage(),

"SQLException:",JOptionPane.INFORMATION_MESSAGE);​}​}​else

if(e.getActionCommand()=="取消"){​setVisible(false);​}​​​}}

import

java.awt.BorderLayout;

import

javax.swing.JButton;import

javax.swing.JFrame;import

javax.swing.JPanel;import

javax.swing.JScrollPane;import

javax.swing.JTextArea;

public

class

IndexOrManage

extends

JFrame{

​JButton

b1=new

JButton("显示");​JButton

b2=new

JButton("取消");​JButton

b3=new

JButton("保存");​JTextArea

text=new

JTextArea(15,40);​JPanel

p1=new

JPanel();​JPanel

p2=new

JPanel();​JScrollPane

scroll=new

JScrollPane(text);​public

IndexOrManage(){​​p2.add(b1);​p2.add(b2);​p2.add(b3);​//设置布局​getContentPane().setLayout(new

BorderLayout());​getContentPane().add(p1,BorderLayout.NORTH);​getContentPane().add(scroll,BorderLayout.CENTER);​getContentPane().add(p2,BorderLayout.SOUTH);​​setBounds(500,250,100,100);​pack();​setVisible(true);​}}

import

;import

;import

java.awt.event.ActionEvent;import

java.awt.event.ActionListener;import

java.sql.Connection;import

java.sql.ResultSet;import

java.sql.SQLException;import

java.sql.Statement;import

java.util.Arrays;

import

;import

javax.swing.JComboBox;import

;import

javax.swing.JLabel;import

javax.swing.JOptionPane;import

;import

;import

;

public

class

SubjectScoreRanking

extends

IndexOrManage

implementsActionListener{

​String[]

subjects={"","语文","英语","数学"};​JComboBox

subject=new

JComboBox(subjects);​JLabel

la=new

JLabel("选择查询科目");​​public

SubjectScoreRanking(){​super();​p1.add(la);​p1.add(subject);​//注册监听​b1.addActionListener(this);​b2.addActionListener(this);​b3.addActionListener(this);​​pack();​setVisible(true);​}​@Override​public

void

actionPerformed(ActionEvente){​//

TODO

自动生成的方法存根​if(e.getActionCommand()=="显示"){​text.setText("");​Strings="";​if(subject.getSelectedItem().equals("语文"))​s="Chinese";​else

if(subject.getSelectedItem().equals("英语"))​s="English";​else

if(subject.getSelectedItem().equals("数学"))​s="Maths";​else​JOptionPane.showMessageDialog(null,

"找不到该科目",

"Message",​JOptionPane.INFORMATION_MESSAGE);​if(s.equals("")){​​}​else​try{​Connectioncon=DataBaseCreate.getConnection();​Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);​ResultSetrs=sql.executeQuery("select"+s+"fromstudent");​rs.last();​//获取数据总行数​int

row=rs.getRow();​float

score[]=new

float[row];​rs.first();​int

i=0;​//将指定科目成绩放入数组​while(i<row){​score[i]=rs.getFloat(s);​rs.next();​i+=1;​}​//快速排序​Arrays.sort(score);​text.setLineWrap(true);

//激活自动换行功能​text.setWrapStyleWord(true);

//激活断行不断字功能​​text.append(subject.getSelectedItem()+"成绩排名:\r\n");​text.append("排名

姓名

成绩

\r\n");​ResultSetrs1;​int

rank=1;​float

ave=0;

​//计算平均分​for(int

j=row-1;j>=0;--j){​rs1=sql.executeQuery("select*fromstudentwhere"+s+"like'%"+score[j]+"%'");​​rs1.next();​text.append(rank+"

"+rs1.getString("Name")+"

"​+rs1.getFloat(s)+"\r\n");​rank+=1;​ave+=rs1.getFloat(s);​}​ave=ave/(rank-1);​text.append(subject.getSelectedItem()+"平均成绩:"+ave+"\r\n");​​}catch(java.lang.ClassNotFoundExceptionerr){​JOptionPane.showMessageDialog(null,err.getMessage(),

"ClassNotFoundException:",​JOptionPane.INFORMATION_MESSAGE);​}catch

(SQLExceptionex){​JOptionPane.showMessageDialog(null,ex.getMessage(),

"SQLException:",JOptionPane.INFORMATION_MESSAGE);​}​}​else

if(e.getActionCommand()=="取消"){​setVisible(false);​}​else

if(e.getActionCommand()=="保存"){​TxtSave

save=newTxtSave(text.getText(),"按"+subject.getSelectedItem()+"成绩排名");​}​}

}

import

;import

java.awt.event.ActionEvent;import

java.awt.event.ActionListener;import

java.sql.Connection;import

java.sql.ResultSet;import

java.sql.SQLException;import

java.sql.Statement;import

java.util.Arrays;

import

;import

;import

javax.swing.JOptionPane;import

;import

;import

;

public

class

TotalScoreRanking

extends

IndexOrManage

implementsActionListener{​​​​public

TotalScoreRanking(){​​super();​//注册监听​b1.addActionListener(this);​b2.addActionListener(this);​b3.addActionListener(this);​​pack();​setVisible(true);​}

​@Override​public

void

actionPerformed(ActionEvente){​//

TODO

自动生成的方法存根​if(e.getActionCommand()=="显示"){​b1.setEnabled(false);​try{​Connectioncon=DataBaseCreate.getConnection();​Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);​ResultSetrs=sql.executeQuery("selectTotalfromstudent");​rs.last();​//获取数据总行数​int

row=rs.getRow();​float

score[]=new

float[row];​rs.first();​int

i=0;​//将总分成绩放入数组​while(i<row){​score[i]=rs.getFloat("Total");​rs.next();​i+=1;​}​//快速排序​Arrays.sort(score);​​text.setLineWrap(true);

//激活自动换行功能​text.setWrapStyleWord(true);

//激活断行不断字功能​​text.append("总分成绩排名:\r\n");​text.append("排名

姓名

总分

\r\n");​ResultSetrs1;​int

rank=1;​float

ave=0;​for(int

j=row-1;j>=0;--j){​//通过总分查找数据​rs1=sql.executeQuery("select*fromstudentwhereTotallike'%"+score[j]+"%'");​rs1.next();​text.append(rank+"

"+rs1.getString("Name")+"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论