学生成绩管理系统完结

1.实现成绩排序

(1)按课程排序

在这里插入图片描述

package llxy.project.dao;

import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

import llxy.project.Tools.JDBCTools;

public class OtherSelectByCourse1 {
	public OtherSelectByCourse1(JTextArea jt) {
		Connection conn = null;
		Statement  stmt1 = null;
		Statement  stmt2 = null;
		Statement  stmt3 = null;
		
		ResultSet rs1 = null;
		ResultSet rs2 = null;
		ResultSet rs3 = null;
		
		String sql1 ="SELECT  class,CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese>90 AND class = 1 )/(SELECT COUNT(sno) FROM student WHERE class = 1))*100,2),'%' ),CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese<60 AND class = 1 )/(SELECT COUNT(sno) FROM student WHERE class = 1))*100,2),'%' ) FROM student WHERE class = 1 GROUP BY class;";
		String sql2 ="SELECT  class,CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese>90 AND class = 2 )/(SELECT COUNT(sno) FROM student WHERE class = 2))*100,2),'%' ),CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese<60 AND class = 2 )/(SELECT COUNT(sno) FROM student WHERE class = 2))*100,2),'%' )  FROM student WHERE class = 2 GROUP BY class;";
		String sql3 ="SELECT  class,CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese>90 AND class = 3 )/(SELECT COUNT(sno) FROM student WHERE class = 3))*100,2),'%' ),CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese<60 AND class = 3 )/(SELECT COUNT(sno) FROM student WHERE class = 3))*100,2),'%' )  FROM student WHERE class = 3 GROUP BY class;";
		
		try { 
			conn = JDBCTools.getConnection();
			stmt1 = conn.createStatement();
			stmt2 = conn.createStatement();
			stmt3 = conn.createStatement();
			
			rs1 =  stmt1.executeQuery(sql1);
			rs2 =  stmt2.executeQuery(sql2);
			rs3 =  stmt3.executeQuery(sql3);
		
			while (rs1.next()) {
				String str =(rs1.getString(1)+"         "+rs1.getString(2) +"     "+ rs1.getString(3));				  		
		  		String str1 =jt.getText();
		  		String s = str1+"\n"+str;
		  		jt.setText(s);
		  		jt.setFont(new Font(str, 0, 20));
				}
			while (rs2.next()) {
				String str =(rs2.getString(1)+"         "+rs2.getString(2)+"     "+ rs2.getString(3));				  		
		  		String str1 =jt.getText();
		  		String s = str1+"\n"+str;
		  		jt.setText(s);
		  		jt.setFont(new Font(str, 0, 20));
				}
			while (rs3.next()) {
				String str =(rs3.getString(1)+"         "+rs3.getString(2)+"       "+ rs3.getString(3));				  		
		  		String str1 =jt.getText();
		  		String s = str1+"\n"+str;
		  		jt.setText(s);
		  		jt.setFont(new Font(str, 0, 20));
				}
			} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//关闭连接,释放资源。
			JDBCTools.release(stmt1, conn);
			JDBCTools.release(stmt2, conn);
			JDBCTools.release(stmt3, conn);
			
		}
		JOptionPane.showMessageDialog(null, "查询完成");
	}
}

(2)按总成绩排序

package llxy.project.dao;

import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

import llxy.project.Tools.JDBCTools;

public class SoreBySum {
	public SoreBySum(JTextArea jt) {
		Connection conn = null;
		Statement  stmt = null;
		ResultSet rs = null;
		String sql = "SELECT * FROM student ORDER BY (chinese+math+English) DESC;";
		try {
			conn = JDBCTools.getConnection();
			stmt = conn.createStatement();
			rs =  stmt.executeQuery(sql);
			while (rs.next()) {
				String str =(rs.getString("sno")+"       "+rs.getString("name")+"       "+rs.getString("class")+"         "+rs.getString("chinese")+"         "+rs.getString("math")+"         "+rs.getString("english"));				  		
		  		String str1 =jt.getText();
		  		String s = str1+"\n"+str;
		  		jt.setText(s);
		  		jt.setFont(new Font(str, 0, 20));
				}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally{
			//关闭连接,释放资源。
			JDBCTools.release(stmt, conn);
		}
		JOptionPane.showMessageDialog(null, "排序完成");
		
	}
}

(3)按平均成绩排序

package llxy.project.dao;

import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

import llxy.project.Tools.JDBCTools;

public class SoreByAverage {
	public SoreByAverage(JTextArea jt) {
		Connection conn = null;
		Statement  stmt = null;
		ResultSet rs = null;
		String sql = "SELECT * FROM `student` ORDER BY (chinese+math+English)/3 DESC;";
		try {
			conn = JDBCTools.getConnection();
			stmt = conn.createStatement();
			rs =  stmt.executeQuery(sql);
			while (rs.next()) {
			String str =(rs.getString("sno")+"       "+rs.getString("name")+"       "+rs.getString("class")+"         "+rs.getString("chinese")+"         "+rs.getString("math")+"         "+rs.getString("english"));				  		
	  		String str1 =jt.getText();
	  		String s = str1+"\n"+str;
	  		jt.setText(s);
	  		jt.setFont(new Font(str, 0, 20));
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//关闭连接,释放资源。
			JDBCTools.release(stmt, conn);
		}
		JOptionPane.showMessageDialog(null, "排序完成");
	}
}

(4)按学号排序

在这里插入图片描述

package llxy.project.dao;

import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

import llxy.project.Tools.JDBCTools;

public class SoreBySno {
	public SoreBySno(JTextArea jt) {
		Connection conn = null;
		Statement  stmt = null;
		ResultSet rs = null;
		String sql = "SELECT * From student ORDER BY sno ASC";
		try {
			conn = JDBCTools.getConnection();
			stmt = conn.createStatement();
			rs =  stmt.executeQuery(sql);
			while (rs.next()) {
			String str =(rs.getString("sno")+"       "+rs.getString("name")+"       "+rs.getString("class")+"         "+rs.getString("chinese")+"         "+rs.getString("math")+"         "+rs.getString("english"));				  		
	  		String str1 =jt.getText();
	  		String s = str1+"\n"+str;
	  		jt.setText(s);
	  		jt.setFont(new Font(str, 0, 20));
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//关闭连接,释放资源。
			JDBCTools.release(stmt, conn);
		}
		JOptionPane.showMessageDialog(null, "排序完成");
	}
}

2.其他查询:查询最高分最低分以及优秀率及格率

(1)查询语文的最高分最低分

在这里插入图片描述

package llxy.project.dao;

import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

import llxy.project.Tools.JDBCTools;

public class SelectByCourse1 {
	public SelectByCourse1(JTextArea jt) {
		Connection conn = null;
		Statement  stmt1 = null;
		Statement  stmt2 = null;
		ResultSet rs1 = null;
		ResultSet rs2 = null;
		String sql1 = "SELECT * FROM student WHERE chinese in (SELECT MAX(chinese)  FROM student  );";
		String sql2 = "SELECT * FROM student WHERE chinese in (SELECT MIN(chinese)  FROM student  );";
		try { 
			conn = JDBCTools.getConnection();
			stmt1 = conn.createStatement();
			stmt2 = conn.createStatement();
			rs1 =  stmt1.executeQuery(sql1);
			rs2 =  stmt2.executeQuery(sql2);
			while (rs1.next()) {
			String str1 =(rs1.getString("sno")+"       "+rs1.getString("name")+"       "+rs1.getString("class")+"           "+rs1.getString("chinese"));				  		
			String str3 =jt.getText();
			String s = "    " +str3 + "\n" + "最高分:"+str1;
			jt.setText(s);
	  		jt.setFont(new Font(str1, 0, 20));
		 }
			while (rs2.next()) {		
				String str1 =(rs2.getString("sno")+"       "+rs2.getString("name")+"       "+rs2.getString("class")+"           "+rs2.getString("chinese"));
				String str3 =jt.getText();	
				String s = "    " + str3 + "\n" +  "最低分:" +str1;
				jt.setText(s);
		  		jt.setFont(new Font(str1, 0, 20));
			 }
			} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//关闭连接,释放资源。
			JDBCTools.release(stmt1, conn);
			JDBCTools.release(stmt2, conn);
		}
		JOptionPane.showMessageDialog(null, "查询完成");
	}
}

(2)查询优秀率和及格率.

在这里插入图片描述

package llxy.project.dao;

import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

import llxy.project.Tools.JDBCTools;

public class OtherSelectByCourse1 {
	public OtherSelectByCourse1(JTextArea jt) {
		Connection conn = null;
		Statement  stmt1 = null;
		Statement  stmt2 = null;
		Statement  stmt3 = null;
		
		ResultSet rs1 = null;
		ResultSet rs2 = null;
		ResultSet rs3 = null;
		
		String sql1 ="SELECT  class,CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese>90 AND class = 1 )/(SELECT COUNT(sno) FROM student WHERE class = 1))*100,2),'%' ),CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese<60 AND class = 1 )/(SELECT COUNT(sno) FROM student WHERE class = 1))*100,2),'%' ) FROM student WHERE class = 1 GROUP BY class;";
		String sql2 ="SELECT  class,CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese>90 AND class = 2 )/(SELECT COUNT(sno) FROM student WHERE class = 2))*100,2),'%' ),CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese<60 AND class = 2 )/(SELECT COUNT(sno) FROM student WHERE class = 2))*100,2),'%' )  FROM student WHERE class = 2 GROUP BY class;";
		String sql3 ="SELECT  class,CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese>90 AND class = 3 )/(SELECT COUNT(sno) FROM student WHERE class = 3))*100,2),'%' ),CONCAT (TRUNCATE(((SELECT COUNT(chinese)FROM student WHERE chinese<60 AND class = 3 )/(SELECT COUNT(sno) FROM student WHERE class = 3))*100,2),'%' )  FROM student WHERE class = 3 GROUP BY class;";
		
		try { 
			conn = JDBCTools.getConnection();
			stmt1 = conn.createStatement();
			stmt2 = conn.createStatement();
			stmt3 = conn.createStatement();
			
			rs1 =  stmt1.executeQuery(sql1);
			rs2 =  stmt2.executeQuery(sql2);
			rs3 =  stmt3.executeQuery(sql3);
		
			while (rs1.next()) {
				String str =(rs1.getString(1)+"         "+rs1.getString(2) +"     "+ rs1.getString(3));				  		
		  		String str1 =jt.getText();
		  		String s = str1+"\n"+str;
		  		jt.setText(s);
		  		jt.setFont(new Font(str, 0, 20));
				}
			while (rs2.next()) {
				String str =(rs2.getString(1)+"         "+rs2.getString(2)+"     "+ rs2.getString(3));				  		
		  		String str1 =jt.getText();
		  		String s = str1+"\n"+str;
		  		jt.setText(s);
		  		jt.setFont(new Font(str, 0, 20));
				}
			while (rs3.next()) {
				String str =(rs3.getString(1)+"         "+rs3.getString(2)+"       "+ rs3.getString(3));				  		
		  		String str1 =jt.getText();
		  		String s = str1+"\n"+str;
		  		jt.setText(s);
		  		jt.setFont(new Font(str, 0, 20));
				}
			} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//关闭连接,释放资源。
			JDBCTools.release(stmt1, conn);
			JDBCTools.release(stmt2, conn);
			JDBCTools.release(stmt3, conn);
			
		}
		JOptionPane.showMessageDialog(null, "查询完成");
	}
}
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值