Đề bài: Viết chương trình quản lý sinh viên. Mỗi đối tượng sinh viên có các thuộc tính sau: id, name, age, address và gpa (điểm trung bình). Yêu cầu: tạo ra một menu với các chức năng sau:
/****************************************/
1. Add student.
2. Edit student by id.
3. Delete student by id.
4. Sort student by gpa.
5. Sort student by name.
6. Show student.
0. Exit.
/****************************************/
Yêu cầu thêm: list sinh viên được lưu vào file "student.txt" hoặc cơ sở dữ liệu.
Các bạn lưu ý: trước khi xem lời giải các bạn hãy tự làm trước nhé. Hãy coi lời giải này như một bài tham khảo.
Cấu trúc của project được tạo trên eclipse:
Trong đó:
Lớp này để lưu thông tin cho mỗi sinh viên.
File: Student.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
|
Tạo file "student.txt" tại thư mục gốc của dự án để lưu danh sách sinh viên.
Trong trường hợp này chúng ta sử dụng file để lưu trữ và truy xuất các đối tượng sinh vien. Nên lớp Student phải được implements Serializable.
Lớp StudentDao.java chứa phương thức read() để đọc thông tin danh sách sinh viên từ file "student.txt" và phương thức write() để ghi thông tin danh sách sinh viên vào file.
Phương thức read() sử dụng đối tượng ObjectInputStream trong java để đọc danh sách sinh viên từ file.
Phương thức write() sử dụng đối tượng ObjectOutputStream trong java để ghi danh sách sinh viên vào file.
File: StudentDao.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
|
Lớp SortStudentByGPA implements Comparator được sử dụng để sắp xếp sinh viên tăng dần theo điểm trung bình. Tìm hiểu thêm về cách sử dụng Comparator trong java.
File: SortStudentByGPA.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Lớp SortStudentByName implements Comparator được sử dụng để sắp xếp sinh viên tăng dần theo tên.
File: SortStudentByName.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Lớp này cung cấp các phương thức để thêm, sửa, xóa, sắp xếp và hiển thị sinh viên.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
|
Lớp này chứa phương thức main(), định nghĩa menu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
|
Kết quả:
-----------menu------------ 1. Add student. 2. Edit student by id. 3. Delete student by id. 4. Sort student by gpa. 5. Sort student by name. 6. Show student. 0. exit. --------------------------- Please choose: 1 student id = 1 Input student name: Vu Van Vinh Input student age: 22 Input student address: Ha Noi Input student gpa: 8 -----------menu------------ 1. Add student. 2. Edit student by id. 3. Delete student by id. 4. Sort student by gpa. 5. Sort student by name. 6. Show student. 0. exit. --------------------------- Please choose: 1 student id = 2 Input student name: Pham Ba Hao Input student age: 21 Input student address: Vinh Phuc Input student gpa: 9 -----------menu------------ 1. Add student. 2. Edit student by id. 3. Delete student by id. 4. Sort student by gpa. 5. Sort student by name. 6. Show student. 0. exit. --------------------------- Please choose: 6 1 | Vu Van Vinh | 22 | Ha Noi | 8.0 2 | Pham Ba Hao | 21 | Vinh Phuc | 9.0 -----------menu------------ 1. Add student. 2. Edit student by id. 3. Delete student by id. 4. Sort student by gpa. 5. Sort student by name. 6. Show student. 0. exit. --------------------------- Please choose: 5 -----------menu------------ 1. Add student. 2. Edit student by id. 3. Delete student by id. 4. Sort student by gpa. 5. Sort student by name. 6. Show student. 0. exit. --------------------------- Please choose: 6 2 | Pham Ba Hao | 21 | Vinh Phuc | 9.0 1 | Vu Van Vinh | 22 | Ha Noi | 8.0 -----------menu------------ 1. Add student. 2. Edit student by id. 3. Delete student by id. 4. Sort student by gpa. 5. Sort student by name. 6. Show student. 0. exit. --------------------------- Please choose: 0 exited!
Nếu bạn quan tâm bạn có thể mở rộng bài này bằng cách:
Chúc các bạn thành công!
Nguồn tin: viettuts.vn