Java 版學生成績管理系統(tǒng),附源碼!
前言
對于計算機專業(yè)的學生來講,一定對于學生成績管理系統(tǒng)課程設計十分印象深刻。設計、上機、編碼、寫報告、答辯等一系列流程,雖然很簡單,但也可以綜合運用我們所學的一些知識了。
今天就來復習一下這個課題,用 Java SE 來實現(xiàn)該課題,也算是補上當初上課的時候沒有好好寫的遺憾吧。
雖然很簡單,但是對于剛涉足編程學習的人來講,還是有一定難度的,既要考慮界面打印,也要考慮條件判斷、循環(huán)語句、輸入輸出控制等等技巧,所以在這里簡單地實現(xiàn)一下,方便給初學的小伙伴們一個參考(對于我的界面比較丑的問題,就不要過于糾結(jié)了,下去可以自己調(diào)整 ??,我們只關注功能實現(xiàn) ??)。
對于學生成績管理系統(tǒng),主要可以分為如下幾個功能:
錄入學生成績 統(tǒng)計學生成績 查找學生成績 修改學生成績 刪除學生成績 按平均分排序 顯示所有成績 退出管理系統(tǒng)

進入系統(tǒng)之后,我們應該有系統(tǒng)菜單,然后根據(jù)提示選擇我們所要進行的操作。

錄入學生成績
該功能是每次錄入學生的成績信息,或者在當前數(shù)據(jù)的基礎上添加錄入新的學生成績信息;

統(tǒng)計學生成績
主要是對學生的成績進行統(tǒng)計,然后輸出平均分,并打印出對應信息;

查找學生成績
根據(jù)輸入的學號來查找對應學生的相關成績信息;

修改學生成績
根據(jù)輸入的學號來對對應學生的成績進行修改;

刪除學生成績
根據(jù)輸入的學生學號,刪除對應學生的成績信息;

按平均分排序
按照平均分降序排序;

顯示所有成績
便利所有學生成績,然后打印出來;

退出管理系統(tǒng)
退出菜單;

功能設計與實現(xiàn)
主界面
主要是打印出來系統(tǒng)功能的選擇菜單,然后根據(jù)我們的輸入進入不同的子功能模塊;
package com.cunyu;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author : cunyu
* @version : 1.0
* @className : Manager
* @date : 2021/4/4 23:54
* @description : 管理系統(tǒng)
*/
public class Manager {
public static Scanner scanner = new Scanner(System.in);
public static ArrayList<Student> students = new ArrayList<>();
public static void main(String[] args) {
while (true) {
System.out.println("----------歡迎使用學生成績管理系統(tǒng)-----------");
System.out.println("-------------【1】錄入學生成績-------------");
System.out.println("-------------【2】顯示統(tǒng)計數(shù)據(jù)-------------");
System.out.println("-------------【3】查找學生成績-------------");
System.out.println("-------------【4】修改學生成績-------------");
System.out.println("-------------【5】刪除學生成績-------------");
System.out.println("-------------【6】按平均分排列-------------");
System.out.println("-------------【7】顯示所有成績-------------");
System.out.println("-------------【0】退出管理系統(tǒng)-------------");
Student student = new Student();
System.out.println("輸入你的選擇【0-7】");
String choice = scanner.next();
switch (choice) {
case "1":
// 錄入成績
student.addScore(students);
break;
case "2":
// 統(tǒng)計信息
student.showAvg(students);
break;
case "3":
// 查找成績
student.lookupStudent(students);
break;
case "4":
// 修改成績
student.modifyStudent(students);
break;
case "5":
// 刪除成績
student.deleteStudent(students);
break;
case "6":
// 按照平均分排序
student.sortStudent(students);
break;
case "7":
// 顯示所有成績
student.showAllStudent(students);
break;
case "0":
System.exit(0);
default:
break;
}
}
}
}
主類設計
系統(tǒng)主要是針對學生成績信息管理的,所以我們設計一個學生類,包括一系列屬性(也就是簡單的個人信息和各科成績);
package com.cunyu;
/**
* @author : cunyu
* @version : 1.0
* @className : Student
* @date : 2021/4/4 23:31
* @description : 學生類
*/
public class Student {
// 班級
private String grade;
// 學號
private long id;
// 姓名
private String name;
// 高數(shù)
private float math;
// 英語
private float english;
// 體育
private float sport;
// Java
private float java;
// C++
private float cPlusPlus;
// 政治
private float polity;
// 算法
private float algorithm;
// 平均分
private double average;
// 各種 setter/getter 以及構(gòu)造函數(shù)
}
錄入學生成績
首先錄入學號,判斷是否可用,不可用則重新輸入,可用則輸入其他信息;
然后將信息賦值到學生對象,最后將該學生對象加入集合就可以了。
/**
* @param students 學生對象列表
* @return
* @description 錄入學生信息
* @date 2021/4/5 9:14
* @author cunyu1943
* @version 1.0
*/
public void addScore(ArrayList<Student> students) {
System.out.println("----------錄入學生數(shù)據(jù)----------");
System.out.println("請依次輸入如下數(shù)據(jù):");
long id;
while (true) {
System.out.println("學號");
id = scanner.nextInt();
if (isValid(students, id)) {
System.out.println("學號重復,請重新輸入");
} else {
break;
}
}
System.out.println("年級");
String grade = scanner.next();
System.out.println("姓名");
String name = scanner.next();
System.out.println("數(shù)學");
float math = scanner.nextFloat();
System.out.println("英語");
float english = scanner.nextFloat();
System.out.println("體育");
float sport = scanner.nextFloat();
System.out.println("Java");
float java = scanner.nextFloat();
System.out.println("C++");
float cPlusPlus = scanner.nextFloat();
System.out.println("政治");
float polity = scanner.nextFloat();
System.out.println("算法");
float algorithm = scanner.nextFloat();
// 創(chuàng)建對象,并設置屬性,然后將其加入學生對象集合
Student student = new Student();
student.setId(id);
student.setGrade(grade);
student.setName(name);
student.setMath(math);
student.setAlgorithm(algorithm);
student.setEnglish(english);
student.setcPlusPlus(cPlusPlus);
student.setJava(java);
student.setSport(sport);
student.setPolity(polity);
// 獲取平均分
double avg = getAvg(student);
student.setAverage(avg);
// 添加到集合
students.add(student);
// 提示信息
System.out.println("添加成功");
}
統(tǒng)計學生成績
主要實現(xiàn)對于各學生平均成績的統(tǒng)計,然后打印出信息;
/**
* @param students 學生對象集合
* @return
* @description 顯示簡單統(tǒng)計數(shù)據(jù)
* @date 2021/4/5 10:08
* @author cunyu1943
* @version 1.0
*/
public void showAvg(ArrayList<Student> students) {
System.out.println("----------輸出學生統(tǒng)計數(shù)據(jù)----------");
if (students.size() == 0) {
System.out.println("當前無數(shù)據(jù),請先添加數(shù)據(jù)!");
} else {
System.out.println("班級\t\t學號\t\t姓名\t\t平均分");
System.out.println("---------------------------------");
for (Student student : students) {
System.out.format("%s\t\t%d\t\t%s\t\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getAvg(student));
}
}
}
查找學生成績
先判斷是否有數(shù)據(jù),有數(shù)據(jù)再進行后續(xù)操作。然后通過對輸入的學號進行匹配,找到對應學號的學生成績信息并打印;
/**
* @param students 學生對象集合
* @return
* @description 查找對應學號學生的成績信息
* @date 2021/4/5 12:59
* @author cunyu1943
* @version 1.0
*/
public void lookupStudent(ArrayList<Student> students) {
System.out.println("----------查找學生成績----------");
if (students.size() == 0) {
System.out.println("當前無數(shù)據(jù),請?zhí)砑雍笾卦?);
} else {
System.out.println("請輸入要查找學生的學號:");
long id = scanner.nextLong();
int flag = -1;
Student student = new Student();
// 查找對應學號,找到就退出
for (int i = 0; i < students.size(); i++) {
student = students.get(i);
if (student.getId() == id) {
flag = i;
break;
}
}
if (flag == -1) {
System.out.println("未找到對應學號的學生,請確認后重新輸入!");
} else {
System.out.println("對應學號的學生成績?nèi)缦拢?);
System.out.println("班級\t\t學號\t\t姓名\t\t數(shù)學\t\t英語\t\t體育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
System.out.format("%s\t%d\t\t%s\t\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
System.out.println("查找信息成功!");
}
}
}
修改學生成績
先判斷是否有數(shù)據(jù),有數(shù)據(jù)再進行后續(xù)操作。然后通過對輸入的學號進行匹配,找到對應學號的學生,然后對其成績信息進行修改,但不修改個人其他信息;
/**
* @param students 學生對象集合
* @return
* @description 修改對應學號學生的信息
* @date 2021/4/5 12:59
* @author cunyu1943
* @version 1.0
*/
public void modifyStudent(ArrayList<Student> students) {
System.out.println("----------修改學生成績----------");
if (students.isEmpty()) {
System.out.println("當前無數(shù)據(jù),請?zhí)砑雍笾卦?);
} else {
System.out.println("請輸入要修改學生的學號:");
long id = scanner.nextLong();
for (Student student : students) {
if (id == student.getId()) {
System.out.println("請重新輸入該學生的成績");
System.out.println("數(shù)學");
float math = scanner.nextFloat();
System.out.println("英語");
float english = scanner.nextFloat();
System.out.println("體育");
float sport = scanner.nextFloat();
System.out.println("Java");
float java = scanner.nextFloat();
System.out.println("C++");
float cPlusPlus = scanner.nextFloat();
System.out.println("政治");
float polity = scanner.nextFloat();
System.out.println("算法");
float algorithm = scanner.nextFloat();
student.setMath(math);
student.setAlgorithm(algorithm);
student.setEnglish(english);
student.setcPlusPlus(cPlusPlus);
student.setJava(java);
student.setSport(sport);
student.setPolity(polity);
// 獲取平均分
double avg = getAvg(student);
student.setAverage(avg);
System.out.println("修改成功!");
} else {
System.out.println("未找到對應學號的學生,請確認后重新輸入!");
}
break;
}
}
}
刪除學生成績
先判斷是否有數(shù)據(jù),有數(shù)據(jù)再進行后續(xù)操作。然后通過對輸入的學號進行匹配,找到對應學號的學生,然后將其從集合中刪除即可;
/**
* @param students 學生對象集合
* @return
* @description 刪除學生成績
* @date 2021/4/5 14:28
* @author cunyu1943
* @version 1.0
*/
public void deleteStudent(ArrayList<Student> students) {
System.out.println("----------刪除學生成績----------");
if (students.isEmpty()) {
System.out.println("當前無數(shù)據(jù),請?zhí)砑雍笾卦?);
} else {
System.out.println("輸入要刪除學生成績的學號");
long id = scanner.nextLong();
int index = -1;
for (int i = 0; i < students.size(); i++) {
Student student = students.get(i);
if (student.getId() == id) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("未找到對應學號學生信息,請確認后再刪除!");
} else {
students.remove(index);
System.out.println("----------刪除成功----------");
}
}
}
按平均分排序
先判斷是否有數(shù)據(jù),有數(shù)據(jù)再進行后續(xù)操作。然后對集合中的學生的平均成績進行排序,然后依次從高到低打印出學生信息;
/**
* @param students 學生對象集合
* @return
* @description 按照平均分排序
* @date 2021/4/5 14:29
* @author cunyu1943
* @version 1.0
*/
public void sortStudent(ArrayList<Student> students) {
if (students.isEmpty()) {
System.out.println("當前無數(shù)據(jù),請?zhí)砑雍笾卦?);
} else {
for (int i = 0; i < students.size() - 1; i++) {
if (students.get(i).getAvg(students.get(i)) < students.get(i + 1).getAvg(students.get(i + 1))) {
Student tmp = students.get(i);
students.set(i, students.get(i + 1));
students.set(i + 1, tmp);
}
}
System.out.println("排序后的學生成績");
System.out.println("班級\t\t學號\t\t姓名\t\t數(shù)學\t\t英語\t\t體育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
for (Student student : students) {
System.out.format("%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
}
}
}
顯示所有成績
先判斷是否有數(shù)據(jù),有數(shù)據(jù)再進行后續(xù)操作。遍歷學生對象集合,然后打印出各個學生的成績信息。
/**
* @param students 學生對象集合
* @return
* @description 顯示所有學生成績
* @date 2021/4/5 14:30
* @author cunyu1943
* @version 1.0
*/
public void showAllStudent(ArrayList<Student> students) {
if (students.isEmpty()) {
System.out.println("當前無數(shù)據(jù),請先添加數(shù)據(jù)");
} else {
System.out.println("----------所有學生成績?nèi)缦?---------");
System.out.println("班級\t\t學號\t\t姓名\t\t數(shù)學\t\t英語\t\t體育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
for (Student student : students) {
System.out.format("%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
}
}
}
總程序
將上述所有模塊整合之后,我們得到最終的程序;
Manager.java
package com.cunyu;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author : cunyu
* @version : 1.0
* @className : Manager
* @date : 2021/4/4 23:54
* @description : 管理系統(tǒng)
*/
public class Manager {
public static Scanner scanner = new Scanner(System.in);
public static ArrayList<Student> students = new ArrayList<>();
public static void main(String[] args) {
while (true) {
System.out.println("----------歡迎使用學生成績管理系統(tǒng)-----------");
System.out.println("-------------【1】錄入學生成績-------------");
System.out.println("-------------【2】顯示統(tǒng)計數(shù)據(jù)-------------");
System.out.println("-------------【3】查找學生成績-------------");
System.out.println("-------------【4】修改學生成績-------------");
System.out.println("-------------【5】刪除學生成績-------------");
System.out.println("-------------【6】按平均分排列-------------");
System.out.println("-------------【7】顯示所有成績-------------");
System.out.println("-------------【0】退出管理系統(tǒng)-------------");
Student student = new Student();
System.out.println("輸入你的選擇");
String choice = scanner.next();
switch (choice) {
case "1":
student.addScore(students);
break;
case "2":
student.showAvg(students);
break;
case "3":
student.lookupStudent(students);
break;
case "4":
student.modifyStudent(students);
break;
case "5":
student.deleteStudent(students);
break;
case "6":
student.sortStudent(students);
break;
case "7":
student.showAllStudent(students);
break;
case "0":
System.exit(0);
default:
break;
}
}
}
}
Student.java
package com.cunyu;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author : cunyu
* @version : 1.0
* @className : Student
* @date : 2021/4/4 23:31
* @description : 學生類
*/
public class Student {
public static Scanner scanner = new Scanner(System.in);
// 班級
private String grade;
// 學號
private long id;
// 姓名
private String name;
// 高數(shù)
private float math;
// 英語
private float english;
// 體育
private float sport;
// Java
private float java;
// C++
private float cPlusPlus;
// 政治
private float polity;
// 算法
private float algorithm;
// 平均分
private double average;
public Student() {
}
public Student(String grade, long id, String name, float math, float english, float sport, float java, float cPlusPlus, float polity, float algorithm, double average) {
this.grade = grade;
this.id = id;
this.name = name;
this.math = math;
this.english = english;
this.sport = sport;
this.java = java;
this.cPlusPlus = cPlusPlus;
this.polity = polity;
this.algorithm = algorithm;
this.average = average;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getMath() {
return math;
}
public void setMath(float math) {
this.math = math;
}
public float getEnglish() {
return english;
}
public void setEnglish(float english) {
this.english = english;
}
public float getSport() {
return sport;
}
public void setSport(float sport) {
this.sport = sport;
}
public float getJava() {
return java;
}
public void setJava(float java) {
this.java = java;
}
public float getcPlusPlus() {
return cPlusPlus;
}
public void setcPlusPlus(float cPlusPlus) {
this.cPlusPlus = cPlusPlus;
}
public float getPolity() {
return polity;
}
public void setPolity(float polity) {
this.polity = polity;
}
public float getAlgorithm() {
return algorithm;
}
public void setAlgorithm(float algorithm) {
this.algorithm = algorithm;
}
public double getAvg(Student student) {
return (student.getAlgorithm() + student.getcPlusPlus() + student.getEnglish() + student.getSport() + student.getJava() + student.getPolity() + student.getMath()) / 7;
}
public void setAverage(double average) {
this.average = average;
}
/**
* @param students 學生對象列表
* @return
* @description 錄入學生信息
* @date 2021/4/5 9:14
* @author cunyu1943
* @version 1.0
*/
public void addScore(ArrayList<Student> students) {
System.out.println("----------錄入學生數(shù)據(jù)----------");
System.out.println("請依次輸入如下數(shù)據(jù):");
long id;
while (true) {
System.out.println("學號");
id = scanner.nextInt();
if (isValid(students, id)) {
System.out.println("學號重復,請重新輸入");
} else {
break;
}
}
System.out.println("年級");
String grade = scanner.next();
System.out.println("姓名");
String name = scanner.next();
System.out.println("數(shù)學");
float math = scanner.nextFloat();
System.out.println("英語");
float english = scanner.nextFloat();
System.out.println("體育");
float sport = scanner.nextFloat();
System.out.println("Java");
float java = scanner.nextFloat();
System.out.println("C++");
float cPlusPlus = scanner.nextFloat();
System.out.println("政治");
float polity = scanner.nextFloat();
System.out.println("算法");
float algorithm = scanner.nextFloat();
// 創(chuàng)建對象,并設置屬性,然后將其加入學生對象集合
Student student = new Student();
student.setId(id);
student.setGrade(grade);
student.setName(name);
student.setMath(math);
student.setAlgorithm(algorithm);
student.setEnglish(english);
student.setcPlusPlus(cPlusPlus);
student.setJava(java);
student.setSport(sport);
student.setPolity(polity);
// 獲取平均分
double avg = getAvg(student);
student.setAverage(avg);
// 添加到集合
students.add(student);
// 提示信息
System.out.println("添加成功");
}
/**
* @param students 學生對象集合
* @param id 學號
* @return true,學號重復;false 學號可用
* @description 判斷學號是否可用
* @date 2021/4/5 9:19
* @author cunyu1943
* @version 1.0
*/
public boolean isValid(ArrayList<Student> students, long id) {
for (Student student : students) {
if (student.getId() == id) {
return true;
}
}
return false;
}
/**
* @param students 學生對象集合
* @return
* @description 顯示簡單統(tǒng)計數(shù)據(jù)
* @date 2021/4/5 10:08
* @author cunyu1943
* @version 1.0
*/
public void showAvg(ArrayList<Student> students) {
System.out.println("----------輸出學生統(tǒng)計數(shù)據(jù)----------");
if (students.size() == 0) {
System.out.println("當前無數(shù)據(jù),請先添加數(shù)據(jù)!");
} else {
System.out.println("班級\t\t學號\t\t姓名\t\t平均分");
System.out.println("---------------------------------");
for (Student student : students) {
System.out.format("%s\t\t%d\t\t%s\t\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getAvg(student));
}
}
}
/**
* @param students 學生對象集合
* @return
* @description 查找對應學號學生的成績信息
* @date 2021/4/5 12:59
* @author cunyu1943
* @version 1.0
*/
public void lookupStudent(ArrayList<Student> students) {
System.out.println("----------查找學生成績----------");
if (students.size() == 0) {
System.out.println("當前無數(shù)據(jù),請?zhí)砑雍笾卦?);
} else {
System.out.println("請輸入要查找學生的學號:");
long id = scanner.nextLong();
int flag = -1;
Student student = new Student();
// 查找對應學號,找到就退出
for (int i = 0; i < students.size(); i++) {
student = students.get(i);
if (student.getId() == id) {
flag = i;
break;
}
}
if (flag == -1) {
System.out.println("未找到對應學號的學生,請確認后重新輸入!");
} else {
System.out.println("對應學號的學生成績?nèi)缦拢?);
System.out.println("班級\t\t學號\t\t姓名\t\t數(shù)學\t\t英語\t\t體育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
System.out.format("%s\t%d\t\t%s\t\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
System.out.println("查找信息成功!");
}
}
}
/**
* @param students 學生對象集合
* @return
* @description 修改對應學號學生的信息
* @date 2021/4/5 12:59
* @author cunyu1943
* @version 1.0
*/
public void modifyStudent(ArrayList<Student> students) {
System.out.println("----------修改學生成績----------");
if (students.isEmpty()) {
System.out.println("當前無數(shù)據(jù),請?zhí)砑雍笾卦?);
} else {
System.out.println("請輸入要修改學生的學號:");
long id = scanner.nextLong();
for (Student student : students) {
if (id == student.getId()) {
System.out.println("請重新輸入該學生的成績");
System.out.println("數(shù)學");
float math = scanner.nextFloat();
System.out.println("英語");
float english = scanner.nextFloat();
System.out.println("體育");
float sport = scanner.nextFloat();
System.out.println("Java");
float java = scanner.nextFloat();
System.out.println("C++");
float cPlusPlus = scanner.nextFloat();
System.out.println("政治");
float polity = scanner.nextFloat();
System.out.println("算法");
float algorithm = scanner.nextFloat();
student.setMath(math);
student.setAlgorithm(algorithm);
student.setEnglish(english);
student.setcPlusPlus(cPlusPlus);
student.setJava(java);
student.setSport(sport);
student.setPolity(polity);
// 獲取平均分
double avg = getAvg(student);
student.setAverage(avg);
System.out.println("修改成功!");
} else {
System.out.println("未找到對應學號的學生,請確認后重新輸入!");
}
break;
}
}
}
/**
* @param students 學生對象集合
* @return
* @description 刪除學生成績
* @date 2021/4/5 14:28
* @author cunyu1943
* @version 1.0
*/
public void deleteStudent(ArrayList<Student> students) {
System.out.println("----------刪除學生成績----------");
if (students.isEmpty()) {
System.out.println("當前無數(shù)據(jù),請?zhí)砑雍笾卦?);
} else {
System.out.println("輸入要刪除學生成績的學號");
long id = scanner.nextLong();
int index = -1;
for (int i = 0; i < students.size(); i++) {
Student student = students.get(i);
if (student.getId() == id) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("未找到對應學號學生信息,請確認后再刪除!");
} else {
students.remove(index);
System.out.println("----------刪除成功----------");
}
}
}
/**
* @param students 學生對象集合
* @return
* @description 顯示所有學生成績
* @date 2021/4/5 14:30
* @author cunyu1943
* @version 1.0
*/
public void showAllStudent(ArrayList<Student> students) {
if (students.isEmpty()) {
System.out.println("當前無數(shù)據(jù),請先添加數(shù)據(jù)");
} else {
System.out.println("----------所有學生成績?nèi)缦?---------");
System.out.println("班級\t\t學號\t\t姓名\t\t數(shù)學\t\t英語\t\t體育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
for (Student student : students) {
System.out.format("%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
}
}
}
/**
* @param students 學生對象集合
* @return
* @description 按照平均分排序
* @date 2021/4/5 14:29
* @author cunyu1943
* @version 1.0
*/
public void sortStudent(ArrayList<Student> students) {
if (students.isEmpty()) {
System.out.println("當前無數(shù)據(jù),請?zhí)砑雍笾卦?);
} else {
for (int i = 0; i < students.size() - 1; i++) {
if (students.get(i).getAvg(students.get(i)) < students.get(i + 1).getAvg(students.get(i + 1))) {
Student tmp = students.get(i);
students.set(i, students.get(i + 1));
students.set(i + 1, tmp);
}
}
System.out.println("排序后的學生成績");
System.out.println("班級\t\t學號\t\t姓名\t\t數(shù)學\t\t英語\t\t體育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
for (Student student : students) {
System.out.format("%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
}
}
}
}
總結(jié)
雖然功能比較簡陋,但還是需要一定時間來完成的。此外,本設計只是針對一次運行過程,一旦程序終止,錄入的數(shù)據(jù)就無法保存了,這一點需要注意。后續(xù)考慮加入文件寫入或者數(shù)據(jù)庫的方式來實現(xiàn)該課程設計,以保存我們所錄入的數(shù)據(jù)。



