java课程设计—成绩排序系统(GUI版本)

成绩排名系统,

具体要求请看上一个博客

废话不多说,直接上代码。

 

整体结构:

 

add_deleteView.java

package com.hncj.GUI;

import java.util.ArrayList;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class add_deleteView {

	static readerFile stu = new readerFile();
	static List li = new ArrayList();

	public add_deleteView() {
		stu.readerfile();
	}

	public static void Score(JFrame frame, String number, String choice) {
		int k = 0, i = 0;// k用于判断学号是否存在,i是为了找到角标
		for (String a : stu.getStuNumber()) {
			if (number.equals(a) == true) {
				k = 1;
				break;
			} else {
				i++;
			}
		}
		if (k == 1) {
			String xx = "姓名:  " + stu.getStuName().get(i) + "\n学号:  " + stu.getStuNumber().get(i) + "\n班级:  "
					+ stu.getStuClass().get(i) + "\n语文  :" + stu.getStuScore1().get(i) + "\n数学:  "
					+ stu.getStuScore2().get(i) + "\n英语:  " + stu.getStuScore3().get(i) + "\n政治:  "
					+ stu.getStuScore4().get(i);
			String ScoreName = JOptionPane.showInputDialog(frame, xx, "请输入科目名进行修改");
			li = returnList(frame, ScoreName);
			if (!li.isEmpty()) {// list不为空,即获得到了 目标数组对应的科目。
				if ("delete".equals(choice)) {
					li.set(i, "");
				} else if ("add".equals(choice)) {
					String score = JOptionPane.showInputDialog(frame, "修改" + ScoreName + "成绩,范围0~100", "请输入该科目的成绩");
					li.set(i, score);
				}
				if ("语文".equals(ScoreName)) {
					stu.setStuScore1(li);
				} else if ("数学".equals(ScoreName)) {
					stu.setStuScore2(li);
				} else if ("英语".equals(ScoreName)) {
					stu.setStuScore3(li);
				} else if ("政治".equals(ScoreName)) {
					stu.setStuScore4(li);
				}
				stu.writeFile();
				JOptionPane.showMessageDialog(frame,
						"修改成功,该学生信息如下:\n" + "姓名:  " + stu.getStuName().get(i) + "\n学号:  " + stu.getStuNumber().get(i)
								+ "\n班级:  " + stu.getStuClass().get(i) + "\n语文  :" + stu.getStuScore1().get(i)
								+ "\n数学:  " + stu.getStuScore2().get(i) + "\n英语:  " + stu.getStuScore3().get(i)
								+ "\n政治:  " + stu.getStuScore4().get(i));
			} else {

				JOptionPane.showMessageDialog(frame, "提示:科目名输入不正确,请重新输入");
			}
		} else if (k == 0) {
			JOptionPane.showMessageDialog(frame, "提示:学号输入不正确");
		}
	}

	public static List returnList(JFrame frame, String text) {
		List listt = new ArrayList();
		if ("语文".equals(text)) {
			listt = stu.stuScore1;
		} else if ("数学".equals(text)) {
			listt = stu.stuScore2;
		} else if ("英语".equals(text)) {
			listt = stu.stuScore3;
		} else if ("政治".equals(text)) {
			listt = stu.stuScore4;
		} else {
			JOptionPane.showMessageDialog(frame, "提示:课程名输入不正确,请重新输入");
		}
		return listt;
	}

}


loginView.java

package com.hncj.GUI;


import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.EventQueue;
import java.awt.Font;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class loginView {
	 private JFrame frame; 
	 private JTextField textField; 
	 private JPasswordField textField_1; 
	
	 
	 public static void main(String[] args) { 	 
	    loginView window = new loginView(); 
	    window.initialize();
	    window.frame.setVisible(true); 
	 } 
		 
	 private void initialize() { 
	  frame = new JFrame(); 
	  frame.setTitle("欢迎进入学生成绩排名系统"); 
	  frame.setBounds(300, 250, 900, 500); 	
	  
	  Icon icon=new ImageIcon("G:\\background.jpg");
	  JLabel label1=new JLabel(icon);
	  frame.getLayeredPane().add(label1,new Integer(Integer.MIN_VALUE));
	  label1.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight());
	  Container cp=frame.getContentPane();
	  cp.setLayout(new BorderLayout());
	  ((JPanel)cp).setOpaque(false);
	  
	  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
	  frame.getContentPane().setLayout(null);    
	  JLabel lblNewLabel = new JLabel("学生成绩排名系统用户登录"); 
	  lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 32)); 
	  lblNewLabel.setBounds(250, 10, 400, 125);
	  frame.getContentPane().add(lblNewLabel); 	   
	  JLabel lblNewLabel_1 = new JLabel("用户名"); 
	  lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 18)); 
	  lblNewLabel_1.setBounds(300, 150, 67, 30); 
	  frame.getContentPane().add(lblNewLabel_1); 	   
	  textField = new JTextField(); 
	  textField.setBounds(400, 150, 141, 30); 
	  frame.getContentPane().add(textField); 
	  textField.setColumns(18); 	   
	  JLabel label = new JLabel("密码"); 
	  label.setFont(new Font("宋体", Font.PLAIN, 18));
	  label.setBounds(300, 220, 67, 30); 
	  frame.getContentPane().add(label);    
	  textField_1 = new JPasswordField(); 
	  textField_1.setEchoChar('*');
	  textField_1.setColumns(18); 
	  textField_1.setBounds(400, 220, 141, 30); 
	  frame.getContentPane().add(textField_1); 
	  JButton button = new JButton("登录");
	  button.setBounds(300, 300, 100, 40); 
	  frame.getContentPane().add(button); 
	  button.addMouseListener(new MouseAdapter() { 
	   @Override 
	   public void mouseClicked(MouseEvent e) {  
	    String user=textField.getText(); 
	    String password=textField_1.getText(); 
	    if(user.equals("")||user==null){ 
	     JOptionPane.showMessageDialog(frame, "提示:帐号不能为空!"); 
	     return; 
	    }else if(password.equals("")||password==null){ 
	     JOptionPane.showMessageDialog(frame, "提示:密码不能为空!"); 
	     return; 
	    }else if("0824172".equals(user)&&"123456".equals(password)){  
	      MainView index=new MainView(); 
	      JFrame frame2=index.getFrame(); 
	      frame2.setVisible(true); 
	      frame.dispose(); 
	    }else {
	    	JOptionPane.showMessageDialog(frame, "提示:用户名或密码错误,请重新输入!");
	    }
	   }    
	  });   
	  JButton button_1 = new JButton("退出"); 
	  button_1.setBounds(450, 300, 100, 40); 
	  frame.getContentPane().add(button_1); 
	  button_1.addMouseListener(new MouseAdapter() {
		  @Override 
		   public void mouseClicked(MouseEvent e) { 
			 frame.dispose();
		  }
	  });	   
	 } 
}

lookView.java

package com.hncj.GUI;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextField;


public class lookView {
	private JFrame frame;
	private JFrame frame1;
	private JTextField textFieldSNo;
	private JTextField textFieldName;
	private JTextField textFieldCNo;
	//在内存中开辟一块空间,可供全局调用
	
	static readerFile stu = new readerFile();
	//构造方法,在类被调用的时候,自动执行
	public lookView() {
		stu.readerfile();
	}


	public JFrame lookFrame() {
		frame = new JFrame();
		frame.setTitle("欢迎进入学生成绩排名系统");
		frame.setBounds(300, 250, 900, 500);
		frame.getContentPane().setLayout(null);
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		JLabel lblNewLabel = new JLabel("欢迎登录学生成绩查询系统!");
		lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 28));
		lblNewLabel.setBounds(250, 10, 400, 125);
		frame.getContentPane().add(lblNewLabel);

		textFieldSNo = new JTextField();
		textFieldSNo.setBounds(260, 130, 200, 50);
		frame.getContentPane().add(textFieldSNo);
		textFieldSNo.setColumns(20);

		JButton butlookSNo = new JButton("学号查询");
		butlookSNo.setBounds(510, 120, 150, 60); 
		frame.getContentPane().add(butlookSNo);

		textFieldName = new JTextField();
		textFieldName.setBounds(260, 230, 200, 50);
		frame.getContentPane().add(textFieldName);
		textFieldName.setColumns(20);

		JButton butlookName = new JButton("姓名查询");
		butlookName.setBounds(510, 220, 150, 60);
		frame.getContentPane().add(butlookName);

		textFieldCNo = new JTextField();
		textFieldCNo.setBounds(260, 330, 200, 50);
		frame.getContentPane().add(textFieldCNo);
		textFieldCNo.setColumns(20);

		JButton butlookCNo = new JButton("课程名查询");
		butlookCNo.setBounds(510, 320, 150, 60);
		frame.getContentPane().add(butlookCNo);

		Icon icon = new ImageIcon("G:\\background.jpg");
		JLabel label1 = new JLabel(icon);
		frame.getLayeredPane().add(label1, new Integer(Integer.MIN_VALUE));
		label1.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight());
		Container cp = frame.getContentPane();
		cp.setLayout(new BorderLayout());
		((JPanel) cp).setOpaque(false);

		
		
		butlookSNo.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				int i = 0;
				int k = 0;
				String textSNo = textFieldSNo.getText();
				for (String a : stu.getStuNumber()) {
					if (textSNo.equals(a) == true) {
						k = 1;
						break;
					} else {
						i++;//找到角标,对应的第几个学号
					}
				}
				if (k == 1) {
					JOptionPane.showMessageDialog(frame,
							"姓名:  " + stu.getStuName().get(i) + "\n学号:  " + stu.getStuNumber().get(i) + "\n班级:  " + stu.getStuClass().get(i)
									+ "\n语文  :" + stu.getStuScore1().get(i) + "\n数学:  " +stu.getStuScore2().get(i) + "\n英语:  "
									+ stu.getStuScore3().get(i) + "\n政治:  " + stu.getStuScore4().get(i),
							"查询结果如下", JOptionPane.INFORMATION_MESSAGE);
				} else if (k == 0) {
					JOptionPane.showMessageDialog(frame, "提示:学号输入不正确,请重新输入");
				}
			}
		});

		butlookName.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				int i = 0;
				int k = 0;
				String textName = textFieldName.getText();
				for (String a : stu.getStuName()) {
					if (textName.equals(a) == true) {
						k = 1;
						break;
					} else {
						i++;
					}
				}
				if (k == 1) {
					JOptionPane.showMessageDialog(frame,
							"姓名:  " + stu.getStuName().get(i) + "\n学号:  " + stu.getStuNumber().get(i) + "\n班级:  " + stu.getStuClass().get(i)
							+ "\n语文  :" + stu.getStuScore1().get(i) + "\n数学:  " +stu.getStuScore2().get(i) + "\n英语:  "
							+ stu.getStuScore3().get(i) + "\n政治:  " + stu.getStuScore4().get(i),
							"查询结果如下", JOptionPane.INFORMATION_MESSAGE);
				} else if (k == 0) {
					JOptionPane.showMessageDialog(frame, "提示:姓名输入不正确,请重新输入");
				}
			}
		});

		butlookCNo.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				int i = 100;
				String textCNo = textFieldCNo.getText();
				if ("语文".equals(textCNo)) {
					i = 0;
					lookCNo(stu.getStuScore1());
				} else if ("数学".equals(textCNo)) {
					i = 1;lookCNo(stu.getStuScore2());
				} else if ("英语".equals(textCNo)) {
					i = 2;lookCNo(stu.getStuScore3());
				} else if ("政治".equals(textCNo)) {
					i = 3;lookCNo(stu.getStuScore4());
				} else {
					i = 4;
				}
				if(i==4){
					JOptionPane.showMessageDialog(frame, "提示:课程名输入不正确,请重新输入");
				}
			}

			private void lookCNo(List list) {
				frame1 = new JFrame();
				frame1.setTitle("欢迎进入学生成绩排名系统");
				frame1.setBounds(300, 250, 900, 700);
				frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				frame1.getContentPane().setLayout(null);
				JLabel lblNewLabel1 = new JLabel("结果如下:");
				lblNewLabel1.setFont(new Font("宋体", Font.PLAIN, 18));
				lblNewLabel1.setBounds(100, 10, 100, 25);
				frame1.getContentPane().add(lblNewLabel1);
				JLabel text = new JLabel();
					text.setBounds(100, 30, 200, 300);
					text.setFont(new Font("宋体", Font.PLAIN, 18));
					String xx="";
				for (int j = 1; j < list.size(); j++) {
						xx=xx+"<br><br>姓名:  " + stu.getStuName().get(j) + "<br>学号:  " + stu.getStuNumber().get(j)+"<br>" + list.get(0)+ ":  "+ list.get(j);
				}
				String xxx="<html><body>"+xx+"<body></html>";
				
				text.setText(xxx);
				frame1.getContentPane().add(text); 
				JScrollPane ScrollPane = new JScrollPane(text);//设置滚动条
				ScrollPane .setBounds(250, 50, 400, 600);
				frame1.getContentPane().add(ScrollPane);
				frame1.setVisible(true);
				frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			}
		});
		return frame;
	}
}

MainView.java

package com.hncj.GUI;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class MainView {
	private JFrame frame;

	public static void main(String[] args) {
		MainView index = new MainView();
		JFrame frame2 = index.getFrame();
		frame2.setVisible(true);
	}

	public JFrame getFrame() {
		initialize();
		return frame;
	}

	public void initialize() {

		frame = new JFrame();
		frame.setTitle("欢迎进入学生成绩排名系统");
		frame.setBounds(300, 250, 900, 500);
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		
		JLabel lblNewLabel = new JLabel("欢迎登录学生成绩排名系统!");
		lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 28));
		lblNewLabel.setBounds(270, 10, 400, 125);
		frame.getContentPane().add(lblNewLabel);


		JButton buttonLook = new JButton("查询成绩");
		buttonLook.setBounds(200, 120, 150, 60);
		frame.getContentPane().add(buttonLook);

		JButton buttonAdd = new JButton("添加或修改成绩");
		buttonAdd.setBounds(500, 120, 150, 60);
		frame.getContentPane().add(buttonAdd);

		JButton buttonDelete = new JButton("删除成绩");
		buttonDelete.setBounds(200, 200, 150, 60);
		frame.getContentPane().add(buttonDelete);

		JButton buttonTop = new JButton("成绩排序");
		buttonTop.setBounds(500, 200, 150, 60);
		frame.getContentPane().add(buttonTop);

		JButton buttonSta = new JButton("成绩统计");
		buttonSta.setBounds(200, 280, 150, 60);
		frame.getContentPane().add(buttonSta);

		JButton buttonExit = new JButton("退出系统");
		buttonExit.setBounds(500, 280, 150, 60);
		frame.getContentPane().add(buttonExit);

		Icon icon = new ImageIcon("G:\\background.jpg");
		JLabel label1 = new JLabel(icon);
		frame.getLayeredPane().add(label1, new Integer(Integer.MIN_VALUE));
		label1.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight());
		Container cp = frame.getContentPane();
		cp.setLayout(new BorderLayout());
		((JPanel) cp).setOpaque(false);

		
		// 按钮监听器
		buttonLook.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				lookView index = new lookView();
				JFrame framelook = index.lookFrame();
				framelook.setVisible(true);
				frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			}
		});

		buttonAdd.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				String number = JOptionPane.showInputDialog("请输入需要添加或修改成绩学生的学号:");
				add_deleteView add = new add_deleteView();
				add.Score(frame, number, "add");
				frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			}
		});

		buttonDelete.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) { //
				String number = JOptionPane.showInputDialog("请输入需要删除成绩学生的学号:");
				add_deleteView delete = new add_deleteView();
				delete.Score(frame, number, "delete");
				frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			}
		});

		buttonTop.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				topView tp = new topView();
			}
		});

		buttonSta.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				statistics sta = new statistics();
			}
		});

		buttonExit.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				frame.dispose();
			}
		});
	}
}

readerFile.java

package com.hncj.GUI;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;

public class readerFile {
	static List stuName = new ArrayList();
	static List stuClass = new ArrayList();
	static List stuNumber = new ArrayList();
	static List stuScore1 = new ArrayList();
	static List stuScore2 = new ArrayList();
	static List stuScore3 = new ArrayList();
	static List stuScore4 = new ArrayList();

	public void readerfile() {
		reader();
	}

	public static void reader() {
		// public static void main1(String[] args) throws Exception {
		BufferedReader br = null;
		try {
			br = new BufferedReader(new FileReader("G:\\11.csv"));//按字符读取
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		String line;
		stuName.clear();
		stuClass.clear();
		stuNumber.clear();
		stuScore1.clear();
		stuScore2.clear();
		stuScore3.clear();
		stuScore4.clear();
		try {
			while ((line = br.readLine()) != null) {
				stuName.add(line.split(",")[0]);
				stuNumber.add(line.split(",")[1]);
				stuClass.add(line.split(",")[2]);
				stuScore1.add(line.split(",")[3]);
				stuScore2.add(line.split(",")[4]);
				stuScore3.add(line.split(",")[5]);
				stuScore4.add(line.split(",")[6]);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			br.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void writeFile() {// 向文件写入
		write(stuName, stuNumber, stuClass, stuScore1, stuScore2, stuScore3, stuScore4);
	}

	public void write(List data, List data1, List data2, List data3, List data4, List data5, List data6) {
		try {
			BufferedWriter out = new BufferedWriter(
					new OutputStreamWriter(new FileOutputStream("G:\\11.csv"), "UTF-8"));

			out.write("姓名");
			out.write(",");
			out.write("学号");
			out.write(",");
			out.write("班级");
			out.write(",");
			out.write("语文");
			out.write(",");
			out.write("数学");
			out.write(",");
			out.write("英语");
			out.write(",");
			out.write("政治");
			out.newLine();
			for (int i = 1; i < data.size(); i++) {
				out.write((String) data.get(i));
				out.write(",");
				out.write((String) data1.get(i));
				out.write(",");
				out.write((String) data2.get(i));
				out.write(",");
				out.write((String) data3.get(i));
				out.write(",");
				out.write((String) data4.get(i));
				out.write(",");
				out.write((String) data5.get(i));
				out.write(",");
				out.write((String) data6.get(i));
				out.newLine();
			}
			out.flush();
			out.close();

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public static List<String> getStuName() {
		return stuName;
	}

	public static void setStuName(List<String> stuName) {
		readerFile.stuName = stuName;
	}

	public static List<String> getStuClass() {
		return stuClass;
	}

	public static void setStuClass(List<String> stuClass) {
		readerFile.stuClass = stuClass;
	}

	public static List<String> getStuNumber() {
		return stuNumber;
	}

	public static void setStuNumber(List<String> stuNumber) {
		readerFile.stuNumber = stuNumber;
	}

	public static List<String> getStuScore1() {
		return stuScore1;
	}

	public static void setStuScore1(List<String> stuScore1) {
		readerFile.stuScore1 = stuScore1;
	}

	public static List<String> getStuScore2() {
		return stuScore2;
	}

	public static void setStuScore2(List<String> stuScore2) {
		readerFile.stuScore2 = stuScore2;
	}

	public static List<String> getStuScore3() {
		return stuScore3;
	}

	public static void setStuScore3(List<String> stuScore3) {
		readerFile.stuScore3 = stuScore3;
	}

	public static List<String> getStuScore4() {
		return stuScore4;
	}

	public static void setStuScore4(List<String> stuScore4) {
		readerFile.stuScore4 = stuScore4;
	}

}


statistics.java

package com.hncj.GUI;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class statistics {
	private static JFrame frame;
	private JFrame frame1;
	private JTextField textField;
	List list=new ArrayList();
	static readerFile stu = new readerFile();
	
//	public static void main(String[] args) {
	//	statistics sc =new statistics();
	public statistics() {
		stu.readerfile();
		lookFrame();
		frame.setVisible(true); 
	}

	
	public void lookFrame() {
		frame = new JFrame();
		frame.setTitle("欢迎进入学生成绩排名系统");
		frame.setBounds(300, 250, 900, 500);
		frame.getContentPane().setLayout(null);
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		JLabel lblNewLabel = new JLabel("欢迎登录学生成绩统计系统!");
		lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 28));
		lblNewLabel.setBounds(250, 10, 400, 125);
		frame.getContentPane().add(lblNewLabel);
		JLabel lblNewLabel2 = new JLabel("请输入课程名:");
		lblNewLabel2.setFont(new Font("宋体", Font.PLAIN, 23));
		lblNewLabel2.setBounds(100, 140, 200, 80);
		frame.getContentPane().add(lblNewLabel2);

		textField = new JTextField();
		textField.setBounds(250, 150, 400, 50);
		frame.getContentPane().add(textField);
		textField.setColumns(20);

		JButton butlookTop = new JButton("最高分查询");
		butlookTop.setBounds(80, 320, 150, 60);
		frame.getContentPane().add(butlookTop);

		
		JButton butlookLow = new JButton("最低分查询");
		butlookLow.setBounds(280, 320, 150, 60);
		frame.getContentPane().add(butlookLow);

		
		JButton butlookAvg = new JButton("平均分查询");
		butlookAvg.setBounds(480, 320, 150, 60);
		frame.getContentPane().add(butlookAvg);
		
		
		JButton butlookPass = new JButton("及格率查询");
		butlookPass.setBounds(680, 320, 150, 60);
		frame.getContentPane().add(butlookPass);

		Icon icon = new ImageIcon("G:\\background.jpg");
		JLabel label1 = new JLabel(icon);
		frame.getLayeredPane().add(label1, new Integer(Integer.MIN_VALUE));
		label1.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight());
		Container cp = frame.getContentPane();
		cp.setLayout(new BorderLayout());
		((JPanel) cp).setOpaque(false);

		
		
		
		butlookTop.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				String text=textField.getText();
				list =returnList(text);
				for (int i = 1; i <list.size()-1; i++) {

					float aa=Integer.parseInt((String) list.get(i));
					float bb=Integer.parseInt((String) list.get(i+1));
					if(bb<aa ){
						list.set(i+1, list.get(i));
					}
				}
				JOptionPane.showMessageDialog(frame, "最高分为:"+list.get(list.size()-1));
			}
			
		});
		
		butlookLow.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				String text=textField.getText();
				list =returnList(text);
				for (int i = 1; i <list.size()-1; i++) {

					float aa=Integer.parseInt((String) list.get(i));
					float bb=Integer.parseInt((String) list.get(i+1));
					if(bb>aa ){
						list.set(i+1, list.get(i));
					}
				}
				JOptionPane.showMessageDialog(frame, "最低分为:"+list.get(list.size()-1));
			}
			
		});
		butlookAvg.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				String text=textField.getText();	
				list =returnList(text);
				float result=0;
				int count=0;
				for (int i = 1; i <list.size(); i++) {
					result += Integer.parseInt((String) list.get(i));
					count++;
				}
				JOptionPane.showMessageDialog(frame, "平均分为:"+result/count);
			}
			
		});
		
		butlookPass.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				String text=textField.getText();	
				list =returnList(text);
				float count=0,pass=0;
				NumberFormat nf = NumberFormat.getPercentInstance();//小数转化为百分数
				nf.setMaximumFractionDigits(2);//这个2的意思是保存结果到小数点后几位.
				for (int i = 1; i <list.size(); i++) {
					if(Integer.parseInt((String) list.get(i))>=60) {
						pass++;
					}
					count++;
				}
				JOptionPane.showMessageDialog(frame, "及格率为:"+nf.format(pass/count));
			}
			
		});
	}

	
	/**addAll方法 ,相当于复制list的所有数据,到另一个list
	 * 不能直接用“=” 赋值
	 */
	public static List returnList(String text) {   
		List listt=new ArrayList();
		if ("语文".equals(text)) {
				listt.addAll(stu.getStuScore1());
			} else if ("数学".equals(text)) {
				listt.addAll(stu.getStuScore2());
			} else if ("英语".equals(text)) {
				listt.addAll(stu.getStuScore3());
			} else if ("政治".equals(text)) {
				listt.addAll(stu.getStuScore4());
			} else{
				JOptionPane.showMessageDialog(frame, "提示:课程名输入不正确,请重新输入");
			}
		return listt;
	}
}

topView.java




























package com.hncj.GUI;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class topView {
	private static JFrame frame;
	private JFrame frame1;
	private JTextField textField;
	List list=new ArrayList();
	static readerFile stu = new readerFile();
	
	
	public topView() {
		stu.readerfile();
		lookFrame();
		frame.setVisible(true); 
	}

	
	public void lookFrame() {
		frame = new JFrame();
		frame.setTitle("欢迎进入学生成绩排名系统");
		frame.setBounds(300, 250, 900, 500);
		frame.getContentPane().setLayout(null);
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		JLabel lblNewLabel = new JLabel("欢迎登录学生成绩排序系统!");
		lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 28));
		lblNewLabel.setBounds(250, 10, 400, 125);
		frame.getContentPane().add(lblNewLabel);
		JLabel lblNewLabel2 = new JLabel("请输入课程名:");
		lblNewLabel2.setFont(new Font("宋体", Font.PLAIN, 23));
		lblNewLabel2.setBounds(100, 140, 200, 80);
		frame.getContentPane().add(lblNewLabel2);

		textField = new JTextField();
		textField.setBounds(250, 150, 400, 50);
		frame.getContentPane().add(textField);
		textField.setColumns(20);

		JButton butlookTop = new JButton("升序");
		butlookTop.setBounds(150, 320, 150, 60);
		frame.getContentPane().add(butlookTop);

		
		JButton butlookLow = new JButton("降序");
		butlookLow.setBounds(480, 320, 150, 60);
		frame.getContentPane().add(butlookLow);

		Icon icon = new ImageIcon("G:\\background.jpg");
		JLabel label1 = new JLabel(icon);
		frame.getLayeredPane().add(label1, new Integer(Integer.MIN_VALUE));
		label1.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight());
		Container cp = frame.getContentPane();
		cp.setLayout(new BorderLayout());
		((JPanel) cp).setOpaque(false);

		
		
		
		
		butlookTop.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				String text=textField.getText();	
				list =returnList(text);
				top(list,1);
			}
		});
		
		butlookLow.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				String text=textField.getText();	
				list =returnList(text);
				top(list,2);
			}			
		});		
	}
	public static List returnList(String text) {   //不执行if语句
		List listt=new ArrayList();
		if ("语文".equals(text)) {
				listt=stu.stuScore1;
			} else if ("数学".equals(text)) {
				listt=stu.stuScore2;
			} else if ("英语".equals(text)) {
				listt=stu.stuScore3;
			} else if ("政治".equals(text)) {
				listt=stu.stuScore4;
			} else{
				JOptionPane.showMessageDialog(frame, "提示:课程名输入不正确,请重新输入");	
				return (List) topView.frame;
			}
		return listt;
	}
	
	private void top(List list,int choice) {
		frame1 = new JFrame();
		frame1.setTitle("欢迎进入学生成绩排名系统");
		frame1.setBounds(300, 250, 900, 700);
		frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame1.getContentPane().setLayout(null);
		JLabel lblNewLabel1 = new JLabel("结果如下:");
		lblNewLabel1.setFont(new Font("宋体", Font.PLAIN, 18));
		lblNewLabel1.setBounds(100, 10, 100, 25);
		frame1.getContentPane().add(lblNewLabel1);
		JLabel text = new JLabel();
			text.setBounds(250, 50, 400, 600);
			text.setFont(new Font("宋体", Font.PLAIN, 18));

		String xx=high__low(list,choice);
		String xxx="<html><body>"+xx+"<body></html>";
		text.setText(xxx);
		frame1.getContentPane().add(text); 
		
		JScrollPane ScrollPane = new JScrollPane(text);//设置滚动条
		ScrollPane .setBounds(250, 50, 400, 600);
		frame1.getContentPane().add(ScrollPane);
		frame1.setVisible(true);
		frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	}
	
	public String high__low(List list,int choice) {
		List ls =new ArrayList();
		for (Object object : list) {
			if(!"".equals(object)&&!"语文".equals(object)&&!"数学".equals(object)&&!"英语".equals(object)&&!"政治".equals(object)) {
				ls.add(Integer.parseInt(object.toString()));
			}
		}
		
		for (int i = 0; i < ls.size(); i++) {
			for (int j = 0; j < ls.size()-1; j++) {
				
				int aa=(int) ls.get(j);
				int bb=(int) ls.get(j+1);
				boolean ch = false;
				if(choice==1) {//choice为1表示升序
					 ch= aa<bb;
				}else if(choice==2){//choice为2表示降序
					ch= aa>bb;
				}
				if(ch) {
					ls.set(j, aa);
					ls.set(j+1, bb);
				}else {
					ls.set(j, bb);
					ls.set(j+1, aa);
				}
			}
				}
		String xx="";
		for (int j = 0; j < ls.size(); j++) {//做到姓名匹配还需要一个方法,
		
			xx=xx+"<br>"+list.get(0)+ ":  "+ ls.get(j);
			}
		return xx;
	}
}
	
	

 

 

csv的格式

 

最重要的地方:

     eclipse的编码格式改为utf-8。。不会的自行百度或者联系我,联系方式在上面。

     csv用记事本打开,修改编码格式为utf-8.此时用excel打开文字会乱码,可以用记事本打开这个文件查看。

    背景图片自己设置。路径自行修改。

 

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值