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)修饰方法时:该方法将无法 ...
随机推荐
- css 11-CSS3属性详解(一)
11-CSS3属性详解(一) #前言 我们在上一篇文章中学习了CSS3的选择器,本文来学一下CSS3的一些属性. 本文主要内容: 文本 盒模型中的 box-sizing 属性 处理兼容性问题:私有前缀 ...
- Flink批处理读取Hive写入MySql
把hive 表stu77 的数据写入 mysql 表test_stu 中. 中间可以加自己的逻辑. import org.apache.flink.table.api.EnvironmentSetti ...
- Spring Data JPA 的 Specifications动态查询
主要的结构: 有时我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA中可以通过JpaSpecificationExecutor接口查询. ...
- Unity使用小剧场—创建的按钮On Click()只有MonoScript怎么办
前言: 在游戏开发过程中遇到了一些小问题,以后都放到小剧场里,今天介绍怎么给按钮赋予方法并解决标题所述问题. 步骤: 1. 不管怎么说,先新建一个按钮 右键场景-[UI]-[Button] 这里会自动 ...
- js中点回车enter触发事件&layui弹窗按enter键不停弹窗问题的解决&js实现鼠标焦点自动落到文本框(layui)
js中回车触发事件 一. document.onkeydown = function (e) { // 回车提交表单 // 兼容FF和IE和Opera var theEvent = window.e ...
- [EF] - Code First处理Clustered Index
Clustered Index <=>集群索引: http://msdn.microsoft.com/en-us/library/ms177443.aspx 由于其特殊性,使得每个tabl ...
- Redis基础篇(二)高性能IO模型
我们经常听到说Redis是单线程的,也会有疑问:为什么单线程的Redis能那么快? 这里要明白一点:Redis是单线程,主要是指Redis的网络IO和键值对读写是由一个线程来完成的,这也是Redis对 ...
- 详解Vue中的插槽
作者: 小土豆 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/2436173500265335 什么是插槽 在日常的项目 ...
- MySQL全面瓦解15:视图
概述 很多时候,我们会有一些很复杂的数据库操作,比如整合用户的行为数据,那这些数据可能包含用户的餐饮.生活日用.充值消费.交通出行.通讯物流.交通出行.医疗保健.住房物业.运动健康... 基于此,我们 ...
- E-BOOK-TINY6410-LCD的使用
电子书需要通过屏幕显示出来,首先写了LCD模块.代码上传到了 github https://github.com/qq2216691777/E-book 本次完善了lcd模块的程序.可以适用在其他地方 ...