By GokiSoft.com|
15:21 20/04/2020|
Java Basic
Share Code - Phần mềm quản lý trường học - giảng dạy - Optimize Phan 1
Share Code - Phần mềm quản lý trường học - giảng dạy
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package lession14;
/**
*
* @author Diep.Tran
*/
public interface IKey {
String getKeyValue();
boolean compareTo(Object obj);
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package lession14;
import java.util.Scanner;
/**
*
* @author Diep.Tran
*/
public class Student extends People implements IKey{
String rollNo;
public Student() {
}
public Student(String rollNo, String fullname, String gender, String address, String birthday) {
super(fullname, gender, address, birthday);
this.rollNo = rollNo;
}
public String getRollNo() {
return rollNo;
}
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
@Override
public void input() {
super.input(); //To change body of generated methods, choose Tools | Templates.
Scanner scan = new Scanner(System.in);
System.out.println("Enter rollNo: ");
for(;;) {
rollNo = scan.nextLine();
boolean isExist = MenuController.getInstance().checkExist(
DataMgr.getInstance().getStudents(), rollNo);
if(isExist) {
System.err.println("Enter again: ");
} else {
break;
}
}
}
@Override
public String toString() {
return super.toString() + ", rollNo: " + rollNo;
}
@Override
public String getKeyValue() {
return rollNo;
}
@Override
public boolean compareTo(Object obj) {
if(obj instanceof Student) {
if(((Student) obj).rollNo.equalsIgnoreCase(rollNo)) {
return true;
}
}
return false;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package lession14;
import java.util.List;
import java.util.Scanner;
/**
*
* @author Diep.Tran
*/
public class Teacher extends People implements IKey{
String teacherCode;
public Teacher() {
}
@Override
public void input() {
super.input(); //To change body of generated methods, choose Tools | Templates.
Scanner scan = new Scanner(System.in);
System.out.println("Enter teacher code: ");
for(;;) {
teacherCode = scan.nextLine();
boolean isExist = MenuController.getInstance().checkExist(
DataMgr.getInstance().getTeachers(), teacherCode);
if(isExist) {
System.err.println("Enter again: ");
} else {
break;
}
}
}
@Override
public String toString() {
return super.toString() + ", teacher code: " + teacherCode;
}
@Override
public String getKeyValue() {
return teacherCode;
}
@Override
public boolean compareTo(Object obj) {
if(obj instanceof Teacher) {
if(((Teacher) obj).teacherCode.equals(teacherCode)) {
return true;
}
}
return false;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package lession14;
import java.util.List;
import java.util.Scanner;
/**
*
* @author Diep.Tran
*/
public class MenuController {
private static MenuController instance = null;
private MenuController() {
}
public synchronized static MenuController getInstance() {
if(instance == null) {
instance = new MenuController();
}
return instance;
}
public void showMenu() {
System.out.println("1. Add teacher");
System.out.println("2. Add student");
System.out.println("3. Add subject");
System.out.println("4. Add class room");
System.out.println("5. Add schedule");
System.out.println("6. Add attendence");
System.out.println("7. Find attendence of student by created at");
System.out.println("8. Exit");
System.out.println("Choose: ");
}
public void inputTeacher() {
for(;;) {
Teacher teacher = new Teacher();
teacher.input();
DataMgr.getInstance().getTeachers().add(teacher);
if(!hasNext()) {
break;
}
}
}
public void inputStudent() {
for(;;) {
Student std = new Student();
std.input();
DataMgr.getInstance().getStudents().add(std);
if(!hasNext()) {
break;
}
}
}
public void inputSubject() {
for(;;) {
Subject subject = new Subject();
subject.input();
DataMgr.getInstance().getSubjects().add(subject);
if(!hasNext()) {
break;
}
}
}
public void inputClassRoom() {
for(;;) {
ClassRoom classRoom = new ClassRoom();
classRoom.input();
DataMgr.getInstance().getClassRooms().add(classRoom);
if(!hasNext()) {
break;
}
}
}
public void inputClassGroup() {
for(;;) {
ClassGroup classGroup = new ClassGroup();
classGroup.input();
DataMgr.getInstance().getClassGroups().add(classGroup);
if(!hasNext()) {
break;
}
}
}
public void inputSchedule() {
for(;;) {
Schedule schedule = new Schedule();
schedule.input();
DataMgr.getInstance().getSchedules().add(schedule);
if(!hasNext()) {
break;
}
}
}
public void inputAttendence() {
for(;;) {
Attendence attendence = new Attendence();
attendence.input();
DataMgr.getInstance().getAttendences().add(attendence);
if(!hasNext()) {
break;
}
}
}
public boolean hasNext() {
Scanner scan = new Scanner(System.in);
System.out.println("Continue (Y/N): ");
String c = scan.nextLine();
if(c.equalsIgnoreCase("N")) {
return false;
}
return true;
}
public boolean checkExist(List<?> keyList, String keyValue) {
for (Object obj : keyList) {
if(obj instanceof IKey) {
if(((IKey) obj).getKeyValue().equalsIgnoreCase(keyValue)) {
return true;
}
}
}
return false;
}
public boolean checkExist(List<?> keyList, Object obj2) {
for (Object obj : keyList) {
if(obj instanceof IKey) {
if(((IKey) obj).compareTo(obj2)) {
return true;
}
}
}
return false;
}
}
Xem thêm mã nguồn khác tại link sau
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)