Desperate11221 2022-04-16 16:11 采纳率: 100%

# oj一直是答案错误50%，真想不到还有其他什么情况了，代码贴在下面

###### 我想要达到的结果
``````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;
}
}
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 f=in.nextLine();
String[] a=new String[n];
while(i<n)
{
String line =in.nextLine();
String[] Line=line.split("\\s");
switch(Line[0])
{
case "1":
break;
case "2":
a[i]=removeStudent(list,Line);
break;
case "3":
break;
case "4":
a[i]=showaverage(list,Line);
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= String.valueOf(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,String[] line) {
String b=line[1];
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 Score:"+result;
break;
}
else if(i+1==list.size())
{
m="Students do not exist";
}
i++;
}

return m;

}
public static String updateStudent(ArrayList<Student> list,String[] line) {
String number=line[1];
String name= "da";
int maths=Integer.parseInt(line[2]);
int english=Integer.parseInt(line[3]);
int science=Integer.parseInt(line[4]);
String m=null;
Student stu=new Student(number,name,maths,english,science);
if(list.size()==0)
{
m="Students do not exist";
}
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";
break;
}
else
{
m= "Students do not exist";
}
}
return m;

}
public  static String removeStudent(ArrayList<Student> list,String[] line) {
String m = null;
int i=0;
if(list.size()==0)
{
m= "Students do not exist";
}
String b=line[1];
if(isused(list,b))
{
for(i=0;i<list.size();i++ )
{
Student stu=list.get(i);

if(stu.getNumber().equals(b))
{
list.remove(i);
m="Delete success";
break;
}
}
}
else
{
m="Students do not exist";
}

return m;
}

public  static String addStudent(ArrayList<Student> list,String[] line) {
String number=line[1];
if(isused(list,number))
{
}
String name=line[2];
int maths=Integer.parseInt(line[3]);
int english=Integer.parseInt(line[4]);
int science=Integer.parseInt(line[5]);
Student stu=new Student(number,name,maths,english,science);
}

}

``````

• 写回答

#### 1条回答默认 最新

• 嘉祐-小萝卜算子 2022-04-16 17:37
关注

多少题

本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论

• 系统已结题 4月25日
• 已采纳回答 4月17日
• 创建了问题 4月16日

#### 悬赏问题

• ¥15 ImportPathMismatchError
• ¥15 滤波器这个效果是对的么
• ¥15 c++静态函数的静态函数参数问题
• ¥15 51单片机数码管显示有问题
• ¥30 delphi 10 seattle 调https
• ¥200 有哪位师傅可以教我做出telegraf平台的骰子插件？重酬。
• ¥85 3559A sensor时间同步
• ¥15 IGH主站与elmo驱动器连接时，pdo映射后无法输入输出
• ¥100 Android应用如何动态绑定邀请码
• ¥15 grbl用"!"命令停止移动后，怎么重置？