阜新市网站建设怎么用网络推广业务
学生管理系统
文章目录
- 学生管理系统
- 1. 系统设计
- 1.1 系统架构
- 1.2 模块划分
- 2. 系统实现
- 2.1 数据模型
- 2.2 接口设计
- 2.3 功能实现
- 2.4 主程序逻辑
- 3. 编码实现
- 3.1 Menu
- 3.2 Student
- 3.3 StudentService-API
- 3.4 StudentAddService
- 3.5 StudentDeleteService
- 3.6 StudentQueryService
- 3.7 StudentUpdateService
- 4. 结果展示
- 4.1 UI界面
- 4.2 添加学生功能
- 4.3 删除学生功能
- 4.4 修改学生功能
- 4.5 查看学生功能
1. 系统设计
1.1 系统架构
本系统采用分层架构设计,主要分为以下三层:
- 数据层:由
Student
类表示,用于存储学生的基本信息(如学号、姓名、年龄、家庭住址等)。 - 服务层:由
StudentService
接口及其实现类组成,负责实现系统的核心功能(如添加、删除、修改和查询学生信息)。 - 表现层:由
Menu
类实现,负责与用户交互并调用服务层的功能。
1.2 模块划分
系统功能被划分为以下四个模块:
- 添加学生模块:负责将学生信息添加到系统中。
- 删除学生模块:根据学号删除指定的学生信息。
-
修改学生模块:根据学号修改指定学生的信息。
-
查询学生模块:显示系统中所有学生的信息。
2. 系统实现
2.1 数据模型
系统的数据模型由Student
类表示,其属性包括:
id
:学生的唯一标识(学号)。name
:学生的姓名。age
:学生的年龄。address
:学生的家庭住址。
Student
类通过封装技术,提供了对属性的访问和修改方法,确保数据的安全性和完整性。
2.2 接口设计
系统通过StudentService
接口定义了核心功能,包括:
addStudent
:添加学生信息。deleteStudent
:删除学生信息。updateStudent
:修改学生信息。queryStudent
:查询学生信息。contains
:判断学号是否已存在。getIndex
:根据学号获取学生在列表中的索引。
2.3 功能实现
每个功能模块通过独立的类实现StudentService
接口,具体如下:
- 添加学生模块(
StudentAddService
):- 通过循环确保学号的唯一性。
- 将学生信息封装为
Student
对象并添加到列表中。
- 删除学生模块(
StudentDeleteService
):- 根据学号查找学生信息并删除。
- 修改学生模块(
StudentUpdateService
):- 根据学号查找学生信息并修改其属性。
- 查询学生模块(
StudentQueryService
):- 遍历学生列表并显示所有学生信息。
2.4 主程序逻辑
StudentSystem
类作为系统的入口,负责与用户交互并调用相应的功能模块。通过Scanner
类获取用户输入,并根据用户选择调用StudentService
接口的实现类,完成相应的功能。
3. 编码实现
3.1 Menu
import java.util.ArrayList;
import java.util.Scanner;public class Menu {public static void main(String[] args) {ArrayList<Student> list = new ArrayList<>();// 使用接口类型声明服务对象StudentService addService = new StudentAddService();StudentService deleteService = new StudentDeleteService();StudentService updateService = new StudentUpdateService();StudentService queryService = new StudentQueryService();Scanner sc = new Scanner(System.in);while (true) {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("请输入您的选择:");String choose = sc.next();switch (choose) {case "1" -> addService.addStudent(list); // 调用添加学生功能case "2" -> deleteService.deleteStudent(list); // 调用删除学生功能case "3" -> updateService.updateStudent(list); // 调用修改学生功能case "4" -> queryService.queryStudent(list); // 调用查询学生功能case "5" -> {System.out.println("退出");System.exit(0);}default -> System.out.println("没有这个选项");}}}
}
3.2 Student
public class Student {private String id;private String name;private int age;private String address;// Getters and Setterspublic 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 int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}
3.3 StudentService-API
import java.util.ArrayList;public interface StudentService {void addStudent(ArrayList<Student> list);void deleteStudent(ArrayList<Student> list);void updateStudent(ArrayList<Student> list);void queryStudent(ArrayList<Student> list);boolean contains(ArrayList<Student> list, String id);int getIndex(ArrayList<Student> list, String id);
}
3.4 StudentAddService
import java.util.ArrayList;
import java.util.Scanner;public class StudentAddService implements StudentService {@Overridepublic void addStudent(ArrayList<Student> list) {Student s = new Student();Scanner sc = new Scanner(System.in);String id;while (true) {System.out.println("请输入学生的id");id = sc.next();if (contains(list, id)) {System.out.println("id已经存在,请重新录入");} else {s.setId(id);break;}}System.out.println("请输入学生的姓名");s.setName(sc.next());System.out.println("请输入学生的年龄");s.setAge(sc.nextInt());System.out.println("请输入学生的家庭住址");s.setAddress(sc.next());list.add(s);System.out.println("学生信息添加成功");}@Overridepublic boolean contains(ArrayList<Student> list, String id) {return getIndex(list, id) >= 0;}@Overridepublic int getIndex(ArrayList<Student> list, String id) {for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {return i;}}return -1;}// 以下方法未使用,但需要实现接口@Overridepublic void deleteStudent(ArrayList<Student> list) {}@Overridepublic void updateStudent(ArrayList<Student> list) {}@Overridepublic void queryStudent(ArrayList<Student> list) {}
}
3.5 StudentDeleteService
import java.util.ArrayList;
import java.util.Scanner;public class StudentDeleteService implements StudentService {@Overridepublic void deleteStudent(ArrayList<Student> list) {Scanner sc = new Scanner(System.in);System.out.println("请输入要删除的id");String id = sc.next();int index = getIndex(list, id);if (index >= 0) {list.remove(index);System.out.println("id为:" + id + "的学生删除成功");} else {System.out.println("id不存在,删除失败");}}@Overridepublic int getIndex(ArrayList<Student> list, String id) {for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {return i;}}return -1;}// 以下方法未使用,但需要实现接口@Overridepublic void addStudent(ArrayList<Student> list) {}@Overridepublic void updateStudent(ArrayList<Student> list) {}@Overridepublic void queryStudent(ArrayList<Student> list) {}@Overridepublic boolean contains(ArrayList<Student> list, String id) {return false;}
}
3.6 StudentQueryService
import java.util.ArrayList;public class StudentQueryService implements StudentService {@Overridepublic void queryStudent(ArrayList<Student> list) {if (list.isEmpty()) {System.out.println("当前无学生信息,请添加后再查询");return;}System.out.println("id\t\t姓名\t年龄\t家庭住址");for (Student stu : list) {System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());}}// 以下方法未使用,但需要实现接口@Overridepublic void addStudent(ArrayList<Student> list) {}@Overridepublic void deleteStudent(ArrayList<Student> list) {}@Overridepublic void updateStudent(ArrayList<Student> list) {}@Overridepublic boolean contains(ArrayList<Student> list, String id) {return false;}@Overridepublic int getIndex(ArrayList<Student> list, String id) {return 0;}
}
3.7 StudentUpdateService
import java.util.ArrayList;
import java.util.Scanner;public class StudentUpdateService implements StudentService {@Overridepublic void updateStudent(ArrayList<Student> list) {Scanner sc = new Scanner(System.in);System.out.println("请输入要修改学生的id");String id = sc.next();int index = getIndex(list, id);if (index == -1) {System.out.println("要修改的id" + id + "不存在,请重新输入");return;}Student stu = list.get(index);System.out.println("请输入要修改的学生姓名");stu.setName(sc.next());System.out.println("请输入要修改的学生年龄");stu.setAge(sc.nextInt());System.out.println("请输入要修改的学生家庭住址");stu.setAddress(sc.next());System.out.println("学生信息修改成功");}@Overridepublic int getIndex(ArrayList<Student> list, String id) {for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {return i;}}return -1;}// 以下方法未使用,但需要实现接口@Overridepublic void addStudent(ArrayList<Student> list) {}@Overridepublic void deleteStudent(ArrayList<Student> list) {}@Overridepublic void queryStudent(ArrayList<Student> list) {}@Overridepublic boolean contains(ArrayList<Student> list, String id) {return false;}
}