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

涉及:集合的基础知识(集合遍历,值得获取与替换,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 }

Java自学笔记之学生管理系统的更多相关文章

  1. JAVA自学笔记06

    JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...

  2. JAVA自学笔记07

    JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...

  3. JAVA自学笔记11

    JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...

  4. JAVA自学笔记15

    JAVA自学笔记15 @例题1:共有5个学生,请把五个学生的信息存储到数组中,并遍历数组,并获取每个学生的信息 Students[] students=new Student[5]; Student ...

  5. JAVA自学笔记18

    JAVA自学笔记18 1.Map接口: 1)功能: 2) Map<String,String>m=new HashMap<String,String>(); //添加元素,元素 ...

  6. JAVA自学笔记17

    JAVA自学笔记17 1.Map接口 1)概述 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值.可以存储键值对的元素 2)与Collection接口的不同: ①Map是双列的 ...

  7. JAVA自学笔记21

    JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...

  8. JAVA自学笔记24

    JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()/ ...

  9. JAVA自学笔记09

    JAVA自学笔记09 1.子类的方法会把父类的同名方法覆盖(重写) 2.final: 1)可修饰类.方法.变量 2)修饰类时:此时该类变为最终类,它将无法成为父类而被继承 3)修饰方法时:该方法将无法 ...

随机推荐

  1. HDU4388-Stone Game II-Nim变形

    http://acm.hdu.edu.cn/showproblem.php?pid=4388 Nim变形,对一个\(n\)个石子的堆,每次取\(k(0<k<n)\)个(注意不能全取光),同 ...

  2. Spark性能调优篇六之调节数据本地化等待时长

    数据本地化等待时长调节的优化 在项目该如何使用? 通过 spark.locality.wait 参数进行设置,默认为3s,6s,10s. 项目中代码展示: new SparkConf().set(&q ...

  3. 如何通过台服流出的服务端自己架设DNF

    为达到更好的浏览效果,请点击原文:https://wuter.cn/513.html/ 写在最前 其实我也是dnf忠实粉丝,大概在四年级也就是2008年刚刚开始公测的时候就入坑了,一直持续到高中,目睹 ...

  4. HashMap知识点总结,这一篇算是总结的不错的了,建议看看!

    HashMap存储结构 内部包含了⼀个 Entry 类型的数组 Entry[] table.transient Entry[] table;(transient:表示不能被序列化)Entry类型存储着 ...

  5. 认识 YUV

    什么是 YUV YUV是一种颜色编码格式,可以说YUV流媒体是原始流数据,大部分的视频领域都在使用.与RGB类似,但RGB更多的用于渲染时,而YUV则用在数据传输,因为它占用更少的频宽.当然,实时通讯 ...

  6. 磁盘IO工作机制

    磁盘IO工作机制 ref: <深入分析java web 技术内幕> by:许令波 几种访问文件的方式 文件读取和写入的 IO 操作都是调用操作系统提供的接口,因为磁盘设备是由操作系统管理的 ...

  7. 云服务器部署LAMP

    一.安装Apache 1.安装httpd服务: sudo yum install httpd 2.开启服务: sudo systemctl start httpd 3.访问服务器IP成功显示Testi ...

  8. Error:java: JDK isn't specified for module 'xxx'异常的解决方法

    问题描述 博主启动的项目的时候出现了一个这样的异常 解决方法 打开左上角这个Project Structure

  9. ubuntu系统64位dnw

    /* dnw2 linux main file. This depends on libusb. * * * * Author: Fox <hulifox008@163.com> * * ...

  10. ServletContext的作用

    一个项目只有一个ServletContext对象,一个tomcat有多个项目 作用:在多核Servlet中来获取这个唯一的对象,使用ta给多个Servlet传递数据. 在Tomcat启动时创建,在To ...