用java代码实现的学生管理系统(用面向接口编程的思想)

先定义一个接口StudentService

public interface StudentService {
//    定义一个学生对象是否存在的接口
 int exists(int id);
//    添加的接口
boolean add(Student student);
//    删除的接口
boolean delect(int id);
//    修改的接口
boolean update(Student student);
//    查询一个人的接口
Student selectOne(int id);
//    查询所有人的接口
Student[] selectAll();
//状态查询的接口
Student[] StudentsByState(String state);
//登录页面的接口
boolean userServlet(String name,String miman);

}

然后写一个接口实现类StudentServiceimpl

import java.util.Arrays;

public class StudentServiceimpl implements StudentService{
    //    先给学生类定义一个数组来装学生对象
    Student[]students={};
    //    定义一个数在装学生对象个数
    int size=0;
//    判断该学生是否存在的方法
    @Override
    public int exists(int id) {
        for (int i = 0; i < size; i++) {
            if (id==students[i].getId()){//表示该学生存在
                return i;
            }
        }
        return -1;//表示学生不存在
    }
//添加的方法
    @Override
    public boolean add(Student student) {
//        1.先判断该学生存不存在
        int index=exists(student.getId());
        if (index==-1){//表示不存在
            return false;
        }
//        2.判断数组装不装的下,是否需要扩容
        if (students.length==size){//需要扩容
            students= Arrays.copyOf(students,students.length+5);
        }
//        3.添加学生对象
        students[size]=student;
        return true;
    }

    @Override
    public boolean delect(int id) {
        //   1.判断需要删除的学生是否存在
//        使用index接收是否存在的返回值
        int index=exists(id);
        if (index==-1) {
            return false;
        }
//        2.表示存在,然后在学生对象数组中删除该对象
        System.arraycopy(students,index+1,students,index,size - index - 1);
//        3.学生个数减1
        size--;
//        4.数组全部向前移之后,后面会有一个新的数组至于null
        students[size]=null;
        return true;
    }

    @Override
    public boolean update(Student student) {
        int index=exists(student.getId());
        if (index==-1){//表示学生不存在
            return false;
        }//表示学生存在
        students[index]=student;
        return true;

    }

    @Override
    public Student selectOne(int id) {
        //        1.先判断要查询的学生是否存在
        int index=exists(id);
        if (index!=-1){//表示要查询的学生存在
            return students[index];}
        else{
            return null;
        }

    }

    @Override
    public Student[] selectAll() {
        return students;

    }

    @Override
    public Student[] StudentsByState(String state) {
        //        因为新的数组的长度我们是未知的 所以需要定义一个数去接收长度
        int count=0;
        for (int i = 0; i < students.length; i++) {
            if (state.equals(students[i].getState())){
                count++;
            }
        }
        Student [] students1 = new Student[count];
        int index=0;
        for (int i = 0; i < size; i++) {
            if (state.equals(students[i].getState())){
                students1[index]=students[i];
                index++;
            }
        }
        return students1;

    }

    @Override
    public boolean userServlet(String name, String miman) {
        if (name.equals("任宇阳")){
            if (miman.equals("renyuyang")) {
                return true;
            }else {
                System.out.println("密码输入错误");}
        }else{
            System.out.println("用户名输入错误");}
        return false;
    }
    }

写一个学生类 

public class Student {
    //    先定义一个学生类
//    学生类里有那些属性:学生id、姓名、年龄、性别、学分、状态..
    private int id;
    private String name;
    private int age;
    private String sex;
//定义一个无参构造方法

    public Student() {
    }

    //定义一个有参构造方法
    public Student(int id, String name, int age, String sex, double score, String state) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.score = score;
        this.state = state;
    }
    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    private double score;
    private String state;
}

然后写一个假的前端展示

import java.util.Scanner;

public class StudentView {
//    创建一个成员变量键盘输入
    Scanner scanner=new Scanner(System.in);
//    创建一个学生管理类,才能调用学生管理类的方法
    StudentService studentService=new StudentServiceimpl();
//    首页
    public void indexView() {

        while (true) {
            System.out.println("请输入功能序号:1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.查询所有学生 6查询状态 7.退出系统");
            switch (scanner.nextInt()) {
                case 1:
                    addView();
                    break;
                case 2:
                    deleteView();
                    break;
                case 3:
                    updateView();
                    break;
                case 4:
                    selectOneView();
                    break;
                case 5:
                    selectAllView();
                    break;
                case 6:
                    selectStateView();
                    break;
                case 7:
                    return;
                default:
                    System.out.println("没有该功能选项请重新输入");
                    break;
            }
        }
    }
//    定义一个添加页面
    public void addView(){
        System.out.println("欢迎进入添加页面");
        System.out.println("请输入添加的学生id");
        int id = scanner.nextInt();
        System.out.println("请输入添加的学生姓名");
        String name = scanner.next();
        System.out.println("请输入添加的学生性别");
        String sex = scanner.next();
        System.out.println("请输入添加的学生年龄");
        int age = scanner.nextInt();
        System.out.println("请输入添加的学生学分,学分百分制");
        double score = scanner.nextDouble();
        System.out.println("请输入添加的学生状态,在读、休学、毕业、退学、开除");
        String state = scanner.next();
//        输入完后调用后端的添加方法
        Student student=new Student(id,name,age,sex,score,state);
        if (studentService.add(student)){
            System.out.println("添加成功");
        }else {
            System.out.println("添加失败");
        }
    }
//    定义一个删除页面
    public void deleteView(){
        System.out.println("欢迎进入删除页面");
        System.out.println("请输入你需要删除学生的id");
        int id = scanner.nextInt();
        System.out.println("你确定要删除该学生嘛(确定输入确定)");
        String next = scanner.next();
        if (next.equals("确定")){
            if (studentService.delect(id)){
                System.out.println("删除成功");
            }else {
                System.out.println("删除失败");
            }
            }else {
            System.out.println("取消了删除操作");
        }
        }
//     定义一个修改页面
    public void updateView(){
        System.out.println("欢迎进入修改页面");
        System.out.println("请输入你需要修改的学生id");
        int id = scanner.nextInt();
//        先根据后端查询一个学生的方法把学生查询出来
        Student student=studentService.selectOne(id);
        if (student==null){
            System.out.println("需要修改的学生不存在,无法修改");
        }else {
            System.out.println("id\t\t\t姓名\t\t性别\t\t年龄\t\tt学分\t\t状态");
            showView(student);
            System.out.println("请输入修改的姓名");
            String name = scanner.next();
            System.out.println("请输入修改的性别");
            String sex = scanner.next();
            System.out.println("请输入修改的年龄");
            int age = scanner.nextInt();
            System.out.println("请输入修改的学分");
            double score =scanner.nextDouble();
            System.out.println("请输入修改的状态");
            String state = scanner.next();
            student.setName(name);
            student.setAge(age);
            student.setSex(sex);
            student.setState(state);
            student.setScore(score);
//           然后调用后端的修改方法
            if (studentService.update(student)){
                System.out.println("修改成功");
            }else{
                System.out.println("修改失败");
            }
        }
    }
//    定义一个查询一个人的页面
    public void selectOneView(){
        System.out.println("欢迎进入学生详情页面");
        System.out.println("请输入需要查询的学生id");
        int id=scanner.nextInt();
//        调用后端的查询方法
        Student student=studentService.selectOne(id);
        if (student==null){
            System.out.println("查询失败");
        }else {
            System.out.println("查询到该学生");
            System.out.println("id\t\t\t姓名\t\t性别\t\t年龄\t\tt学分\t\t状态");
            showView(student);
        }
    }
//    定义一个查询所有学生的页面
    public void selectAllView(){
//        调用后端的查询方法
        Student[] students = studentService.selectAll();
        if (students.length == 0) {//表示没有学生
            System.out.println("暂无学生信息");
        } else {
            System.out.println("id\t\t\t姓名\t\t性别\t\t年龄\t\tt学分\t\t状态");
            for (int i = 0; i < students.length; i++) {
                if(students[i]!=null) {
                    showView(students[i]);
                }
                }
            }
        }
//        定义一个状态查询页面
    public void selectStateView(){
        System.out.println("请输入需要查询的学生状态");
        String state=scanner.next();
        Student[] students = studentService.StudentsByState(state);
        if (students.length == 0) {//表示没有学生
            System.out.println("暂无学生信息");
        } else {
            System.out.println("id\t\t\t姓名\t\t性别\t\t年龄\t\tt学分\t\t状态");
            for (int i = 0; i < students.length; i++) {
                if(students[i]!=null) {
                    showView(students[i]);
                }
            }
        }
    }

//    定义一个展示页面
    public void showView(Student student){
        System.out.println(student.getId()+"\t\t"+student.getName()+"\t\t"+student.getSex()+"\t\t"+student.getAge()+"\t\t"+student.getScore()+"\t\t"+student.getState());
    }
//    定义一个用户登录界面
    public void userServletView(){
        System.out.println("                         .::::.@");
        System.out.println("                     .::::::::.@");
        System.out.println("                    :::::::::::@");
        System.out.println("                 ..:::::::::::'@");
        System.out.println("              '::::::::::::'@");
        System.out.println("                .::::::::::@");
        System.out.println("           '::::::::::::::..@");
        System.out.println("                ..::::::::::::.@");
        System.out.println("              ``::::::::::::::::@");
        System.out.println("               ::::``:::::::::'        .:::.@");
        System.out.println("              ::::'   ':::::'       .::::::::.@");
        System.out.println("            .::::'      ::::     .:::::::'::::.@");
        System.out.println("           .:::'       :::::  .:::::::::' ':::::.@");
        System.out.println("          .::'        :::::.:::::::::'      ':::::.@");
        System.out.println("         .::'         ::::::::::::::'         ``::::.@");
        System.out.println("     ...:::           ::::::::::::'              ``::.@");
        System.out.println("    ```` ':.          ':::::::::'                  ::::..@");
        System.out.println("                       '.:::::'                    ':'````..@");
        System.out.println("                                                ");
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        System.out.println("                    老天保佑                       永无BUG         ");
        System.out.println("***************************欢迎使用小治学生管理系统2.1*******************");
        while (true){
            System.out.println("欢迎进入小治学生管理系统登录页面");
            System.out.println("请输入用户名");
            String name = scanner.next();
            System.out.println("请输入密码");
            String mima = scanner.next();
            if (studentService.userServlet(name,mima)){
                System.out.println("登录成功");
                StudentView studentView = new StudentView();
                studentView.indexView();
            }else {
                System.out.println("登录失败");
            }
        }
        }

    }

然后创建一个测试类运行

public class Test {
    public static void main(String[] args) {
        StudentView studentView = new StudentView();
        studentView.userServletView();
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值