当前位置: 首页 > news >正文

Java 复习笔记 - 学生管理系统篇

文章目录

  • 学生管理系统
    • 一,需求部分
      • 需求
      • 分析
        • 初始菜单
        • 学生类
        • 添加功能
        • 删除功能
        • 修改功能
        • 查询功能
    • 二,实现部分
      • (一)初始化主界面
      • (二)编写学生类
      • (三)编写添加学生方法
      • (四)编写删除学生方法
      • (五)编写修改学生方法
      • (六)编写查询学生方法
      • (七)整合代码,集成系统


学生管理系统

一,需求部分

需求

采取控制台的方式去书写学生管理系统。

分析

初始菜单

"-------------欢迎进入学生管理系统----------------"
"1:添加学生"
"2:删除学生"
"3:修改学生"
"4:查询学生"
"5:退出"
"请输入您的选择:"

学生类

属性:id、姓名、年龄、家庭住址

添加功能

键盘录入每一个学生信息并添加,需要满足以下要求:

  • id唯一

删除功能

键盘录入要删除的学生id,需要满足以下要求:

  • id存在删除
  • id不存在,需要提示不存在,并回到初始菜单

修改功能

键盘录入要修改的学生id,需要满足以下要求

  • id存在,继续录入其他信息
  • id不存在,需要提示不存在,并回到初始菜单

查询功能

打印所有的学生信息,需要满足以下要求

  • 如果没有学生信息,提示:当前无学生信息,请添加后再查询
  • 如果有学生信息,需要按照以下格式输出。(不用过于纠结对齐的问题)
id		姓名		年龄		家庭住址
2023001	张三		23		 南京
2023002	李四		24		 北京
2023003	王五		25		 广州
2023004	赵六	 	26		 深圳

二,实现部分

(一)初始化主界面

要初始化学生管理系统的主界面,可以按照以下思路进行操作:

  1. 创建一个学生管理系统对象,用于管理学生信息。
  2. 使用一个循环,使主界面一直显示,直到用户选择退出。
  3. 在循环中,打印主界面菜单供用户选择操作。
  4. 根据用户的选择,调用学生管理系统对象的相应方法进行操作。
  5. 根据操作结果,显示相应的反馈信息给用户。

下面是一个示例的代码片段,演示了如何初始化学生管理系统的主界面:

import java.util.Scanner;public class StudentManagementSystem {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int choice = 0;while (choice != 5) {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.print("请输入您的选择: ");choice = scanner.nextInt();switch (choice) {case 1:// 添加学生逻辑break;case 2:// 删除学生逻辑break;case 3:// 修改学生逻辑break;case 4:// 查询学生逻辑break;case 5:System.out.println("感谢使用学生管理系统,再见!");break;default:System.out.println("无效的选择,请重新输入!");break;}System.out.println(); // 输出空行,增加可读性}scanner.close();}
}

在这个示例中,我们首先创建了一个StudentManagementSystem对象system,用于管理学生信息。然后,在一个无限循环中,打印主界面菜单供用户选择操作。根据用户的选择,我们调用相应的学生管理系统方法进行操作。当用户选择退出时,我们使用System.exit(0)结束程序的执行。

(二)编写学生类

学生类所含属性:id、姓名、年龄、家庭住址

要编写学生类,可以按照以下思路进行操作:

  • 定义学生类,设置其属性和方法。
  • 根据需求,确定学生类的属性,id、姓名、年龄、家庭地址。
  • 为每个属性添加相应的访问器(getter)和修改器(setter)方法,用于获取和设置属性的值。

下面是一个示例的学生类代码片段,演示了如何编写学生类:

public class Student {private int id;private String name;private int age;private String address;public Student(int id, String name, int age, String address) {this.id = id;this.name = name;this.age = age;this.address = address;}// Getter and Setter methodspublic 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 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;}
}

(三)编写添加学生方法

public void addStudent() {                                Scanner scanner = new Scanner(System.in);             System.out.println("请输入学生ID:");                       int id = scanner.nextInt();                           scanner.nextLine(); // 消费掉换行符                         System.out.println("请输入学生姓名:");                       String name = scanner.nextLine();                     System.out.println("请输入学生年龄:");                       int age = scanner.nextInt();                          scanner.nextLine(); // 消费掉换行符                         System.out.println("请输入学生家庭住址:");                     String address = scanner.nextLine();                  Student student = new Student(id, name, age, address);students.add(student);                                System.out.println("学生添加成功!");                        
}                                                         

(四)编写删除学生方法

public void deleteStudent() {                Scanner scanner = new Scanner(System.in);System.out.println("请输入要删除的学生ID:");      int id = scanner.nextInt();              boolean found = false;                   for (Student student : students) {       if (student.getId() == id) {         students.remove(student);        found = true;                    System.out.println("学生删除成功!");   break;                           }                                    }                                        if (!found) {                            System.out.println("未找到匹配的学生ID!");   }                                        
}              

(五)编写修改学生方法

public void updateStudent() {                    Scanner scanner = new Scanner(System.in);    System.out.println("请输入要修改的学生ID:");          int id = scanner.nextInt();                  scanner.nextLine(); // 消费掉换行符                boolean found = false;                       for (Student student : students) {           if (student.getId() == id) {             System.out.println("请输入学生姓名:");      String name = scanner.nextLine();    student.setName(name);               System.out.println("请输入学生年龄:");      int age = scanner.nextInt();         scanner.nextLine(); // 消费掉换行符        student.setAge(age);                 System.out.println("请输入学生家庭住址:");    String address = scanner.nextLine(); student.setAddress(address);         found = true;                        System.out.println("学生修改成功!");       break;                               }                                        }                                            if (!found) {                                System.out.println("未找到匹配的学生ID!");       }                                            
}                                                

(六)编写查询学生方法

public void displayStudents() {                                                                                                          if (students.isEmpty()) {                                                                                                            System.out.println("当前无学生信息,请添加后再查询!");                                                                                          } else {                                                                                                                             System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");                                                                                    for (Student student : students) {                                                                                               System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getAge() + "\t\t" + student.getAddress());}                                                                                                                                }                                                                                                                                    
}                                                                                                                                        

(七)整合代码,集成系统

package net.army.java.test;/*** 功能:学生管理系统* 日期:2023年09月02日* 作者:梁辰兴*/
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class StudentManagementSystem {private List<Student> students;public StudentManagementSystem() {students = new ArrayList<>();}public void addStudent() {Scanner scanner = new Scanner(System.in);System.out.println("请输入学生ID:");int id = scanner.nextInt();scanner.nextLine(); // 消费掉换行符System.out.println("请输入学生姓名:");String name = scanner.nextLine();System.out.println("请输入学生年龄:");int age = scanner.nextInt();scanner.nextLine(); // 消费掉换行符System.out.println("请输入学生家庭住址:");String address = scanner.nextLine();Student student = new Student(id, name, age, address);students.add(student);System.out.println("学生添加成功!");}public void deleteStudent() {Scanner scanner = new Scanner(System.in);System.out.println("请输入要删除的学生ID:");int id = scanner.nextInt();boolean found = false;for (Student student : students) {if (student.getId() == id) {students.remove(student);found = true;System.out.println("学生删除成功!");break;}}if (!found) {System.out.println("未找到匹配的学生ID!");}}public void updateStudent() {Scanner scanner = new Scanner(System.in);System.out.println("请输入要修改的学生ID:");int id = scanner.nextInt();scanner.nextLine(); // 消费掉换行符boolean found = false;for (Student student : students) {if (student.getId() == id) {System.out.println("请输入学生姓名:");String name = scanner.nextLine();student.setName(name);System.out.println("请输入学生年龄:");int age = scanner.nextInt();scanner.nextLine(); // 消费掉换行符student.setAge(age);System.out.println("请输入学生家庭住址:");String address = scanner.nextLine();student.setAddress(address);found = true;System.out.println("学生修改成功!");break;}}if (!found) {System.out.println("未找到匹配的学生ID!");}}public void displayStudents() {if (students.isEmpty()) {System.out.println("当前无学生信息,请添加后再查询!");} else {System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");for (Student student : students) {System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getAge() + "\t\t" + student.getAddress());}}}public static void main(String[] args) {StudentManagementSystem system = new StudentManagementSystem();// 菜单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("请输入选择:");Scanner scanner = new Scanner(System.in);int choice = scanner.nextInt();switch (choice) {case 1:system.addStudent();break;case 2:system.deleteStudent();break;case 3:system.updateStudent();break;case 4:system.displayStudents();break;case 5:System.out.println("谢谢使用,再见!");System.exit(0);default:System.out.println("无效的选择,请重新输入!");break;}}}
}

运行效果:
在这里插入图片描述

http://www.lryc.cn/news/153060.html

相关文章:

  • 【UIPickerView-UIDatePicker-应用程序对象 Objective-C语言】
  • 仿京东 项目笔记1
  • huggingface transformers库中LlamaForCausalLM
  • 04-过滤器和拦截器有什么区别?【Java面试题总结】
  • 如何用selenium或pyppeteer来启动多个AdsPower窗口
  • 京东店铺所有商品API接口数据
  • stm32之27.iic协议oled显示
  • paddle 1-高级
  • ChatGPT帮助高职院校学生实现个性化自适应学习与对话式学习
  • 如何通过python写接口自动化脚本对一个需要调用第三方支付的报名流程进行测试?
  • 将OSGB格式数据转换为3d tiles的格式
  • 【易售小程序项目】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】
  • 素数求原根
  • 【Apollo学习笔记】——规划模块TASK之PATH_ASSESSMENT_DECIDER
  • 09 mysql fetchSize 所影响的服务器和客户端的交互
  • DevEco Studio 配置
  • Nginx自动探活后端服务状态自动转发,nginx_upstream_check_module的使用
  • CSS 一个好玩的卡片“开卡效果”
  • lintcode 667 · 最长的回文序列【中等 递归到动态规划】
  • oracle sql语言模糊查询
  • 【Ubuntu】解决ubuntu虚拟机和物理机之间复制粘贴问题(无需桌面工具)
  • 解决ubuntu文件系统变成只读的方法
  • 高数刷题笔记
  • c++入门一
  • 2023年项目进度管理平台排行榜
  • 【设计模式】面向对象设计八大原则
  • python数分实战探索霍尔特法之销售预测python代码实现以及预测图绘制
  • java线程状态
  • 编译问题:error: ‘printf’ was not declared in this scope
  • 改变C++中私有变量成员的值