Quản lý danh sách sinh viên Java
Lập trình hướng đối tượng(OOPs) trong java Show
Nội dung chính
Đề 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 projectCấ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 package vn.viettuts; import java.io.Serializable; /** * Student class * * @author viettuts.vn */ public class Student implements Serializable { private int id; private String name; private byte age; private String address; /* điểm trung bình của sinh viên */ private float gpa; public Student() { } public Student(int id, String name, byte age, String address, float gpa) { super(); this.id = id; this.name = name; this.age = age; this.address = address; this.gpa = gpa; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public byte getAge() { return age; } public void setAge(byte age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public float getGpa() { return gpa; } public void setGpa(float gpa) { this.gpa = gpa; } } 2. Tạo lớp StudentDao.javaTạ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 package vn.viettuts;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
/**
* StudentDao class
*
* @author viettuts.vn
*/
public class StudentDao {
private static final String STUDENT_FILE_NAME = "student.txt";
/**
* save list student to file
*
* @param studentList: list student to save
*/
public void write(List 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 package vn.viettuts;
import java.util.Comparator;
/**
* SortStudentByGPA class
*
* @author viettuts.vn
*/
public class SortStudentByGPA implements Comparator 4. Tạo lớp SortStudentByName.javaLớ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 package vn.viettuts; import java.util.Comparator; /** * SortStudentByName class * * @author viettuts.vn */ public class SortStudentByName implements ComparatorLớ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. package vn.viettuts;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
/**
* StudentManager class
*
* @author viettuts.vn
*/
public class StudentManager {
public static Scanner scanner = new Scanner(System.in);
private List 6. Tạo lớp Main.javaLớp này chứa phương thức main(), định nghĩa menu. package vn.viettuts; import java.util.Scanner; /** * Main class * * @author viettuts.vn */ public class Main { public static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { String choose = null; boolean exit = false; StudentManager studentManager = new StudentManager(); int studentId; // show menu showMenu(); while (true) { choose = scanner.nextLine(); switch (choose) { case "1": studentManager.add(); break; case "2": studentId = studentManager.inputId(); studentManager.edit(studentId); break; case "3": studentId = studentManager.inputId(); studentManager.delete(studentId); break; case "4": studentManager.sortStudentByGPA(); break; case "5": studentManager.sortStudentByName(); break; case "6": studentManager.show(); break; case "0": System.out.println("exited!"); exit = true; break; default: System.out.println("invalid! please choose action in below menu:"); break; } if (exit) { break; } // show menu showMenu(); } } /** * create menu */ public static void showMenu() { System.out.println("-----------menu------------"); System.out.println("1. Add student."); System.out.println("2. Edit student by id."); System.out.println("3. Delete student by id."); System.out.println("4. Sort student by gpa."); System.out.println("5. Sort student by name."); System.out.println("6. Show student."); System.out.println("0. exit."); System.out.println("---------------------------"); System.out.print("Please choose: "); } } Run bài tập quản lý sinh viên trong javaKế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! Lập trình hướng đối tượng(OOPs) trong java
:
|