xxx学校/学院/大学信息管理系统

        注意:本程序完全用java语言实现,下面的每个代码段,都需要单独创建一个类,其中老师部分和学生部分大致相同,还有非常大的优化空间,如果觉得存储数据的空间太小,可以自行更改,或者将数组改为集合来进行存储(可参考我的另一篇文章),本程序较为简单,但对于新手来说,非常适合参考与编写。

运行时的控制台(小部分功能):

1、学生添加

2、 老师添加

 程序源码如下:

1、程序入口

public class InfoManagerEntry {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //主菜单搭建
        while (true) {
            System.out.println("---------欢迎来到湖南城市学院信息管理系统---------");
            System.out.println("请输入您的选择:1、学生管理  2、教师管理  3、退出");
            String choice = in.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;
            }
        }
    }
}

2、学生管理部分

一、与用户沟通部分


public class StudentController {
    //使用static关键字让in成为类对象
    private Scanner in = new Scanner(System.in);
    private StudentService studentService = new StudentService();

    //开启学生管理系统
    public void start() {
        lo:
        while (true) {
            System.out.println("---------欢迎来到湖南城市学院学生管理系统---------");
            System.out.println("请输入您的选择:1、添加学生 2、删除学生 3、修改学生 4、查看学生 5、退出");
            String choice = in.next();
            switch (choice) {
                case "1":
//                    System.out.println("添加学生");
                    addStudent();
                    break;
                case "2":
//                    System.out.println("删除学生");
                    deleteStudentBySid();
                    break;
                case "3":
//                    System.out.println("修改学生");
                    updateStudent();
                    break;
                case "4":
//                    System.out.println("查看学生");
                    findAllStudent();
                    break;
                case "5":
                    System.out.println("感谢您使用湖南城市学院学生管理系统,再见!");
                    break lo;
                default:
                    System.out.println("您的输入有误,请重新输入");
                    break;
            }
        }
    }

    //添加学生
    public void addStudent() {
        //接受学生信息
        String sid;
        while (true) {
            System.out.println("请输入学生学号:");
            sid = in.next();
            //判断学号是否存在
            boolean flag = studentService.isExists(sid);
            //如果为true,重新输入
            if (flag) {
                System.out.println("学号已经被占用,请重新输入");
            } else {
                break;
            }
        }
        Student stu = getStudent(sid);
        //接受布尔值
        boolean result = studentService.addStudent(stu);
        //根据boolean值,在控制台打印成功\失败
        if (result) {
            System.out.println("添加成功");
        } else {
            System.out.println("添加失败");
        }
    }

    //查看学生
    public void findAllStudent() {
        //接收数组
        Student[] arr = studentService.findAllStudent();
        if (arr != null) {
            //输出表头
            System.out.println("学号\t\t姓名\t年龄\t生日");
            //遍历数组
            for (int i = 0; i < arr.length; i++) {
                Student stu = arr[i];
                //判断是否为空,不然会报错
                if (stu != null) {
                    System.out.println(stu.getSid() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t\t" + stu.getBirthday());
                }
            }
        } else {
            System.out.println("查无信息,请添加后重试");
        }
    }

    //删除学生
    public void deleteStudentBySid() {
        //判断Id是否存在
        String deleteid = CheckId();
        //传送Id
        studentService.deleteStudentBySid(deleteid);
        System.out.println("删除成功");
    }

    //修改学生
    public void updateStudent() {
        //判断即将修改的学生Id是否存在
        String updateid = CheckId();
        //接收新的对象
        Student newstu = getStudent(updateid);
        //传递新的对象
        studentService.updateStudent(newstu);
        //提示信息
        System.out.println("修改成功");
    }

    //封装学生对象
    public Student getStudent(String sid) {
        System.out.println("请输入姓名:");
        //接收新的名字
        String name = in.next();
        System.out.println("请输入年龄:");
        //新的年龄
        String age = in.next();
        System.out.println("请输入生日:");
        //新的生日
        String birthday = in.next();
        //封装为一个新的对象
        Student stu = new Student(sid, name, age, birthday);
        return stu;
    }

    //录入查找学生学号
    public String CheckId() {
        String Id;
        while (true) {
            System.out.println("请输入学生学号:");
            //接收学号
            Id = in.next();
            boolean flag = studentService.isExists(Id);
            //如果存在跳出循环
            if (flag) {
                break;
            }
            //不存在则提示用户
            else {
                System.out.println("学号不存在,请重新输入");
            }
        }
        return Id;
    }
}

二、学生信息部分

public class Student {
    private String sid;
    private String name;
    private String age;
    private String birthday;

    public Student() {
    }

    public Student(String sid, String name, String age, String birthday) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

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

三、学生信息存储部分

public class StudentDao {
    //创建学生数组
    private static Student[] arr = new Student[5];

    //添加学生
    public boolean addStudent(Student stu) {
        int Index = -1;
        //遍历数组,找空位
        for (int i = 0; i < arr.length; i++) {
            Student student = arr[i];
            if (student == null) {
                //如果找到空位,就让Index记录该索引值
                Index = i;
                break;
            }
        }
        if (Index == -1) {
            //数组内无空位了
            return false;
        } else {
            //存入学生对象
            arr[Index] = stu;
            return true;
        }
    }

    //查找学生
    public Student[] findAllStudent() {
        return arr;
    }

    //删除学生
    public void deleteStudentBySid(String sid) {
        //找到位置
        int Index = getIndex(sid);
        //删除
        arr[Index] = null;
    }

    //根据学号找位置
    public int getIndex(String sid) {
        //假设数组没有这个学号
        int Index = -1;
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            Student stu = arr[i];
            if (stu != null && stu.getSid().equals(sid)) {
                Index = i;
                break;
            }
        }
        return Index;
    }

    //修改学生
    public void updateStudent(Student stu) {
        //获取被修改学生学号
        String sid = stu.getSid();
        //找到该学生的索引位置
        int Index = getIndex(sid);
        //添加新的学生对象进去
        arr[Index] = stu;
    }
}

四、代码逻辑部分

public class StudentService {
    StudentDao studentDao = new StudentDao();

    // 学号是否存在
    public boolean isExists(String sid) {
        //创建变量flag,假设学号不在数组中
        boolean flag = false;
        //获得学生数组
        Student[] arr = studentDao.findAllStudent();
        //遍历数组,判断数组中是否有相同学号
        for (int i = 0; i < arr.length; i++) {
            Student student = arr[i];
            if (student != null && student.getSid().equals(sid)) {
                flag = true;
                break;
            }
        }
        return flag;
    }

    //添加学生
    public boolean addStudent(Student stu) {
        //传递学生对象
        boolean result = studentDao.addStudent(stu);
        //返回布尔值给上一层
        return result;
    }

    // 查找学生
    public Student[] findAllStudent() {
        //接收数组
        Student[] arr = studentDao.findAllStudent();
        //判断返回值时有用,假定数组为空
        boolean flag = false;
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            Student stu = arr[i];
            //如果数组内不为空
            if (stu != null) {
                flag = true;
                break;
            }
        }
        if (flag) {
            //为真返回数组
            return arr;
        } else {
            return null;
        }
    }

    //删除学生
    public void deleteStudentBySid(String deleteid) {
        //传学号
        studentDao.deleteStudentBySid(deleteid);
    }

    // 修改学生
    public void updateStudent(Student stu) {
        //传递对象
        studentDao.updateStudent(stu);
    }
}

2、老师管理部分

一、与用户沟通部分

public class TeacherController {
    Scanner in = new Scanner(System.in);
    TeacherService teacherService = new TeacherService();

    //开启老师管理系统
    public void start() {
        lo:
        while (true) {
            System.out.println("---------欢迎来到湖南城市学院老师管理系统---------");
            System.out.println("请输入您的选择:1、添加老师 2、删除老师 3、修改老师 4、查看老师 5、退出");
            //接收选择
            String choice = in.next();
            //选择路线
            switch (choice) {
                case "1":
//                    System.out.println("添加老师");
                    addTeacher();
                    break;
                case "2":
//                    System.out.println("删除老师");
                    deleteTeacher();
                    break;
                case "3":
//                    System.out.println("修改老师");
                    updateTeacher();
                    break;
                case "4":
//                    System.out.println("查看老师");
                    findAllTeacher();
                    break;
                case "5":
                    System.out.println("感谢您使用湖南城市学院老师管理系统,再见!");
                    break lo;
                default:
                    System.out.println("您输入有误,请重新输入!");
                    break;
            }
        }
    }

    //修改老师
    public void updateTeacher() {
        //获得Id
        String updateId = CheckId();
        //获得对象
        Teacher teacher = getTeacher(updateId);
        teacherService.upadateTeacher(teacher);
        System.out.println("修改成功");
    }

    //删除老师
    public void deleteTeacher() {
        String deleteId;
        while (true) {
            System.out.println("请输入工号:");
            deleteId = in.next();
            //接收布尔值,判断工号是否存在数组中
            boolean flag = teacherService.isExist(deleteId);
            //如果存在,跳出删除
            if (flag) {
                break;
            } else {
                System.out.println("查无此人,请重新输入!");
            }
        }
        teacherService.deleteTeacher(deleteId);
        System.out.println("删除成功");
    }

    //查找老师
    public void findAllTeacher() {
        //获取数组地址
        Teacher[] arr = teacherService.findAllTeacher();
        //如果没有做添加老师的步骤,那么数组的地址是不存在的
        if (arr != null) {
            System.out.println("工号\t\t姓名\t年龄\t生日");
            for (int i = 0; i < arr.length; i++) {
                Teacher teacher = arr[i];
                //要先判断是否为空,不然会报错
                if (teacher != null) {
                    System.out.println(teacher.getTid() + "\t" + teacher.getName() + "\t" + teacher.getAge() + "\t\t" + teacher.getBirthday());
                }
            }
        } else {
            System.out.println("查无信息,请添加后重试!");
        }
    }

    // 添加老师
    public void addTeacher() {
        String addId;
        while (true) {
            System.out.println("请输入工号:");
            //接收Id,判断Id是否存在
            addId = in.next();
            //接收返回值
            boolean flag = teacherService.isExist(addId);
            //返回值为true,工号不能两个老师用
            if (flag) {
                System.out.println("工号被占用,请重新输入");
            }
            //返回值为false则跳出循环,继续完善其他信息
            else {
                break;
            }
        }
        //获得对象
        Teacher teacher = getTeacher(addId);
        //将对象传出
        boolean flag = teacherService.addTeacher(teacher);
        if (flag) {
            System.out.println("添加成功");
        } else {
            System.out.println("添加失败");
        }
    }

    //查询,判断工号是否在数组内
    public String CheckId() {
        String Id;
        while (true) {
            System.out.println("请输入工号:");
            Id = in.next();
            //接受布尔值,判断工号是否在数组内
            boolean flag = teacherService.isExist(Id);
            //如果工号在数组内,跳出循环,修改其他信息
            if (flag) {
                break;
            } else {
                System.out.println("查无此人,请重新输入!");
            }
        }
        return Id;
    }

    //信息录入与封装
    public Teacher getTeacher(String Id) {
        //完善其他信息
        System.out.println("请输入姓名:");
        String name = in.next();
        System.out.println("请输入年龄:");
        String age = in.next();
        System.out.println("请输入生日:");
        String birthday = in.next();
        //封装为对象
        Teacher teacher = new Teacher(Id, name, age, birthday);
        return teacher;
    }
}

二、老师信息

public class Teacher {
    private String tid;
    private String name;
    private String age;
    private String birthday;

    public Teacher() {
    }

    public Teacher(String tid, String name, String age, String birthday) {
        this.tid = tid;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    public String getTid() {
        return tid;
    }

    public void setTid(String tid) {
        this.tid = tid;
    }

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

三、老师信息存储 


public class TeacherDao {
    //加static是为了保证此类的任何对象都在使用这个数组
    static Teacher[] arr = new Teacher[5];

    //传递数组,查看老师
    public Teacher[] findAllTeacher() {
        return arr;
    }

    //添加学生
    public boolean addTeacher(Teacher teacher) {
        //假设数组已经存满
        int Index = -1;
        //遍历数组,找空位,并且记录空位的位置
        for (int i = 0; i < arr.length; i++) {
            Teacher t = arr[i];
            if (t == null) {
                Index = i;
                break;
            }
        }
        //数组如果满了,就传false
        if (Index == -1) {
            return false;
        } else {
            //将传过来的对象添加到空位中去
            arr[Index] = teacher;
            return true;
        }
    }

    //删除学生
    public void deleteTeacher(String deleteId) {
        //根据传来的学号找到相应的索引位置
        int Index = getIndex(deleteId);
        //将其删除
        arr[Index] = null;
    }

    //根据工号找索引位置
    public int getIndex(String Id) {
        //先给索引赋初值,表示不在数组中
        int Index = -1;
        //遍历数组,找到工号所对应的索引位置
        for (int i = 0; i < arr.length; i++) {
            Teacher teacher = arr[i];
            if (teacher != null && teacher.getTid().equals(Id)) {
                Index = i;
            }
        }
        return Index;
    }

    //修改老师
    public void updateTeacher(Teacher teacher) {
        //将要修改的Id
        String Id = teacher.getTid();
        //根据Id找到位置
        int Index = getIndex(Id);
        //将新的对象填入数组中
        arr[Index] = teacher;
    }
}

四、代码逻辑部分

public class TeacherService {
    TeacherDao teacherDao = new TeacherDao();

    //判断老师是否存在,根据工号查找老师
    public boolean isExist(String addId) {
        //先假设找不到老师
        boolean flag = false;
        //创建对象接收数组
        Teacher[] arr = teacherDao.findAllTeacher();
        //遍历数组,找相同的学号
        for (int i = 0; i < arr.length; i++) {
            Teacher teacher = arr[i];
            if (teacher != null && teacher.getTid().equals(addId)) {
                flag = true;
                break;
            }
        }
        //找到了,返回值为true
        if (flag) {
            return flag;
        }
        //找不到,返回值为false
        else {
            return flag;
        }
    }

    //添加老师
    public boolean addTeacher(Teacher teacher) {
        //接受布尔值,并且返回
        boolean flag = teacherDao.addTeacher(teacher);
        if (flag) {
            return flag;
        } else {
            return flag;
        }
    }

    //查找老师
    public Teacher[] findAllTeacher() {
        Teacher[] arr = teacherDao.findAllTeacher();
        //假设数组为空
        boolean flag = false;
        //遍历数组,看数组是否为空
        for (int i = 0; i < arr.length; i++) {
            Teacher teacher = arr[i];
            if (teacher != null) {
                flag = true;
                break;
            }
        }
        //假如数组不为空,flag为true
        if (flag) {
            return arr;
        } else {
            return null;
        }
    }

    //删除老师
    public void deleteTeacher(String deleteId) {
        teacherDao.deleteTeacher(deleteId);
    }
    // 修改老师
    public void upadateTeacher(Teacher teacher) {
        teacherDao.updateTeacher(teacher);
    }
}

如有疑问,欢迎交流! 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值