package second;
import java.util.ArrayList;
import java.util.Scanner;
class Student{
String studentNumber;//记录学生编号
String studentName;
int markForMaths;
int markForEnglish;
int markForScience;
Student(String studentNumber,String studentName,int markForMaths,int markForEnglish,int markForScience)
{
this.studentName=studentName;
this.studentNumber=studentNumber;
this.markForEnglish=markForEnglish;
this.markForMaths=markForMaths;
this.markForScience=markForScience;
}
Student(String studentNumber,int markForMaths,int markForEnglish,int markForScience)
{
this.studentNumber=studentNumber;
this.markForEnglish=markForEnglish;
this.markForMaths=markForMaths;
this.markForScience=markForScience;
}
String getNumber()
{
return studentNumber;
}
String getName()
{
return studentName;
}
int getMathsMark()
{
return markForMaths;
}
int getEnglishMark()
{
return markForEnglish;
}
int getScienceMark()
{
return markForScience;
}
}
public class StudentList{
static boolean isused(ArrayList<Student>arrayList,String a)//1
{
boolean flag=false;
for(int i=0;i<arrayList.size();i++)
{
Student stu=arrayList.get(i);
if(stu.getNumber().equals(a)) {
flag=true;
break;
}
}
return flag;
}
public static void main(String[] args)
{
ArrayList<Student>list=new ArrayList<>();
int i=0;
Scanner in=new Scanner(System.in);
int n=in.nextInt();
String[] a=new String[n];
while(i<n)
{
String line =in.next();
switch(line)
{
case "1":
a[i]= addStudent(list);
break;
case "2":
a[i]=removeStudent(list);
break;
case "3":
a[i]= updateStudent(list);
break;
case "4":
a[i]=showaverage(list);
break;
case "5":
a[i]= judgeempty(list);
break;
case "6":
a[i]= gettotal(list);
break;
}
i++;
}
for(i=0;i<n;i++)
{
System.out.println(a[i]);
}
}
public static String gettotal(ArrayList<Student> list) {
String m= list.size()+" ";
return m;
}
public static String judgeempty(ArrayList<Student> list) {
if(list.size()==0)
{
return "List is empty";
}
else
{
return"List is not empty";
}
}
public static String showaverage(ArrayList<Student> list) {
Scanner in=new Scanner(System.in);
String b=in.next();
String m=null;
String[] a=new String[3];
int i=0;
while(i<list.size())
{
Student stu=list.get(i);
if(stu.getNumber().equals(b))
{
double average=(stu.markForEnglish+stu.markForMaths+stu.markForScience)*(1.0)/(3.0);
String result=String.format("%.1f",average);
m="Student ID:"+stu.studentNumber+"\n"+
"Name:"+stu.studentName+"\n"+
"Average:"+result;
break;
}
if(i+1==list.size()&&stu.getNumber()!=b)
{
m="Students do not exist";
break;
}
i++;
}
return m;
}
public static String updateStudent(ArrayList<Student> list) {
Scanner in=new Scanner(System.in);
String number=in.next();
String name= "da";
int maths=in.nextInt();
int english=in.nextInt();
int science=in.nextInt();
String m=null;
Student stu=new Student(number,name,maths,english,science);
for(int i=0;i<list.size();i++)
{
//输入学号与集合中存储的学号进行比对如果一样进行修改,如果不一样提示。
Student stu1=list.get(i);
if(stu.getNumber().equals(stu1.getNumber()))
{
m=stu1.studentName;
stu.studentName=m;
list.set(i, stu);//修改集合中的set方法修改,直接通过下标修改。
m= "Update success";
}
else
{
m= "Students do not exist";
}
}
return m;
}
public static String removeStudent(ArrayList<Student> list) {
Scanner in=new Scanner(System.in);
String m = null;
if(list.size()==0)
{
m= "Students do not exist";
return m;
}
String b=in.next();
if(isused(list,b))
{
for(int i=0;i<list.size();i++ )
{
Student stu=list.get(i);
if(stu.getNumber().equals(b))
{
list.remove(i);
m="Delete success";
break;
}
else if(i+1==list.size()&&stu.getNumber()!=b)
{
m="Students do not exist";
}
}
}
return m;
}
public static String addStudent(ArrayList<Student> list) {
Scanner in=new Scanner(System.in);
String number=in.next();
while(true) {
if(isused(list,number))
{
System.out.println("Students already exist");
}else
{
break;
}
}
String name=in.next();
int maths=in.nextInt();
int english=in.nextInt();
int science=in.nextInt();
Student stu=new Student(number,name,maths,english,science);
list.add(stu);
return"Add success";
}
}
这个代码能达到的效果如下图
但是如果按照oj要求输入就会是下图的结果
请问怎么样才能实现