实现:学生管理系统,实现学生信息的添加、修改、查询和删除功能

涉及:集合的基础知识(集合遍历,值得获取与替换,set/get方法)

代码如下:

Student文件

 1 package Demo_1208;
2
3 public class Student {
4 private String sid;
5 private String name;
6 private String age;
7 private String address;
8
9 public Student() {
10 }
11
12 public Student(String sid, String name, String age, String address) {
13 this.sid = sid;
14 this.name = name;
15 this.age = age;
16 this.address = address;
17 }
18
19 public String getSid() {
20 return sid;
21 }
22
23 public void setSid(String sid) {
24 this.sid = sid;
25 }
26
27 public String getName() {
28 return name;
29 }
30
31 public void setName(String name) {
32 this.name = name;
33 }
34
35 public String getAge() {
36 return age;
37 }
38
39 public void setAge(String age) {
40 this.age = age;
41 }
42
43 public String getAddress() {
44 return address;
45 }
46
47 public void setAddress(String address) {
48 this.address = address;
49 }
50 }

StudentManager文件

  1 package Demo_1208;
2
3 import java.util.ArrayList;
4 import java.util.Scanner;
5
6 public class StudentManager {
7 public static void main(String[] args) {
8 // 创建集合对象,用于存储学生数据
9 ArrayList<Student> array = new ArrayList<Student>();
10 while (true) {
11 System.out.println("--------------欢迎来到学生管理系统--------------");
12 System.out.println("1 添加学生");
13 System.out.println("2 删除学生");
14 System.out.println("3 修改学生");
15 System.out.println("4 查看所有学生");
16 System.out.println("5 退出");
17 System.out.println("请输入你的选择:");
18
19 Scanner sc = new Scanner(System.in);
20 String line = sc.nextLine();
21
22 // 用switch语句实现操作选择
23 switch (line) {
24 case "1":
25 addStudent(array);
26 // System.out.println("添加学生");
27 break;
28 case "2":
29 deleteStudent(array);
30 // System.out.println("删除学生");
31 break;
32 case "3":
33 updateStudent(array);
34 // System.out.println("修改学生");
35 break;
36 case "4":
37 searchStudent(array);
38 // System.out.println("查看所有学生");
39 break;
40 case "5":
41 System.out.println("退出");
42 System.exit(0);
43 }
44 }
45 }
46
47 /*
48 // 定义添加学生的方法
49 public static void addStudent(ArrayList<Student> array) {
50 Scanner sc = new Scanner(System.in);
51
52 System.out.println("请输入学生学号:");
53 String sid = sc.nextLine();
54 System.out.println("请输入学生姓名:");
55 String name = sc.nextLine();
56 System.out.println("请输入学生年龄:");
57 String age = sc.nextLine();
58 System.out.println("请输入学生居住地:");
59 String address = sc.nextLine();
60
61 // 创建学生对象,把键盘录入的数据复制给学生对象的成员变量
62 Student s = new Student();
63 s.setSid(sid);
64 s.setName(name);
65 s.setAge(age);
66 s.setAddress(address);
67
68 // 将学生对象添加到集合中
69 array.add(s);
70
71 // 给出添加成功提示
72 System.out.println("添加学生成功");
73
74 }
75 */
76 // 定义添加学生的方法
77 public static void addStudent(ArrayList<Student> array) {
78 Scanner sc = new Scanner(System.in);
79 String sid;
80
81 while (true) {
82 System.out.println("请输入学生学号:");
83 sid = sc.nextLine();
84 boolean flag = isUsed(array, sid);
85 if (flag) {
86 System.out.println("你输入的学号已被使用,请重新输入");
87 } else {
88 break;
89 }
90 }
91
92 System.out.println("请输入学生姓名:");
93 String name = sc.nextLine();
94 System.out.println("请输入学生年龄:");
95 String age = sc.nextLine();
96 System.out.println("请输入学生居住地:");
97 String address = sc.nextLine();
98
99 // 创建学生对象,把键盘录入的数据复制给学生对象的成员变量
100 Student s = new Student();
101 s.setSid(sid);
102 s.setName(name);
103 s.setAge(age);
104 s.setAddress(address);
105
106 // 将学生对象添加到集合中
107 array.add(s);
108
109 // 给出添加成功提示
110 System.out.println("添加学生成功");
111
112 }
113
114 // 定义查询所有学生的方法
115 public static void searchStudent(ArrayList<Student> array) {
116 if (array.size() == 0) {
117 System.out.println("无信息,请先添加信息在查询");
118 // 集合中无信息时直接跳出程序,不继续进行
119 return;
120 }
121 // 显示表头信息
122 // \t其实就是tab键的位置
123 System.out.println("学号\t姓名\t年龄\t居住地");
124 // 将集合中的数据取出按照对应的格式显示学生信息,年龄显示补充“岁”
125 for (int i = 0; i < array.size(); i++) {
126 Student s = array.get(i);
127 System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁" + "\t" + s.getAddress());
128 }
129
130 }
131
132 // 定义删除学生的方法
133 public static void deleteStudent(ArrayList<Student> array) {
134 // 给出删除学生的依据提示
135 System.out.println("请输入你要删除的学生的学号:");
136 Scanner sc = new Scanner(System.in);
137 String id = sc.nextLine();
138
139 int index = -1;
140 for (int i = 0; i < array.size(); i++) {
141 Student s = array.get(i);
142 if (s.getSid().equals(id)) {
143 // array.remove(i);
144 index = i;
145 break;
146 }
147 }
148 if (index == -1) {
149 System.out.println("该信息不存在,请重新输入:");
150 } else {
151 array.remove(index);
152 System.out.println("删除学生成功!");
153 }
154
155 }
156
157 // 定义修改学生信息的方法
158 public static void updateStudent(ArrayList<Student> array) {
159 // 键盘录入要修改的学生学号,显示提示信息
160 Scanner sc = new Scanner(System.in);
161
162 System.out.println("请输入你要修改的学生学号:");
163 String old_id = sc.nextLine();
164
165 // 键盘录入修改后的学生信息
166 System.out.println("请输入学生新姓名:");
167 String name = sc.nextLine();
168 System.out.println("请输入学生新年龄:");
169 String age = sc.nextLine();
170 System.out.println("请输入学生新居住地:");
171 String address = sc.nextLine();
172
173 // 创建学生对象
174 Student s = new Student();
175 s.setSid(old_id);
176 s.setName(name);
177 s.setAge(age);
178 s.setAddress(address);
179
180 // 遍历集合修改对应的学生信息
181 for (int i = 0; i < array.size(); i++) {
182 Student student = array.get(i);
183 if (student.getSid().equals(old_id)) {
184 array.set(i, s);
185 }
186 }
187 System.out.println("学生信息修改成功!");
188 }
189
190 // 定义一个方法,判断学号是否被使用
191 public static boolean isUsed(ArrayList<Student> array, String sid) {
192 // 如果与集合中的某一个学生学号相同,返回true;如果都不相同,返回false
193 boolean flag = false;
194 for (int i = 0; i < array.size(); i++) {
195 Student s = array.get(i);
196 if (s.getSid().equals(sid)) {
197 flag = true;
198 break;
199 }
200 }
201 return flag;
202 }
203 }

最新文章

  1. [每日Linux]Linux下xsell和xftp的使用
  2. [LeetCode] Regular Expression Matching 正则表达式匹配
  3. 1627. Join
  4. 《Linux命令行与shell脚本编程大全》 第一、二章 学习笔记
  5. 差分信号(Differential Signal)
  6. Unity3d 通过协程来实现文件的全部加载后执行
  7. [每天一个Linux小技巧] gdb 下一次运行多个命令
  8. JavaScript DOM编程艺术-学习笔记(第五章、第六章)
  9. NSBundle、UIImageView和UIButton对比、Xcode文档安装路径、Xcode模拟器安装路径
  10. vue项目构建与实战
  11. 【NOIP2016提高组】 Day1 T3 换教室
  12. Collections -- OrderedDict类
  13. ios 拉伸背景图中间图片不变四周拉伸
  14. scrapy 的log功能
  15. JAVA中的ZoneId常用值备注
  16. 读入挂(IO)
  17. C++雾中风景番外篇:理解C++的复杂声明与声明解析
  18. TreeView添加图片
  19. de4dot破解脱壳新版MaxtoCode源数组长度不足解决办法
  20. Oracle EBS标准错误信息如何追踪 (Debug)

热门文章

  1. 【Electron Playground 系列】文件下载篇
  2. 手写开源ORM框架介绍
  3. java-02-基础语法
  4. springMVC基础讲解
  5. CMake将生成的可执行文件保存到其他目录
  6. rocketMq broker.conf全部参数解释
  7. MGRE综合实验
  8. VS2019开启调试,测试图片上传的时候,一点到图片上传,直接导致VS调试崩掉,返回 程序“[14764] iisexpress.exe”已退出,返回值为 -1 (0xffffffff)。 是什么原因导致的?
  9. .NET Core AWS S3云存储
  10. Git提交错了不用慌,这三招帮你修改记录