1.2 学生管理系统实现思路:
1. 定义学生类
2. 主界面的代码编写
3.添加学生代码编写
4. 查看学生代码编写
5. 删除学生代码编写
6. 修改学生代码编写
1.3 定义学生类
学生类: Student
成员变量: 学号: sid
姓名: name
年龄: age
居住地: address
构造方法:
无参构造
带四个参数构造
成员方法:
每个成员变量对应给出get/set方法
代码示例:
/* 学生类:Student 成员变量: 学号: sid 姓名: name 年龄: age 居住地:address 构造方法: 无参构造 带四个参数构造 成员方法: 每个成员变量对应给出get/set方法 代码示例: */ public class Student { //成员变量: 学号: sid // 姓名: name // 年龄: age // 居住地:address private String sid; private String name; private String age; private String address; // 构造方法: // 无参构造 public Student() {} // 带四个参数构造 public Student(String sid, String name, String age, String address){ this.sid = sid; this.name = name; this.age = age; this.address=address; } // 成员方法: // 每个成员变量对应给出get/set方法 public void setSid(String sid) { this.sid = sid; } public String getSid() { return sid; } public void setname(String name){ this.name = name; } public String getname(){ return name; } public void setage(String age){ this.age = age; } public String getAge(){ return age; } public void setAddress(String address){ this.address= address; } public String getAddress(){ return address; } }
1.4 主界面的代码编写
思路:
1.用输出语句完成主界面编写
2. 用Scanner实现键盘录入数据
3. 用Switch语句完成操作的选择
4.用循环完成再次回到主界面
1.5添加学生代码编写
思路:
1.用键盘录入选择添加学生
2.定义一个方法用于添加学生
(1)显示提示信息,提示要输入什么信息
(2)键盘录入学生对象所需的数据
(3)创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
(4)将学生对象添加到集合中保存
(5)给出添加成功提示
3.调用方法
代码示例:
思路: 1.用键盘录入选择添加学生 2.定义一个方法用于添加学生 (1)显示提示信息,提示要输入什么信息 (2)键盘录入学生对象所需的数据 (3)创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 (4)将学生对象添加到集合中保存 (5)给出添加成功提示 3.调用方法 */ public static void addStudent(ArrayList<Student>array){ //1.用键盘录入选择添加学生 Scanner sc = new Scanner(System.in); System.out.println("请输入你要添加的学号: "); String sid = sc.nextLine(); System.out.println("请输入你要添加的姓名: "); String name = sc.nextLine(); System.out.println("请输入你要添加的年龄: "); String age = sc.nextLine(); System.out.println("请输入你要添加的居住地: "); String address = sc.nextLine(); //(3)创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 Student s = new Student(); s.setSid(sid); s.setname(name); s.setage(age); s.setAddress(address); //将学生对象添加到集合中 array.add(s); //给出添加成功提示 System.out.println("添加学生成功"); }
1.6查看学生代码编写
思路:
1.用键盘录入选择添加学生
2.定义一个方法用于查看学生信息
(1)显示表头信息
(2)将集合中数据取出来按照对应格式显示学生信息,年龄补充"岁"
3.调用方法
代码示例:
/* 1.用键盘录入选择添加学生 2.定义一个方法用于查看学生信息 (1)显示表头信息 (2)将集合中数据取出来按照对应格式显示学生信息,年龄补充"岁" 3.调用方法 */ public static void findStudent(ArrayList<Student> array) { //显示表头信息 System.out.println("学号\t姓名\t年龄\t居住地"); // 2)将集合中数据取出来按照对应格式显示学生信息,年龄补充"岁" for (int i = 0; i < array.size(); i++) { Student s = array.get(i); System.out.println(s.getSid() + "\t" + s.getname() + "\t" + s.getAge() + "岁\t" + s.getAddress()); }
1.8 删除学生代码编写
思路:
1.用键盘录入选择删除的学生信息
2.定义一个方法,用于删除学生信息
(1)显示提示信息
(2)键盘录入要删除的学生学号
(3)遍历集合将对应学生对象从集合中删除
(4)给出删除成功提示
3.调用方法
代码示例:
public static void deleteStudent(ArrayList<Student> array){ // 1.用键盘录入选择删除的学生信息 Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除的学生学号: "); String sid = sc.nextLine(); //遍历集合将对应学生对象从集合中删除 for(int i = 0;i<array.size();i++){ Student s = array.get(i); if(s.getSid().equals(sid)){ array.remove(i); break; } System.out.println("删除成功"); } }
1.9 修改学生的代码编写
思路:
1.用键录入选择修改的学生信息’
2.定义一个方法,用于修改学生信息
(1)显示提示信息
(2)键盘录入要修改的学生学号
(3)键盘录入要修改的学生信息
(4)遍历集合修改对应的学生信息
(5)给出修改成功提示
3.调用方法
代码示例:
public static void updateStudent(ArrayList<Student> array) { // 1.用键录入选择修改的学生信息’ Scanner sc = new Scanner(System.in); //(1)显示提示信息 // //(2)键盘录入要修改的学生学号 // //(3)键盘录入要修改的学生信息 System.out.println("请输入你要修改的学生学号: "); String sid = sc.nextLine(); System.out.println("请输入学生新姓名: "); String name = sc.nextLine(); System.out.println("请输入学生新年龄: "); String age = sc.nextLine(); System.out.println("请输入学生新居住地: "); String address = sc.nextLine(); //创建学生对象 Student s= new Student(); s.setSid(sid); s.setname(name); s.setage(age); s.setAddress(address); //(4)遍历集合修改对应的学生信息 for(int i = 0;i< array.size();i++){ Student student = array.get(i); if(student.getSid().equals(sid)){ array.set(i, s); break; } } //(5)给出修改成功提示 System.out.println("修改学生成功"); }
1.10解决删除/修改学生学号不存在问题
思路:
1.再删除/修改学生操作前,对学号是否存在进行判断
如果不存在,显示提示信息
如果存在,执行删除/修改
代码示例:
int index = -1; for (int i = 0; i < array.size(); i++) { Student s = array.get(i); if (s.getSid().equals(sid)) { index = i; break; } } if(index ==-1){ System.out.println("该信息不存在,请重新输入"); }else{ array.remove(index); System.out.println("删除成功"); }
全部代码:
import java.util.ArrayList; import java.util.Scanner; /* 学生管理系统 思路: 1.用输出语句完成主界面编写 2. 用Scanner实现键盘录入数据 3. 用Switch语句完成操作的选择 4.用循环完成再次回到主界面 */ public class StudentManager { public static void main(String[] args) { //创建集合对象用于存储学生对象 ArrayList<Student> array = new ArrayList<Student>(); //4.用循环完成再次回到主界面 while (true) { //1.用输出语句完成主界面编写 System.out.println("--------欢迎来到学生管理系统---------"); System.out.println("1 添加学生"); System.out.println("2 删除学生"); System.out.println("3 修改学生"); System.out.println("4 查看所有学生"); System.out.println("5 退出"); System.out.println("请输入你的选择: "); //2. 用Scanner实现键盘录入数据 Scanner sc = new Scanner(System.in); String line = sc.nextLine(); //3. 用Switch语句完成操作的选择 switch (line) { case "1": // System.out.println("添加学生"); addStudent(array); break; case "2": // System.out.println("删除学生"); deleteStudent(array); break; case "3": // System.out.println("修改学生"); updateStudent(array); break; case "4": // System.out.println("查看所有学生"); findStudent(array); break; case "5": System.out.println("谢谢使用!"); // break; System.exit(0);//JVM退出,Java虚拟机 } } } /* 思路: 1.用键盘录入选择添加学生 2.定义一个方法用于添加学生 (1)显示提示信息,提示要输入什么信息 (2)键盘录入学生对象所需的数据 (3)创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 (4)将学生对象添加到集合中保存 (5)给出添加成功提示 3.调用方法 */ public static void addStudent(ArrayList<Student> array) { //1.用键盘录入选择添加学生 Scanner sc = new Scanner(System.in); System.out.println("请输入你要添加的学号: "); String sid = sc.nextLine(); System.out.println("请输入你要添加的姓名: "); String name = sc.nextLine(); System.out.println("请输入你要添加的年龄: "); String age = sc.nextLine(); System.out.println("请输入你要添加的居住地: "); String address = sc.nextLine(); //(3)创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 Student s = new Student(); s.setSid(sid); s.setname(name); s.setage(age); s.setAddress(address); //将学生对象添加到集合中 array.add(s); //给出添加成功提示 System.out.println("添加学生成功"); } /* 1.用键盘录入选择添加学生 2.定义一个方法用于查看学生信息 (1)显示表头信息 (2)将集合中数据取出来按照对应格式显示学生信息,年龄补充"岁" 3.调用方法 */ public static void findStudent(ArrayList<Student> array) { //判断集合中是否有数据,如果没有提示信息 if (array.size() == 0) { System.out.println("无信息,请先添加学生信息"); return;//为了让程序不在往下执行 } //显示表头信息 System.out.println("学号\t\t姓名\t\t年龄\t\t居住地"); // 2)将集合中数据取出来按照对应格式显示学生信息,年龄补充"岁" for (int i = 0; i < array.size(); i++) { Student s = array.get(i); System.out.println(s.getSid() + "\t\t" + s.getname() + "\t\t" + s.getAge() + "岁\t\t" + s.getAddress()); } } public static void deleteStudent(ArrayList<Student> array) { // 1.用键盘录入选择删除的学生信息 Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除的学生学号: "); String sid = sc.nextLine(); //遍历集合将对应学生对象从集合中删除 //1.再删除/修改学生操作前,对学号是否存在进行判断 // //如果不存在,显示提示信息 // //如果存在,执行删除/修改 int index = -1; for (int i = 0; i < array.size(); i++) { Student s = array.get(i); if (s.getSid().equals(sid)) { index = i; break; } } if(index ==-1){ System.out.println("该信息不存在,请重新输入"); }else{ array.remove(index); System.out.println("删除成功"); } } // 2.定义一个方法,用于修改学生信息 public static void updateStudent(ArrayList<Student> array) { // 1.用键录入选择修改的学生信息’ Scanner sc = new Scanner(System.in); //(1)显示提示信息 // //(2)键盘录入要修改的学生学号 // //(3)键盘录入要修改的学生信息 System.out.println("请输入你要修改的学生学号: "); String sid = sc.nextLine(); System.out.println("请输入学生新姓名: "); String name = sc.nextLine(); System.out.println("请输入学生新年龄: "); String age = sc.nextLine(); System.out.println("请输入学生新居住地: "); String address = sc.nextLine(); //创建学生对象 Student s= new Student(); s.setSid(sid); s.setname(name); s.setage(age); s.setAddress(address); //(4)遍历集合修改对应的学生信息 int index =-1; for(int i = 0;i< array.size();i++) { Student student = array.get(i); if (student.getSid().equals(sid)) { index = i; array.set(i, s); break; } } if(index ==-1){ System.out.println("该信息不存在,请重新输入"); }else{ array.remove(index); System.out.println("修改成功"); } } }