学习目标:
- 老师信息管理系统搭建
学习内容:
1 环境搭建
2. 添加功能
3. 查询界面
4.删除
5.修改
6.优化
学习产出:
1. 客服接待----TeacherController
package com.itheima.edu.info.manager.controller; import com.itheima.edu.info.manager.domain.Teacher; import com.itheima.edu.info.manager.service.TeacherService; import java.util.Scanner; public class TeacherController { private Scanner sc = new Scanner(System.in); private TeacherService teacherService = new TeacherService(); public void start() { teacherloop: while (true){ System.out.println("--------欢迎来到 <老师> 管理系统--------"); System.out.println("请输入您的选择: 1.添加老师 2.删除老师 3.修改老师 4.查看老师 5.退出"); String choice = sc.next(); switch (choice){ case "1": //System.out.println("添加老师"); addTeacher(); break; case "2": //System.out.println("删除老师"); deleteTeacherById(); break; case "3": //System.out.println("修改老师"); updateTeacher(); break; case "4": //System.out.println("查看老师"); findAllTeacher(); break; case "5": System.out.println("感谢您使用老师管理系统,再见!"); break teacherloop; default: System.out.println("您输入有误,请重新输入"); break; } } } public void updateTeacher() { String id = inputTeacherId(); Teacher newTeacher = inputTeacherInfo(id); //调用业务员修改方法 teacherService.updateTeacher(id,newTeacher); System.out.println("修改成功"); } public void deleteTeacherById() { String id = inputTeacherId(); //2.请用业务员中的删除方法,根据id,删除老师 teacherService.deleteTeacherById(id); //3.提示删除成功 System.out.println("删除成功"); } public void findAllTeacher() { //1.从业务员中,获取老师对象数组 Teacher[] teachers = teacherService.findAllStudent(); //2.判断数组中是否有元素 if(teachers == null){ System.out.println("查无信息,请添加后重试"); return; } //3.遍历数组,取出元素,并打印在控制台 System.out.println("学号\t\t姓名\t年龄\t生日"); for (int i = 0; i < teachers.length; i++) { Teacher t = teachers[i]; if(t != null){ System.out.println(t.getId() + "\t" +t.getName() +"\t" +t.getAge() +"\t\t" + t.getBirthday()); } } } public void addTeacher() { String id; while (true){ //1. 接收不存在的老师id System.out.println("请输入老师id:"); id = sc.next(); //2.判断id是否存在 boolean exists = teacherService.isExists(id); if(exists){ System.out.println("id已被占用,请重新输入:"); }else{ break; } } Teacher t = inputTeacherInfo(id); //5.将封装好的老师对象,传递给TeacherService继续完成添加操作 boolean result = teacherService.addTeacher(t); if(result){ System.out.println("添加成功"); }else{ System.out.println("添加失败"); } } //录入老师id public String inputTeacherId(){ String id; while (true){ System.out.println("请id"); id = sc.next(); boolean exists = teacherService.isExists(id); if(!exists){ System.out.println("您输入的id不存在,请重新输入:"); }else{ break; } } return id; } //录入老师信息,并封装为老师对象方法 public Teacher inputTeacherInfo(String id){ //3. 接收老师其他信息 System.out.println("请输入老师姓名:"); String name = sc.next(); System.out.println("请输入老师年龄:"); String age = sc.next(); System.out.println("请输入老师生日:"); String birthday = sc.next(); Teacher t = new Teacher(); t.setId(id); t.setName(name); t.setAge(age); t.setBirthday(birthday); return t; } }
2. 业务员----TeacherService
package com.itheima.edu.info.manager.service; import com.itheima.edu.info.manager.dao.TeacherDao; import com.itheima.edu.info.manager.domain.Teacher; public class TeacherService { private TeacherDao teacherDao = new TeacherDao(); public boolean addTeacher(Teacher t) { return teacherDao.addTeacher(t); } public boolean isExists(String id) { //1.获取库管中的每一个数组 Teacher[] teachers = teacherDao.findAllStudent(); boolean exists = false; //2.遍历数组,取出一个元素,进行判断 for (int i = 0; i < teachers.length; i++) { Teacher teacher = teachers[i]; if(teacher != null && teacher.getId().equals(id)){ exists = true; break; } } return exists; } public Teacher[] findAllStudent() { Teacher[] allTeacher = teacherDao.findAllStudent(); boolean flag = false; for (int i = 0; i < allTeacher.length; i++) { Teacher t = allTeacher[i]; if(t != null){ flag = true; break; } } if(flag){ return allTeacher; }else { return null; } } public void deleteTeacherById(String id) { teacherDao.deleteTeacherById(id); } public void updateTeacher(String id, Teacher newTeacher) { teacherDao.updateTeacher(id,newTeacher); } }
3. 库管----TeacherDao
package com.itheima.edu.info.manager.dao; import com.itheima.edu.info.manager.domain.Teacher; public class TeacherDao { private static Teacher[] teachers = new Teacher[5]; public boolean addTeacher(Teacher t) { int index = -1; for (int i = 0; i < teachers.length; i++) { Teacher teacher = teachers[i]; if(teacher == null){ index = i; break; } } if(index == -1){ return false; }else { teachers[index] = t; return true; } } public Teacher[] findAllStudent() { return teachers; } public void deleteTeacherById(String id) { //1.查询id在数组中的索引位置 int index = getIndex(id); //2.将该索引位置的元素,使用null进行替换 teachers[index] = null; } public int getIndex(String id){ int index = -1; for (int i = 0; i < teachers.length; i++) { Teacher t = teachers[i]; if(t != null && t.getId().equals(id)){ index = i; break; } } return index; } public void updateTeacher(String id, Teacher newTeacher) { int index = getIndex(id); teachers[index] = newTeacher; } }
4. 封装----Teacher
package com.itheima.edu.info.manager.domain; public class Teacher { 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; } }
5. 主菜单---Entry
package com.itheima.edu.info.manager.entry; import com.itheima.edu.info.manager.controller.StudentController; import com.itheima.edu.info.manager.controller.TeacherController; import java.util.Scanner; public class InfoManageEntry { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true){ //主菜单搭建 System.out.println("--------欢迎来到黑马信息管理系统--------"); System.out.println("请输入您的选择: 1.学生管理 2.老师管理 3.退出"); String choice = sc.next(); switch (choice){ case"1": //System.out.println("学生管理"); //开启学生管理系统 StudentController studentController = new StudentController(); studentController.start(); break; case"2": System.out.println("老师管理"); TeacherController teacherController = new TeacherController(); teacherController.start(); break; case"3": System.out.println("感谢您的使用"); //退出当前正在运行的JVM虚拟机 System.exit(0); break; default: System.out.println("您的输入有误,请重新输入"); break; } } } }