同学录系统
实体类
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("感谢使用");
}
}
####运行截图