📄 gradesystem.java
字号:
import java.io.*;
public class GradeSystem {
public static int MAXSTUDENTS = 3;
int scores[] = new int[MAXSTUDENTS];
int count = 0;
public static void main(String argv[]) throws IOException{
GradeSystem gradeSys = new GradeSystem();
gradeSys.functionOption();
}
public void functionOption(){
while(true){
System.out.println("欢迎使用成绩管理系统");
System.out.println("1.录入学生成绩");
System.out.println("2.计算总成绩");
System.out.println("3.计算平均成绩");
System.out.println("4.成绩分析");
System.out.println("5.退出系统");
System.out.println("请输入数字1-5选择功能>>");
int option = 1;
try{
option = readInteger();
}catch(IOException e){
e.printStackTrace();
continue;
}catch(NumberFormatException e){
System.out.println("错误提示:只能输入数字1-5选择功能\n");
continue;
}
switch(option){
case 1://录入成绩
count = inputGrades(scores);
break;
case 2://计算总成绩
if(count == 0){
System.out.println("请先录入学生成绩");
continue;
}
System.out.println("学生总成绩= " + totalGrades(scores,count));
waitPress();
break;
case 3://计算平均成绩
if(count == 0){
System.out.println("请先录入学生成绩");
continue;
}
System.out.println("学生平均成绩= " + averageGrades(scores,count));
waitPress();
break;
case 4://成绩分析
if(count == 0){
System.out.println("请先录入学生成绩");
continue;
}
this.analysisGrades(scores,count);
waitPress();
break;
case 5://退出系统
return;
default:
System.out.println("输入数字有误,请输入1-5的数字选择功能>>");
waitPress();
break;
}
}
}
public int inputGrades(int scores[]){
int count = 0;
while(true){
int grade = getAndValidateGrade();
if(grade == -1)
break;
scores[count] = grade;
count++;
if(count >= MAXSTUDENTS){
System.out.println("学生人数最多不能超过" + MAXSTUDENTS);
waitPress();
break;
}
}
return count;
}
public int averageGrades(int scores[],int count){
int sum = 0;
sum = totalGrades(scores,count);
return sum / count;
}
public int totalGrades(int scores[],int count){
int sum = 0;
for(int i = 0;i < count;i++){
sum += scores[i];
}
return sum;
}
public void analysisGrades(int scores[],int count){
int numberPassed = 0;
int numberFailed = 0;
int numberBe90_100 = 0;
int numberBe80_90 = 0;
int numberBe70_80 = 0;
int numberBe60_70 = 0;
int numberBe0_59 = 0;
for(int i = 0;i < count;i++){
if(scores[i] >= 60)
numberPassed++;
else
numberFailed++;
int n = (int)Math.floor(scores[i] / 10);
// String level;
switch(n){
case 10:
case 9:numberBe90_100++;
break;
case 8:numberBe80_90++;
break;
case 7:numberBe70_80++;
break;
case 6:numberBe60_70++;
break;
default:numberBe0_59++;
break;
}
}
System.out.println("及格人数= " + numberPassed);
System.out.println("不及格人数= " + numberFailed);
System.out.println("等级为“优秀”人数= " + numberBe90_100);
System.out.println("等级为“良”人数= " + numberBe80_90);
System.out.println("等级为“中”人数= " + numberBe70_80);
System.out.println("等级为“及格”人数= " + numberBe60_70);
System.out.println("等级为“不及格”人数= " + numberBe0_59);
}
private int getAndValidateGrade(){
int grade = 0;
while(true){
System.out.println("输入学生成绩如88," + "输入-1表示结束>>");
try{
grade = readInteger();
}catch(IOException e){
System.out.println("输入成绩有误");
e.printStackTrace();
continue;
}catch(NumberFormatException e){
System.out.println("错误提示:学生成绩应该为整数且在0-100\n");
}
if((grade != -1)&&((grade < 0)||(grade > 100))){
System.out.println("错误提示:学生成绩应该在0-100\n");
continue;
}
else
break;
}
return grade;
}
private int readInteger() throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
return Integer.parseInt(in.readLine());
}
private void waitPress(){
try{
System.out.println("按任意键继续>>");
System.in.read();
}catch(IOException e){}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -