學生資訊的新增與查詢
Problem Description
設計一個學生新增和查詢的系統,從鍵盤讀入學生的資料,然後再從螢幕顯示出來。
Input
第一行有2個整數N和M,其中:N——學生數量,M——學生屬性數量; 第二行有M個字串,表示學生的屬性名稱,其中第1個屬性id表示關鍵字;其中各欄位屬性的資料型別是確定的。 接下來有N行M列資料,分別表示學生各種屬性的值,關鍵字相同的記錄代表一個學生(後來讀入的資訊覆蓋前面讀入資料)
Output
輸出所有學生的屬性及資料。(每行的列資料之間用‘\t’進行分隔)
Sample 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
Sample 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
Hint
Source
zhouxq
程式碼:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; class Stu{ String id; String name; String data; double score; public Stu(String id, String name, String data, double score) { super(); this.id = id; this.name = name; this.data = data; this.score = score; } public String dataConvert(String data) throws ParseException///字串轉換。 { SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd");///中間的類。 SimpleDateFormat sf2 = new SimpleDateFormat("yyyy_M_d"); Date data1 = sf1.parse(data);///解析。 return sf2.format(data1); } @Override public String toString() { String str = null; try { str = "id:"+id+"\t"+"name:"+name+"\t"+"birthday:"+dataConvert(data)+"\t"+"score:"+String.format("%.1f", score); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return str;//string.format()方法的使用。 } } public class Main {
public static void main(String[] args) throws ParseException { Scanner reader = new Scanner(System.in); /*Stu stu = new Stu("0001","Tom","1999-04-21",66.0); System.out.println(stu.dataConvert(stu.data));*/ int n = reader.nextInt(); int m = reader.nextInt(); Map<String,Stu>map = new HashMap<String,Stu>(); reader.nextLine(); reader.nextLine(); for(int i=0;i<n;i++) { Stu stu = new Stu(reader.next(),reader.next(),reader.next(),reader.nextDouble()); map.put(stu.id,stu);///可以用物件。 } Set<String> keySet = map.keySet(); List<String> list = new ArrayList<String>(keySet); Collections.sort(list); for(String id:list) { Stu stu = map.get(id); System.out.println(stu); } //System.out.println(list); //System.out.println(map); reader.close(); } }