版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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);}@Overridepublic
void
actionPerformed(ActionEvente){//
TODO
自动生成的方法存根if(e.getActionCommand()=="确定"){Stringnumber=num.getText();if(number.equals("")){JOptionPane.showMessageDialog(null,
"不存在此学生",
"Messages",JOptionPane.INFORMATION_MESSAGE);}elsetry{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);}elsetry{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);}@Overridepublic
void
actionPerformed(ActionEvente){//
TODO
自动生成的方法存根if(e.getActionCommand()=="确定"){Stringnumber=num.getText();if(number.equals("")){JOptionPane.showMessageDialog(null,
"不存在此学生",
"Messages",JOptionPane.INFORMATION_MESSAGE);}elsetry{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);}@Overridepublic
void
actionPerformed(ActionEvente){//
TODO
自动生成的方法存根if(e.getActionCommand()=="确定"){Stringnumber=num.getText();if(number.equals("")){JOptionPane.showMessageDialog(null,
"不存在此学生",
"Messages",JOptionPane.INFORMATION_MESSAGE);}elsetry{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);}@Overridepublic
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";elseJOptionPane.showMessageDialog(null,
"找不到该科目",
"Message",JOptionPane.INFORMATION_MESSAGE);if(s.equals("")){}elsetry{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);}
@Overridepublic
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 30269.903-2018信息技术 传感器网络 第903部分:网关:逻辑接口》
- 深度解析(2026)《GBT 30061-2013氮化锰硅》
- 校长在全校教师大会上发言:坚守育人初心打造三有三声好课堂
- 深度解析(2026)《GBT 29828-2013信息安全技术 可信计算规范 可信连接架构》
- 深度解析(2026)《GBT 29719-2013滚动轴承 直线运动滚动支承 词汇》:构建精密直线传动时代的通 用语言与前瞻视野
- 《GBT 212-2008煤的工业分析方法》(2026年)合规红线与避坑实操手册
- 《FZT 97040-2021分丝整经机》(2026年)合规红线与避坑实操手册
- 《DL/T 1071-2023电力大件运输规范》(2026年)合规红线与避坑实操手册
- 贵州省铜仁市碧江区2025年中考一模英语试题(含答案)
- 第6章 金属塑性成形技术
- 2026江西省铁路航空投资集团有限公司第一批社会招聘23人笔试备考题库及答案详解
- 期中基础模拟卷(1-4单元试卷)2025-2026学年五年级数学下册人教版(含答案)
- 兰州翡翠华庭地热项目环评报告表
- 兴业证券集团2027届暑期实习生招聘笔试参考试题及答案解析
- GB/T 44693.4-2026危险化学品企业工艺平稳性第4部分:开工过程管理规范
- 环卫专用车研发工程师考试试卷及答案
- 禁种铲毒课件
- 2024-2025学年宁夏银川市唐徕中学南校区九年级下学期期中考试历史试卷
- 人教版(2024)八年级上册英语Unit 4 Amazing Plants and Animals 教案
- (2025年标准)球阀技术协议书
- 绵阳市格英达环保科技有限公司水基钻井废弃物综合利用及油气田钻采废水环保处理项目环评报告
评论
0/150
提交评论