学生信息的添加与查询
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
设计一个学生添加和查询的系统,从键盘读入学生的数据,然后再从屏幕显示出来。
Input
第一行有2个整数N和M,其中:N——学生数量,M——学生属性数量;
第二行有M个字符串,表示学生的属性名称,其中第1个属性id表示关键字;其中各字段属性的数据类型是确定的。
接下来有N行M列数据,分别表示学生各种属性的值,关键字相同的记录代表一个学生(后来读入的信息覆盖前面读入数据)
第二行有M个字符串,表示学生的属性名称,其中第1个属性id表示关键字;其中各字段属性的数据类型是确定的。
接下来有N行M列数据,分别表示学生各种属性的值,关键字相同的记录代表一个学生(后来读入的信息覆盖前面读入数据)
Output
输出所有学生的属性及数据。(每行的列数据之间用‘\t’进行分隔)
Example Input
5 4 id name birthday score 0001 Mike 1990-05-20 98.5 0002 John 1992-05-20 67 0003 Hill 1994-05-02 36.5 0004 Christ 1996-05-20 86.5 0001 Jack 1998-05-20 96
Example Output
id:0001 name:Jack birthday:1998_5_20 score:96.0 id:0002 name:John birthday:1992_5_20 score:67.0 id:0003 name:Hill birthday:1994_5_2 score:36.5 id:0004 name:Christ birthday:1996_5_20 score:86.5
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.Map.Entry; class changedate{ public String datecon(String str) throws ParseException{ SimpleDateFormat dfs1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dfs2 = new SimpleDateFormat("yyyy_M_d"); return dfs2.format(dfs1.parse(str)); } } class sdut{ private String name; private String birthday; private double score; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } public sdut(String name, String birthday, double score) { super(); this.name = name; this.birthday = birthday; this.score = score; } changedate d = new changedate(); public String toString() { try { return "name:" + name + "\tbirthday:" + d.datecon(birthday) + "\tscore:" + String.format("%.1f", score); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return birthday; } } public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int n = cin.nextInt(); int m = cin.nextInt(); cin.nextLine(); cin.nextLine(); Map<String, sdut> map = new HashMap<String, sdut>(); for(int i = 0; i < n; i++){ String id = cin.next(); sdut S = new sdut( cin.next(), cin.next(), cin.nextDouble()); map.put(id, S); } Set<String> keySet = map.keySet(); List<String> list = new ArrayList<String>(keySet); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } });; for(int i = 0; i < list.size(); i++){ System.out.print("id:" + list.get(i)+"\t"); System.out.println(map.get(list.get(i))); } } }