最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)學(xué)生教師管理系統(tǒng)

 更新時(shí)間:2020年10月29日 09:20:50   作者:Zyt119977  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)學(xué)生教師管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java實(shí)現(xiàn)學(xué)生教師管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

類設(shè)計(jì)

1.1 父類抽象類

  • 成員屬性: id(編號(hào)) name(姓名) sex(性別) birthday(生日) age(年齡-由生日計(jì)算得出)
  • 構(gòu)造方法: 無(wú)參構(gòu)造 全參構(gòu)造 成員方法: toString()
  • 抽象方法: getType():由各子類實(shí)現(xiàn),返回各自的"類型"字符串。 getWork():由各子類實(shí)現(xiàn),返回各自的"工作"字符串。

1.2 子類Student

  • 構(gòu)造方法 無(wú)參構(gòu)造 全參構(gòu)造(super調(diào)用父類全參構(gòu)造)
  • 重寫(xiě)抽象方法 重寫(xiě)getType() 重寫(xiě)getWork()

1.3 子類Teacher

  • 構(gòu)造方法 無(wú)參構(gòu)造 全參構(gòu)造(super調(diào)用父類全參構(gòu)造)
  • 重寫(xiě)抽象方法 重寫(xiě)getType() 重寫(xiě)getWork()

1.4 工具類

  • 全局變量 學(xué)員ID值(添加學(xué)員信息時(shí),編號(hào)由此ID加1生成)
  • 教師ID值(添加教師信息時(shí),編號(hào)由此ID加1生成)
  • 全局方法 根據(jù)生日計(jì)算年齡的方法 打印一個(gè)Person對(duì)象的方法;
  • 打印一個(gè)ArrayList<? extends Person>集合的方法

1.5 啟動(dòng)類

定義啟動(dòng)類:MainApp啟動(dòng)程序

程序設(shè)計(jì)

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ù)需要通過(guò)Utils的birthday方法進(jìn)行計(jì)算
 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é)生類

/*
重寫(xiě)父類方法
*/
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 老師類

/*
重寫(xiě)父類方法
*/
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é)員信息時(shí),編號(hào)由此ID加1生成)
教師ID值(添加教師信息時(shí),編號(hào)由此ID加1生成)
全局方法
根據(jù)生日計(jì)算年齡的方法 打印一個(gè)Person對(duì)象的方法;
 打印一個(gè)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)建生日日歷對(duì)象
  Calendar c = Calendar.getInstance();
  //求出生日時(shí)間傳給日歷對(duì)象
  c.setTime(birthdayDate);
  //求出生日年份
  c.get(Calendar.YEAR);
  //創(chuàng)建檔當(dāng)前時(shí)間的日歷對(duì)象
  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{
    //今天過(guò)生日默認(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("編號(hào)\t\t姓名\t\t性別\t\t生日\(chéng)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("編號(hào)\t\t姓名\t\t性別\t\t生日\(chéng)t\t\t年齡\t\t描述");
  System.out.println(person);
 }
}

2.5 啟動(dòng)類

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;
   }
  }

 }
 //教師二級(jí)列表
 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("請(qǐng)輸入要改教師的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("沒(méi)有找到" + updateid + "id");
 }
 //刪除教師信息
 private static void delTeacher(ArrayList<Teacher> teachers, Scanner sc) {

  System.out.println("請(qǐng)輸入要?jiǎng)h除學(xué)教師的的id");
  int delid = sc.nextInt();
  for (int i = 0; i < teachers.size(); i++) {
   Teacher tea = teachers.get(i);
   //
   if (delid == tea.getId()) {
    //輸出要?jiǎng)h除的信息
    Utils.printPerson(tea);
    //判斷是否要?jiǎng)h除信息
    System.out.println("是否要?jiǎng)h除這條信息(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("沒(méi)有找到id為" + delid + "的成員");
 }
 //查詢教師信息
 private static void findTeacher(ArrayList<Teacher> teachers) {
  if (teachers.size() == 0) {
   System.out.println("查詢不到數(shù)據(jù)");
  } else {
    Utils.PersonList(teachers);
  }
 }

 //學(xué)生二級(jí)列表
 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("請(qǐng)輸入要改學(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("沒(méi)有找到" + updateid + "id");
 }
 //刪除學(xué)生信息
 private static void delStudent(ArrayList<Stuent> stuents, Scanner sc) {
  System.out.println("請(qǐng)輸入要?jiǎng)h除學(xué)生的的學(xué)號(hào)");
  int delid = sc.nextInt();
  for (int i = 0; i < stuents.size(); i++) {
   Stuent stu = stuents.get(i);
   //
   if (delid == stu.getId()) {
    //輸出要?jiǎng)h除的信息
    Utils.printPerson(stu);
    //判斷是否要?jiǎng)h除信息
    System.out.println("是否要?jiǎng)h除這條信息(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("沒(méi)有找到id為" + delid + "的成員");
 }
 //查找學(xué)生信息
 private static void findStudent(ArrayList<Stuent> stuents) {
  System.out.println("查詢結(jié)果");
  if (stuents.size() == 0) {
   System.out.println("沒(méi)有數(shù)據(jù)");
  } else {
   Utils.PersonList(stuents);
  }
 }

}

更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開(kāi)發(fā)》。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在?Spring?Boot?中使用?Quartz?調(diào)度作業(yè)的示例詳解

    在?Spring?Boot?中使用?Quartz?調(diào)度作業(yè)的示例詳解

    這篇文章主要介紹了在?Spring?Boot?中使用?Quartz?調(diào)度作業(yè)的示例詳解,在本文中,我們將看看如何使用Quartz框架來(lái)調(diào)度任務(wù),Quartz支持在特定時(shí)間運(yùn)行作業(yè)、重復(fù)作業(yè)執(zhí)行、將作業(yè)存儲(chǔ)在數(shù)據(jù)庫(kù)中以及Spring集成,需要的朋友可以參考下
    2022-07-07
  • Java中輸入輸出方式的簡(jiǎn)單示例

    Java中輸入輸出方式的簡(jiǎn)單示例

    Java語(yǔ)言的輸入輸出功能是十分強(qiáng)大而靈活的,美中不足的是看上去輸入輸出的代碼并不是很簡(jiǎn)潔,因?yàn)槟阃枰b許多不同的對(duì)象,下面這篇文章主要給大家介紹了關(guān)于Java中輸入輸出方式的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 深入探究Java編程是值傳遞還是引用傳遞

    深入探究Java編程是值傳遞還是引用傳遞

    大家好,本篇文章主要講的是Java編程是值傳遞還是引用傳遞的探究,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-04-04
  • Java8使用stream實(shí)現(xiàn)list中對(duì)象屬性的合并(去重并求和)

    Java8使用stream實(shí)現(xiàn)list中對(duì)象屬性的合并(去重并求和)

    這篇文章主要介紹了Java8使用stream實(shí)現(xiàn)list中對(duì)象屬性的合并(去重并求和),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java中線程上下文類加載器超詳細(xì)講解使用

    Java中線程上下文類加載器超詳細(xì)講解使用

    這篇文章主要介紹了Java中線程上下文類加載器,類加載器負(fù)責(zé)讀取Java字節(jié)代碼,并轉(zhuǎn)換成java.lang.Class類的一個(gè)實(shí)例的代碼模塊。本文主要和大家聊聊JVM類加載器ClassLoader的使用,需要的可以了解一下
    2022-12-12
  • logback日志輸出格式設(shè)置方式

    logback日志輸出格式設(shè)置方式

    這篇文章主要介紹了logback日志輸出格式設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • feign post參數(shù)對(duì)象不加@RequestBody的使用說(shuō)明

    feign post參數(shù)對(duì)象不加@RequestBody的使用說(shuō)明

    這篇文章主要介紹了feign post參數(shù)對(duì)象不加@RequestBody的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java語(yǔ)言----三種循環(huán)語(yǔ)句的區(qū)別介紹

    Java語(yǔ)言----三種循環(huán)語(yǔ)句的區(qū)別介紹

    下面小編就為大家?guī)?lái)一篇Java語(yǔ)言----三種循環(huán)語(yǔ)句的區(qū)別介紹。小編舉得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • Java之Spring AOP 實(shí)現(xiàn)用戶權(quán)限驗(yàn)證

    Java之Spring AOP 實(shí)現(xiàn)用戶權(quán)限驗(yàn)證

    本篇文章主要介紹了Java之Spring AOP 實(shí)現(xiàn)用戶權(quán)限驗(yàn)證,用戶登錄、權(quán)限管理這些是必不可少的業(yè)務(wù)邏輯,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-02-02
  • Spring注解中@Autowired和@Bean的區(qū)別詳解

    Spring注解中@Autowired和@Bean的區(qū)別詳解

    這篇文章主要詳細(xì)介紹了Spring注解中@Autowired和@Bean二者有什么區(qū)別,文中通過(guò)兩個(gè)注解的使用場(chǎng)景介紹了二者的區(qū)別,感興趣的同學(xué)可以參考閱讀
    2023-06-06

最新評(píng)論

瑞丽市| 怀仁县| 大冶市| 建瓯市| 寿阳县| 兴安盟| 新营市| 万宁市| 密云县| 磐安县| 利津县| 饶平县| 阜康市| 莱芜市| 安龙县| 皮山县| 怀柔区| 洛川县| 板桥市| 刚察县| 湄潭县| 双柏县| 延川县| 博兴县| 绥滨县| 玉门市| 大新县| 镇沅| 崇信县| 榆中县| 黄陵县| 建湖县| 定兴县| 莎车县| 星子县| 福建省| 阿城市| 连江县| 华宁县| 济阳县| 绥芬河市|