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 }