1. 程式人生 > >3360 學生資訊的新增與查詢 (Java)

3360 學生資訊的新增與查詢 (Java)

學生資訊的新增與查詢

Time Limit: 1000 ms Memory Limit: 65536 KiB

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

Code

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

public class Main {

	public static void main(String[] args) throws ParseException {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		String s1 = sc.nextLine();
		String s2 = sc.nextLine();
		SimpleDateFormat pattern1 = new SimpleDateFormat("yyyy-MM-dd");
		Map<String, Student> map = new HashMap<String, Student>();
		for (int i = 0; i < n; i++) {
			String id = sc.next();
			Student s = new Student(sc.next(), pattern1.parse(sc.next()), sc.nextFloat());
			map.put(id, s);
		}
		LinkedList<String> list = new LinkedList<String>(map.keySet());
		Collections.sort(list);
		for (int i = 0; i < list.size(); i++) {
			System.out.print("id:" + list.get(i));
			System.out.println(map.get(list.get(i)));
		}
		sc.close();
	}
}

class Student {
	String name;
	Date birthday;
	float score;

	SimpleDateFormat pattern2 = new SimpleDateFormat("yyyy_M_d");

	Student(String n, Date b, float s) {
		name = n;
		birthday = b;
		score = s;
	}

	@Override
	public String toString() {
		return "\tname:" + name + "\tbirthday:" + pattern2.format(birthday) + "\tscore:" + score;
	}
}
反思:Java的集合框架練習。用HashMap儲存學生的資訊,因為要按照id排序輸出學生資訊,所以把map的keySet()放進連結串列list中,對list進行排序,再通過map的鍵值對輸出學生資訊。