https://download.csdn.net/download/weixin_44649793/12800758
分工协作,专人干专事
Student类 标准学生类,封装键盘录入的学生信息(id , name , age , birthday)StudentDao类 Dao : (Data Access Object 缩写) 用于访问存储数据的数组或集合StudentService类 用来进行业务逻辑的处理(例如: 判断录入的id是否存在)StudentController类 和用户打交道(接收用户需求,采集用户信息,打印数据到控制台)如果将所有的类文件都放在同一个包下,不利于管理和后期维护,所以,对于不同功能的类文件,可以放在不同的包下进 行管理
系统分为学生管理和老师管理,可以完成对信息的增删改查。
Student类
public class Student extends Person{ private String id; private String name; private String age; private String birthday; public Student() { } public Student(String id, String name, String age, String birthday) { this.id = id; this.name = name; this.age = age; this.birthday = birthday; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } }程序入口InfoManagerEntry类
import java.util.Scanner; /* 添加学生: 键盘录入学生信息(id,name,age,birthday) 使用数组存储学生信息,要求学生的id不能重复 删除学生: 键盘录入要删除学生的id值,将该学生从数组中移除,如果录入的id在数组中不存在,需要重新录入 修改学生: 键盘录入要修改学生的id值和修改后的学生信息 将数组中该学生的信息修改,如果录入的id在数组中不存在,需要重新录入 查询学生: 将数组中存储的所有学生的信息输出到控制台 */ public class InfoManagerEntry { public static void main(String[] args) { Scanner sc=new Scanner(System.in); //菜单搭建 while (true){ System.out.println("-----------欢迎来到信息管理系统-----------"); System.out.println("请输入您的选择:1.学生管理 2.教师管理 3.退出"); int num=sc.nextInt(); switch (num){ case 1://学生管理 StudentController studentController=new StudentController(); studentController.start(); break; case 2://教师管理 TeacherController teacherController=new TeacherController(); teacherController.start(); break; case 3: System.out.println("感谢您的使用!"); System.exit(0);//结束jvm //break l; default: System.out.println("输入有误,请重新输入!"); } } } }StudentController类
import edu.info.manager.domain.Student; import edu.info.manager.service.StudentService; import java.util.Scanner; public class StudentController { Scanner sc = new Scanner(System.in); StudentService studentService = new StudentService(); public void start() { Scanner sc = new Scanner(System.in); l: while (true) { System.out.println("---------欢迎来到>学生<管理系统---------"); System.out.println("请输入您的选择: 1.添加学生 2.删除学生 3.修改学生 4.查看学生 5.退 出"); int num = sc.nextInt(); switch (num) { case 1: //添加学生 addStudent(); break; case 2: //删除学生 deleteStudentById(); break; case 3: //修改学生 updataStudent(); break; case 4: //查看学生 findAllStudent(); break; case 5: System.out.println("感谢使用学生管理系统!"); break l; } } } //查看学生 private void findAllStudent() { Student[] students = studentService.findAllStudent(); if (students == null) { System.out.println("暂无学生信息,请先添加!"); } else { System.out.println("学号\t\t姓名\t年龄\t出生日期"); for (int i = 0; i < students.length; i++) { Student student = students[i]; if (student != null) { System.out.println(student.getId() + "\t" + student.getName() + "\t" + student.getAge() + "\t" + student.getBirthday()); } } } } //修改学生 private void updataStudent() { String sid = inputStudentId(); System.out.println("请输入姓名:"); String sname = sc.next(); System.out.println("请输入年龄:"); String sage = sc.next(); System.out.println("请输入日期:"); String sbirthday = sc.next(); Student newStu = new Student(sid, sname, sage, sbirthday); boolean upresult = studentService.updataStudent(newStu, sid); if (upresult) { System.out.println("修改成功!"); } } //删除学生 private void deleteStudentById() { String sid = inputStudentId(); boolean del = studentService.deleteStudentById(sid); if (del) { System.out.println("删除成功!"); } } //输入信息方法 private String inputStudentId() { String sid = inputStudentId(); return sid; } //添加学生 private void addStudent() { String sid; while (true) { System.out.println("请输入学号:"); sid = sc.next(); boolean flag = studentService.isExists(sid); if (flag) { System.out.println("学号已经存在,请重新输入!"); } else { break; } } System.out.println("请输入姓名:"); String sname = sc.next(); System.out.println("请输入年龄:"); String sage = sc.next(); System.out.println("请输入日期:"); String sbirthday = sc.next(); //将键盘输入的信息封装为学生对象 Student student = new Student(); student.setId(sid); student.setName(sname); student.setAge(sage); student.setBirthday(sbirthday); boolean result = studentService.addStudent(student); if (result) { System.out.println("添加成功!"); } } }StudentService类
import edu.info.manager.dao.StudentDao; import edu.info.manager.domain.Student; public class StudentService { StudentDao studentDao=new StudentDao(); //添加 public boolean addStudent(Student student) { boolean result = studentDao.addStudent(student); return result; } //判断学号是否存在 public boolean isExists(String sid) { Student[] stus=studentDao.findAllStudent(); //默认该学号不存在 boolean exists=false; for (int i = 0; i < stus.length; i++) { Student student=stus[i]; if (student!=null&&student.getId().equals(sid)){ //System.out.println("学号已经存在!"); exists= true; } } return exists; } //删除学生 public boolean deleteStudentById(String sid) { boolean del=studentDao.deleteStudentById(sid); return del; } //修改学生 public boolean updataStudent(Student newStu,String sid) { return studentDao.updataStudent(newStu,sid); } //查看学生 public Student[] findAllStudent() { Student[] allStudent= studentDao.findAllStudent(); boolean flag=false; for (int i = 0; i < allStudent.length; i++) { Student student = allStudent[i]; if (student!=null){ flag=true; break; } } if (flag){ return allStudent; }else { return null; } } }StudentDao类
import edu.info.manager.domain.Student; public class StudentDao { private static Student[] students = new Student[5]; //添加 public boolean addStudent(Student student) { int index = -1; for (int i = 0; i < students.length; i++) { Student stu = students[i]; if (stu == null) { index = i; break; } } if (index == -1) { return false; } else { students[index] = student; return true; } } //删除学生 public boolean deleteStudentById(String sid) { boolean flag=false; int index = getIndex(sid); if (index!=-1){ students[index]=null; flag=true; } return flag; } //获取索引值 public int getIndex(String id) { int index = -1; for (int i = 0; i < students.length; i++) { Student stu=students[i]; if (stu!=null&&stu.getId().equals(id)){ index=i; } } return index; } //修改学生 public boolean updataStudent(Student newStu,String sid) { boolean upresult=false; int index = getIndex(sid); if (index!=-1){ students[index]=newStu; upresult=true; } return upresult; } //查看学生 public Student[] findAllStudent() { return students; } }基本与学生信息管理系统相似。
Teacher类
public class Teacher extends Person{ private String id; private String name; private String age; private String birthday; public Teacher() { } public Teacher(String id, String name, String age, String birthday) { this.id = id; this.name = name; this.age = age; this.birthday = birthday; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } }TeacherController类
import edu.info.manager.domain.Teacher; import edu.info.manager.service.TeacherService; import java.util.Scanner; public class TeacherController { Scanner sc = new Scanner(System.in); TeacherService teacherService = new TeacherService(); public void start() { l: while (true) { System.out.println("‐‐‐‐‐‐‐‐欢迎来到 <老师> 管理系统‐‐‐‐‐‐‐‐"); System.out.println("请输入您的选择: 1.添加老师 2.删除老师 3.修改老师 4.查看老师 5.退 出"); int num = sc.nextInt(); switch (num) { case 1: //添加 addTeacher(); break; case 2: //删除 delTeacherById(); break; case 3: //修改 updataTeacher(); break; case 4: //查看 getAllTeacher(); break; case 5: break l; default: System.out.println("输入的选择不合理,请重新输入!"); } } } //查看 private void getAllTeacher() { Teacher[] teachers = teacherService.getAllTeacher(); if (teachers == null) { System.out.println("暂无数据,请添加!"); return; } System.out.println("id\t\t姓名\t年龄\t出生日期"); for (int i = 0; i < teachers.length; i++) { Teacher teacher = teachers[i]; if (teacher != null) { System.out.println(teacher.getId() + "\t" + teacher.getName() + "\t" + teacher.getAge() + "\t" + teacher.getBirthday()); } } } //修改 private void updataTeacher() { String sid; while (true) { System.out.println("请输入学号:"); sid = sc.next(); boolean upResult = teacherService.isExists(sid); if (upResult) { break; } else { System.out.println("输入的id不存在,请重新输入:"); } } System.out.println("请输入姓名:"); String sname = sc.next(); System.out.println("请输入年龄:"); String sage = sc.next(); System.out.println("请输入日期:"); String sbirthday = sc.next(); Teacher upteacher = new Teacher(sid, sname, sage, sbirthday); boolean result = teacherService.updataTeacher(upteacher, sid); if (result) { System.out.println("修改成功!"); } } //删除 private void delTeacherById() { String id; while (true) { System.out.println("请输入要删除的学号:"); id = sc.next(); boolean delresult = teacherService.isExists(id); if (delresult) { break; } else { System.out.println("输入的学号不存在,请重新输入!"); } } boolean result = teacherService.delTeacherById(id); if (result) { System.out.println("删除成功!"); } } //添加教师 private void addTeacher() { String sid; while (true) { System.out.println("请输入老师id:"); sid = sc.next(); boolean isresult = teacherService.isExists(sid); if (isresult) { System.out.println("id已存在,请重新输入!"); } else { break; } } System.out.println("请输入姓名:"); String sname = sc.next(); System.out.println("请输入年龄:"); String sage = sc.next(); System.out.println("请输入出生日期:"); String sbirthday = sc.next(); Teacher addTeacher = new Teacher(sid, sname, sage, sbirthday); boolean addResult = teacherService.addTeacher(addTeacher); if (addResult) { System.out.println("添加成功!"); } } }TeacherService类
import edu.info.manager.dao.TeacherDao; import edu.info.manager.domain.Teacher; public class TeacherService { TeacherDao teacherDao=new TeacherDao(); //判断是否存在 public boolean isExists(String sid) { Teacher[] teacher=teacherDao.getAllTeacher(); boolean flag=false;//默认学号不存在 for (int i = 0; i < teacher.length; i++) { Teacher tea=teacher[i]; if (tea!=null&&tea.getId().equals(sid)){ flag=true;//学号存在 } } return flag; } //添加 public boolean addTeacher(Teacher addTeacher) { return teacherDao.addTeacher(addTeacher); } //删除 public boolean delTeacherById(String id) { return teacherDao.delTeacherById(id); } //修改 public boolean updataTeacher(Teacher upteacher,String sid) { return teacherDao.updataTeacher(upteacher,sid); } //查看 public Teacher[] getAllTeacher() { Teacher[] allteacher= teacherDao.getAllTeacher(); boolean flag=false; for (int i = 0; i < allteacher.length; i++) { Teacher teacher = allteacher[i]; if (teacher!=null){ flag=true; break; } } if (flag){ return allteacher; }else { return null; } } }TeacherDao类
import edu.info.manager.domain.Teacher; public class TeacherDao { private static Teacher[]teachers=new Teacher[5]; //添加教师 public boolean addTeacher(Teacher addTeacher) { int index=-1; for (int i = 0; i < teachers.length; i++) { Teacher tea=teachers[i]; if (tea==null){ index=i; break; } } if (index==-1){ return false;// }else { teachers[index]=addTeacher; return true; } } //删除 public boolean delTeacherById(String id) { int index = getIndex(id); if (index==-1){ return false; }else { teachers[index]=null; return true; } } //获取索引值 public static int getIndex(String id){ int index=-1; for (int i = 0; i < teachers.length; i++) { Teacher tea = teachers[i]; if (tea!=null&&tea.getId().equals(id)){ index=i; break; } } return index; } //获取所有的教师对象 public Teacher[] getAllTeacher() { return teachers; } //修改 public boolean updataTeacher(Teacher upteacher,String sid) { int index=getIndex(sid); if (index==-1){ return false; }else { teachers[index]=upteacher; return true; } } }在创建数组存储对象时需使用static关键字修饰,否则会重复创建数组, 每次调用方法都会使用不同的数组,难以实现增删改查。
static 关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量
可以对代码进行优化,通过继承对类进行改进提高代码的复用性。将重复的代码块抽取定义为一个方法。等等
