设计要求
学生成绩管理系统要求如下:
设计学生成绩管理系统,实现以下功能:
(1)输入5个学生的学号、姓名以及四科成绩;
(2)计算每个学生的平均成绩,按降序排序;
(3)计算每门课的平均分,最高分以及最低分;
(4)按每个学生的平均成绩划分等级,统计每个等级的学生人数;
(5)输入学号查询每个学生的成绩。
完整代码
package work.chengxu;
import java.util.ArrayList;
import java.util.Scanner;
class Students {
/*学号,姓名,成绩*/
private String stuName;
private int stuNumber;
private int achievementOne;
private int achievementTwo;
private int achievementThree;
private int achievementFour;
private int averageAchievement;
@Override
public String toString() {
return "Students{" +
"stuName='" + stuName + '\'' +
", stuNumber=" + stuNumber +
", achievementOne=" + achievementOne +
", achievementTwo=" + achievementTwo +
", achievementThree=" + achievementThree +
", achievementFour=" + achievementFour +
'}';
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public int getStuNumber() {
return stuNumber;
}
public void setStuNumber(int stuNumber) {
this.stuNumber = stuNumber;
}
public int getAchievementOne() {
return achievementOne;
}
public void setAchievementOne(int achievementOne) {
this.achievementOne = achievementOne;
}
public int getAchievementTwo() {
return achievementTwo;
}
public void setAchievementTwo(int achievementTwo) {
this.achievementTwo = achievementTwo;
}
public int getAchievementThree() {
return achievementThree;
}
public void setAchievementThree(int achievementThree) {
this.achievementThree = achievementThree;
}
public int getAchievementFour() {
return achievementFour;
}
public void setAchievementFour(int achievementFour) {
this.achievementFour = achievementFour;
}
public int getAverageAchievement() {
return averageAchievement;
}
public void setAverageAchievement(int averageAchievement) {
this.averageAchievement = averageAchievement;
}
}
class Main {
static int num = 0;
static boolean tag = true;
static Students[] stu = new Students[5];
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
// 主菜单
while (tag) {
System.out.println("1.输入学生数据");
System.out.println("2.排列学生平均成绩");
System.out.println("3.计算每门课的平均成绩、最高分和最低分");
System.out.println("4.划分等级并统计");
System.out.println("5.查询学生数据");
System.out.println("6.退出学生管理系统");
int scan_num = scan.nextInt();
// 主菜单选择
Tib:
switch (scan_num) {
case 1:
add();
break;
case 2:
paiXu();
break;
case 3:
calculation();
break;
case 4:
degree();
break;
case 5:
cha();
break;
case 6:
break Tib;
default:
break;
}
}
}
static void add() { // 增加学生信息
while (num < 5) {
stu[num] = new Students();
System.out.println("请依次输入学号,姓名,成绩1,成绩2,成绩3,成绩4");
stu[num].setStuNumber(scan.nextInt());
stu[num].setStuName(scan.next());
stu[num].setAchievementOne(scan.nextInt());
stu[num].setAchievementTwo(scan.nextInt());
stu[num].setAchievementThree(scan.nextInt());
stu[num].setAchievementFour(scan.nextInt());
stu[num].setAverageAchievement((stu[num].getAchievementOne() + stu[num].getAchievementTwo() + stu[num].getAchievementThree() + stu[num].getAchievementFour()) / 4);
num++;
}
}
/**
* 对学生信息进行排序,该方法菜单中不可选择,但会在其他方法中调
*/
static void paiXu() {
Students temp;
for (int j = 0; j < stu.length; j++) {
for (int i = 0; i < stu.length; i++) {
// 依次比较相邻的两个元素,使较小的那个向后移
if (stu[j].getAverageAchievement() > stu[i].getAverageAchievement()) {
temp = stu[j];
stu[j]=stu[i];
stu[i] = temp;
}
}
}
for (Students s:stu){
System.out.println(s.getStuName()+s.getAverageAchievement());
}
}
static void calculation() {
for (int i = 0; i < 4; i++) {
int temp = 0;
int numberAverage = 0;
int numberMax = Integer.MIN_VALUE;
int numberMin = Integer.MAX_VALUE;
for (Students t : stu) {
if (i == 0) {
temp = t.getAchievementOne();
}
if (i == 1) {
temp = t.getAchievementTwo();
}
if (i == 2) {
temp = t.getAchievementThree();
}
if (i == 3) {
temp = t.getAchievementFour();
}
numberAverage += temp;
if (temp < numberMin) {
numberMin = temp;
}
if (temp > numberMax) {
numberMax = temp;
}
}
System.out.println("第" + (i+1) + "门课成绩平均值为" + ((numberAverage)/5));
System.out.println("第" + (i+1) + "门课成绩最大值为" + numberMax);
System.out.println("第" + (i+1) + "门课成绩最大值为" + numberMin);
}
}
static void degree() {
ArrayList<String> gardeOne = new ArrayList<>();
ArrayList<String> gardeTwo = new ArrayList<>();
ArrayList<String> gardeThree = new ArrayList<>();
for (Students s : stu) {
if (s.getAverageAchievement() < 60) {
gardeOne.add(s.getStuName());
} else {
if (s.getAverageAchievement() < 85) {
gardeTwo.add(s.getStuName());
} else {
gardeThree.add(s.getStuName());
}
}
}
System.out.println("差等生有:" + gardeOne + "共" + gardeOne.size() + "人");
System.out.println("良好生有:" + gardeTwo + "共" + gardeTwo.size() + "人");
System.out.println("优等生有:" + gardeThree + "共" + gardeThree.size() + "人");
}
static void cha() { // 遍历学生信息并打印,取代了逐一查找学生信息
System.out.println("请输入学号:");
int number = scan.nextInt();
for (int i = 0; i < stu.length; i++) {
if (stu[i].getStuNumber() == number) {
System.out.println("成绩一:" + stu[i].getAchievementOne());
System.out.println("成绩二:" + stu[i].getAchievementTwo());
System.out.println("成绩三:" + stu[i].getAchievementThree());
System.out.println("成绩四:" + stu[i].getAchievementFour());
}
}
}
}
运行结果
- 后面大家就可以自行输入对应功能前的序号,实现此系统的功能