148_学生管理系统

 1 package studentManageDemo;
 2 /*
 3     学生类
 4     Alt+Ins 根据自己的需要进行选择
 5  */
 6 public class Student {
 7     //学号
 8     private String sid;
 9     //姓名
10     private String name;
11     //年龄
12     private String age;
13     //居住地
14     private String address;
15 
16     public Student() {
17     }
18 
19     public Student(String sid, String name, String age, String address) {
20         this.sid = sid;
21         this.name = name;
22         this.age = age;
23         this.address = address;
24     }
25 
26     public String getSid() {
27         return sid;
28     }
29 
30     public void setSid(String sid) {
31         this.sid = sid;
32     }
33 
34     public String getName() {
35         return name;
36     }
37 
38     public void setName(String name) {
39         this.name = name;
40     }
41 
42     public String getAge() {
43         return age;
44     }
45 
46     public void setAge(String age) {
47         this.age = age;
48     }
49 
50     public String getAddress() {
51         return address;
52     }
53 
54     public void setAddress(String address) {
55         this.address = address;
56     }
57 }
  1 package studentManageDemo;
  2 
  3 import java.util.ArrayList;
  4 import java.util.Scanner;
  5 
  6 /*
  7     学生管理系统
  8  */
  9 public class StudentManager {
 10     /*
 11         1.用输出语句完成主界面的编写
 12         2.用Scanner实现键盘录入数据
 13         3.用switch语句完成操作的选择
 14         4.用循环完成再次回到主界面
 15      */
 16     public static void main(String[] args) {
 17         //创建集合对象,用于存储学生数据
 18         ArrayList<Student> array = new ArrayList<Student>();
 19         while (true) {
 20             //用输出语句完成主界面的编写
 21             System.out.println("--------欢迎来到学生管理系统-------");
 22             System.out.println("1 添加学生");
 23             System.out.println("2 删除学生");
 24             System.out.println("3 修改学生");
 25             System.out.println("4 查看所有学生");
 26             System.out.println("5 退出");
 27             System.out.println("请输入你的选择");
 28 
 29             //用Scanner实现键盘录入数据
 30             Scanner sc = new Scanner(System.in);
 31             String line = sc.nextLine();
 32 
 33             //用switch语句完成操作的选择
 34             switch (line) {
 35                 case "1":
 36                     addStudent(array);
 37                     //System.out.println("添加学生");
 38                     break;
 39                 case "2":
 40                     //System.out.println("删除学生");
 41                     deleteStudent(array);
 42                     break;
 43                 case "3":
 44                     updateStudent(array);
 45                     //System.out.println("修改学生");
 46                     break;
 47                 case "4":
 48                     findAllStudent(array);
 49                     // System.out.println("查看所有学生");
 50                     break;
 51                 case "5":
 52                     System.out.println("谢谢使用");
 53                     //break;
 54                     System.exit(0); //JVM退出
 55             }
 56         }
 57     }
 58 
 59     //定义一个方法,用于添加学生信息
 60     public static void addStudent(ArrayList<Student> array) {
 61         //键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息
 62         Scanner sc = new Scanner(System.in);
 63 
 64         //为了sid在while循环外面被访问到,我们就把它定义在了循环外
 65         String sid;
 66         //为了让程序能够回到这里,我们使用循环实现
 67         while (true) {
 68             System.out.println("请输入学生学号:");
 69             sid = sc.nextLine();
 70 
 71             boolean flag = isUsed(array, sid);
 72             if (flag) {
 73                 System.out.println("你输入的学号已经被使用,请重新输入");
 74             } else {
 75                 break;
 76             }
 77 
 78         }
 79 
 80 
 81         System.out.println("请输入学生姓名:");
 82         String name = sc.nextLine();
 83         System.out.println("请输入学生年龄:");
 84         String age = sc.nextLine();
 85         System.out.println("请输入学生居住地:");
 86         String address = sc.nextLine();
 87 
 88         //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
 89         Student s = new Student();
 90         s.setSid(sid);
 91         s.setName(name);
 92         s.setAge(age);
 93         s.setAddress(address);
 94         //将学生对象添加到集合中
 95         array.add(s);
 96         //给出添加成功提示
 97         System.out.println("添加学生成功");
 98     }
 99 
100     //定义一个方法,判断学号是否被使用
101     public static boolean isUsed(ArrayList<Student> array, String sid) {
102         //如果与集合中的某一个学生的学号相同,返回true;如果都不相同,返回false
103         boolean flag = false;
104 
105         for (int i = 0; i < array.size(); i++) {
106             Student s = array.get(i);
107             if (s.getSid().equals(sid)) {
108                 flag = true;
109                 break;
110             }
111         }
112         return flag;
113     }
114 
115     //定义一个方法,用于查看学生信息
116     /*public static void findAllStudent(ArrayList<Student> array) {
117         //显示表头信息
118         //\t tab键的位置
119         System.out.println("学号\t\t姓名\t\t年龄\t\t居住地");
120 
121         //将集合中数据提取出来按照对应格式显示学生信息,年龄显示补充“岁"
122         for (int i = 0; i < array.size(); i++) {
123             Student s = array.get(i);
124             System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress());
125         }
126     }
127      */
128 
129     public static void findAllStudent(ArrayList<Student> array) {
130         if (array.size() == 0) {
131             System.out.println("无信息,请先添加信息再查询");
132             //为了让程序不在往下执行,给出return
133             return;
134         }
135 
136         //显示表头信息
137         //\t tab键的位置
138         System.out.println("学号\t\t姓名\t\t年龄\t\t居住地");
139 
140         //将集合中数据提取出来按照对应格式显示学生信息,年龄显示补充“岁"
141         for (int i = 0; i < array.size(); i++) {
142             Student s = array.get(i);
143             System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress());
144         }
145     }
146 
147     //定义一个方法,用于删除学生信息
148    /* public static void deleteStudent(ArrayList<Student> array) {
149         //键盘录入要删除的学生学号,显示提示信息
150         Scanner sc = new Scanner(System.in);
151 
152         System.out.println("请输入你要删除的学生的学号");
153         String sid = sc.nextLine();
154 
155         //遍历集合将对应学生对象从集合中删除
156         for (int i = 0; i < array.size(); i++) {
157             Student s = array.get(i);
158             if (s.getSid().equals(sid)) {
159                 array.remove(i);
160                 break;
161             }
162         }
163 
164         //给出删除成功的提示
165         System.out.println("删除学生成功");
166     }
167 */
168     //定义一个方法,用于删除学生信息(改进)
169     public static void deleteStudent(ArrayList<Student> array) {
170         //键盘录入要删除的学生学号,显示提示信息
171         Scanner sc = new Scanner(System.in);
172 
173         System.out.println("请输入你要删除的学生的学号");
174         String sid = sc.nextLine();
175 
176         //在删除/修改学生操作前,对学号是否存在进行判断
177         //如果不存在,显示提示信息
178         //如果存在,执行删除/修改操作
179 
180         int index = -1;
181 
182         for (int i = 0; i < array.size(); i++) {
183             Student s = array.get(i);
184             if (s.getSid().equals(sid)) {
185                 index = i;
186                 break;
187             }
188         }
189         if (index == -1) {
190             System.out.println("该信息不存在,请重新输入");
191         } else {
192             array.remove(index);
193             //给出删除成功提示
194             System.out.println("删除学生成功");
195         }
196     }
197 
198     //定义一个方法,用于修改学生方法
199    /* public static void updateStudent(ArrayList<Student> array) {
200         //键盘录入要修改的学生学号,显示提示信息
201         Scanner sc = new Scanner(System.in);
202 
203         System.out.println("请输入你要修改的学生学号:");
204         String sid = sc.nextLine();
205 
206         //键盘录入要修改的学生信息
207         System.out.println("请输入学生新姓名:");
208         String name = sc.nextLine();
209         System.out.println("请输入学生新年龄:");
210         String age = sc.nextLine();
211         System.out.println("请输入学生新居住地:");
212         String address = sc.nextLine();
213 
214         //创建学生对象
215         Student s = new Student();
216         s.setSid(sid);
217         s.setName(name);
218         s.setAge(age);
219         s.setAddress(address);
220 
221         //遍历集合修改对应的学生信息
222         for (int i = 0; i < array.size(); i++) {
223             Student student = array.get(i);
224             if (student.getSid().equals(sid)) {
225                 array.set(i, s);
226                 break;
227             }
228         }
229 
230         //给出修改成功提示
231         System.out.println("修改学生成功");
232     } */
233 
234     public static void updateStudent(ArrayList<Student> array) {
235         //键盘录入要修改的学生学号,显示提示信息
236         Scanner sc = new Scanner(System.in);
237 
238         System.out.println("请输入你要修改的学生学号:");
239         String sid = sc.nextLine();
240 
241 
242         //在删除/修改学生操作前,对学号是否存在进行判断
243         //如果不存在,显示提示信息
244         //如果存在,执行删除/修改操作
245 
246         int index = -1;
247 
248         for (int i = 0; i < array.size(); i++) {
249             Student s = array.get(i);
250             if (s.getSid().equals(sid)) {
251                 index = i;
252                 break;
253             }
254         }
255 
256         if (index == -1) {
257             System.out.println("该信息不存在,请重新输入");
258         } else {
259             //键盘录入要修改的学生信息
260             System.out.println("请输入学生新姓名:");
261             String name = sc.nextLine();
262             System.out.println("请输入学生新年龄:");
263             String age = sc.nextLine();
264             System.out.println("请输入学生新居住地:");
265             String address = sc.nextLine();
266 
267             //创建学生对象
268             Student s = new Student();
269             s.setSid(sid);
270             s.setName(name);
271             s.setAge(age);
272             s.setAddress(address);
273 
274             //集合修改对应的学生信息
275             array.set(index, s);
276 
277             //给出修改成功提示
278             System.out.println("修改学生成功");
279         }
280 
281 
282     }
283 }

 

posted @ 2020-12-28 22:00  找不到北的北  阅读(94)  评论(0)    收藏  举报