文章目录:
1丶展示效果
2丶代码书写
展示效果:
代码书写:
package com.itheima.edu.info.manager.entry;
import com.itheima.edu.info.manager.controller.StudentController;
import com.itheima.edu.info.manager.controller.StudentController;
import com.itheima.edu.info.manager.controller.TeacherController;
import java.util.Scanner;
public class infoManagerEntry {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;
for(;;) {
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("感谢您的使用");
System.exit(0);
break;
}
}
}
}
package com.itheima.edu.info.manager.domain;
public class Student extends Person {
public Student() {
}
public Student(String id, String name, String age, String address) {
super(id, name, age, address);
}
}
package com.itheima.edu.info.manager.dao;
import com.itheima.edu.info.manager.domain.Student;
public interface BaseStudentDao {
//添加学生方法。
public abstract boolean addStudent(Student stu) ;
//查看学生方法
public abstract Student[] findAllStudent();
//删除学生方法
public abstract void deleteStudentBy(String delid);
//根据id找索引方法
public abstract int getIndex(String id);
//修改学生方法
public abstract void updateStudent(String updateid, Student updateStudent);
}
package com.itheima.edu.info.manager.controller;
import com.itheima.edu.info.manager.domain.Student;
import com.itheima.edu.info.manager.service.StudentService;
import java.util.Scanner;
public abstract class otherStudentController {
private StudentService studentService = new StudentService();
private Scanner sc = new Scanner(System.in);
public final void start() {
loop:
for (; ; ) {
System.out.println("--------欢迎来到 <学生> 管理系统--------");
System.out.println("请输入您的选择: 1.添加学生 2.删除学生 3.修改学生 4.查看学生 5.退出");
String choice = sc.next();
switch (choice) {
case "1":
//System.out.println("添加学生");
addStudent();
break;
case "2":
// System.out.println("删除学生");
deleteStudentById();
break;
case "3":
//System.out.println("修改学生");
updateStudent();
break;
case "4":
//System.out.println("查看学生");
findAllStudent();
break;
case "5":
System.out.println("感谢你的使用");
break loop;
default:
System.out.println("您的输入有误,请重新输入");
break;
}
}
}
//删除方法
public final void deleteStudentById() {
String id =inputStudent();
//调用业务员中的deleteStudentBy方法,根据id,删除学生。
studentService.deleteStudentBy(id);
//提示删除成功。
System.out.println("删除成功!");
}
//查询方法
public final void findAllStudent() {
Student[] students = studentService.findAllStudent();
if (students == null) {
System.out.println("查无信息,请录入后查询。");
return;
}
System.out.println("学号\t\t姓名\t年龄\t地址");
for (int i = 0; i < students.length; i++) {
Student stus = students[i];
if (stus!= null) {
System.out.println(stus.getId() + "\t" + stus.getName() + "\t" + stus.getAge() + "\t\t" + stus.getAddress());
}
}
}
//添加方法
public final void addStudent() {
String id;
for (; ; ) {
System.out.println("请输入学生id:");
id = sc.next();
//判断id是否存在。
boolean exists = studentService.isExist(id);
if (exists) {
System.out.println("id已被占用,请重新输入:");
} else {
break;
}
}
Student stu= inoutStudent(id);
boolean result = studentService.addStudent(stu);
if (result) {
System.out.println("添加成功");
} else {
System.out.println("添加失败");
}
}
//修改方法
public final void updateStudent(){
String id=inputStudent();
Student newstudent=inoutStudent(id);
//调用业务员的修改方法。
studentService.updateStudent(id,newstudent);
System.out.println("修改成功");
}
//录入学生id
public String inputStudent(){
String id;
for(;;) {
System.out.println("请输入学生的id");
id = sc.next();
boolean exists=studentService.isExist(id);
if (!exists){
System.out.println("你输入的id不存在,请重新输入:");
}else{
break;
}
}return id;
}
//录入学生信息,封装为对象
//开闭原则:对扩展内容开放,对修改内容关闭。
public abstract Student inoutStudent(String id);
}
package com.itheima.edu.info.manager.service;
import com.itheima.edu.info.manager.dao.StudentDao;
import com.itheima.edu.info.manager.domain.Student;
public class StudentService {
StudentDao studentDao = new StudentDao();
public boolean isExist(String id) {
Student[] students = studentDao.findAllStudent();
boolean exists = false;
for (int i = 0; i < students.length; i++) {
Student stus = students[i];
if (stus!= null && stus.getId().equals(id)) {
exists = true;
break;
}
}
return exists;
}
public boolean addStudent(Student stu) {
return studentDao.addStudent(stu);
}
public Student[] findAllStudent() {
Student[] allStudent = studentDao.findAllStudent();
boolean flag=false;
for (int i = 0; i < allStudent.length; i++) {
Student stus = allStudent[i];
if (stus != null) {
flag = true;
break;
}
}
if(flag){
return allStudent;
}else{
return null;
}
}
public void deleteStudentBy(String delid) {
studentDao.deleteStudentBy(delid);
}
public void updateStudent(String id, Student newstudent) {
studentDao. updateStudent(id,newstudent);
}
}
总结:
经过一段时间的学习吧,在摸爬滚打中从一个代码小白,逐渐进步,虽然现在还算是小白,但总体来说有了一点提升,按照一些案例要求,不断改进,不断试错算是完成的第一个面向对象案例,有些代码不够简洁,还有很大提升空间。加油!!!