java實現學生教師管理系統
阿新 • • 發佈:2020-10-29
本文例項為大家分享了java實現學生教師管理系統的具體程式碼,供大家參考,具體內容如下
類設計
1.1 父類抽象類
- 成員屬性: id(編號) name(姓名) sex(性別) birthday(生日) age(年齡-由生日計算得出)
- 構造方法: 無參構造 全參構造 成員方法: toString()
- 抽象方法: getType():由各子類實現,返回各自的"型別"字串。 getWork():由各子類實現,返回各自的"工作"字串。
1.2 子類Student
- 構造方法 無參構造 全參構造(super呼叫父類全參構造)
- 重寫抽象方法 重寫getType() 重寫getWork()
1.3 子類Teacher
- 構造方法 無參構造 全參構造(super呼叫父類全參構造)
- 重寫抽象方法 重寫getType() 重寫getWork()
1.4 工具類
- 全域性變數 學員ID值(新增學員資訊時,編號由此ID加1生成)
- 教師ID值(新增教師資訊時,編號由此ID加1生成)
- 全域性方法 根據生日計算年齡的方法 列印一個Person物件的方法;
- 列印一個ArrayList<? extends Person>集合的方法
1.5 啟動類
定義啟動類:MainApp啟動程式
程式設計
2.1 父類Person類
/* 成員屬性有id 名字 性別 年齡 生日 和年齡 成員方法有描述自己的職位和工作 */ public abstract class Person { private int id; private String name; private String gender; private String birthday; private int age; public Person() { } public Person(int id,String name,String gender,String birthday) { this.id = id; this.name = name; this.gender = gender; this.birthday = birthday; } public abstract String getType(); public abstract String getWork(); 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 String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } //getAge需要接收的資料需要通過Utils的birthday方法進行計算 public int getAge() { age = Utils.birthday(this.getBirthday()); return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return id + "\t\t" + name + "\t\t" + gender + "\t\t" + birthday + "\t" + this.getAge() + "\t\t" + "我是一名" + getType() + "我的工作是" + getWork(); } }
2.2 學生類
/* 重寫父類方法 */ public class Stuent extends Person { public Stuent() { } public Stuent(int id,String birthday) { super(id,name,gender,birthday); } @Override public String getType() { return "學習Java"; } @Override public String getWork() { return "學生"; } }
2.3 老師類
/* 重寫父類方法 */ public class Teacher extends Person { public Teacher() { } public Teacher(int id,birthday); } @Override public String getType() { return "教師"; } @Override public String getWork() { return "講課"; } }
2.4 工具類
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; /* 學員ID值(新增學員資訊時,編號由此ID加1生成) 教師ID值(新增教師資訊時,編號由此ID加1生成) 全域性方法 根據生日計算年齡的方法 列印一個Person物件的方法; 列印一個ArrayList<? extends Person>集合的方法; */ public class Utils { public static int stuID; public static int teaID; public static int birthday(String birthday) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date birthdayDate =null; try {birthdayDate = sdf.parse(birthday); } catch (ParseException e) { return -1; //輸入的日期不符合模式,返回-1 } //建立生日日曆物件 Calendar c = Calendar.getInstance(); //求出生日時間傳給日曆物件 c.setTime(birthdayDate); //求出生日年份 c.get(Calendar.YEAR); //建立檔當前時間的日曆物件 Calendar c1 = Calendar.getInstance(); c1.get(Calendar.MONTH); if (c1.before(c)) { return -1; } //判斷月份大小 if (c.get(Calendar.MONTH) > c1.get(Calendar.MONTH)) { return c1.get(Calendar.YEAR) - c.get(Calendar.YEAR) - 1; } else if (c.get(Calendar.MONTH) < c1.get(Calendar.MONTH)) { return c1.get(Calendar.YEAR) - c.get(Calendar.YEAR); } else{ //判斷日期大小 if (c.get(Calendar.DAY_OF_MONTH) > c1.get(Calendar.DAY_OF_MONTH)) { return c1.get(Calendar.YEAR) - c.get(Calendar.YEAR) - 1; } else if (c.get(Calendar.DAY_OF_MONTH) < c1.get(Calendar.DAY_OF_MONTH)) { return c1.get(Calendar.YEAR) - c.get(Calendar.YEAR); } else{ //今天過生日預設增加一歲 return c1.get(Calendar.YEAR) - c.get(Calendar.YEAR); } } } //列印ArrayList的方法 public static void PersonList(ArrayList<? extends Person> personlist) { System.out.println("***************************************************"); System.out.println("編號\t\t姓名\t\t性別\t\t生日\t\t\t年齡\t\t描述"); for (int i = 0; i < personlist.size(); i++) { System.out.println(personlist.get(i)); } } //列印Person的方法 public static void printPerson(Person person) { System.out.println("***************************************************"); System.out.println("編號\t\t姓名\t\t性別\t\t生日\t\t\t年齡\t\t描述"); System.out.println(person); } }
2.5 啟動類
import java.util.ArrayList; import java.util.Scanner; public class MainApp { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //學生集合 ArrayList<Stuent> stuents = new ArrayList<>(); //老師集合 ArrayList<Teacher> teachers = new ArrayList<>(); while (true) { System.out.println("1.學員資訊管理 2.教師資訊管理 3.退出"); int a = sc.nextInt(); switch (a) { case 1: studentManage(stuents,sc); break; case 2: teacherManage(teachers,sc); break; case 3: System.out.println("謝謝使用"); System.exit(0); default: System.out.println("輸入有誤"); break; } } } //教師二級列表 private static void teacherManage(ArrayList<Teacher> teachers,Scanner sc) { while (true) { System.out.println("教師管理系統"); System.out.println("1.新增教師資訊 2.修改教師資訊 3.刪除教師資訊 4.查詢教師 5.返回"); int a = sc.nextInt(); switch (a) { case 1: addTeacher(teachers,sc); break; case 2: updateTeacher(teachers,sc); break; case 3: delTeacher(teachers,sc); break; case 4: findTeacher(teachers); break; case 5: return; } } } //教師新增 private static void addTeacher(ArrayList<Teacher> teachers,Scanner sc) { System.out.println("輸入姓名"); String name = sc.next(); System.out.println("輸入性別"); String gender = sc.next(); System.out.println("輸入生日"); String birthday = sc.next(); teachers.add(new Teacher(++Utils.teaID,birthday)); System.out.println("新增成功"); } //修改教師資訊 private static void updateTeacher(ArrayList<Teacher> teachers,Scanner sc) { System.out.println("請輸入要改教師的id"); int updateid = sc.nextInt(); for (int i = 0; i < teachers.size(); i++) { Teacher tea = teachers.get(i); if (tea.getId() == updateid) { Utils.printPerson(tea); System.out.println("其輸入新的姓名(保留輸入0)"); String newName = sc.next(); System.out.println("輸入新的性別(保留輸入0)"); String newGender = sc.next(); System.out.println("輸入新的生日(保留輸入0)"); String newbirthday = sc.next(); if (!"0".equals(newName)) { tea.setName(newName); } if (!"0".equals(newGender)) { tea.setGender(newGender); } if (!"0".equals(newbirthday)) { tea.setBirthday(newbirthday); } System.out.println("修改成功"); return; } } System.out.println("沒有找到" + updateid + "id"); } //刪除教師資訊 private static void delTeacher(ArrayList<Teacher> teachers,Scanner sc) { System.out.println("請輸入要刪除學教師的的id"); int delid = sc.nextInt(); for (int i = 0; i < teachers.size(); i++) { Teacher tea = teachers.get(i); // if (delid == tea.getId()) { //輸出要刪除的資訊 Utils.printPerson(tea); //判斷是否要刪除資訊 System.out.println("是否要刪除這條資訊(y/n)"); String input = sc.next(); if ("y".equals(input)) { teachers.remove(i); System.out.println("刪除成功"); return; } else if ("n".equals(input)) { System.out.println("操作被取消"); return; } } } System.out.println("沒有找到id為" + delid + "的成員"); } //查詢教師資訊 private static void findTeacher(ArrayList<Teacher> teachers) { if (teachers.size() == 0) { System.out.println("查詢不到資料"); } else { Utils.PersonList(teachers); } } //學生二級列表 private static void studentManage(ArrayList<Stuent> stuents,Scanner sc) { while (true) { System.out.println("學生管理系統"); System.out.println("1.新增學員 2.修改學員 3.刪除學員 4.查詢學員 5.返回"); int a = sc.nextInt(); switch (a) { case 1: addStudent(stuents,sc); break; case 2: updateStudent(stuents,sc); break; case 3: delStudent(stuents,sc); break; case 4: findStudent(stuents); break; case 5: return; } } } //新增學生資訊 private static void addStudent(ArrayList<Stuent> stuents,Scanner sc) { System.out.println("輸入姓名"); String name = sc.next(); System.out.println("輸入性別"); String gender = sc.next(); System.out.println("輸入生日"); String birthday = sc.next(); stuents.add(new Stuent(++Utils.stuID,birthday)); System.out.println("新增成功"); } //修改學生資訊 private static void updateStudent(ArrayList<Stuent> stuents,Scanner sc) { System.out.println("請輸入要改學生的id"); int updateid = sc.nextInt(); for (int i = 0; i < stuents.size(); i++) { Stuent stu = stuents.get(i); if (stu.getId() == updateid) { Utils.printPerson(stu); System.out.println("其輸入新的姓名(保留輸入0)"); String newName = sc.next(); System.out.println("輸入新的性別(保留輸入0)"); String newGender = sc.next(); System.out.println("輸入新的生日(保留輸入0)"); String newbirthday = sc.next(); if (!"0".equals(newName)) { stu.setName(newName); } if (!"0".equals(newGender)) { stu.setGender(newGender); } if (!"0".equals(newbirthday)) { stu.setBirthday(newbirthday); } System.out.println("修改成功"); return; } } System.out.println("沒有找到" + updateid + "id"); } //刪除學生資訊 private static void delStudent(ArrayList<Stuent> stuents,Scanner sc) { System.out.println("請輸入要刪除學生的的學號"); int delid = sc.nextInt(); for (int i = 0; i < stuents.size(); i++) { Stuent stu = stuents.get(i); // if (delid == stu.getId()) { //輸出要刪除的資訊 Utils.printPerson(stu); //判斷是否要刪除資訊 System.out.println("是否要刪除這條資訊(y/n)"); String input = sc.next(); if ("y".equals(input)) { stuents.remove(i); System.out.println("刪除成功"); return; } else if ("n".equals(input)) { System.out.println("操作被取消"); return; } } } System.out.println("沒有找到id為" + delid + "的成員"); } //查詢學生資訊 private static void findStudent(ArrayList<Stuent> stuents) { System.out.println("查詢結果"); if (stuents.size() == 0) { System.out.println("沒有資料"); } else { Utils.PersonList(stuents); } } }
更多學習資料請關注專題《管理系統開發》。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。