1.步骤:
a:定义学生类
b:学生管理系统的主界面的代码编写
c:学生管理系统的查看所有学生的代码编写
d:学生管理系统的添加学生代码编写
e:学生管理系统的删除学生代码编写
f:学生管理系统的修改学生的代码编写
a.定义学生类:
package firstRoutine;
//定义一个学生类
//成员变量:学号,姓名,年龄,居住地
public class Student {
private String id;
private String name;
private String age;
private String home;
//无参方法
public Student() {
}
//有参构造方法
public Student(String id, String name, String age, String home) {
this.id = id;
this.name = name;
this.age = age;
this.home = home;
}
//成员方法
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getHome() {
return home;
}
public void setHome(String home) {
this.home = home;
}
}
b.学生管理系统的主界面的代码编写;
示例:--------欢迎来到学生管理系统--------
1.查看所有学生
2.添加学生
3.删除学生
4.修改学生
5.退出
System.exit(0); jvm虚拟机退出
c.查看所有学生
要使用集合吧所有学生都存储,所以创建集合对象
查看所有学生就是遍历集合
首先得判断该集合内有没有数据如果没有就给出提示,并让该方法不往下执行
d.添加学生
学生数据来自于键盘录入,所以在添加学生的方法中首先要创建键盘录入对象
录入完成后,创建学生对象用于保存键盘录入的数据
将数据添加进集合
d1.解决添加学生时学号重复 的问题:
在键盘录入学号的时候,1.判断学号是否被占用,首先哟啊通过遍历集合拿到每一个学生数据,使用if语句,用equals方法来进行比较,而在比较时候要在外部定义一个标记,用于作对比。2.定义标记。3.为了进行多次对比,则要定义一个while (true)循环。
e.删除学生
思路:键盘录入一个学号,到集合中查找,看是否有学生使用该学号,如果有就删除该学生
代码实现:
package firstRoutine;
import java.util.ArrayList;
import java.util.Scanner;
//我的学生管理系统
public class StudentSystem {
public static void main(String[] args) {
//创建学生集合
ArrayList<Student> array = new ArrayList<Student>();
while(true){
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("请输入你的选择");
//要输入你的选择就得使用键盘录入来实现
Scanner sc = new Scanner(System.in);
String choice = sc.nextLine();
//选择自己的要输入的选项
switch (choice){
case "1":
//查看所有学生信息
findAllStudent(array);
break;
case "2":
//添加学生
addStudent(array);
break;
case "3":
//删除学生
deleteStudent(array);
break;
case "4":
//修改学生
selectStudent(array);
break;
case "5":
//退出
System.out.println("谢谢你的使用");
System.exit(0);
break;
default:
System.out.println("谢谢你的使用");
System.exit(0); //jvm虚拟机退出
break;
}
}
}
//查看所有学生
public static void findAllStudent(ArrayList<Student> array){
//首先得判断集合内有没有学生数据,如果没有就给出提示,并让该方法结束执行
if(array.size()==0){
System.out.println("目前还没有可供查询的学生信息,请返回重新选择");
return;
}
//为了方便看到对应信息,加补一行提示语句
System.out.println("学号 姓名 年龄 居住地");
//查看学生就是遍历整个学生集合,遍历集合
for(int x =0;x<array.size();x++){
//创建学生对象用于接收数据
Student s = array.get(x);
System.out.println(s.getId()+" "+s.getName()+" "+s.getAge()+" "+s.getHome());
}
}
//添加学生
public static void addStudent(ArrayList<Student> array){
//创建键盘录入对象,用于录入学生数据
Scanner sc = new Scanner(System.in);
//5.定义一个String类型的id学号
String id;
//3.定义一个循环,用于比较学号是否正确
while(true){
//接收数据
System.out.println("请输入学生学号:");
id = sc.nextLine(); //4.因为下面还要继续使用id所以这个ID不能放在while(true)循环内,要放在添加学生的方法里
//2.定义标记
boolean flag = false;
//1.判断学号是否被占用,首先要遍历集合拿到每个元素
for(int x = 0;x<array.size();x++){
Student s = array.get(x);
if(s.getId().equals(id)){
//实现if比较语句得先定义标记,所以在外部去定义一个标记
flag=true;
//System.out.println("你输入的学号已经被占用,请重新输入");
break;
}
}
if(flag){
System.out.println("你输入的学号已经被占用,请重新输入");
}else{
break;
}
}
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
String age = sc.nextLine();
System.out.println("请输入学生住址");
String home = sc.nextLine();
//创建学生对象,用于保存键盘录入的数据
Student s = new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setHome(home);
//将数据存入集合
array.add(s);
}
//删除学生
public static void deleteStudent(ArrayList<Student> array){
//键盘录入一个要删除的学生的学号
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的学生的学号:");
String id = sc.nextLine();
//遍历集合
int index = -1; //是为了防止如果我输入的学号集合里面没有
for(int x = 0;x<array.size();x++){
//创建学生对象获取到集合的学生信息
Student s = array.get(x);
//将拿到的学生学号与键盘录入的学号进行比较
if(s.getId().equals(id)){
//array.remove(x);
index = x; //如果学生的学号和键盘录入的学号是一样的那么我就拿该索引赋值给index,如果不一样就不走这个循环
}
break; // //如果输入的学号在集合中没有对应的学生,那么就要给出提示,并结束循环
}
if(index==-1){
System.out.println("您的输入有误请重新选择");
}else{
array.remove(index);
System.out.println("删除学生成功");
}
}
//修改学生
public static void selectStudent(ArrayList<Student> array){
//键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要修改的学生学号");
String id = sc.nextLine();
int index = -1;
for(int x = 0;x<array.size();x++){
//获取每一个学生对象
Student s = array.get(x);
if(s.getId().equals(id)){
index=x;
break;
}
}
if(index==-1){
System.out.println("你输入的这个学生的学号不存在与我们的系统,请重新输入");
}else{
System.out.println("请输入新的学生姓名:");
String name = sc.nextLine();
System.out.println("请输入新的学生年龄");
String age = sc.nextLine();
System.out.println("请输入新的居住地");
String home = sc.nextLine();
//创建学生对象
Student s = new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setHome(home);
array.set(index, s);
System.out.println("修改学生成功");
}
}
}