用java编写的学生成绩管理系统代码
用java写的一个简单的学生成绩管理系统(含代码)

用java写的一个简单的学生成绩管理系统一.简洁的需求描述学生成绩管理系统(以下简称系统)为教师和学生的信息交流提供了一个统一的平台,方便了教师对成绩的管理,学生对于成绩的查询等1.教师可以通过系统查询所授课程的信息以及课程所对应的学生的信息;教师通过系统管理学生分数信息,包括查询,输入,修改学生成绩。
2.学生用户仅仅拥有查询功能,查询的信息包括所选修课程信息和分数信息。
系统用例图:用例图解释系统功能大致上分为分数管理,课程管理,个人信息查询,分数查询四大块。
其中教师用户使用分数管理和课程管理功能,学生用户使用个人信息查询和分数查询功能。
细分来,分数管理指的是分数的录入,更新,查询;课程管理包括所授课程查询,课程信息录入,修改等;个人信息查询针对学生而言,包括姓名,学号,班级等;分数查询则指的是某一学期所有课程的分数信息的查询。
二.简单的设计说明2.1系统类图2009-04-12 18:38三。
简单的数据库设计ER图:数据库详细设计说明:1).数据库说明数据库取名为score_manage_system其中有五个表,分别为:TEACHER(TNO ,TNAME,SEX,TITLE,PASSWORD)..............教师信息表STUDENT (SNO,SNAME,SEX,CLASS,PASSWORD) .................学生信息表COURSE(CNO,CNAME,CXUEFEN,HOUR)..............................课程信息表TEACH(TNO,CNO)............................................................................教师授课信息表STUDY(SNO,CNO,SCORE)...........................................................学生选课信息表2009-04-12 18:412).字段说明3)TEACHER字段类型主码外码说明TNO CHAR(20) √ √ 教师代码TNAME CHAR(10) 教师姓名SEX CHAR(1) 教师性别TITLE CHAR(10) 职称PASSWORD CHAR(20) 登录密码STUDENT字段类型主码外码说明SNO CHAR(20) √ √ 学号SNAME CHAR(10) 学生姓名SEX CHAR(2) 性别CLASS CHAR(5) 班级PASSWORD CHAR(20) 登录密码DEPARTMENT CHAR(20) 学生所属院系SCHOOL CHAR(20) 学生所属学校COURSE字段类型主码外码说明CNO CHAR(20) √ √ 课程代码CNAME CHAR(10) 课程名称XUEFEN int 学分,取值大于0小于10HOUR int 学时,大于等于0YEAR CHAR(5) 学年TERM CHAR(1) 学分TEACH字段类型主码外码说明TNO CHAR(20) √教师代码CNO CHAR(20) √课程代码STUDY字段类型主码外码说明SNO CHAR(20) √学号CNO CHAR(20) √课程代码SCORE DOUBLE 分数,0--1003).建表语句TEACHER建表语句:create table TEACHER(TNO char(20) not null, TNAME char(10) not null, SEX char(1) not null,TITLE char(10) not null, PASSWORD char(20) not null, primary key (TNO),check(SEX in('男','女')));STUDENT建表语句:create table STUDENT(SNO char(20) not null, SNAME char(10) not null, SEX char(2) not null,CLASS char(5) not null, PASSWORD char(20) not null,DEPARTMENT char(20) not null,SCHOOL char(20) not null, primary key (SNO),check(SEX in('男','女')));COURSE建表语句:create table COURSE(CNO char(20) not null, CNAME char(10) not null, XUEFEN int not null, HOUR int not null, YEAR char(5) not null,TERM char(1) not null,primary key (CNO),check(XUEFEN > 0 and XUEFEN < 10 and HOUR >= 0 ));TEACH建表语句:create table TEACH(TNO char(20) not null, CNO char(20) not null, primary key (TNO, CNO)foreign key(TNO,CNO)REFERENCES TEACHER COURSE ,foreign key(CNO)REFERENCES COURSE);alter table TEACHadd constraint FK_TEACH_REFERENCE_TEACHER foreign key (TNO) references TEACHER (TNO)on update restricton delete restrict;alter table TEACHadd constraint FK_TEACH_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO)on update restricton delete restrict;2009-04-12 18:41STUDY建表语句:create table STUDY(SNO char(20) not null, CNO char(20) not null,SCORE double ,primary key (SNO, CNO),check(SCORE >=0 and SCORE <= 100));alter table STUDYadd constraint FK_STUDY_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO)on update restricton delete restrict;alter table STUDYadd constraint FK_STUDY_REFERENCE_STUDENT foreign key (SNO) references STUDENT (SNO)on update restricton delete restrict;2009-04-12 18:42四。
用java写的一个简单的学生成绩管理系统(含代码)

用java写的一个简单的学生成绩管理系统一.简洁的需求描述学生成绩管理系统(以下简称系统)为教师和学生的信息交流提供了一个统一的平台,方便了教师对成绩的管理,学生对于成绩的查询等1.教师可以通过系统查询所授课程的信息以及课程所对应的学生的信息;教师通过系统管理学生分数信息,包括查询,输入,修改学生成绩。
2.学生用户仅仅拥有查询功能,查询的信息包括所选修课程信息和分数信息。
系统用例图:用例图解释系统功能大致上分为分数管理,课程管理,个人信息查询,分数查询四大块。
其中教师用户使用分数管理和课程管理功能,学生用户使用个人信息查询和分数查询功能。
细分来,分数管理指的是分数的录入,更新,查询;课程管理包括所授课程查询,课程信息录入,修改等;个人信息查询针对学生而言,包括姓名,学号,班级等;分数查询则指的是某一学期所有课程的分数信息的查询。
二.简单的设计说明2.1系统类图2009-04-12 18:38三。
简单的数据库设计ER图:数据库详细设计说明:1).数据库说明数据库取名为score_manage_system其中有五个表,分别为:TEACHER(TNO ,TNAME,SEX,TITLE,PASSWORD)..............教师信息表STUDENT (SNO,SNAME,SEX,CLASS,PASSWORD) .................学生信息表COURSE(CNO,CNAME,CXUEFEN,HOUR)..............................课程信息表TEACH(TNO,CNO)............................................................................教师授课信息表STUDY(SNO,CNO,SCORE)...........................................................学生选课信息表2009-04-12 18:412).字段说明3)TEACHER字段类型主码外码说明TNO CHAR(20) √ √ 教师代码TNAME CHAR(10) 教师姓名SEX CHAR(1) 教师性别TITLE CHAR(10) 职称PASSWORD CHAR(20) 登录密码STUDENT字段类型主码外码说明SNO CHAR(20) √ √ 学号SNAME CHAR(10) 学生姓名SEX CHAR(2) 性别CLASS CHAR(5) 班级PASSWORD CHAR(20) 登录密码DEPARTMENT CHAR(20) 学生所属院系SCHOOL CHAR(20) 学生所属学校COURSE字段类型主码外码说明CNO CHAR(20) √ √ 课程代码CNAME CHAR(10) 课程名称XUEFEN int 学分,取值大于0小于10HOUR int 学时,大于等于0YEAR CHAR(5) 学年TERM CHAR(1) 学分TEACH字段类型主码外码说明TNO CHAR(20) √教师代码CNO CHAR(20) √课程代码STUDY字段类型主码外码说明SNO CHAR(20) √学号CNO CHAR(20) √课程代码SCORE DOUBLE 分数,0--1003).建表语句TEACHER建表语句:create table TEACHER(TNO char(20) not null, TNAME char(10) not null, SEX char(1) not null,TITLE char(10) not null, PASSWORD char(20) not null, primary key (TNO),check(SEX in('男','女')));STUDENT建表语句:create table STUDENT(SNO char(20) not null, SNAME char(10) not null, SEX char(2) not null,CLASS char(5) not null, PASSWORD char(20) not null,DEPARTMENT char(20) not null,SCHOOL char(20) not null, primary key (SNO),check(SEX in('男','女')));COURSE建表语句:create table COURSE(CNO char(20) not null, CNAME char(10) not null, XUEFEN int not null, HOUR int not null, YEAR char(5) not null,TERM char(1) not null,primary key (CNO),check(XUEFEN > 0 and XUEFEN < 10 and HOUR >= 0 ));TEACH建表语句:create table TEACH(TNO char(20) not null, CNO char(20) not null, primary key (TNO, CNO)foreign key(TNO,CNO)REFERENCES TEACHER COURSE ,foreign key(CNO)REFERENCES COURSE);alter table TEACHadd constraint FK_TEACH_REFERENCE_TEACHER foreign key (TNO) references TEACHER (TNO)on update restricton delete restrict;alter table TEACHadd constraint FK_TEACH_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO)on update restricton delete restrict;2009-04-12 18:41STUDY建表语句:create table STUDY(SNO char(20) not null, CNO char(20) not null,SCORE double ,primary key (SNO, CNO),check(SCORE >=0 and SCORE <= 100));alter table STUDYadd constraint FK_STUDY_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO)on update restricton delete restrict;alter table STUDYadd constraint FK_STUDY_REFERENCE_STUDENT foreign key (SNO) references STUDENT (SNO)on update restricton delete restrict;2009-04-12 18:42四。
基于JAVA的学生成绩管理系统源代码

butt on 3=new Butt on(“修改");
butt on 4=new Butto n("添加");
tuichu=new Button("退岀");
p1=new Pan el();
p2=new Pan el();
p3=new Pan el();
Button butt on 1,butt on 2,butt on 3,butto n4,tuichu;
Pan el p1, p2,p3;
Label l1,l2,l3;
TextField a1,a2;
Box b1,b2,b3,b4,b5;
ss s;
zhuchuangkouO{("登陆");
(this);
(l1);
(b5);
add( p1,;
add( p2,;
add( p3,;
addWi ndowListe ner(new Win dowAda pter(){
p ublic void wi ndowClosi ng(Wi ndowEve nt e){ dis pose();
}
});
setBackgrou nd;
add( p2,;
add( p3,;
addWi ndowListe ner(new Win dowAda pter(){
p ublic void win dowClosi ng(Wi ndowEve nt e){
dis pose();
});
setBackgrou nd;
setBou nds(10, 10, 1000, 500);
java学生成绩管理系统源码

文件addmessage.java代码:import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class addmessage extends JFrame implements ActionListener{ JTextField t1,t2,t3,t4,t5;JTable table;JButton but1;JLabel lab1,lab2,lab3,lab4,lab5;JPanel p1;addmessage(){super("增加");setBounds(350,100,470,400);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();lab1=new JLabel("学号"); t1=new JTextField(10);lab2=new JLabel("姓名"); t2=new JTextField(10);lab3=new JLabel("课程名"); t3=new JTextField(10);lab4=new JLabel("状态"); t4=new JTextField(10);lab5=new JLabel("成绩"); t5=new JTextField(10);but1=new JButton("添加");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(lab2);p1.add(t2);p1.add(lab3);p1.add(t3);p1.add(lab4);p1.add(t4);p1.add(lab5);p1.add(t5);p1.add(but1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0 ;String sql1=null,sql2=null,update=null;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){ //添加-------------------try{con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();sql1="INSERT INTO 学生成绩表VALUES ('"+t1.getText()+"','"+t2.getText()+"','"+t3.getText()+"','"+t4.getText()+"','"+t5.getText()+"')";String num1=t1.getText();String num2=t1.getText();String sele="select * from 学生成绩表where 学号='"+num1+"' and 课程名='"+num2+"'";ResultSet rs=stmt.executeQuery(sele);if(rs.next()){JOptionPane.showMessageDialog(this, "已有该条记录,请核实!");}else{stmt.executeUpdate(sql1);JOptionPane.showMessageDialog(this, "添加成功!");}t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}}文件deletemessage.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class deletemessage extends JFrame implements ActionListener{ JTextField t1,t2,t3;JTable table;JButton but1;JLabel lab1,lab2,lab3;JPanel p1;deletemessage(){super("删除");setBounds(350,100,470,400);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();lab1=new JLabel("学号"); t1=new JTextField(10);lab2=new JLabel("姓名"); t2=new JTextField(10);lab3=new JLabel("课程名"); t3=new JTextField(10);but1=new JButton("删除");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(lab2);p1.add(t2);p1.add(lab3);p1.add(t3);p1.add(but1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){String sql1=null,sql2=null;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){ //删除----------------------------try{String num1=t1.getText();String num2=t2.getText();String num3=t3.getText();sql2="delete from 学生成绩表where 学号='"+num1+"'and 课程名='"+num3+"'";con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();sql1="select * from 学生成绩表where 学号='"+num1+"' and 姓名='"+num2+"' and 课程名='"+num3+"'";ResultSet rs=stmt.executeQuery(sql1);if(rs.next()){stmt.executeUpdate(sql2);JOptionPane.showMessageDialog(this, "删除成功!");}else{JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}t1.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}}文件entry.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;class entry extends JFrame implements ActionListener{ int flag=1;String user,pass;JPanel pa;JLabel lab1,lab2;JTextField tf1;JPasswordField tf2;JButton btu1,btu2;JPanel pa1,pa2,pa4;entry(){super("学生成绩管理系统");setBounds(400,200,400,300);GridBagLayout gbL=new GridBagLayout();GridBagConstraints gbc=new GridBagConstraints();setLayout(gbL);gbc.fill=GridBagConstraints.HORIZONTAL;gbc.anchor=GridBagConstraints.CENTER;lab1=new JLabel("请输入帐号");lab2=new JLabel("请输入密码");tf2=new JPasswordField(10);tf2.setEchoChar('*');tf1=new JTextField(10);tf1.addActionListener(this);pa1=new JPanel();pa1.add(lab1);pa1.add(tf1);gbc.gridx=1;gbc.gridy=1;gbc.insets=new Insets(2,5,0,5);gbL.setConstraints(pa1,gbc);add(pa1);tf2.addActionListener(this);pa2=new JPanel();pa2.add(lab2);pa2.add(tf2);gbc.gridx=1;gbc.gridy=2;gbc.insets=new Insets(2,5,2,5);gbL.setConstraints(pa2,gbc);add(pa2);btu1=new JButton("确定");btu1.addActionListener(this);btu2=new JButton("退出");btu2.addActionListener(this);pa4=new JPanel();pa4.add(btu1);pa4.add(btu2);gbc.gridx=1;gbc.gridy=4;gbc.insets=new Insets(2,5,2,5);gbL.setConstraints(pa4,gbc);add(pa4);}public void actionPerformed(ActionEvent e){loginsure ls;if(e.getSource()==btu1){user=tf1.getText();pass=tf2.getText();try{ls=new loginsure(user,pass);this.setVisible(false);}catch (SQLException e1){e1.printStackTrace();}catch (ClassNotFoundException e1){e1.printStackTrace();}}if(e.getSource()==btu2){dispose();System.exit(0);}}}class loginsure{int i=0;String name=null,pwd=null, ustype=null;public loginsure(String s,String a) throws SQLException,ClassNotFoundException{ String driver ="org.gjt.mm.mysql.Driver";Class.forName(driver);String URL = "jdbc:mysql://localhost:3306/学生成绩系统";Connection conn = DriverManager.getConnection(URL,"root","123");Statement stmt=conn.createStatement();ResultSet rs = stmt.executeQuery("select * from 用户管理表");while (rs.next()){name=rs.getString("用户名").trim();pwd=rs.getString("密码").trim();ustype=rs.getString("权限组").trim();if (s.equals(name)&&a.equals(pwd)){i=1;if(ustype.trim().equals("管理员")){teacher tea=new teacher();tea.setVisible(true);}if(ustype.trim().equals("学生")){student stu=new student(name);stu.setVisible(true);}}}if(i==0)JOptionPane.showMessageDialog(null, "用户名或者密码错误", "警告",JOptionPane.W ARNING_MESSAGE);stmt.close();conn.close();}}文件inquiry.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class inquiry extends JFrame implements ActionListener{ JTextField t1;JTable table;JButton but1;JLabel lab1;JPanel p1;JTable table1=null;DefaultTableModel demod1=null;String n[]={"课程名","状态","成绩"};String [][]data=new String[0][0];String No;inquiry(String no){super("成绩");No=no;setBounds(350,100,470,400);p1=new JPanel();lab1=new JLabel("课程名"); t1=new JTextField(10);but1=new JButton("查询成绩");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(but1);demod1=new DefaultTableModel(data,n);table1=new JTable(demod1);JScrollPane s1=new JScrollPane(table1);p1.add(s1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0;String sql1;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){try{String num=t1.getText();sql1="select * from 学生成绩表where 学号='"+No+"'";if(!num.equals("")){sql1="select * from 学生成绩表where 课程名='"+num+"'and 学号='"+No+"'";}con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql1);removeAllRecord();while(rs.next()){Vector data=new Vector();data.addElement(rs.getString(3));data.addElement(rs.getString(4));data.addElement(rs.getString(5));demod1.addRow(data);i=1;}if(i==0){JOptionPane.showMessageDialog(this, "没有此课程!请重新输入");}table1.revalidate();t1.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}public void removeAllRecord(){//将界面上的所有记录清空int rowcount;while(true){//删除所有存在的行rowcount = demod1.getRowCount()-1;if(rowcount >= 0){demod1.removeRow(rowcount);demod1.setRowCount(rowcount);}elsebreak;}}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;public class main{public static void main(String args[]){entry ent=new entry();ent.setVisible(true);ent.setResizable(false);}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class record extends JFrame implements ActionListener{ JTextField t1;TextArea t;JButton but1;JLabel L1;JPanel p1;JTable table1=null;DefaultTableModel demod1=null;String n[]={"平均成绩","优秀","良好","不及格"};String [][]data=new String[0][0];public record(){super("统计");setBounds(350,30,470,610);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();L1=new JLabel("课程名");but1=new JButton("查询");but1.addActionListener(this);t1=new JTextField(10);p1.add(L1);p1.add(t1);p1.add(but1);demod1=new DefaultTableModel(data,n);table1=new JTable(demod1);JScrollPane s1=new JScrollPane(table1);p1.add(s1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0;String sql1;String sql2;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){try{String num1=t1.getText();if(num1.equals("")){JOptionPane.showMessageDialog(this, "学号不能为空","请输入学号!",JOptionPane.W ARNING_MESSAGE);}else{sql1="select * from 学生成绩表where 学号='"+num1+"'";sql1="select avg(成绩) from 学生成绩表where 课程名='"+num1+"'";sql2="select count(*) from 学生成绩表where 课程名='"+num1+"' and 成绩>=90";con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql1);removeAllRecord();while(rs.next()){Vector data=new Vector();data.addElement(rs.getInt(1));/*data.addElement(rs.getString(3));data.addElement(rs.getString(4));data.addElement(rs.getString(5));*/demod1.addRow(data);i=1;}rs=stmt.executeQuery(sql2);while(rs.next()){int n = rs.getInt(1);System.out.println(n);}if(i==0){JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}table1.revalidate();t1.setText("");stmt.close();con.close();}}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}public void removeAllRecord(){//将界面上的所有记录清空int rowcount;while(true){//删除所有存在的行rowcount = demod1.getRowCount()-1;if(rowcount >= 0){demod1.removeRow(rowcount);demod1.setRowCount(rowcount);}elsebreak;}}}文件revise.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class revise extends JFrame implements ActionListener{ JTextField t1,t2,t3,t4,t5;JTable table;JButton but1;JLabel lab1,lab2,lab3,lab4,lab5;JPanel p1;int n=0;revise(){super("修改");setBounds(350,100,470,400);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();lab1=new JLabel("学号"); t1=new JTextField(10);lab2=new JLabel("姓名"); t2=new JTextField(10);lab3=new JLabel("课程名"); t3=new JTextField(10);lab4=new JLabel("状态"); t4=new JTextField(10);lab5=new JLabel("成绩"); t5=new JTextField(10);but1=new JButton("修改");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(lab2);p1.add(t2);p1.add(lab3);p1.add(t3);p1.add(lab4);p1.add(t4);p1.add(lab5);p1.add(t5);p1.add(but1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){String sql1=null,update=null;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){ //修改---------------------------try{String num1=t3.getText();String num2=t1.getText();//String num3=t5.getText();n= Integer.valueOf(t5.getText()).intValue();System.out.print(n);con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();sql1="select * from 学生成绩表where 学号='"+num2+"' and 课程名='"+num1+"'";update="update 学生成绩表set 课程名='"+t3.getText()+"',状态='"+t4.getText()+"',成绩='"+n+"' where 学号='"+num2+"'";ResultSet rs=stmt.executeQuery(sql1);if(rs.next()){stmt.executeUpdate(update);JOptionPane.showMessageDialog(this, "修改成功!");}else{JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;class student extends JFrame implements ActionListener{ inquiry cho;JMenuBar mb;JMenu m1;JMenuItem mt1,mt2;String No;Icon icon;JLabel lab;student(String no){super("学生");icon=new ImageIcon("123.jpg");lab=new JLabel(icon);add(lab);No=no;setBounds(130,10,800,500);JMenuBar mb=new JMenuBar();setJMenuBar(mb);m1=new JMenu("操作");mt1=new JMenuItem("查询成绩");mt2=new JMenuItem("退出");m1.add(mt1);mt1.addActionListener(this);m1.addSeparator();m1.add(mt2);mt2.addActionListener(this);m1.addActionListener(this);mb.add(m1);}public void actionPerformed(ActionEvent e){if(e.getSource()==mt1)cho=new inquiry(No);if(e.getSource()==mt2)dispose();}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;class teacher extends JFrame implements ActionListener{ addmessage add;deletemessage delete;revise re;user use;record rec;MenuBar mb;Menu m1;MenuItem mt1,mt2,mt3,mt4,mt5,mt6;Icon icon;JLabel lab;teacher(){super("管理员");setBounds(130,10,800,500);MenuBar mb=new MenuBar();setMenuBar(mb);m1=new Menu("操作");mt1=new MenuItem("增加");mt2=new MenuItem("删除");mt3=new MenuItem("修改");mt4=new MenuItem("查询");mt5=new MenuItem("统计");mt6 = new MenuItem("退出");icon=new ImageIcon("123.jpg");lab=new JLabel(icon);add(lab);mt1.addActionListener(this);m1.add(mt1);mt2.addActionListener(this);m1.add(mt2);mt3.addActionListener(this);m1.add(mt3);mt4.addActionListener(this);m1.add(mt4);mt5.addActionListener(this);m1.add(mt5);m1.addSeparator();mt6.addActionListener(this);m1.add(mt6);m1.addActionListener(this);mb.add(m1);}public void actionPerformed(ActionEvent e){if(e.getSource()==mt1)add=new addmessage();if(e.getSource()==mt2)delete=new deletemessage();if(e.getSource()==mt3)re=new revise();if(e.getSource()==mt4)use=new user();if(e.getSource()==mt5)rec=new record();if(e.getSource()==mt6)dispose();}}文件user.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class user extends JFrame implements ActionListener{ JTextField t1,t2;TextArea t;JButton but1;JLabel L1,L2;JPanel p1;JTable table1=null;DefaultTableModel demod1=null;String n[]={"姓名","课程名","状态","成绩"};String [][]data=new String[0][0];public user(){super("查询");setBounds(350,30,470,610);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();L1=new JLabel("学号");L2=new JLabel("课程名");but1=new JButton("查询");but1.addActionListener(this);t1=new JTextField(10);t2=new JTextField(10);p1.add(L1);p1.add(t1);p1.add(L2);p1.add(t2);p1.add(but1);demod1=new DefaultTableModel(data,n);table1=new JTable(demod1);JScrollPane s1=new JScrollPane(table1);p1.add(s1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0;String sql1;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){try{String num1=t1.getText();String num2=t2.getText();if(num1.equals("")){JOptionPane.showMessageDialog(this, "学号不能为空","请输入学号!",JOptionPane.W ARNING_MESSAGE);}else{sql1="select * from 学生成绩表where 学号='"+num1+"'";if(!num2.equals("")){sql1="select * from 学生成绩表where 课程名='"+num2+"'and 学号='"+num1+"'";}con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql1);removeAllRecord();while(rs.next()){Vector data=new Vector();data.addElement(rs.getString(2));data.addElement(rs.getString(3));data.addElement(rs.getString(4));data.addElement(rs.getString(5));demod1.addRow(data);i=1;}if(i==0){JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}table1.revalidate();t1.setText("");stmt.close();con.close();}}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}public void removeAllRecord(){//将界面上的所有记录清空int rowcount;while(true){//删除所有存在的行rowcount = demod1.getRowCount()-1;if(rowcount >= 0){demod1.removeRow(rowcount);demod1.setRowCount(rowcount);}elsebreak;}}}附件sql语句create table 用户管理表(用户名varchar(25),密码varchar(15),权限组varchar(15))insert into 用户管理表values('01','01','学生')insert into 用户管理表values('admin','admin','管理员') select * from 用户管理表create table 学生成绩表(学号varchar(25),姓名varchar(15),课程名varchar(25),状态varchar(5),成绩int(11))insert into 学生成绩表values('01','朱亮','数据库','通过','88') insert into 学生成绩表values('02','张三','数据库','未通过','55') select * from 学生信息管理表。
Java语言学生成绩管理系统(含源代码)

Java语言学生成绩管理系统(含源代码)
简介
该文档介绍了一个用Java语言编写的学生成绩管理系统,包括系统的功能和使用方法。
功能
该系统具有以下功能:
- 学生信息管理:包括学生的姓名、学号、性别等基本信息的录入和管理。
- 成绩录入和统计:学生的各科成绩可以通过系统录入,并且可以进行成绩统计和分析。
- 成绩查询和打印:通过学号或姓名可以查询学生的成绩,并且可以将成绩单以打印的形式输出。
使用方法
- 打开终端或命令行界面,输入以下命令克隆代码库:
git clone <代码库地址>
- 导入项目到Java开发工具中。
2. 编译和运行:
- 在Java开发工具中,找到项目的入口文件或主类。
- 点击运行按钮或使用快捷键进行编译和运行。
3. 使用系统:
- 在系统中选择相应的功能,如学生信息管理、成绩录入和统计、成绩查询和打印等。
- 根据系统的提示,进行相应的操作和输入。
- 根据需要,可以多次使用系统的各个功能。
注意事项
- 该系统仅用于学生管理和成绩统计,不涉及其他法律问题和敏感信息。
- 如需修改或添加系统功能,请参考源代码进行相应的开发和调整。
java学生成绩管理系统源码

文件addmessage.java代码:import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class addmessage extends JFrame implements ActionListener{ JTextField t1,t2,t3,t4,t5;JTable table;JButton but1;JLabel lab1,lab2,lab3,lab4,lab5;JPanel p1;addmessage(){super("增加");setBounds(350,100,470,400);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();lab1=new JLabel("学号"); t1=new JTextField(10);lab2=new JLabel("姓名"); t2=new JTextField(10);lab3=new JLabel("课程名"); t3=new JTextField(10);lab4=new JLabel("状态"); t4=new JTextField(10);lab5=new JLabel("成绩"); t5=new JTextField(10);but1=new JButton("添加");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(lab2);p1.add(t2);p1.add(lab3);p1.add(t3);p1.add(lab4);p1.add(t4);p1.add(lab5);p1.add(t5);p1.add(but1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0 ;String sql1=null,sql2=null,update=null;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){ //添加-------------------try{con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();sql1="INSERT INTO 学生成绩表VALUES ('"+t1.getText()+"','"+t2.getText()+"','"+t3.getText()+"','"+t4.getText()+"','"+t5.getText()+"')";String num1=t1.getText();String num2=t1.getText();String sele="select * from 学生成绩表where 学号='"+num1+"' and 课程名='"+num2+"'";ResultSet rs=stmt.executeQuery(sele);if(rs.next()){JOptionPane.showMessageDialog(this, "已有该条记录,请核实!");}else{stmt.executeUpdate(sql1);JOptionPane.showMessageDialog(this, "添加成功!");}t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}}文件deletemessage.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class deletemessage extends JFrame implements ActionListener{ JTextField t1,t2,t3;JTable table;JButton but1;JLabel lab1,lab2,lab3;JPanel p1;deletemessage(){super("删除");setBounds(350,100,470,400);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();lab1=new JLabel("学号"); t1=new JTextField(10);lab2=new JLabel("姓名"); t2=new JTextField(10);lab3=new JLabel("课程名"); t3=new JTextField(10);but1=new JButton("删除");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(lab2);p1.add(t2);p1.add(lab3);p1.add(t3);p1.add(but1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){String sql1=null,sql2=null;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){ //删除----------------------------try{String num1=t1.getText();String num2=t2.getText();String num3=t3.getText();sql2="delete from 学生成绩表where 学号='"+num1+"'and 课程名='"+num3+"'";con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();sql1="select * from 学生成绩表where 学号='"+num1+"' and 姓名='"+num2+"' and 课程名='"+num3+"'";ResultSet rs=stmt.executeQuery(sql1);if(rs.next()){stmt.executeUpdate(sql2);JOptionPane.showMessageDialog(this, "删除成功!");}else{JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}t1.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}}文件entry.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;class entry extends JFrame implements ActionListener{ int flag=1;String user,pass;JPanel pa;JLabel lab1,lab2;JTextField tf1;JPasswordField tf2;JButton btu1,btu2;JPanel pa1,pa2,pa4;entry(){super("学生成绩管理系统");setBounds(400,200,400,300);GridBagLayout gbL=new GridBagLayout();GridBagConstraints gbc=new GridBagConstraints();setLayout(gbL);gbc.fill=GridBagConstraints.HORIZONTAL;gbc.anchor=GridBagConstraints.CENTER;lab1=new JLabel("请输入帐号"); lab2=new JLabel("请输入密码");tf2=new JPasswordField(10);tf2.setEchoChar('*');tf1=new JTextField(10);tf1.addActionListener(this);pa1=new JPanel();pa1.add(lab1);pa1.add(tf1);gbc.gridx=1;gbc.gridy=1;gbc.insets=new Insets(2,5,0,5); gbL.setConstraints(pa1,gbc);add(pa1);tf2.addActionListener(this);pa2=new JPanel();pa2.add(lab2);pa2.add(tf2);gbc.gridx=1;gbc.gridy=2;gbc.insets=new Insets(2,5,2,5); gbL.setConstraints(pa2,gbc);add(pa2);btu1=new JButton("确定");btu1.addActionListener(this);btu2=new JButton("退出");btu2.addActionListener(this);pa4=new JPanel();pa4.add(btu1);pa4.add(btu2);gbc.gridx=1;gbc.gridy=4;gbc.insets=new Insets(2,5,2,5);gbL.setConstraints(pa4,gbc);add(pa4);}public void actionPerformed(ActionEvent e){ loginsure ls;if(e.getSource()==btu1){user=tf1.getText();pass=tf2.getText();try{ls=new loginsure(user,pass);this.setVisible(false);}catch (SQLException e1){e1.printStackTrace();}catch (ClassNotFoundException e1){e1.printStackTrace();}}if(e.getSource()==btu2){dispose();System.exit(0);}}}class loginsure{int i=0;String name=null,pwd=null, ustype=null;public loginsure(String s,String a) throws SQLException,ClassNotFoundException{ String driver ="org.gjt.mm.mysql.Driver";Class.forName(driver);String URL = "jdbc:mysql://localhost:3306/学生成绩系统";Connection conn = DriverManager.getConnection(URL,"root","123");Statement stmt=conn.createStatement();ResultSet rs = stmt.executeQuery("select * from 用户管理表");while (rs.next()){name=rs.getString("用户名").trim();pwd=rs.getString("密码").trim();ustype=rs.getString("权限组").trim();if (s.equals(name)&&a.equals(pwd)){i=1;if(ustype.trim().equals("管理员")){teacher tea=new teacher();tea.setVisible(true);}if(ustype.trim().equals("学生")){student stu=new student(name);stu.setVisible(true);}}}if(i==0)JOptionPane.showMessageDialog(null, "用户名或者密码错误", "警告",JOptionPane.WARNING_MESSAGE);stmt.close();conn.close();}}文件inquiry.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class inquiry extends JFrame implements ActionListener{ JTextField t1;JTable table;JButton but1;JLabel lab1;JPanel p1;JTable table1=null;DefaultT ableModel demod1=null;String n[]={"课程名","状态","成绩"};String [][]data=new String[0][0];String No;inquiry(String no){super("成绩");No=no;setBounds(350,100,470,400);p1=new JPanel();lab1=new JLabel("课程名"); t1=new JTextField(10);but1=new JButton("查询成绩");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(but1);demod1=new DefaultTableModel(data,n);table1=new JTable(demod1);JScrollPane s1=new JScrollPane(table1);p1.add(s1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0;String sql1;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){try{String num=t1.getText();sql1="select * from 学生成绩表where 学号='"+No+"'";if(!num.equals("")){sql1="select * from 学生成绩表where 课程名='"+num+"'and 学号='"+No+"'";}con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql1);removeAllRecord();while(rs.next()){Vector data=new Vector();data.addElement(rs.getString(3));data.addElement(rs.getString(4));data.addElement(rs.getString(5));demod1.addRow(data);i=1;}if(i==0){JOptionPane.showMessageDialog(this, "没有此课程!请重新输入");}table1.revalidate();t1.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}public void removeAllRecord(){//将界面上的所有记录清空int rowcount;while(true){//删除所有存在的行rowcount = demod1.getRowCount()-1;if(rowcount >= 0){demod1.removeRow(rowcount);demod1.setRowCount(rowcount);}elsebreak;}}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;public class main{public static void main(String args[]){entry ent=new entry();ent.setVisible(true);ent.setResizable(false);}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class record extends JFrame implements ActionListener{ JTextField t1;TextArea t;JButton but1;JLabel L1;JPanel p1;JTable table1=null;DefaultT ableModel demod1=null;String n[]={"平均成绩","优秀","良好","不及格"};String [][]data=new String[0][0];public record(){super("统计");setBounds(350,30,470,610);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();L1=new JLabel("课程名");but1=new JButton("查询");but1.addActionListener(this);t1=new JTextField(10);p1.add(L1);p1.add(t1);p1.add(but1);demod1=new DefaultTableModel(data,n);table1=new JTable(demod1);JScrollPane s1=new JScrollPane(table1);p1.add(s1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0;String sql1;String sql2;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){try{String num1=t1.getText();if(num1.equals("")){JOptionPane.showMessageDialog(this, "学号不能为空","请输入学号!",JOptionPane.WARNING_MESSAGE);}else{sql1="select * from 学生成绩表where 学号='"+num1+"'";sql1="select avg(成绩) from 学生成绩表where 课程名='"+num1+"'";sql2="select count(*) from 学生成绩表where 课程名='"+num1+"' and 成绩>=90";con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql1);removeAllRecord();while(rs.next()){Vector data=new Vector();data.addElement(rs.getInt(1));/*data.addElement(rs.getString(3));data.addElement(rs.getString(4));data.addElement(rs.getString(5));*/demod1.addRow(data);i=1;}rs=stmt.executeQuery(sql2);while(rs.next()){int n = rs.getInt(1);System.out.println(n);}if(i==0){JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}table1.revalidate();t1.setText("");stmt.close();con.close();}}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}public void removeAllRecord(){//将界面上的所有记录清空int rowcount;while(true){//删除所有存在的行rowcount = demod1.getRowCount()-1;if(rowcount >= 0){demod1.removeRow(rowcount);demod1.setRowCount(rowcount);}elsebreak;}}}文件revise.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class revise extends JFrame implements ActionListener{ JTextField t1,t2,t3,t4,t5;JTable table;JButton but1;JLabel lab1,lab2,lab3,lab4,lab5;JPanel p1;int n=0;revise(){super("修改");setBounds(350,100,470,400);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();lab1=new JLabel("学号"); t1=new JTextField(10);lab2=new JLabel("姓名"); t2=new JTextField(10);lab3=new JLabel("课程名"); t3=new JTextField(10);lab4=new JLabel("状态"); t4=new JTextField(10);lab5=new JLabel("成绩"); t5=new JTextField(10);but1=new JButton("修改");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(lab2);p1.add(t2);p1.add(lab3);p1.add(t3);p1.add(lab4);p1.add(t4);p1.add(lab5);p1.add(t5);p1.add(but1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){String sql1=null,update=null;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){ //修改---------------------------try{String num1=t3.getText();String num2=t1.getText();//String num3=t5.getText();n= Integer.valueOf(t5.getText()).intValue();System.out.print(n);con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();sql1="select * from 学生成绩表where 学号='"+num2+"' and 课程名='"+num1+"'";update="update 学生成绩表set 课程名='"+t3.getText()+"',状态='"+t4.getText()+"',成绩='"+n+"' where 学号='"+num2+"'";ResultSet rs=stmt.executeQuery(sql1);if(rs.next()){stmt.executeUpdate(update);JOptionPane.showMessageDialog(this, "修改成功!");}else{JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}}文件student.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;class student extends JFrame implements ActionListener{ inquiry cho;JMenuBar mb;JMenu m1;JMenuItem mt1,mt2;String No;Icon icon;JLabel lab;student(String no){super("学生");icon=new ImageIcon("123.jpg");lab=new JLabel(icon);add(lab);No=no;setBounds(130,10,800,500);JMenuBar mb=new JMenuBar();setJMenuBar(mb);m1=new JMenu("操作");mt1=new JMenuItem("查询成绩");mt2=new JMenuItem("退出");m1.add(mt1);mt1.addActionListener(this);m1.addSeparator();m1.add(mt2);mt2.addActionListener(this);m1.addActionListener(this);mb.add(m1);}public void actionPerformed(ActionEvent e){ if(e.getSource()==mt1)cho=new inquiry(No);if(e.getSource()==mt2)dispose();}}文件teacher.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;class teacher extends JFrame implements ActionListener{ addmessage add;deletemessage delete;revise re;user use;record rec;MenuBar mb;Menu m1;MenuItem mt1,mt2,mt3,mt4,mt5,mt6;Icon icon;JLabel lab;teacher(){super("管理员");setBounds(130,10,800,500);MenuBar mb=new MenuBar();setMenuBar(mb);m1=new Menu("操作");mt1=new MenuItem("增加"); mt2=new MenuItem("删除"); mt3=new MenuItem("修改"); mt4=new MenuItem("查询"); mt5=new MenuItem("统计"); mt6 = new MenuItem("退出"); icon=new ImageIcon("123.jpg"); lab=new JLabel(icon);add(lab);mt1.addActionListener(this);m1.add(mt1);mt2.addActionListener(this);m1.add(mt2);mt3.addActionListener(this);m1.add(mt3);mt4.addActionListener(this);m1.add(mt4);mt5.addActionListener(this);m1.add(mt5);m1.addSeparator();mt6.addActionListener(this);m1.add(mt6);m1.addActionListener(this);mb.add(m1);}public void actionPerformed(ActionEvent e){if(e.getSource()==mt1)add=new addmessage();if(e.getSource()==mt2)delete=new deletemessage();if(e.getSource()==mt3)re=new revise();if(e.getSource()==mt4)use=new user();if(e.getSource()==mt5)rec=new record();if(e.getSource()==mt6)dispose();}}文件user.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class user extends JFrame implements ActionListener{ JTextField t1,t2;TextArea t;JButton but1;JLabel L1,L2;JPanel p1;JTable table1=null;DefaultT ableModel demod1=null;String n[]={"姓名","课程名","状态","成绩"};String [][]data=new String[0][0];public user(){super("查询");setBounds(350,30,470,610);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();L1=new JLabel("学号");L2=new JLabel("课程名");but1=new JButton("查询");but1.addActionListener(this);t1=new JTextField(10);t2=new JTextField(10);p1.add(L1);p1.add(t1);p1.add(L2);p1.add(t2);p1.add(but1);demod1=new DefaultTableModel(data,n);table1=new JTable(demod1);JScrollPane s1=new JScrollPane(table1);p1.add(s1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){ int i=0;String sql1;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){try{String num1=t1.getText();String num2=t2.getText();if(num1.equals("")){JOptionPane.showMessageDialog(this, "学号不能为空","请输入学号!",JOptionPane.WARNING_MESSAGE);}else{sql1="select * from 学生成绩表where 学号='"+num1+"'";if(!num2.equals("")){sql1="select * from 学生成绩表where 课程名='"+num2+"'and 学号='"+num1+"'";}con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql1);removeAllRecord();while(rs.next()){Vector data=new Vector();data.addElement(rs.getString(2));data.addElement(rs.getString(3));data.addElement(rs.getString(4));data.addElement(rs.getString(5));demod1.addRow(data);i=1;}if(i==0){JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}table1.revalidate();t1.setText("");stmt.close();con.close();}}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}public void removeAllRecord(){//将界面上的所有记录清空int rowcount;while(true){//删除所有存在的行rowcount = demod1.getRowCount()-1;if(rowcount >= 0){demod1.removeRow(rowcount);demod1.setRowCount(rowcount);}elsebreak;}}}附件sql语句create table 用户管理表(用户名varchar(25),密码varchar(15),权限组varchar(15))insert into 用户管理表values('01','01','学生')insert into 用户管理表values('admin','admin','管理员') select * from 用户管理表create table 学生成绩表(学号varchar(25),姓名varchar(15),课程名varchar(25),状态varchar(5),成绩int(11))insert into 学生成绩表values('01','朱亮','数据库','通过','88') insert into 学生成绩表values('02','张三','数据库','未通过','55') select * from 学生信息管理表。
java阶段项目:学生成绩管理系统(面向对象)

Java 学生信息管理系统(面向对象)一:效果如下:二:具体实现代码如下:Student类Student .javapublic class Student {private int id;private String name;private int age;private int java;private int csharp;private int html;private int sql;private int sum;private int avg;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getJava() {return java;}public void setJava(int java) { this.java = java;}public int getCsharp() {return csharp;}public void setCsharp(int csharp) { this.csharp = csharp;}public int getHtml() {return html;}public void setHtml(int html) { this.html = html;}public int getSql() {return sql;}public void setSql(int sql) {this.sql = sql;}public int getSum() {return sum;}public void setSum() {this.sum = this.java+this.csharp+this.html+this.sql;}public int getAvg() {return avg;}public void setAvg() {this.avg = this.sum/4;}public String toString(){Stringmsg="\t"+this.id+"\t"++"\t"+this.age+"\t"+this.java+"\t"+this.csharp+"\t"+this.html+"\t"+this.sql+"\t"+this.sum+"\t" +this.avg;return msg;}}学生信息管理类StudentAdmin.javaimport java.util.Scanner;public class StudentAdmin {String msg="\t编号\t姓名\t年龄\tjava\tcsharp\thtml\tsql\t总分\t平均分";//打印现有学生public void print(Student [] stu){System.out.println(msg);for(int i=0;i<stu.length;i++){if(stu[i]!=null){System.out.println(stu[i]);}}}//添加学生public void addStudent(String name,int age,Student [] stu) {Student student=new Student();student.setName(name);student.setAge(age);int i=this.getIndex(stu);if(i==9999){System.out.println("数组已经容纳最大量,不能再接受");}else{student.setId(i);}stu[i]=student;}//获取编号public int getIndex(Student [] stu){for(int i=0;i<stu.length;i++){if(stu[i]==null){return i;}}return 9999;}//根据学生编号查找学生public void selectStudent(int id,Student [] stu){System.out.println(msg);for(int i=0;i<stu.length;i++){if(stu[i]!=null){if(this.exits(id, stu[i])){if(stu[i].getId()==id){System.out.println(stu[i]);return;}}}}System.out.println("\t没有这个学生存在!!!");}//查询学生是否存在public boolean exits(int id,Student stu){if(stu!=null){if(stu.getId()==id){return true;}else{return false;}}return false;}//更新学生信息public void updateStudent(int id,String name,int age,Student [] stu) {for(int i=0;i<stu.length;i++){if(stu[i]!=null){if(this.exits(id, stu[i])){if(stu[i].getId()==id){stu[i].setName(name);stu[i].setAge(age);System.out.println("--更新学生信息成功--");return;}}}}System.out.println("该学生不存在!!!");}public void deleteStudent(int id,Student [] stu){for(int i=0;i<stu.length;i++){if(this.exits(id, stu[i])){stu[i]=null;this.print(stu);System.out.println("\t--删除学生成功--");return;}}System.out.println("删除学生失败");}//根据学生编号获取学生姓名public String getName(int id,Student [] stu){for(int i=0;i<stu.length;i++){if(this.exits(id, stu[i])){return stu[i].getName();}}return null;}//根据学生编号输入学生成绩public void inputScore(int id,Student [] stu,Scanner input) {String name=this.getName(id, stu);System.out.println("请输入"+name+"的java成绩:");int java=input.nextInt();System.out.println("请输入"+name+"的csharp的成绩:");int csharp=input.nextInt();System.out.println("请输入"+name+"的html的成绩:");int html=input.nextInt();System.out.println("请输入"+name+"的sql的成绩:");int sql=input.nextInt();for(int i=0;i<stu.length;i++){if(this.exits(id, stu[i])){stu[i].setJava(java);stu[i].setCsharp(csharp);stu[i].setHtml(html);stu[i].setSql(sql);stu[i].setSum();stu[i].setAvg();break;}}this.print(stu);}//指定某门课的成绩排序public void scoreSort(int num,Student [] stu){Student [] arr=stu;if(num==1){for(int i=0;i<stu.length-1;i++){for(int j=i+1;j<stu.length;j++){if(stu[i]!=null&&stu[j]!=null){if(stu[i].getJava()<stu[j].getJava()){Student s=arr[i];arr[i]=arr[j];arr[j]=s;}}}}this.print(arr);}else if(num==2){for(int i=0;i<stu.length-1;i++){for(int j=i+1;j<stu.length;j++){if(stu[i]!=null&&stu[j]!=null){if(stu[i].getCsharp()<stu[j].getCsharp()){Student s=arr[i];arr[i]=arr[j];arr[j]=s;}}}}this.print(arr);}else if(num==3){for(int i=0;i<stu.length-1;i++){for(int j=i+1;j<stu.length;j++){if(stu[i]!=null&&stu[j]!=null){if(stu[i].getHtml()<stu[j].getHtml()){Student s=arr[i];arr[i]=arr[j];arr[j]=s;}}}}this.print(arr);}else if(num==4){for(int i=0;i<stu.length-1;i++){for(int j=i+1;j<stu.length;j++){if(stu[i]!=null&&stu[j]!=null){if(stu[i].getSql()<stu[j].getSql()){Student s=arr[i];arr[i]=arr[j];arr[j]=s;}}}}this.print(arr);}}//总分排序public void sumSort(Student [] stu){Student [] arr=stu;for(int i=0;i<arr.length-1;i++){for(int j=i+1;j<arr.length;j++){if(arr[i]!=null&&arr[j]!=null){if(arr[i].getSum()<arr[j].getSum()){Student s=arr[j];arr[j]=arr[i];arr[i]=s;}}}}this.print(arr);}}测试类Test.Javaimport java.util.Scanner;public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubScanner input=new Scanner(System.in);StudentAdmin admin=new StudentAdmin();System.out.println("请输入学生的人数:");int studentNumber=input.nextInt();Student [] students=new Student[studentNumber];while(true){System.out.println("请选择要执行的功能(输入编号):");System.out.println("10:添加一个学生");System.out.println("11:查找一个学生");System.out.println("12:根据学生编号更新学生基本信息");System.out.println("13:根据学生编号删除学生");System.out.println("14:根据编号输入学生各门科的成绩");System.out.println("15:根据某门成绩进行排序");System.out.println("16:根据总分进行排序");System.out.println("99:退出系统");int number=input.nextInt();if(number==10){System.out.println("--执行添加学生操作--");System.out.println("请输入要添加学生的姓名:");String name=input.next();System.out.println("请输入要添加学生的年龄:");int age=input.nextInt();admin.addStudent(name, age, students);admin.print(students);}else if(number==11){System.out.println("--执行查找学生操作--");System.out.println("请输入要查找学生的编号:");admin.selectStudent(input.nextInt(), students);}else if(number==12){System.out.println("执行更新学生信息操作");System.out.println("请输入要修改信息学生的编号");int id=input.nextInt();System.out.println("请输入修改后学生的姓名:");String name=input.next();System.out.println("请输入修改后学生的年龄:");int age=input.nextInt();admin.updateStudent(id, name, age, students);admin.print(students);}else if(number==13){System.out.println("--执行删除操作--");System.out.println("请输入要删除学生的编号:");int id=input.nextInt();admin.deleteStudent(id, students);}else if(number==14){System.out.println("--执行输入学生成绩操作--");System.out.println("请输入要输入成绩学生的编号:");int id=input.nextInt();admin.inputScore(id, students, input);}else if(number==15){System.out.println("执行成绩排序操作");System.out.println("请选择用什么成绩排序:(1:java 2:charp 3:html 4:sql)");int score=input.nextInt();admin.scoreSort(score, students);}else if(number==16){System.out.println("执行总分排序操作");admin.sumSort(students);}else if(number==99){System.out.println("退出系统成功!!!");break;//System.exit(0);}else{System.out.println("输入有误,请重新输入");}}}}。
【系统】Java学生成绩管理系统源代码

【关键字】系统Java学生成绩管理系统源代码Java学生成绩管理系统源代码import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;/** Created on*//*** @author 让炜* @since 1.0** TODO 学生成绩管理系统* 通过学号查找,修改,删除数据**/public class LittleProgram{static boolean isDelete = true;static boolean isFind = true;public static void main(String [] args)//主方法,程序从这里开始运行throws IOException,NumberNotFoundException{int choice=-1;do{LittleProgram lp = new LittleProgram();;"\t####################################"); ;"\t\t Java学生成绩管理系统1.1");"\t\t请用学号查找,修改,删除数据");;"\t####################################\n"); "1.增加数据:\n"+"2.查找数据:\n"+"3.删除数据:\n"+"4.清除所有数据:\n"+"5.把数据全部打印到屏幕\n"+"6.把成绩按学号排序\n"+"7.修改数据\n"+"8.统计已记录成绩学生数\n"+"9.关于作者\n"+"0.退出程序.\n" +"输入:");BufferedReader in = //从终new BufferedReader( //端接new InputStreamReader(System.in));//收数String inputLine = in.readLine(); //字选choice= Integer.valueOf(inputLine).intValue();//项; switch(choice){case 1: {//1.增加数据String str = lp.inputData();lp.addData(str);"增加数据成功.");timeOut(1);}break;case 2: {//2.查找数据long find = 0;"请输入你要查找的学生学号:"); BufferedReader inn =new BufferedReader(new InputStreamReader(System.in));String inputLi = inn.readLine();find = Integer.valueOf(inputLi).longValue();lp.findData(find);timeOut(2);}break;case 3: {//3.删除数据long deleteNumber = 0;"请输入你想删除的同学的学号:"); BufferedReader bf =new BufferedReader (new InputStreamReader(System.in));String inputL = bf.readLine();deleteNumber = Integer.valueOf(inputL).longValue(); lp.deleteData(deleteNumber);if(isDelete)"删除数据成功!");timeOut(1);}break;case 4: {lp.clearData();//4.清除所有数据timeOut(1);}break;case 5: {print();//5.把数据全部打印到屏幕timeOut(2);}break;case 6: {lp.numSort();//6.把成绩按学号排序"按照学号从小到大排序成功!\n"+"排序后:\n");print();timeOut(2);}break;case 7: {lp.rewrite();//7.修改数据timeOut(2);}break;case 8: {int count = lp.count();"共有"+count+"个学生已经记录.");timeOut(2);}break;case 9: {"\t\t让炜\n"+"\t\t上海电力学院通信工程系\n"+"\t\tQQ:0\n");timeOut(4);}break;}while (choice != 0);"Bye! ^-^");System.exit(0);}public String inputData()//从终端接收数据的方法,返回字符串throws IOException,NumberFormatException{"请依次输入:学号姓名性别成绩\n" +"每项数据请用空格隔开:");String all = "";try{BufferedReader in = //从终new BufferedReader ( //端接new InputStreamReader(System.in)); //收数String inputLine = in.readLine(); //据StringTokenizer str =new StringTokenizer(inputLine," ");//接收的数据用空格隔开,这个类用来提取每个字符串long num = Integer.valueOf(str.nextToken()).longValue();//学号String name = (String)str.nextToken(); //姓名String sex = (String)str.nextToken(); //性别double mark = Integer.valueOf(str.nextToken()).doubleValue();//分数all = String.valueOf(num) +" , "+name +" , "+sex +" , "+String.valueOf(mark);//把所有的数据用" , "隔开然后在连起来放进字符串all}catch (IOException e){}catch (NumberFormatException e){}return all;//返回字符串all}public void addData(String str)//增加数据的方法throws IOException{String s1 ="",s2="" ,s3= "";File file = new File("data.txt");if (file.exists())//如果文件data.txt存在{try{BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s1=in.readLine())!=null)s2+=s1+"\n";//把文件中的每行数据全部放进一个字符串s2s2+=str+"\n"; //再把s2于形参str相连放进s2BufferedReader in2 = //把字符new BufferedReader( //串s2也new StringReader(s2)); //就是原PrintWriter out = //文件+new PrintWriter( //形参str(新输入的一行数据)new BufferedWriter( //重新写进data.txtnew FileWriter("data.txt"))); //覆盖原来的数据while ((s3=in2.readLine())!= null){out.println(s3);}out.close();//"write data true.");}catch (IOException e){}}else{"File \"data\" Missing!");}}public void clearData()//清除data.txt的所有数据的方法throws IOException{File file = new File("data.txt");if(file.exists())//如果文件在{try{PrintWriter out =new PrintWriter(new BufferedWriter(new FileWriter(file)));out.print("");//在文件data.txt里写进一个空字符,所以清除了原来的内容out.close(); //关闭文件"clear data true!");}catch(IOException e){}}else{"File \"data\" Missing!");}}public void deleteData(long deleteNumber)//删除某条数据throws IOException,FileNotFoundException{isDelete = true;try{DataMap mp = new DataMap();//生成一个自己编写的容器long j=0;String s1="",s2="",s3="";BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s1=in.readLine())!=null){j=numberTokenizer(s1);mp.put(j,s1);}try{if(mp.containsKey( String.valueOf(deleteNumber).toString())) {mp.remove(deleteNumber);}elsethrow new NumberNotFoundException();Collection c = mp.values();Iterator iter = c.iterator();while(iter.hasNext()){s1 = (String)iter.next();s3 +=s1+"\n";}BufferedReader in2 =new BufferedReader(new StringReader(s3));PrintWriter out =new PrintWriter(new BufferedWriter(new FileWriter("data.txt")));//"delete No"+deleteNumber);while( (s1 = in2.readLine())!=null){out.println(s1);}out.close();}catch (NumberNotFoundException e){isDelete = false;" no found :(");}}catch(IOException e){}}public long numberTokenizer(String s)throws IOException{StringTokenizer st =new StringTokenizer(s," ");return Integer.valueOf((st.nextToken())).longValue();}public void findData(long find)//查找数据throws IOException,NumberNotFoundException{isFind = true;String s = "",findString ="";long i;DataMap dm = new DataMap();BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s=in.readLine())!=null){i=numberTokenizer(s);dm.put(i,s);}//in.close();try{if(dm.containsKey( String.valueOf(find).toString())){findString = dm.get(find);"学号"+find+"学生的资料是:");;}elsethrow new NumberNotFoundException();}catch (NumberNotFoundException e){" no found :(");isFind = false;}}public static void print()//读取文本文件把数据打印到终端的方法throws IOException{try{BufferedReader in =new BufferedReader(new FileReader("data.txt"));String read = "";while ((read = in.readLine())!=null);}catch(IOException e){}}public static void timeOut(double sec)//停顿短暂时间的一个方法完全可以不要这个功能{double seconds = sec;long t = System.currentTimeMillis()+(int)(seconds*1000); while ((System.currentTimeMillis())<t);}public void numSort()//按学号排序throws IOException{long i = 0;String s = "";try{DataArrayList dal = new DataArrayList(); BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s=in.readLine())!=null){i=numberTokenizer(s);dal.add(i);}Collections.sort(dal);DataMap dm = new DataMap();BufferedReader in2 =new BufferedReader(new FileReader("data.txt"));while ((s=in2.readLine())!=null){i=numberTokenizer(s);dm.put(i,s);}PrintWriter out =new PrintWriter (new BufferedWriter(new FileWriter("data.txt")));Iterator it = dal.iterator();long temp = 0;String tempStr = "";while (it.hasNext()){temp = Integer.valueOf((String)it.next()).longValue(); tempStr = dm.get(temp);out.println(tempStr);}out.close();}catch(IOException e){}}public void rewrite()throws IOException,NumberNotFoundException {try{"请输入你要修改的学生学号:"); BufferedReader in =new BufferedReader (new InputStreamReader(System.in));String inputLine = in.readLine();long num = Integer.valueOf(inputLine).longValue(); findData(num);if(isFind){deleteData(num);"请重新输入该学生的资料:");String str = inputData();addData(str);"rewrite true!");}}catch(IOException e){}catch(NumberNotFoundException e){}}public int count()throws IOException{DataArrayList dal = new DataArrayList();try{String s = "";long i =0;BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s=in.readLine())!=null){i=numberTokenizer(s);dal.add(i);}}catch(IOException e){}return dal.size();}}/*** @author RangWei* TODO 这是个我们写的一个容器,继承公共类HashMap* 大概的功能就相当一个数组**/class DataMap extends HashMap//一个保存数据的Map{public void put(long i,String str)//把学号和数据放进这个Map{ //以后一个学号(key)对应的是一个人的数据(value)put(String.valueOf(i).toString(),str);}public void remove(long i)//接收学号,然后删除学号(key)和它对应的数据(value) {remove(String.valueOf(i).toString().toString());}public String get(long i)//接收一个学号,然后返回这个key对应的value{String s = String.valueOf(i).toString();if (!containsKey(s)){"Not found Key: "+s);}return (String)get(s);}}/*** @author RangWei** TODO 这个类继承ArrayList* 用来按数字排序,在用学号排序时要用到它**/class DataArrayList extends ArrayList{public void add(long num){String numToString = String.valueOf(num).toString();add(numToString);}}/*文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.** @author RangWei** TODO 增加的一个Exception,主要是在文件里没有要找* 的学号就抛出**/class NumberNotFoundException extends Exception{public NumberNotFoundException(){}}此文档是由网络收集并进行重新排版整理.word可编辑版本!11。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;
public class Student
{
private String id;
private String name;
private int math;
private int english;
private int java;
private int computer;
public String getId()
{
return id;
}
public void setId(String id)
{
= id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
= name;
}
public int getMath()
{
return math;
}
public void setMath(int math)
{
= math;
}
public int getEnglish()
{
return english;
}
public void setEnglish(int english) {
= english;
}
public int getJava()
{
return java;
}
public void setJava(int java)
{
= java;
}
public int getComputer()
{
return computer;
}
public void setComputer(int computer)
{
= computer;
}
public static void main(String[] args) throws Exception {
String id;
String cid;
String name;
int math;
int english;
int java;
int computer;
String DBDriver = "";
String conStr = "jdbc:odbc:student";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
(DBDriver);
con = (conStr, "student", "123");
stmt = ();
String s = "\n\n\t\t\t学生成绩\n\n\t\t 1 新增\n\t\t 2 更改\n\t\t 3 删除\n\t\t 4 查找\n\t\t 5 显示\n\t\t 0 退出\n\n";
int choice = ();
switch (choice)
{
xecuteQuery("select avg(math),avg(english),avg(java),avg(computer) from lxh1");
while ())
{
+ "\t" + (2) + "\t"
+ (3) + "\t" + (4));
}
;
xecuteQuery("select min(math),min(english),min(java),min(computer) from lxh1");
while ())
{
+ "\t" + (2) + "\t"
+ (3) + "\t" + (4));
}
;
break;
case 0:
break;
default:
"感谢您的使用,再见!");
}
;
();
();
}
}。