Java第二次作业

啊字符串比较要用equals啊啊啊

Posted by wqw on August 15, 2018

JAVA第二次作业

啊 题目真的不难 但是

总是习惯性的字符比较久== 在JAVA里这可是比较的引用啊啊找了半天的bug就是这个 哭哭

代码有空再贴 先去踢球

Update 2018-8-16 00:11:08

更新代码

题目不难但是写起来是真的累,父类抽象类为person

继承的两个子类是StudentTeacher

类里面写方法设置对象的成员变量的值,剩下的就是输入输出格式了。统计部分很简单就是遍历一遍得到最大值,然后输出所有最大值是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次的题目现在剩余次数就是负数,感觉这届助教不太行,唉。