JAVA第二次作业
啊 题目真的不难 但是
总是习惯性的字符比较久== 在JAVA里这可是比较的引用啊啊找了半天的bug就是这个 哭哭
代码有空再贴 先去踢球
Update 2018-8-16 00:11:08
更新代码
题目不难但是写起来是真的累,父类抽象类为
person
继承的两个子类是Student
和Teacher
类里面写方法设置对象的成员变量的值,剩下的就是输入输出格式了。统计部分很简单就是遍历一遍得到最大值,然后输出所有最大值是times的数据
import java.util.Map;
import java.util.Scanner;
import java.util.HashMap;
abstract class Person
{
Person(){}
protected String identity=new String(" ");
protected String number=new String(" ");
protected String name=new String(" ");
protected String sex=new String(" ");
protected String old=new String(" ");
protected String major=new String(" ");
protected String year=new String(" ");
protected int times=0;
protected void setIdentity(String tempIdentity)
{
this.identity=tempIdentity;
}
protected void setNumber(String number)
{
this.number=number;
}
protected void setName(String name)
{
this.name=name;
}
protected void setSex(String sex)
{
this.sex=sex;
}
protected void setOld(String old)
{
this.old=old;
}
protected void setMajor(String major)
{
this.major=major;
}
protected void setYear(String year)
{
this.year=year;
}
}
class Student extends Person
{
Student(int num){}
protected void setIdentity(String tempIdentity)
{
this.identity=tempIdentity;
}
protected void setNumber(String number)
{
this.number=number;
}
protected void setName(String name)
{
this.name=name;
}
protected void setSex(String sex)
{
this.sex=sex;
}
protected void setOld(String old)
{
this.old=old;
}
protected void setMajor(String major)
{
this.major=major;
}
protected void setYear(String year)
{
this.year=year;
}
}
class Teacher extends Person
{
Teacher(int num){}
protected void setIdentity(String tempIdentity)
{
this.identity=tempIdentity;
}
protected void setNumber(String number)
{
this.number=number;
}
protected void setName(String name)
{
this.name=name;
}
protected void setSex(String sex)
{
this.sex=sex;
}
protected void setOld(String old)
{
this.old=old;
}
protected void setMajor(String major)
{
this.major=major;
}
protected void setYear(String year)
{
this.year=year;
}
}
public class check
{
public static void main(String[] args)
{
Scanner scan =new Scanner(System.in);
Map<Integer,Person> map=new HashMap<Integer,Person>();
int n=scan.nextInt();
int m=scan.nextInt();
for(int i=0;i<n;i++)
{
String iden=new String();
iden=scan.next();
if(iden.equals("Teacher"))
{
map.put(i,new Teacher(i));
map.get(i).setIdentity(iden);
map.get(i).setNumber(scan.next());
map.get(i).setSex(scan.next());
map.get(i).setOld(scan.next());
map.get(i).setMajor(scan.next());
//System.out.println(map.get(i).sex);
}
else if(iden.equals("Student"))
{
map.put(i, new Student(i));
map.get(i).setIdentity(iden);
map.get(i).setNumber(scan.next());
map.get(i).setName(scan.next());
map.get(i).setSex(scan.next());
map.get(i).setOld(scan.next());
map.get(i).setYear(scan.next());
//System.out.println(map.get(i).number);
}
}
for(int i=0;i<m;i++)
{
String iden=new String();
iden=scan.next();
String num=new String();
num=scan.next();
if(i==m-1)
{
scan.close();
}
if(iden.equals("S"))
iden="Student";
else
iden="Teacher";
for(int j=0;j<n;j++)
{
if(map.get(j).identity.equals(iden)&&map.get(j).number.equals(num))
{
map.get(j).times+=1;
}
}
}
//scan.close();
int maxTimes=-1;
for(int i=0;i<n;i++)
{
if(map.get(i).times>=maxTimes)
{
maxTimes=map.get(i).times;
//System.out.println(maxTimes);
}
}
for(int i=0;i<n;i++)
{
if(map.get(i).times==maxTimes)
{
if(map.get(i).identity.equals("Teacher"))
{
System.out.print(map.get(i).identity);
System.out.print(" ");
System.out.print(map.get(i).number);
System.out.print(" ");
System.out.print(map.get(i).sex);
System.out.print(" ");
System.out.print(map.get(i).old+" ");
System.out.println(map.get(i).major);
}
else
{
System.out.println(map.get(i).identity+" "+map.get(i).number+" "+map.get(i).name+" "+map.get(i).sex+" "+map.get(i).old+" "+map.get(i).year);
}
}
}
//scan.close();
}
}
代码很丑因为很多地方都是找bug时候随意写的,但是基本bug都是字符串比较的问题,另外今天OJ突然不能查分了搞的群里都喷起来了,目前是每道题只能提交5次,包括之前超过5次的题目现在剩余次数就是负数,感觉这届助教不太行,唉。