Java 学生通讯录管理系统:简单易懂的代码实现

本教程将带您一步步使用 Java 创建一个学生通讯录管理系统。系统功能包括添加、显示、修改、删除、查询、排序和保存学生信息。代码简洁易懂,适合初学者学习。

设计要求

该设计要求实现本班同学的通讯录管理系统,保存的信息包括:学号、姓名、手机、QQ、EMAIL、家庭住址、家庭联系人和家庭电话等,具体操作包括信息的添加、查找、删除、排序、显示、修改和保存等。

系统功能

  • 信息录入: 即添加通讯记录。
  • 信息显示: 将所有的同学通讯信息按顺序显示(可以只显示其中的一部分列)。
  • 信息修改: 对已经输入信息进行修改(学号姓名不能修改)。
  • 信息删除: 删除某个记录。
  • 查询: 可按照学号或者姓名查询车次信息。
  • 信息保存: 将通讯信息保存到文件。

实现思路

  1. 定义一个学生类 Student,包含学号、姓名、手机、QQ、EMAIL、家庭住址、家庭联系人和家庭电话等属性,并提供相应的 getset 方法。
  2. 定义一个通讯录类 AddressBook,用于管理所有学生的信息。可以使用 ArrayList 来存储所有学生信息。
  3. 实现信息录入功能,即通过用户输入添加学生信息,并将其添加到通讯录中。
  4. 实现信息显示功能,即按顺序将所有学生的信息显示出来。
  5. 实现信息修改功能,即根据用户输入的学号或姓名查找相应的学生信息,然后修改其它属性。
  6. 实现信息删除功能,即根据用户输入的学号或姓名查找相应的学生信息,然后将其从通讯录中删除。
  7. 实现查询功能,即根据用户输入的学号或姓名查找相应的学生信息,并将其显示出来。
  8. 实现信息保存功能,即将所有学生的信息保存到文件中。

代码实现

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
import java.io.*;

// 学生类
class Student {
    private String id;      // 学号
    private String name;    // 姓名
    private String phone;   // 手机
    private String qq;      // QQ
    private String email;   // EMAIL
    private String address; // 家庭住址
    private String contact; // 家庭联系人
    private String cphone;  // 家庭电话
    
    public Student(String id, String name, String phone, String qq, String email, String address, String contact, String cphone) {
        this.id = id;
        this.name = name;
        this.phone = phone;
        this.qq = qq;
        this.email = email;
        this.address = address;
        this.contact = contact;
        this.cphone = cphone;
    }
    
    public String getId() {
        return id;
    }
    
    public void setId(String id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getPhone() {
        return phone;
    }
    
    public void setPhone(String phone) {
        this.phone = phone;
    }
    
    public String getQq() {
        return qq;
    }
    
    public void setQq(String qq) {
        this.qq = qq;
    }
    
    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;
    }
    
    public String getContact() {
        return contact;
    }
    
    public void setContact(String contact) {
        this.contact = contact;
    }
    
    public String getCphone() {
        return cphone;
    }
    
    public void setCphone(String cphone) {
        this.cphone = cphone;
    }
}

// 通讯录类
class AddressBook {
    private ArrayList<Student> students; // 存储所有学生信息
    
    public AddressBook() {
        students = new ArrayList<Student>();
    }
    
    // 添加学生信息
    public void addStudent(Student student) {
        students.add(student);
    }
    
    // 显示所有学生信息
    public void showStudents() {
        for (int i = 0; i < students.size(); i++) {
            System.out.println((i+1) + '	' + students.get(i).getId() + '	' + students.get(i).getName() + '	' + students.get(i).getPhone());
        }
    }
    
    // 修改学生信息
    public void updateStudent(String id, String name, String phone, String qq, String email, String address, String contact, String cphone) {
        for (int i = 0; i < students.size(); i++) {
            if (students.get(i).getId().equals(id) || students.get(i).getName().equals(name)) {
                students.get(i).setPhone(phone);
                students.get(i).setQq(qq);
                students.get(i).setEmail(email);
                students.get(i).setAddress(address);
                students.get(i).setContact(contact);
                students.get(i).setCphone(cphone);
            }
        }
    }
    
    // 删除学生信息
    public void deleteStudent(String id, String name) {
        for (int i = 0; i < students.size(); i++) {
            if (students.get(i).getId().equals(id) || students.get(i).getName().equals(name)) {
                students.remove(i);
            }
        }
    }
    
    // 查询学生信息
    public void searchStudent(String id, String name) {
        for (int i = 0; i < students.size(); i++) {
            if (students.get(i).getId().equals(id) || students.get(i).getName().equals(name)) {
                System.out.println(students.get(i).getId() + '	' + students.get(i).getName() + '	' + students.get(i).getPhone() + '	' + students.get(i).getQq() + '	' + students.get(i).getEmail() + '	' + students.get(i).getAddress() + '	' + students.get(i).getContact() + '	' + students.get(i).getCphone());
            }
        }
    }
    
    // 按学号排序
    public void sortByid() {
        Collections.sort(students, new Comparator<Student>() {
            public int compare(Student s1, Student s2) {
                return s1.getId().compareTo(s2.getId());
            }
        });
    }
    
    // 按姓名排序
    public void sortByName() {
        Collections.sort(students, new Comparator<Student>() {
            public int compare(Student s1, Student s2) {
                return s1.getName().compareTo(s2.getName());
            }
        });
    }
    
    // 保存学生信息到文件
    public void saveToFile(String fileName) {
        try {
            FileWriter fw = new FileWriter(fileName);
            for (int i = 0; i < students.size(); i++) {
                fw.write(students.get(i).getId() + '	' + students.get(i).getName() + '	' + students.get(i).getPhone() + '	' + students.get(i).getQq() + '	' + students.get(i).getEmail() + '	' + students.get(i).getAddress() + '	' + students.get(i).getContact() + '	' + students.get(i).getCphone() + '\n');
            }
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    // 从文件中读取学生信息
    public void readFromFile(String fileName) {
        try {
            FileReader fr = new FileReader(fileName);
            BufferedReader br = new BufferedReader(fr);
            String line;
            while ((line = br.readLine()) != null) {
                String[] fields = line.split('	');
                Student student = new Student(fields[0], fields[1], fields[2], fields[3], fields[4], fields[5], fields[6], fields[7]);
                students.add(student);
            }
            br.close();
            fr.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

public class Main {
    public static void main(String[] args) {
        AddressBook addressBook = new AddressBook();
        Scanner scanner = new Scanner(System.in);
        System.out.println('学生通讯录管理系统');
        System.out.println('1.添加学生信息');
        System.out.println('2.显示所有学生信息');
        System.out.println('3.修改学生信息');
        System.out.println('4.删除学生信息');
        System.out.println('5.查询学生信息');
        System.out.println('6.按学号排序');
        System.out.println('7.按姓名排序');
        System.out.println('8.保存学生信息到文件');
        System.out.println('9.从文件中读取学生信息');
        System.out.println('0.退出系统');
        while (true) {
            System.out.print('请输入操作代码:');
            int code = scanner.nextInt();
            if (code == 0) {
                break;
            }
            switch (code) {
                case 1:
                    System.out.print('请输入学号:');
                    String id = scanner.next();
                    System.out.print('请输入姓名:');
                    String name = scanner.next();
                    System.out.print('请输入手机:');
                    String phone = scanner.next();
                    System.out.print('请输入QQ:');
                    String qq = scanner.next();
                    System.out.print('请输入EMAIL:');
                    String email = scanner.next();
                    System.out.print('请输入家庭住址:');
                    String address = scanner.next();
                    System.out.print('请输入家庭联系人:');
                    String contact = scanner.next();
                    System.out.print('请输入家庭电话:');
                    String cphone = scanner.next();
                    Student student = new Student(id, name, phone, qq, email, address, contact, cphone);
                    addressBook.addStudent(student);
                    System.out.println('添加成功!');
                    break;
                case 2:
                    addressBook.showStudents();
                    break;
                case 3:
                    System.out.print('请输入学号或姓名:');
                    String idOrName = scanner.next();
                    System.out.print('请输入手机:');
                    String newPhone = scanner.next();
                    System.out.print('请输入QQ:');
                    String newQq = scanner.next();
                    System.out.print('请输入EMAIL:');
                    String newEmail = scanner.next();
                    System.out.print('请输入家庭住址:');
                    String newAddress = scanner.next();
                    System.out.print('请输入家庭联系人:');
                    String newContact = scanner.next();
                    System.out.print('请输入家庭电话:');
                    String newCphone = scanner.next();
                    addressBook.updateStudent(idOrName, '', newPhone, newQq, newEmail, newAddress, newContact, newCphone);
                    System.out.println('修改成功!');
                    break;
                case 4:
                    System.out.print('请输入学号或姓名:');
                    String idOrName2 = scanner.next();
                    addressBook.deleteStudent(idOrName2, '');
                    System.out.println('删除成功!');
                    break;
                case 5:
                    System.out.print('请输入学号或姓名:');
                    String idOrName3 = scanner.next();
                    addressBook.searchStudent(idOrName3, idOrName3);
                    break;
                case 6:
                    addressBook.sortByid();
                    System.out.println('按学号排序成功!');
                    break;
                case 7:
                    addressBook.sortByName();
                    System.out.println('按姓名排序成功!');
                    break;
                case 8:
                    System.out.print('请输入文件名:');
                    String fileName1 = scanner.next();
                    addressBook.saveToFile(fileName1);
                    System.out.println('保存成功!');
                    break;
                case 9:
                    System.out.print('请输入文件名:');
                    String fileName2 = scanner.next();
                    addressBook.readFromFile(fileName2);
                    System.out.println('读取成功!');
                    break;
                default:
                    System.out.println('输入有误,请重新输入!');
                    break;
            }
        }
    }
}

使用方法

  1. 将代码保存为 Main.java 文件。
  2. 使用 Java 编译器编译代码:javac Main.java
  3. 运行程序:java Main

总结

本教程提供了一个简单易懂的 Java 学生通讯录管理系统的代码实现。您可以根据自己的需求修改代码,例如添加更多的功能或属性。希望本教程能帮助您学习 Java 并掌握基本的编程技巧。

Java 学生通讯录管理系统:简单易懂的代码实现

原文地址: https://www.cveoy.top/t/topic/nE8p 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录