成绩排名系统,
具体要求请看上一个博客
废话不多说,直接上代码。
整体结构:
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打开文字会乱码,可以用记事本打开这个文件查看。
背景图片自己设置。路径自行修改。