跳出Helloword,走进面向对象的第一个小案例:老师学生管理系统。

文章目录

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

 总结:

经过一段时间的学习吧,在摸爬滚打中从一个代码小白,逐渐进步,虽然现在还算是小白,但总体来说有了一点提升,按照一些案例要求,不断改进,不断试错算是完成的第一个面向对象案例,有些代码不够简洁,还有很大提升空间。加油!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月初,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值