学生成绩管理系统——JAVA

399 阅读16分钟

学生成绩管理系统 1.简介 本学生成绩管理系统具有录入学生成绩、查询学生成绩、输出学 生按成绩的排名、输出学科的分数四个功能,其中后两个功能在“输出成绩”这一目录下。 此系统可以实现学生成绩管理的一些基本操作。

1.1各模块功能简介 录入成绩 输入若干同学的学号、姓名以及四个科目的成绩(应用数学、大学英语、Java 程序设计、计算机应用基础),并将其保存在建立好的数据库中。

查询成绩 进入该模块后,输入想要查询成绩的学生姓名,即可在数据库中检索该学生 的成绩信息并输出其各科成绩。

输出成绩 该模块主要分为两部分,包括学生排名和各科目平均成绩及各科的最高分和 最低分。 (1)能够计算出平均成绩,以平均成绩降序输出成绩表。 (2)输出全组各科平均分,最高分和最低分。

2.程序设计

数据库表的设计 本系统将数据存储在一张表中,这张表名称为:students,能够保存学生的基本信息,包括学生的姓名、学号、应用数学成绩、大学英语成绩、Java 程序 设计成绩、计算机应用基础成绩、总成绩、平均成绩。 该表中 name 和 num 栏指 定的类型为 varchar 型,各科成绩的输入数据类型为 float 型。

建表时命令行输入为:

mysql> create table students( -> name varchar(50) primary key, -> num varchar(20), -> math float(5,2), -> English float(5,2), -> Java float(5,2), -> computer float(5,2), -> score float(5,2), -> average float(5,2) -> );

3.源代码 package kechengsheji; import kechengsheji.Outnum; import java.util.Scanner; import kechengsheji.*; public class Main { public Main() { Scanner in=new Scanner(System.in); int a=4; //a不等于0,进入循环 while(a!=0) { System.out.println(" +++++++++++++++++++++++"); System.out.println(" + 0 退出 +"); System.out.println(" + 1 录入成绩 +"); System.out.println(" + 2 查询成绩 +"); System.out.println(" + 3 输出成绩 +"); System.out.println("请输入0-3:"); a=in.nextInt(); switch(a) { case 0: System.out.println("退出成功!"); break; case 1: new Input(); break; case 2: new Seeknum(); break; case 3: new Outnum(); break; default: System.out.println("输入有误!"); break; } } }

public static void main(String[] args) {
	new Main();
}

}

package kechengsheji; import java.sql.*; public class SQL { Connection conn; public Connection getConn() { try { Class.forName("com.mysql.cj.jdbc.Driver");

            String url="jdbc:mysql://localhost:3306/swy"
	        		+ "?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";    //JDBC的URL    

            conn = DriverManager.getConnection(url, "root","266531"); //建立数据库连接,获得连接对象conn
	 }catch(ClassNotFoundException e){
		 e.printStackTrace();
	 }catch (SQLException e) {
		e.printStackTrace();
	}
	return conn;
}
public static void main(String[] args) {
	System.out.println("hello world!");
}

}

package kechengsheji; import java.util.Scanner; import java.sql.*; import kechengsheji.SQL; public class Input { private String b,c; private double d,e,f,g; private double sum,aver; Scanner in=new Scanner(System.in); private int a=2; Input(){ while(a!=0) { System.out.println("+++++++++++++++++++++"); System.out.println("+ 1 录入成绩 +"); System.out.println("+ 0 返回 +"); a=in.nextInt(); switch (a) {
case 0: System.out.println("返回成功!"); break; case 1: System.out.println("请输入学生姓名:"); b=in.next(); System.out.println("请输入学生学号:"); c=in.next(); System.out.println("请输入学生应用数学成绩:"); d=in.nextDouble(); System.out.println("请输入学生大学英语成绩:"); e=in.nextDouble(); System.out.println("请输入学生Java程序设计成绩:"); f=in.nextDouble(); System.out.println("请输入学生计算机应用基础成绩:"); g=in.nextDouble(); sum=d+e+f+g; //总成绩 aver=sum/4; //平均成绩 //数据库 SQL bd=new SQL(); Connection conn=bd.getConn(); try { Statement stmt = conn.createStatement(); //创建Statement对象 try { String sql = "insert into students values(?,?,?,?,?,?,?,?)"; //要执行的SQL PreparedStatement pst = conn.prepareStatement(sql); pst.setString(1,b); //传入带占位符的SQL语句 pst.setString(2,c); pst.setDouble(3,d); pst.setDouble(4,e); pst.setDouble(5,f); pst.setDouble(6,g); pst.setDouble(7,sum); pst.setDouble(8,aver); pst.executeUpdate(); //执行 update和insert、delete等sql语句 System.out.println("保存成功!"); pst.close(); }catch(SQLIntegrityConstraintViolationException e) { System.out.println("该学生已存在!"); } stmt.close(); conn.close(); }catch(SQLException e){ e.printStackTrace(); } //数据库 break; default: System.out.println("输入错误!"); } } } public static void main(String[] args) { new Input(); } }

package kechengsheji; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; import kechengsheji.SQL;; public class Seeknum { private String num,nam; int i=0; Seeknum(){ Scanner s1 =new Scanner(System.in); int a = 3; while(a!=0){ System.out.println("********************");//查找界面并选择 System.out.println(" 0 返回 "); System.out.println(" 1 查询成绩 *"); System.out.println("请输入0或1:"); a =s1.nextInt(); switch (a) {
case 0: System.out.println("返回成功!"); break; case 1: //数据库 SQL bd=new SQL(); Connection conn=bd.getConn(); try { System.out.println("请输入姓名:"); nam=s1.next(); Statement stmt = conn.createStatement(); //创建Statement对象 String sql = "select * from students;"; //要执行的SQL ResultSet rs = stmt.executeQuery(sql);//创建数据对象,产生单个结果集的语句 while(rs.next()) { if(rs.getString("name").equals(nam)) { i=1; System.out.println("成绩如下:"); //从数据库查找成绩 System.out.println(); System.out.println("姓名:"+rs.getString(1) ); System.out.println("学号:" +rs.getString(2) ); System.out.println("应用数学:" +rs.getDouble(3) ); System.out.println("大学英语 :" +rs.getDouble(4) ); System.out.println("java程序设计:" +rs.getDouble(5) ); System.out.println("计算机应用基础:" +rs.getDouble(6) ); System.out.println("总分:" +rs.getDouble(7) ); System.out.println("平均分:" +rs.getDouble(8) ); System.out.println(); //数据库 break; }

                  }
    	          if(i==0)
	                  System.out.println("暂无该学生成绩!");
    	          rs.close();
                  stmt.close();
                  conn.close();
            	 }catch (SQLException e) {
            		 e.printStackTrace();
				}
             break;
             default:
             System.out.println("输入有误!");
             break;
         }
 }

} public static void main(String[] args){
new Seeknum(); }

}

package kechengsheji; import kechengsheji.paiming; import kechengsheji.kemuchengji; import java.util.Scanner; import java.sql.*; public class Outnum { Scanner in=new Scanner(System.in); private int a=3; Outnum(){ while(a!=0){ System.out.println("+++++++++++++++++++"); System.out.println("+ 1 排名 +"); System.out.println("+ 2 科目成绩 +"); System.out.println("+ 0 返回 +"); System.out.println("请输入0-2:"); a=in.nextInt(); switch(a) { case 0: System.out.println("返回成功!"); System.out.println(); break; case 1: new paiming(); break; case 2: new kemuchengji(); break; default: System.out.println("输入有误!"); }

	}
}
public static void main(String[] args) {
	new Outnum();
}

}

package kechengsheji; import java.sql.*; public class paiming { SQL bd=new SQL(); Connection conn=bd.getConn(); private int a=1; paiming(){ try { //数据库 Statement stmt; stmt = conn.createStatement(); String sql="select name,num,average from students order by average desc;"; ResultSet rs = stmt.executeQuery(sql); System.out.println(); System.out.println("排名"+" "+"姓名"+" "+" 学号"+" "+"平均成绩"); while(rs.next()) { System.out.println(a+" "+rs.getString("name")+" "+rs.getString("num")+" "+rs.getDouble("average")); a++; } rs.close(); stmt.close(); conn.close(); }catch(Exception e){ e.printStackTrace(); }

}
public static void main(String[] args) {
	new paiming();

}

}

package kechengsheji; import java.sql.*; import kechengsheji.SQL; public class kemuchengji { private double sum,max,min; SQL bd=new SQL(); Connection conn=bd.getConn(); kemuchengji(){ System.out.println(); System.out.println(" "+"平均成绩"+" "+"最高成绩"+" "+"最低成绩"); try { Statement stmt = conn.createStatement(); //创建Statement对象 int i=0; String sql = "select math from students order by math desc;"; //要执行的SQL ResultSet rs = stmt.executeQuery(sql); while(rs.next()) { sum=sum+rs.getDouble("math"); i++; if(rs.isFirst()) max=rs.getDouble("math"); if(rs.isLast()) min=rs.getDouble("math"); } sum=sum/i;//平均成绩 System.out.println("应用数学成绩: "+String.format("%.2f", sum)+" "+max+" "+min);

    i=0;
    sum=0.0;
	String sql1 = "select English from students order by English desc;";    //要执行的SQL
    ResultSet rs1 = stmt.executeQuery(sql1);
    while(rs1.next()) {
    	sum=sum+rs1.getDouble("English");
    	i++;
    	if(rs1.isFirst())
    		max=rs1.getDouble("English");
    	if(rs1.isLast())
    		min=rs1.getDouble("English");
    }
    sum=sum/i; //平均成绩
    System.out.println("大学英语成绩:     	"+String.format("%.2f", sum)+"		"+max+"		"+min);
    
    i=0;
    sum=0.0;
    //数据库
	String sql2 = "select Java from students order by Java desc;";    //要执行的SQL
    ResultSet rs2 = stmt.executeQuery(sql2);
    while(rs2.next()) {
    	sum=sum+rs2.getDouble("Java");
    	i++;
    	if(rs2.isFirst())
    		max=rs2.getDouble("Java");
    	if(rs2.isLast())
    		min=rs2.getDouble("Java");
    }
    sum=sum/i;//平均成绩
    System.out.println("Java程序设计成绩:  "+String.format("%.2f", sum)+"		"+max+"		"+min);
    
    i=0;
    sum=0.0;
	String sql3 = "select computer from students order by computer desc;";    //要执行的SQL
    ResultSet rs3 = stmt.executeQuery(sql3);
    while(rs3.next()) {
    	sum=sum+rs3.getDouble("computer");
    	i++;
    	if(rs3.isFirst())
    		max=rs3.getDouble("computer");
    	if(rs3.isLast())
    		min=rs3.getDouble("computer");
    }
    sum=sum/i;                //平均成绩
    System.out.println("计算机应用基础成绩:"+String.format("%.2f", sum)+"		"+max+"		"+min);
    System.out.println();
    
    rs.close();
    rs1.close();
    rs2.close();
    rs3.close();
    stmt.close();
    conn.close();
	}catch(SQLException e) {
		e.printStackTrace();
	}
}
public static void main(String[] args) {
	new kemuchengji();
}

}

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 4.结果展示

5.采用GUI界面 源代码

package kechengsheji; import java.awt.; import java.awt.event.;

import javax.sql.rowset.serial.SerialArray; public class GUImain extends Frame implements ActionListener{ private Button b1,b2,b3,b4; private Label a1,a2; private GridBagLayout gb; private GridBagConstraints gbc; private GUImain(){ a1=new Label(" 欢迎使用学生成绩管理系统"); a1.setFont(new Font(null,Font.LAYOUT_RIGHT_TO_LEFT,20)); a2=new Label(" "); gb=new GridBagLayout(); //初始化 gb setLayout(gb); //设置窗口布局管理器 gb gbc=new GridBagConstraints(); //初始化网格包容器 b1=new Button("输入成绩"); //初始化按钮 btn1 b2=new Button("查询成绩"); b3=new Button("输出成绩"); b4=new Button("退出系统"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); dispose(); System.exit(0); //程序退出 } }); gbc.fill=GridBagConstraints.HORIZONTAL; //设置 gbc 的 fill 域 addComponent(a1,0, 2, 1, 4); addComponent(a2,4, 2, 1, 2); addComponent(b1,6, 2, 1, 2); addComponent(b2,8, 2, 1, 2); addComponent(b3,10, 2, 1, 2); addComponent(b4,12, 2, 1, 2); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="输入成绩") { GUIinput mygb =new GUIinput(); mygb.setSize(600,400); mygb.setVisible(true); }else if(e.getActionCommand()=="查询成绩") { GUISeeknum mygb =new GUISeeknum(); mygb.setSize(600,400); mygb.setVisible(true); }else if(e.getActionCommand()=="输出成绩") { GUIOutnum mygb=new GUIOutnum(); mygb.setSize(700,500); mygb.setVisible(true); }else if(e.getActionCommand()=="退出系统") { setVisible(false); dispose(); System.exit(0); } } public void addComponent(Component c,int row,int col, int nrow,int ncol){ gbc.gridx=col; //设置组件显示区域的开始边单元格 gbc.gridy=row; //设置组件显示区域的顶端单元格 gbc.gridheight=ncol; //设置组件显示区域一列的单元格数 gbc.gridwidth=nrow; //设置组件显示区域一行的单元格数 gb.setConstraints(c,gbc); //设置布局的约束条件 add(c); //组件 c 添加到容器中 } public static void main(String[] args) { GUImain mygb =new GUImain(); mygb.setSize(700,500); mygb.setVisible(true); } }

package kechengsheji; import java.awt.; import java.awt.event.; import java.util.Scanner; import java.sql.*; import kechengsheji.SQL; public class GUIinput extends Frame implements ActionListener{ Frame my; private int a=0; private Label l1,l2,l3,l4,l5,l6; private TextField tf1,tf2,tf3,tf4,tf5,tf6; private Button btn1,btn2,b1; private GridBagLayout gb; private GridBagConstraints gbc; private String a1,a2; private double a3,a4,a5,a6,sum,aver; public GUIinput() { l1=new Label("姓名 "); l2=new Label("学号 "); l3=new Label("应用数学 "); l4=new Label("大学英语 "); l5=new Label("Java程序设计 "); l6=new Label("计算机应用基础"); tf1=new TextField(20); tf2=new TextField(20); tf3=new TextField(20); tf4=new TextField(20); tf5=new TextField(20); tf6=new TextField(20); gb=new GridBagLayout(); //初始化 gb setLayout(gb); //设置窗口布局管理器 gb gbc=new GridBagConstraints(); //初始化网格包容器 btn1=new Button("提交"); //初始化按钮 btn1 btn2=new Button("退出"); btn1.addActionListener(this); btn2.addActionListener(this);

	 Panel p0 = new Panel(); //创建,并初始化面板 p1 
	 p0.add(btn1); 
	 p0.add(btn2);
	 Panel p1 = new Panel();
	 p1.add(l1);
	 p1.add(tf1);
	 Panel p2 = new Panel();
	 p2.add(l2);
	 p2.add(tf2);
	 Panel p3 = new Panel();
	 p3.add(l3);
	 p3.add(tf3);
	 Panel p4 = new Panel();
	 p4.add(l4);
	 p4.add(tf4);
	 Panel p5 = new Panel();
	 p5.add(l5);
	 p5.add(tf5);
	 Panel p6 = new Panel();
	 p6.add(l6);
	 p6.add(tf6);
	 
	 addWindowListener(new WindowAdapter(){ 
		 public void windowClosing(WindowEvent e){
	     setVisible(false);
	     dispose();
		 System.exit(0); //程序退出
		 } 
		 }); 
	 
		 gbc.fill=GridBagConstraints.HORIZONTAL; //设置 gbc 的 fill 域
		 
		 addComponent(p1,0, 2, 1, 1);
		 addComponent(p2,2, 2, 1, 1);
		 addComponent(p3,3, 2, 1, 1);
		 addComponent(p4,4, 2, 1, 1); 
		 addComponent(p5,5, 2, 1, 1);
		 addComponent(p6,6, 2, 1, 1);
		 addComponent(p0,9, 2, 1, 1); 
		 }

//8 public void gui() { my=new Frame(); my.setBounds(300,300,350,250); my.setLayout(null); my.setVisible(true); b1=new Button("返回"); b1.addActionListener(this); Label a1=new Label("该学生已存在! "); Label a2=new Label("添加成功!"); Label a3=new Label("输入为空!"); if(a==1) { my.add(a1); a1.setBounds(140,100,100,40); } else if(a==0) { my.add(a2); a2.setBounds(140,100,100,40); } else if(a==2) { my.add(a3); a3.setBounds(140,100,100,40); } my.add(b1); b1.setBounds(230,190,80,30); my.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { my.setVisible(false); my.dispose(); } }); } //********************** public void actionPerformed(ActionEvent e) { if(e.getSource()==btn1) { a1=tf1.getText(); if(a1.equals("")) a=2; else { a=0; a2=tf2.getText(); a3=Double.parseDouble(tf3.getText() ); a4=Double.parseDouble(tf4.getText() ); a5=Double.parseDouble(tf5.getText() ); a6=Double.parseDouble(tf5.getText() ); sum=a3+a4+a5+a6; //总成绩 aver=sum/4; //平均成绩

	SQL bd=new SQL();
	Connection conn=bd.getConn();
	try {
	Statement stmt = conn.createStatement(); //创建Statement对象
	try {
    String sql = "insert into students values(?,?,?,?,?,?,?,?)"; //要执行的SQL
    PreparedStatement pst = conn.prepareStatement(sql);
    pst.setString(1,a1);                             //传入带占位符的SQL语句
	pst.setString(2,a2);
	pst.setDouble(3,a3);
	pst.setDouble(4,a4);
	pst.setDouble(5,a5);
	pst.setDouble(6,a6);
	pst.setDouble(7,sum);
	pst.setDouble(8,aver);
	pst.executeUpdate(); //执行 update和insert、delete等sql语句
	pst.close();
	}catch(SQLIntegrityConstraintViolationException e1) {
		a=1;
	}
    stmt.close();
    conn.close();
	}catch(SQLException e2){
		e2.printStackTrace();
	}
	}
	gui();
	}else if(e.getSource()==btn2) {
		setVisible(false);
		dispose();
	}else if(e.getSource()==b1) {
		my.setVisible(false);
		my.dispose();
	}
	
}

//******************************************************************************************* public void addComponent(Component c,int row,int col, int nrow,int ncol){ gbc.gridx=col; //设置组件显示区域的开始边单元格 gbc.gridy=row; //设置组件显示区域的顶端单元格 gbc.gridheight=ncol; //设置组件显示区域一列的单元格数 gbc.gridwidth=nrow; //设置组件显示区域一行的单元格数 gb.setConstraints(c,gbc); //设置布局的约束条件 add(c); //组件 c 添加到容器中 } //入口***************************** public static void main(String[] args) { GUIinput mygb =new GUIinput(); mygb.setSize(600,400); mygb.setVisible(true); } }

package kechengsheji; import java.awt.; import java.awt.event.; import java.sql.*; import kechengsheji.SQL; public class GUISeeknum extends Frame implements ActionListener{ Frame my; String b; private Label a1; private Button b1,b2; private TextField c1; private GridBagLayout gb; private GridBagConstraints gbc; public GUISeeknum() { a1=new Label("请输入学生姓名: "); c1=new TextField(20); gb=new GridBagLayout(); //初始化 gb setLayout(gb); //设置窗口布局管理器 gb gbc=new GridBagConstraints(); //初始化网格包容器 b1=new Button("查询"); //初始化按钮 btn1 b2=new Button("退出"); b1.addActionListener(this); b2.addActionListener(this); Panel p0 = new Panel(); //创建,并初始化面板 p1 p0.add(a1); p0.add(c1); Panel p1 = new Panel(); p1.add(b1); p1.add(b2);

	 addWindowListener(new WindowAdapter(){ 
		 public void windowClosing(WindowEvent e){
	     setVisible(false);
	     dispose();
		 System.exit(0); //程序退出
		 } 
		 }); 
	 
	 gbc.fill=GridBagConstraints.HORIZONTAL; //设置 gbc 的 fill 域
	 addComponent(p0,0, 2, 1, 2);
	 addComponent(p1,4, 2, 1, 1);
}

public void actionPerformed(ActionEvent e) {
	if(e.getActionCommand()=="查询") {
		b=c1.getText();
		gui1(b);
	}else if(e.getActionCommand()=="退出") {
	     setVisible(false);
	     dispose();
	}else if(e.getActionCommand()=="返回") {
		 my.setVisible(false);
	     my.dispose();
	}
}

public void gui1(String n) {
	Label a0,a1,a2,a3,a4,a5,a6,a7,a8;
	my=new Frame();
	my.setBounds(300,300,450,450);
	my.setLayout(null);
	my.setVisible(true); 
	Button b1=new Button("返回");
	b1.addActionListener(this);
	a0=new Label("该学生不存在! ");
	int a=0;
	SQL bd=new SQL();
	Connection conn=bd.getConn(); 
	try {
        Statement stmt = conn.createStatement(); //创建Statement对象
        String sql = "select * from students;";    //要执行的SQL
        ResultSet rs = stmt.executeQuery(sql);//创建数据对象,产生单个结果集的语句
        while(rs.next()) {
      	  if(rs.getString("name").equals(n)) {
      		  a=1;//有成绩
    	          //从数据库查找成绩
      		a1=new Label("姓名:"+rs.getString(1));
      		a2=new Label("学号:"+rs.getString(2));
      		a3=new Label("应用数学:" +rs.getDouble(3));
      		a4=new Label("大学英语 :" +rs.getDouble(4));
      		a5=new Label("java程序设计:" +rs.getDouble(5));
      		a6=new Label("计算机应用基础:" +rs.getDouble(6));
      		a7=new Label("总分:" +rs.getDouble(7));
      		a8=new Label("平均分:" +rs.getDouble(8));
        	  my.add(a1);
        	  my.add(a2);
        	  my.add(a3);
        	  my.add(a4);
        	  my.add(a5);
        	  my.add(a6);
        	  my.add(a7);
        	  my.add(a8);
		        a1.setBounds(70,20,300,60);// 距左边的距离   距顶部的距离   长度  高度
		 		a2.setBounds(70, 70,300,50);
		 		a3.setBounds(70, 110, 300,50);
		 		a4.setBounds(70, 150, 300,50);
		 		a5.setBounds(70, 190, 300,50);
		 		a6.setBounds(70, 230, 300,50);
		 		a7.setBounds(70, 270, 300,50);
		 		a8.setBounds(70, 310, 300,50);
        	  
    	          //数据库
    	          break;
      	  }  
        }
          if(a==0) {
      		my.add(a0);
      		a0.setBounds(170,180,300,60);
          }
 		 my.add(b1); 
 		 	b1.setBounds(300, 360, 100,40);
 		my.addWindowListener(new WindowAdapter() {
 			public void windowClosing(WindowEvent evt) {
 				my.setVisible(false);
 				my.dispose();
 				}
 			});
          rs.close();
        stmt.close();
        conn.close();
  	 }catch (SQLException e) {
  		 e.printStackTrace();
		}
}

 public void addComponent(Component c,int row,int col, int nrow,int ncol){ 
 gbc.gridx=col; //设置组件显示区域的开始边单元格
 gbc.gridy=row; //设置组件显示区域的顶端单元格
 gbc.gridheight=ncol; //设置组件显示区域一列的单元格数
 gbc.gridwidth=nrow; //设置组件显示区域一行的单元格数
 gb.setConstraints(c,gbc); //设置布局的约束条件
 add(c); //组件 c 添加到容器中

}

public static void main(String[] args) {
	GUISeeknum mygb =new GUISeeknum(); 
	 mygb.setSize(600,400);
	 mygb.setVisible(true);
}

}

package kechengsheji; import java.awt.; import java.awt.event.; import java.sql.*; import kechengsheji.SQL; public class GUIOutnum extends Frame implements ActionListener{ private double sum,max,min; private String s; private TextArea m1; Frame c1,c2; private Button b1,b2,b3,b4,b5; private GridBagLayout gb; private GridBagConstraints gbc; public GUIOutnum() { gb=new GridBagLayout(); //初始化 gb setLayout(gb); //设置窗口布局管理器 gb gbc=new GridBagConstraints(); //初始化网格包容器 b1=new Button(" 总体排名 "); //初始化按钮 btn1 b2=new Button(" 科目成绩 "); b3=new Button(" 返回 "); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); dispose(); System.exit(0); //程序退出 } }); gbc.fill=GridBagConstraints.HORIZONTAL;//设置 gbc 的 fill 域horizontal addComponent(b1,0, 2, 1, 2); addComponent(b2,2, 2, 1, 2); addComponent(b3,4, 2, 1, 2); }

 public void addComponent(Component c,int row,int col, int nrow,int ncol){ 
 gbc.gridx=col; //设置组件显示区域的开始边单元格
 gbc.gridy=row; //设置组件显示区域的顶端单元格
 gbc.gridheight=ncol; //设置组件显示区域一列的单元格数
 gbc.gridwidth=nrow; //设置组件显示区域一行的单元格数
 gb.setConstraints(c,gbc); //设置布局的约束条件
 add(c); //组件 c 添加到容器中

}

	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==b1) {
			//*********总体排名**********
			c2=new Frame();
			c2.setBounds(600,130,500,750);
			c2.setLayout(null);
			c2.setVisible(true); 
			b5=new Button("返回");
			b5.addActionListener(this);
	 		c2.addWindowListener(new WindowAdapter() {
	 			public void windowClosing(WindowEvent evt) {
	 				c2.setVisible(false);
	 				c2.dispose();
	 				}
	 			});
	 		
			
			SQL bd=new SQL();
			Connection conn=bd.getConn(); 
			int a=1;
		       try {
		        	//数据库
		        	Statement stmt;
		        	stmt = conn.createStatement();
		        	String sql="select name,num,average from students order by average desc;";
		        	ResultSet rs = stmt.executeQuery(sql);
		        	s="排 名"+"	"+"姓 名"+"	"+"  学 号"+"		"+"平 均 成 绩"+"

"; while(rs.next()) { s=s+"

"+" "+a+" "+rs.getString("name")+" "+rs.getString("num")+" "+rs.getDouble("average"); a++; } m1=new TextArea(s); m1.setEditable(false); m1.setBounds(50,50,400,550); c2.add(m1); b5.setBounds(380,690,80,30); c2.add(b5);

		        	rs.close();
		        	stmt.close();
		            conn.close();
		        }catch(Exception e1){
		        	e1.printStackTrace();
		        }
		       
		}else if(e.getSource()==b2) {
			//********科目成绩***********
			c1=new Frame();
			c1.setBounds(300,300,450,450);
			c1.setLayout(null);
			c1.setVisible(true);
			Label a1,a2,a3,a4,a5;
			a1=new Label("                  平均成绩      最高成绩       最低成绩");
			b4=new Button("返回");
			b4.addActionListener(this);
	 		c1.addWindowListener(new WindowAdapter() {
	 			public void windowClosing(WindowEvent evt) {
	 				c1.setVisible(false);
	 				c1.dispose();
	 				}
	 			});
			SQL bd=new SQL();
			Connection conn=bd.getConn(); 
			try {
				Statement stmt = conn.createStatement(); //创建Statement对象
				int i=0;
				String sql = "select math from students order by math desc;";    //要执行的SQL
		        ResultSet rs = stmt.executeQuery(sql);
		        while(rs.next()) {
		        	sum=sum+rs.getDouble("math");
		        	i++;
		        	if(rs.isFirst())
		        		max=rs.getDouble("math");
		        	if(rs.isLast())
		        		min=rs.getDouble("math");
		        }
		        sum=sum/i;//平均成绩
		        a2=new Label("应用数学成绩:           "+String.format("%.2f", sum)+"              "+max+"                "+min);
		        
		        i=0;
		        sum=0.0;
				String sql1 = "select English from students order by English desc;";    //要执行的SQL
		        ResultSet rs1 = stmt.executeQuery(sql1);
		        while(rs1.next()) {
		        	sum=sum+rs1.getDouble("English");
		        	i++;
		        	if(rs1.isFirst())
		        		max=rs1.getDouble("English");
		        	if(rs1.isLast())
		        		min=rs1.getDouble("English");
		        }
		        sum=sum/i; //平均成绩
		        a3=new Label("大学英语成绩:           "+String.format("%.2f", sum)+"            "+max+"               "+min);
		        
		        i=0;
		        sum=0.0;
		        //数据库
				String sql2 = "select Java from students order by Java desc;";    //要执行的SQL
		        ResultSet rs2 = stmt.executeQuery(sql2);
		        while(rs2.next()) {
		        	sum=sum+rs2.getDouble("Java");
		        	i++;
		        	if(rs2.isFirst())
		        		max=rs2.getDouble("Java");
		        	if(rs2.isLast())
		        		min=rs2.getDouble("Java");
		        }
		        sum=sum/i;//平均成绩
		       a4=new Label("Java程序设计成绩:   "+String.format("%.2f", sum)+"            "+max+"                "+min);
		        
		        i=0;
		        sum=0.0;
				String sql3 = "select computer from students order by computer desc;";    //要执行的SQL
		        ResultSet rs3 = stmt.executeQuery(sql3);
		        while(rs3.next()) {
		        	sum=sum+rs3.getDouble("computer");
		        	i++;
		        	if(rs3.isFirst())
		        		max=rs3.getDouble("computer");
		        	if(rs3.isLast())
		        		min=rs3.getDouble("computer");
		        }
		        sum=sum/i;                //平均成绩
		        a5=new Label("计算机应用基础成绩:  "+String.format("%.2f", sum)+"          "+max+"                "+min);
		        
		        a1.setBounds(70,20,300,60);// 距左边的距离   距顶部的距离   长度  高度
		 		a2.setBounds(10, 70,300,50);
		 		a3.setBounds(10, 110, 300,50);
		 		a4.setBounds(10, 150, 300,50);
		 		a5.setBounds(10, 190, 300,50);
		 		b4.setBounds(300, 360, 100,40);
		 		 c1.add(a1);
		 		 c1.add(a2);
		 		 c1.add(a3);
		 		 c1.add(a4);
		 		 c1.add(a5);
		 		 c1.add(b4);
		 		
		        rs.close();
		        rs1.close();
		        rs2.close();
		        rs3.close();
		        stmt.close();
		        conn.close();
				}catch(SQLException e1) {
					e1.printStackTrace();
				}				
			
		}else if(e.getSource()==b3) {
			setVisible(false);
			dispose();
		}else if(e.getSource()==b4) {
			c1.setVisible(false);
			c1.dispose();
		}else if(e.getSource()==b5) {
			c2.setVisible(false);
			c2.dispose();
		}
	}		
public static void main(String[] args) {
	GUIOutnum mygb=new GUIOutnum();
	 mygb.setSize(700,500);
	 mygb.setVisible(true);
}

}

package kechengsheji; import java.sql.*; public class SQL { Connection conn; public Connection getConn() { try { Class.forName("com.mysql.cj.jdbc.Driver");

            String url="jdbc:mysql://localhost:3306/swy"
	        		+ "?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";    //JDBC的URL    

            conn = DriverManager.getConnection(url, "root","266531"); //建立数据库连接,获得连接对象conn
	 }catch(ClassNotFoundException e){
		 e.printStackTrace();
	 }catch (SQLException e) {
		e.printStackTrace();
	}
	return conn;
}
public static void main(String[] args) {
	System.out.println("hello world!");
}

}