Java自学笔记之学生管理系统
实现:学生管理系统,实现学生信息的添加、修改、查询和删除功能
涉及:集合的基础知识(集合遍历,值得获取与替换,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自学笔记之学生管理系统的更多相关文章
- JAVA自学笔记06
JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...
- JAVA自学笔记07
JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...
- JAVA自学笔记11
JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...
- JAVA自学笔记15
JAVA自学笔记15 @例题1:共有5个学生,请把五个学生的信息存储到数组中,并遍历数组,并获取每个学生的信息 Students[] students=new Student[5]; Student ...
- JAVA自学笔记18
JAVA自学笔记18 1.Map接口: 1)功能: 2) Map<String,String>m=new HashMap<String,String>(); //添加元素,元素 ...
- JAVA自学笔记17
JAVA自学笔记17 1.Map接口 1)概述 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值.可以存储键值对的元素 2)与Collection接口的不同: ①Map是双列的 ...
- JAVA自学笔记21
JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...
- JAVA自学笔记24
JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()/ ...
- JAVA自学笔记09
JAVA自学笔记09 1.子类的方法会把父类的同名方法覆盖(重写) 2.final: 1)可修饰类.方法.变量 2)修饰类时:此时该类变为最终类,它将无法成为父类而被继承 3)修饰方法时:该方法将无法 ...
随机推荐
- Java中字符串替换方法
replaceAll方法 public String replaceAll(String regex, String replacement) replace方法 public String repl ...
- Linux-centos-64bit安装MySQL
1.下载mysql安装包到 /usr/local/soft [root@VM_0_9_centos ~]# cd /usr/local/soft[root@VM_0_9_centos soft]# w ...
- OC 大数组分割成由小数组重新组合的新数组
NSLog(@"++++%@",[self seprateBigArrBySize:3 BigArr:@[@"1",@"2",@" ...
- HashMap知识点总结,这一篇算是总结的不错的了,建议看看!
HashMap存储结构 内部包含了⼀个 Entry 类型的数组 Entry[] table.transient Entry[] table;(transient:表示不能被序列化)Entry类型存储着 ...
- 本地缓存高性能之王Caffeine
前言 随着互联网的高速发展,市面上也出现了越来越多的网站和app.我们判断一个软件是否好用,用户体验就是一个重要的衡量标准.比如说我们经常用的微信,打开一个页面要十几秒,发个语音要几分钟对方才能收到. ...
- Java基础之String中equals,声明方式,等大总结
无论你是一个编程新手还是老手,提到String你肯定感觉特别熟悉,因为String类我们在学习java基础的时候就已经学过,但是String类型有我们想象的那么简单吗?其实不然,String类型的知识 ...
- 访问需要HTTP Basic Authentication认证的资源的c#的实现
string username="username"; string password="password"; //注意这里的格式哦,为 "usern ...
- chrome实现网页高清截屏(F12、shift+ctrl+p、capture)
打开需要载屏的网页,在键盘上按下F12,出现以下界面 上图圈出的部分有可能会出现在浏览器下方,这并没有关系.此时按下 Ctrl + Shift + P(Mac 为 ⌘Command +⇧Shift + ...
- 各开源协议BSD、Apache Licence 2.0、GPL
以下是上述协议的简单介绍:BSD开源协议BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以"为所欲为",可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有 ...
- C语言实现的多线程定时器
目录 1. 大致功能介绍 2. API库介绍 3. 一个例子 4. 库文件源码 注意事项 1. 大致功能介绍 实现任务列表,定时器会间隔一段时间遍历列表发现要执行的任务 任务列表中的所有任务并行执行 ...