mvc分层开发实现简易学生管理系统,实现用户的登录注册,学生的增删改查,页面简单,写出完整代码

时间: 2024-03-16 14:46:35 浏览: 17
好的,我可以提供一个基于Java的MVC分层开发实现简易学生管理系统的示例代码,包括用户的登录注册和学生的增删改查功能。请注意,这只是一个简单的示例,实际项目中需要更完整的代码和更多的功能。 1. 创建MVC的三个层次(Model、View和Controller): Student.java(Model) ```java public class Student { private int id; private String name; private int age; private String gender; private String major; public Student(int id, String name, int age, String gender, String major) { this.id = id; this.name = name; this.age = age; this.gender = gender; this.major = major; } // Getters and setters // ... } ``` StudentDAO.java(Model) ```java public class StudentDAO { private List<Student> students = new ArrayList<Student>(); public void addStudent(Student student) { students.add(student); } public void deleteStudent(int id) { for (Student student : students) { if (student.getId() == id) { students.remove(student); break; } } } public void updateStudent(Student student) { for (Student s : students) { if (s.getId() == student.getId()) { s.setName(student.getName()); s.setAge(student.getAge()); s.setGender(student.getGender()); s.setMajor(student.getMajor()); break; } } } public Student getStudentById(int id) { for (Student student : students) { if (student.getId() == id) { return student; } } return null; } public List<Student> getAllStudents() { return students; } } ``` LoginView.java(View) ```java public class LoginView { private Scanner scanner; public LoginView() { scanner = new Scanner(System.in); } public String getUsername() { System.out.print("Enter username: "); return scanner.nextLine(); } public String getPassword() { System.out.print("Enter password: "); return scanner.nextLine(); } public void showLoginSuccess() { System.out.println("Login success!"); } public void showLoginFail() { System.out.println("Login fail!"); } public void showRegisterSuccess() { System.out.println("Register success!"); } public void showRegisterFail() { System.out.println("Register fail!"); } } ``` StudentView.java(View) ```java public class StudentView { private Scanner scanner; public StudentView() { scanner = new Scanner(System.in); } public Student getStudentInfo() { System.out.print("Enter student id: "); int id = scanner.nextInt(); scanner.nextLine(); System.out.print("Enter student name: "); String name = scanner.nextLine(); System.out.print("Enter student age: "); int age = scanner.nextInt(); scanner.nextLine(); System.out.print("Enter student gender: "); String gender = scanner.nextLine(); System.out.print("Enter student major: "); String major = scanner.nextLine(); return new Student(id, name, age, gender, major); } public void showAllStudents(List<Student> students) { System.out.println("All students:"); for (Student student : students) { System.out.println(student.getId() + " " + student.getName() + " " + student.getAge() + " " + student.getGender() + " " + student.getMajor()); } } public void showStudent(Student student) { System.out.println("Student info:"); System.out.println(student.getId() + " " + student.getName() + " " + student.getAge() + " " + student.getGender() + " " + student.getMajor()); } public void showAddSuccess() { System.out.println("Add student success!"); } public void showAddFail() { System.out.println("Add student fail!"); } public void showDeleteSuccess() { System.out.println("Delete student success!"); } public void showDeleteFail() { System.out.println("Delete student fail!"); } public void showUpdateSuccess() { System.out.println("Update student success!"); } public void showUpdateFail() { System.out.println("Update student fail!"); } } ``` LoginController.java(Controller) ```java public class LoginController { private LoginView loginView; private UserDAO userDAO; public LoginController(LoginView loginView, UserDAO userDAO) { this.loginView = loginView; this.userDAO = userDAO; } public void login() { String username = loginView.getUsername(); String password = loginView.getPassword(); if (userDAO.checkUser(username, password)) { loginView.showLoginSuccess(); } else { loginView.showLoginFail(); } } public void register() { String username = loginView.getUsername(); String password = loginView.getPassword(); if (userDAO.addUser(username, password)) { loginView.showRegisterSuccess(); } else { loginView.showRegisterFail(); } } } ``` StudentController.java(Controller) ```java public class StudentController { private StudentView studentView; private StudentDAO studentDAO; public StudentController(StudentView studentView, StudentDAO studentDAO) { this.studentView = studentView; this.studentDAO = studentDAO; } public void addStudent() { Student student = studentView.getStudentInfo(); if (studentDAO.addStudent(student)) { studentView.showAddSuccess(); } else { studentView.showAddFail(); } } public void deleteStudent() { System.out.print("Enter student id: "); int id = studentView.scanner.nextInt(); studentView.scanner.nextLine(); if (studentDAO.deleteStudent(id)) { studentView.showDeleteSuccess(); } else { studentView.showDeleteFail(); } } public void updateStudent() { Student student = studentView.getStudentInfo(); if (studentDAO.updateStudent(student)) { studentView.showUpdateSuccess(); } else { studentView.showUpdateFail(); } } public void getStudentById() { System.out.print("Enter student id: "); int id = studentView.scanner.nextInt(); studentView.scanner.nextLine(); Student student = studentDAO.getStudentById(id); if (student != null) { studentView.showStudent(student); } else { System.out.println("Student not found!"); } } public void getAllStudents() { List<Student> students = studentDAO.getAllStudents(); studentView.showAllStudents(students); } } ``` 2. 创建UserDAO.java(Model),用于处理用户登录和注册: ```java public class UserDAO { private Map<String, String> users = new HashMap<String, String>(); public UserDAO() { users.put("admin", "admin"); } public boolean checkUser(String username, String password) { String pw = users.get(username); return pw != null && pw.equals(password); } public boolean addUser(String username, String password) { if (users.containsKey(username)) { return false; } else { users.put(username, password); return true; } } } ``` 3. 创建Main.java作为程序入口: ```java public class Main { public static void main(String[] args) { LoginView loginView = new LoginView(); UserDAO userDAO = new UserDAO(); LoginController loginController = new LoginController(loginView, userDAO); StudentView studentView = new StudentView(); StudentDAO studentDAO = new StudentDAO(); StudentController studentController = new StudentController(studentView, studentDAO); Scanner scanner = new Scanner(System.in); int choice; do { System.out.println("1. Login"); System.out.println("2. Register"); System.out.println("0. Exit"); System.out.print("Enter your choice: "); choice = scanner.nextInt(); scanner.nextLine(); switch (choice) { case 1: loginController.login(); if (userDAO.checkUser("admin", "admin")) { int choice2; do { System.out.println("1. Add student"); System.out.println("2. Delete student"); System.out.println("3. Update student"); System.out.println("4. Get student by id"); System.out.println("5. Get all students"); System.out.println("0. Logout"); System.out.print("Enter your choice: "); choice2 = scanner.nextInt(); scanner.nextLine(); switch (choice2) { case 1: studentController.addStudent(); break; case 2: studentController.deleteStudent(); break; case 3: studentController.updateStudent(); break; case 4: studentController.getStudentById(); break; case 5: studentController.getAllStudents(); break; case 0: break; default: System.out.println("Invalid choice!"); break; } } while (choice2 != 0); } break; case 2: loginController.register(); break; case 0: break; default: System.out.println("Invalid choice!"); break; } } while (choice != 0); } } ```

相关推荐

最新推荐

recommend-type

Spring MVC实现mysql数据库增删改查完整实例

主要介绍了Spring MVC实现mysql数据库增删改查完整实例,从创建一个web项目开始,分享了项目结构以及具体Java代码和前端页面等相关内容,具有一定借鉴价值,需要的朋友可以了解下。
recommend-type

Spring MVC+mybatis实现注册登录功能

主要为大家详细介绍了Spring MVC+mybatis实现注册登录功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

\MVC实现增删改查的小例子

mvc分页\MVC实现增删改查的小例子\MVC实现增删改查的小例子\MVC实现增删改查的小例子
recommend-type

asp.net实现的MVC跨数据库多表联合动态条件查询功能示例

主要介绍了asp.net实现的MVC跨数据库多表联合动态条件查询功能,结合实例形式较为详细分析了asp.net基于MVC架构的跨数据库多表联合查询功能实现技巧,需要的朋友可以参考下
recommend-type

Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar

Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rarJava开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

HSV转为RGB的计算公式

HSV (Hue, Saturation, Value) 和 RGB (Red, Green, Blue) 是两种表示颜色的方式。下面是将 HSV 转换为 RGB 的计算公式: 1. 将 HSV 中的 S 和 V 值除以 100,得到范围在 0~1 之间的值。 2. 计算色相 H 在 RGB 中的值。如果 H 的范围在 0~60 或者 300~360 之间,则 R = V,G = (H/60)×V,B = 0。如果 H 的范围在 60~120 之间,则 R = ((120-H)/60)×V,G = V,B = 0。如果 H 的范围在 120~180 之间,则 R = 0,G = V,B =
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。