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         // 	其实就是tab键的位置
123         System.out.println("学号	姓名	年龄	居住地");
124         // 将集合中的数据取出按照对应的格式显示学生信息,年龄显示补充“岁”
125         for (int i = 0; i < array.size(); i++) {
126             Student s = array.get(i);
127             System.out.println(s.getSid() + "	" + s.getName() + "	" + s.getAge() + "岁" + "	" + 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 }
原文地址:https://www.cnblogs.com/marvintester/p/14106486.html