java實現(xiàn)學(xué)生教師管理系統(tǒng)
本文實例為大家分享了java實現(xiàn)學(xué)生教師管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
類設(shè)計
1.1 父類抽象類
- 成員屬性: id(編號) name(姓名) sex(性別) birthday(生日) age(年齡-由生日計算得出)
- 構(gòu)造方法: 無參構(gòu)造 全參構(gòu)造 成員方法: toString()
- 抽象方法: getType():由各子類實現(xiàn),返回各自的"類型"字符串。 getWork():由各子類實現(xiàn),返回各自的"工作"字符串。
1.2 子類Student
- 構(gòu)造方法 無參構(gòu)造 全參構(gòu)造(super調(diào)用父類全參構(gòu)造)
- 重寫抽象方法 重寫getType() 重寫getWork()
1.3 子類Teacher
- 構(gòu)造方法 無參構(gòu)造 全參構(gòu)造(super調(diào)用父類全參構(gòu)造)
- 重寫抽象方法 重寫getType() 重寫getWork()
1.4 工具類
- 全局變量 學(xué)員ID值(添加學(xué)員信息時,編號由此ID加1生成)
- 教師ID值(添加教師信息時,編號由此ID加1生成)
- 全局方法 根據(jù)生日計算年齡的方法 打印一個Person對象的方法;
- 打印一個ArrayList<? extends Person>集合的方法
1.5 啟動類
定義啟動類:MainApp啟動程序
程序設(shè)計
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需要接收的數(shù)據(jù)需要通過Utils的birthday方法進(jìn)行計算
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 學(xué)生類
/*
重寫父類方法
*/
public class Stuent extends Person {
public Stuent() {
}
public Stuent(int id, String name, String gender, String birthday) {
super(id, name, gender, birthday);
}
@Override
public String getType() {
return "學(xué)習(xí)Java";
}
@Override
public String getWork() {
return "學(xué)生";
}
}
2.3 老師類
/*
重寫父類方法
*/
public class Teacher extends Person {
public Teacher() {
}
public Teacher(int id, String name, String gender, String birthday) {
super(id, name, gender, 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;
/*
學(xué)員ID值(添加學(xué)員信息時,編號由此ID加1生成)
教師ID值(添加教師信息時,編號由此ID加1生成)
全局方法
根據(jù)生日計算年齡的方法 打印一個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
}
//創(chuàng)建生日日歷對象
Calendar c = Calendar.getInstance();
//求出生日時間傳給日歷對象
c.setTime(birthdayDate);
//求出生日年份
c.get(Calendar.YEAR);
//創(chuàng)建檔當(dāng)前時間的日歷對象
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{
//今天過生日默認(rèn)增加一歲
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);
//學(xué)生集合
ArrayList<Stuent> stuents = new ArrayList<>();
//老師集合
ArrayList<Teacher> teachers = new ArrayList<>();
while (true) {
System.out.println("1.學(xué)員信息管理 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("教師管理系統(tǒng)");
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, name, gender, 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("請輸入要刪除學(xué)教師的的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("查詢不到數(shù)據(jù)");
} else {
Utils.PersonList(teachers);
}
}
//學(xué)生二級列表
private static void studentManage(ArrayList<Stuent> stuents, Scanner sc) {
while (true) {
System.out.println("學(xué)生管理系統(tǒng)");
System.out.println("1.添加學(xué)員 2.修改學(xué)員 3.刪除學(xué)員 4.查詢學(xué)員 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;
}
}
}
//添加學(xué)生信息
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, name, gender, birthday));
System.out.println("添加成功");
}
//修改學(xué)生信息
private static void updateStudent(ArrayList<Stuent> stuents, Scanner sc) {
System.out.println("請輸入要改學(xué)生的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");
}
//刪除學(xué)生信息
private static void delStudent(ArrayList<Stuent> stuents, Scanner sc) {
System.out.println("請輸入要刪除學(xué)生的的學(xué)號");
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 + "的成員");
}
//查找學(xué)生信息
private static void findStudent(ArrayList<Stuent> stuents) {
System.out.println("查詢結(jié)果");
if (stuents.size() == 0) {
System.out.println("沒有數(shù)據(jù)");
} else {
Utils.PersonList(stuents);
}
}
}
更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java實現(xiàn)學(xué)生管理系統(tǒng)(IO版)
- java實現(xiàn)簡單學(xué)生成績管理系統(tǒng)
- JavaSwing實現(xiàn)小型學(xué)生管理系統(tǒng)
- java實現(xiàn)簡單的學(xué)生管理系統(tǒng)
- Java實現(xiàn)學(xué)生信息管理系統(tǒng)(使用數(shù)據(jù)庫)
- Java實現(xiàn)學(xué)生信息管理系統(tǒng)(借助Array?List)
- Java+Mysql學(xué)生管理系統(tǒng)源碼
- javaWeb實現(xiàn)學(xué)生信息管理系統(tǒng)
- Java基于MySQL實現(xiàn)學(xué)生管理系統(tǒng)
- Java實現(xiàn)簡單的學(xué)生教師管理系統(tǒng)
相關(guān)文章
解決springboot項目啟動報錯Error creating bean with&nb
這篇文章主要介紹了解決springboot項目啟動報錯Error creating bean with name dataSourceScriptDatabaseInitializer問題,具有很好的參考價值,希望對大家有所幫助2024-03-03
Maven的配置文件pom.xml詳解(含常用plugin)
pom.xml是Maven項目的核心配置文件,它是 項目對象模型 - Project Object Model(POM)的縮寫,本文我們將全面解析pom.xml,了解其結(jié)構(gòu)和屬性,以及如何使用它來管理項目,感興趣的朋友跟隨小編一起看看吧2024-08-08
SpringBoot項目application.yml文件數(shù)據(jù)庫配置密碼加密的方法
這篇文章主要介紹了SpringBoot項目application.yml文件數(shù)據(jù)庫配置密碼加密的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Elasticsearch?Recovery索引分片分配詳解
這篇文章主要為大家介紹了關(guān)于Elasticsearch的Recovery索引分片分配詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2022-04-04
Netty搭建WebSocket服務(wù)器實戰(zhàn)教程
這篇文章主要介紹了Netty搭建WebSocket服務(wù)器實戰(zhàn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-03-03

