java实现学生教师管理系统

本文实例为大家分享了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 name, String gender, 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, 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;
/*
学员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, 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("请输入要删除学教师的的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, name, gender, 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);
  }
 }

}

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • javaWeb实现学生信息管理系统

    本文为大家分享了javaWeb实现学生信息管理系统,供大家参考,具体内容如下 初始版 初始版是没有加分页的.因为没怎么学过前端,界面很丑陋.主要技术:JSP,JavaBean,servlet,JDBC主要页面如下: 登录页面 主页 添加学生 查看所有学生 查询学生 工程目录 数据库 两个表,user表和student表.为了使用DBUtils工具,一定要注意数据库表的属性的命名和JavaBean的get(),set() 方法的匹配.比如t_user表里的uname,在JavaBean中是:pri

  • Java GUI实现学生成绩管理系统

    学习java有一年多了,一直在做web方面的练习,在一个项目中发现需要用到GUI的相关知识,结果没法做出来,网上这方面的文章又不是很多,所有只好自己硬着头皮从头再学一遍了,不过学习后发现,其实GUI是非常有趣的,他并不像WEB程序一样依赖互联网,而且还有许多布局和android相差不是很大,这才发现自己竟又爱上GUI的开发了,不多说了,直接上代码吧,相信有过android或相关界面开发的都明白这其中的道理. 先看看效果吧 1.登录主界面 package edu.gzu.stuManager; i

  • Java+Mysql学生管理系统源码

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

  • 图书管理系统java代码实现

    本文实例为大家分享了java实现图书管理系统的具体代码,供大家参考,具体内容如下 /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:    <图书管理系统--java>                          * 作    者:       刘江波                       * 完成日期:    2012     年  3    

  • java学生管理系统界面简单实现(全)

    学生管理系统简单的实现,供初学Java Swing同学学习使用. import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import jav

  • 一个简陋的java图书管理系统

    本文代码为原创一个简陋的管理系统,只做功能的测试.并没有去完善所有应有的功能,只做了输入输出查找,仅供参考! 菜单部分: import java.util.Scanner; public class Menu { int Min = 1; int Max = 3; public void getMenu(){ System.out.println("1.显示/2.输入/3.查找"); } public void getFindMenu(){ System.out.println(&qu

  • java学生信息管理系统源代码

    本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] .删除 .查找.更改,供大家参考,具体内容如下 /*学生信息管理系统,实现学生信息: *增加 int[] a=new int[9] *删除 *查找 *更改 */ import java.util.Scanner;//导入java输入流 import java.lang.*; import java.io.*; class Student { private static Stude

  • java实现水果超市管理系统

    本文为大家分享了java实现水果超市管理系统的具体代码,供大家参考,具体内容如下 首先建立水果类的界面 public class Fruit { //定义ID private String id; //定义名称 private String name; //定义价格 private int price; //定义单位 private String unit; //定义数量 private int number; public Fruit(String id, String name, int p

  • Java+MySQL实现学生信息管理系统源码

    基于Java swing+MySQL实现学生信息管理系统:主要实现JDBC对学生信息进行增删改查,应付一般课设足矣,分享给大家.(由于篇幅原因,代码未全部列出,如有需要留下邮箱) 鉴于太多同学要源码,实在发不过来,上传到github上 https://github.com/ZhuangM/student.git 1. 开发环境:jdk7+MySQL5+win7 代码结构:model-dao-view 2. 数据库设计--建库建表语句: CREATE DATABASE student; DROP

  • 图书管理系统java版

    本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出版日期.书号.价格字段.设计一个GUI界面进行书目管理.在该界面上有四个选项卡,分别是查询.插入.删除.修改.点击查询选项卡,出现的界面上有书名.作者.出版社.书号四个文本框,一个按钮和一个只读文本区.文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的"查询"按钮,可以在界面

随机推荐