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实现)—— 分治算法
分治算法 分治算法的设计模式 基本思想 把复杂问题分解成若干互相独立容易求解的子问题 经典问题 二分搜索 大整数乘法 棋盘覆盖 合并排序 快速排序 线性时间选择 最接近点对问题 循环赛日程表 汉诺塔 ...
- 工具-Redis-介绍(99.6.1)
@ 目录 1.nosql介绍 2.Redis特性 3.redis应用场景 关于作者 1.nosql介绍 not only sql,不支持SQL语法.存储结构跟传统关系型数据库中的那种关系表完全不同,n ...
- pytorch实现 | Deformable Convolutional Networks | CVPR | 2017
文章转载自微信公众号:[机器学习炼丹术],请支持原创. 这一篇文章,来讲解一下可变卷积的代码实现逻辑和可视化效果.全部基于python,没有C++.大部分代码来自:https://github.com ...
- kali linux没有ip解决办法
故障情况 今天打开kali202001复测环境,发现自启动ssh竟然连不上. 上到kali主机使用命令:ifconfig 查看发现没有ethh0网卡显示,看来是kal获取不到ip地址导致的 继续查看发 ...
- R平方回归平方推导
- 企业运维案例:xxx is not in the sudoers file.This incident will be reported” 错误解决方法
CentOS6系统下,普通用户使用sudo执行命令时报错: xxx is not in the sudoers file.This incident will be reported" 解决 ...
- JVM笔记【1】-- 运行时数据区
目录 (一)java内存区域管理 1.1 程序计数器 1.2 虚拟机栈 1.3 本地方法栈 1.4 java堆 1.5 方法区 1.5.1 运行时常量池 (二)直接内存 (一)java内存区域管理 C ...
- docker 使用教程1
1.概念理解 镜像:docker镜像就像一个个模具. 容器:docker容器就是模具翻模出来的东西. 仓库:仓库就是存放模具的地方. 下面通过运行 hello-world 来理解 docker镜像运行 ...
- java数组之binarySearch查找
/** * 1.如果找到目标对象则返回<code>[公式:-插入点-1]</code> * 插入点:第一个大与查找对象的元素在数组中的位置,如果数组中的所有元素都小于要查找的对 ...
- body-parser 源码分析
body-parser 源码分析 预备知识:熟悉 express 的中间件逻辑 阅读事件:30min 1. body-parser 解决什么问题 在 node http 模块中,您只能通过 data ...