java课程期末大作业同学录系统设计附全部源码

该同学录系统使用Java编程,包括实体类Student,服务类StudentService和视图类StudentView。系统支持添加、删除、查询学生信息以及导出文件功能。Student类包含学生的基本信息如姓名、性别、生日等。StudentService类用于处理学生数据的增删查操作,而StudentView类实现了用户交互界面。
摘要由CSDN通过智能技术生成

同学录系统

实体类
public class Student {
    private int id;//编号
    private String name;//姓名
    private char gender;//性别
    private String birthDate;//生日
    private String contact;//联系方式
    private String email;//email
    private String address;//地址

    public Student(int id, String name, char gender, String birthDate, String contact, String email, String address) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.birthDate = birthDate;
        this.contact = contact;
        this.email = email;
        this.address = address;
    }

    // getters and setters
    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 char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public String getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(String birthDate) {
        this.birthDate = birthDate;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return
                "id :" + id +
                        "\t姓名 :" + name +
                        "\t性别 :" + gender +
                        "\t生日 :" + birthDate +
                        "\t联系方式 :" + contact +
                        "\temail :" + email +
                        "\t地址" + address;
    }
}
service类
public class StudentService {
    //定义一个列表存储学生信息
    List<Student> students = new ArrayList<>();
//    定义一个学生对象
    Student student;


    //添加方法
    public void addStudent(Student student) {
//        接收将封装好的对象  并调用list add 方法 添加进去
        students.add(student);
    }
    //删除

    public boolean deleteStudent(int id) {
//        循环查找集合中元素 并赋给student对象
        for (int i = 0; i < students.size(); i++) {
            student = students.get(i);
//            如果id相等返回结果 结束
            if (student.getId() == id) {
                students.remove(i);
                i--;
                return true;
            }
        }
        return false;
    }


    //全查询
    public List<Student> findAll() {
//        返回list 集合
        return students;
    }

    //根据id查询
    public Student findById(int id) {
        //        循环查找集合中元素 并赋给student对象
        for (int i = 0; i < students.size(); i++) {
            student = students.get(i);
            //            如果id相等返回结果 结束
            if (student.getId() == id) {
                return student;
            }
        }
        return null;
    }

    //根据名字查询
//    定义集合 保存根据名字查询的 学生信息
    List<Student> list = new ArrayList<>();

    public List<Student> findByName(String name) {
        //        循环查找集合中元素 并赋给student对象
        for (int i = 0; i < students.size(); i++) {
            student = students.get(i);
            //            如果id相等返回结果 结束
            if (student.getName().equals(name)) {
                return list;
            }
        }
        return null;
    }


    //导出文件

    public void  exportToFile(String filePath) throws IOException {
        //得到导出的文件路径
        FileWriter writer = new FileWriter(filePath);
//        调用缓冲区 达到缓冲效果 减少消耗
        BufferedWriter bufferedWriter = new BufferedWriter(writer);
//        循环写lsit 集合数据
        for (Student item : students) {
            bufferedWriter.write(String.valueOf(item));
            bufferedWriter.newLine();
        }
//        关闭资源
        bufferedWriter.close();
        writer.close();
    }
}

view视图类
public class StudentView {

    //定义学生id自增变量
    int StudentId = 1;
    //控制while循环的loop变量
    boolean loop = true;
    //    实例化service类调用其中方法
    StudentService studentService = new StudentService();
    Scanner scanner = new Scanner(System.in);


    //添加学生信息
    public void addStudent() {
//提示输入一系列信息
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学生姓名:");
        String name = scanner.next();
        System.out.println("请输入学生性别:");
        char gender = scanner.next().charAt(0);

        System.out.println("请输入学生出生年月:");
        String birthdate = scanner.next();

        System.out.println("请输入学生联系方式:");
        String contact = scanner.next();

        System.out.println("请输入学生E-mail:");
        String email = scanner.next();

        System.out.println("请输入学生通信地址:");
        String address = scanner.next();
//        将输入的信息 封装成 Student对象
        Student student = new Student(StudentId, name, gender, birthdate, contact, email, address);
        //调用添加方法 添加学生
        studentService.addStudent(student);
        System.out.println("添加成功");
//        设置学生编号自增
        StudentId++;
    }

    //删除学生信息
    public void deleteStudent() {
        System.out.println("请输入你要删除的学生id");
        int id = scanner.nextInt();
//        调用service删除方法 如果返回值为false 输出提示信息 结束删除方法
        if (!studentService.deleteStudent(id)) {
            System.out.println("没有找到对应的学生");
            return;
        }
        //否则提示删除成功
        System.out.println("删除成功");
    }

    //修改学生信息

    public void updateStudent() {
        System.out.println("请输入要修改的学生编号:");
        int id = scanner.nextInt();
        //        调用service根据id 查询方法 将返回值封装成Student对象
        Student student = studentService.findById(id);
        //如果对象为为空 提示要修改的学生不存在 结束方法
        if (student == null) {
            System.out.println("学生不存在");
            return;
        }
        //如果不为空 继续输入一系列要修改的信息
        System.out.println("请输入新的学生姓名:" + "(" + student.getName() + ")");
        String name = scanner.next();
        //调用set方法 设置信息 同下
        student.setName(name);
        System.out.println("请输入新的学生性别:" + "(" + student.getGender() + ")");
        char gender = scanner.next().charAt(0);
        student.setGender(gender);
        System.out.println("请输入新的学生出生年月:" + "(" + student.getBirthDate() + ")");
        String birthdate = scanner.next();
        student.setBirthDate(birthdate);
        System.out.println("请输入新的学生联系方式:" + "(" + student.getContact() + ")");
        String contact = scanner.next();
        student.setContact(contact);
        System.out.println("请输入新的学生E-mail:" + "(" + student.getEmail() + ")");
        String email = scanner.next();
        student.setEmail(email);
        System.out.println("请输入新的学生通信地址:" + "(" + student.getAddress() + ")");
        String address = scanner.next();
        student.setAddress(address);
        System.out.println("学生信息已修改!");

    }


    //全查询
    public void findAll() {
//        调用service的全查询将返回的数据 存入list 集合中
        List<Student> list = studentService.findAll();
//        如果为空 打印提示信息 并结束方法
        if (list == null) {
            System.out.println("很遗憾,你还没有同学");
            return;
        }
//        否则输出信息
        list.forEach(System.out::println);
    }

    //根据id查询
    public void findById() {
        System.out.println("请输入学生编号:");
        int id = scanner.nextInt();
//        将返回的数据封装为student对象
        Student student = studentService.findById(id);
//        如果为空 提示不存在 并结束方法
        if (student == null) {
            System.out.println("未找到指定学生信息!");
            return;
        }
//        否则输出信息
        System.out.println(student);

    }

    //根据姓名查看
    public void findByName() {
        System.out.println("请输入学生姓名");
        String name = scanner.next();
        //        将返回的数据封装为student对象
        List<Student> list = studentService.findByName(name);
        //        如果为空 提示不存在 并结束方法
        if (list == null) {
            System.out.println("你查找的不存在");
            return;
        }
        //        否则输出信息
        list.forEach(System.out::println);
    }


    //导出到文本文件

    public void exportToFile() throws IOException {
        //设置要保存的文件路径
        String path = "D:\\a\\a.txt";
//        调用保存方法
        studentService.exportToFile(path);

    }

    public void mainEu() throws IOException {
        Scanner scanner = new Scanner(System.in);

        while (loop) {
            System.out.println("==============同学录系统==============");
            System.out.println("请选择功能:");
            System.out.println("\t\t\t1. 添加学生信息");
            System.out.println("\t\t\t2. 删除学生信息");
            System.out.println("\t\t\t3. 修改学生信息");
            System.out.println("\t\t\t4. 查询全部学生信息");
            System.out.println("\t\t\t5. 根据id查看学生信息");
            System.out.println("\t\t\t6. 根据姓名查看学生信息");
            System.out.println("\t\t\t7. 导出到文本文件");
            System.out.println("\t\t\t8. 退出程序");
            int option = scanner.nextInt();

            switch (option) {
                case 1:
                    addStudent();
                    break;
                case 2:
                    deleteStudent();
                    break;
                case 3:
                    updateStudent();
                    break;
                case 4:
                    findAll();
                    break;
                case 5:
                    findById();
                    break;
                case 6:
                    findByName();
                    break;
                case 7:
                    exportToFile();
                    break;
                case 8:
                    loop = false;
                    break;
                default:
                    System.out.println("无效的选项,请重新选择!");
            }
        }
    }
}
测试类
public class Test {
    public static void main(String[] args) throws IOException {
        StudentView studentView = new StudentView();
        studentView.mainEu();
        System.out.println("感谢使用");
    }
}

####运行截图
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计 Java毕业设计期末大作业项目源码课程设计
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值