Java 学生通讯录管理系统:简单易懂的代码实现
Java 学生通讯录管理系统:简单易懂的代码实现
本教程将带您一步步使用 Java 创建一个学生通讯录管理系统。系统功能包括添加、显示、修改、删除、查询、排序和保存学生信息。代码简洁易懂,适合初学者学习。
设计要求
该设计要求实现本班同学的通讯录管理系统,保存的信息包括:学号、姓名、手机、QQ、EMAIL、家庭住址、家庭联系人和家庭电话等,具体操作包括信息的添加、查找、删除、排序、显示、修改和保存等。
系统功能
- 信息录入: 即添加通讯记录。
- 信息显示: 将所有的同学通讯信息按顺序显示(可以只显示其中的一部分列)。
- 信息修改: 对已经输入信息进行修改(学号姓名不能修改)。
- 信息删除: 删除某个记录。
- 查询: 可按照学号或者姓名查询车次信息。
- 信息保存: 将通讯信息保存到文件。
实现思路
- 定义一个学生类
Student,包含学号、姓名、手机、QQ、EMAIL、家庭住址、家庭联系人和家庭电话等属性,并提供相应的get和set方法。 - 定义一个通讯录类
AddressBook,用于管理所有学生的信息。可以使用ArrayList来存储所有学生信息。 - 实现信息录入功能,即通过用户输入添加学生信息,并将其添加到通讯录中。
- 实现信息显示功能,即按顺序将所有学生的信息显示出来。
- 实现信息修改功能,即根据用户输入的学号或姓名查找相应的学生信息,然后修改其它属性。
- 实现信息删除功能,即根据用户输入的学号或姓名查找相应的学生信息,然后将其从通讯录中删除。
- 实现查询功能,即根据用户输入的学号或姓名查找相应的学生信息,并将其显示出来。
- 实现信息保存功能,即将所有学生的信息保存到文件中。
代码实现
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;
}
}
}
}
使用方法
- 将代码保存为
Main.java文件。 - 使用 Java 编译器编译代码:
javac Main.java - 运行程序:
java Main
总结
本教程提供了一个简单易懂的 Java 学生通讯录管理系统的代码实现。您可以根据自己的需求修改代码,例如添加更多的功能或属性。希望本教程能帮助您学习 Java 并掌握基本的编程技巧。
原文地址: https://www.cveoy.top/t/topic/nE8p 著作权归作者所有。请勿转载和采集!