1.创建学生类
package studentManager;
public class Student {
//定义成员变量
private String num;//学号
private String name;//姓名
private String age;//年龄
private String address;//居住地
//构造无参和有参方法(alt+insert键)
public Student() {
}
public Student(String num, String name, String age, String address) {
this.num = num;
this.name = name;
this.age = age;
this.address = address;
}
//构造set和get方法(alt+insert键)
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
2.创建主函数main()类,编写主要功能实现代码
package studentManager;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager {
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("------ 请输入你的选择:");
//System.out.println("-------------------------------");
//scanner键盘录入
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
switch (line) {
case "1":
//System.out.println("添加");
addStudent(array);
System.out.println("添加成功!");
break;
case "2":
System.out.println("删除");
deleteStudent(array);
break;
case "3":
System.out.println("修改");
changeStudent(array);
break;
case "4":
System.out.println("查看");
//lookStudent(array);
findAllStudent(array);
break;
case "5":
System.out.println("谢谢你的使用!");
//break;
System.exit(0);
}
}
}
//定义 添加学生 方法
/*两个明确:
参数:ArrayList<Student> array
返回值:void
*/
/* public static void addStudent(ArrayList<Student> array) {
//键盘输入学生信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生学号:");
String num = 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.setNum(num);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//学生对象加入集合
array.add(s);
}*/
//添加学生升级版
public static void addStudent(ArrayList<Student> array) {
//为了学号num可以在while循环外可以用到所以定义在while外
String num;
Scanner sc = new Scanner(System.in);
//用while循环保证输入重复后能回到输入学号
while (true) {
//键盘输入学生信息
System.out.println("请输入学生学号:");
num = sc.nextLine();
//判断学号是否已经存在
if (isUse(array, num) == true) {
System.out.println("该学号已存在,请重新输入:");
}else{
break;
}
}
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.setNum(num);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//学生对象加入集合
array.add(s);
}
//定义添加学生学号是否重复方法
/*两个明确
参数:ArrayList<Student> array
返回值:boolean
*/
public static boolean isUse(ArrayList<Student> array,String num){
//如果与集合中某学生学号相同返回true,否则返回false
boolean flag = false;
for(int i = 0;i<array.size();i++){
Student s = array.get(i);
if(s.getNum().equals(num)){
flag = true;
break;
}
}
return flag;
}
//定义 删除学生 方法
/* public static void deleteStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除学生的学号:");
String num = sc.nextLine();
//if判断是否存在该学生
for (int i = 0; i <= array.size(); i++) {
Student s = array.get(i);
if (s.getNum().equals(num)) {
//遍历集合找到该学生并删除
array.remove(i);
System.out.println("删除成功!");
break;
}
}
}*/
//删除学生升级版
public static void deleteStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的学生学号:");
String num = sc.nextLine();
//定义index值为-1,当匹配到所给学号就修改index值,否则就是找不到该学生
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getNum().equals(num)) {
// int index =i;
index = i;
break;
}
}
if (index == -1) {
System.out.println("未找到该学生!");
}
//若index不等于-1,则说明找到了该学生,用index作i进行删除操作
else {
array.remove(index);
System.out.println("删除成功!");
//return;
}
}
//定义 修改学生 方法
/* public static void changeStudent(ArrayList<Student> array) {
//录入要修改学生的学号
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要修改的学生学号:");
String num = sc.nextLine();
//录入修改的信息
System.out.println("请输入修改后的学生学号:");
String num1 = sc.nextLine();
System.out.println("请输入修改后的学生姓名:");
String name1 = sc.nextLine();
System.out.println("请输入修改后的学生年龄:");
String age1 = sc.nextLine();
System.out.println("请输入修改后的学生居住地:");
String address1 = sc.nextLine();
//创建学生对象接收录入的修改数据
Student s = new Student();
s.setNum(num1);
s.setName(name1);
s.setAge(age1);
s.setAddress(address1);
//遍历找到该学生s1
for (int i = 0; i <= array.size(); i++) {
Student s1 = array.get(i);
if (s1.getNum().equals(num)) {
//把接收到的数据对象s传给array中的i
array.set(i, s);
break;
}
}
System.out.println("修改成功!");
}*/
//修改学生升级版
public static void changeStudent(ArrayList<Student> array) {
//录入要修改学生的学号
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要修改的学生学号:");
String num = sc.nextLine();
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getNum().equals(num)) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("该学生不存在!");
} else {
//录入修改的信息
System.out.println("请输入修改后的学生学号:");
String num1 = sc.nextLine();
System.out.println("请输入修改后的学生姓名:");
String name1 = sc.nextLine();
System.out.println("请输入修改后的学生年龄:");
String age1 = sc.nextLine();
System.out.println("请输入修改后的学生居住地:");
String address1 = sc.nextLine();
//创建学生对象接收录入的修改数据
Student s = new Student();
s.setNum(num1);
s.setName(name1);
s.setAge(age1);
s.setAddress(address1);
//遍历找到该学生s1
for (int i = 0; i <= array.size(); i++) {
Student s1 = array.get(i);
if (s1.getNum().equals(num)) {
//把接收到的数据对象s传给array中的i
array.set(i, s);
break;
}
}
System.out.println("修改成功!");
}
}
//定义 查看学生 方法
/* public static void lookStudent(ArrayList<Student> array){
System.out.println("学号\t\t\t姓名\t\t年龄\t\t居住地");
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getNum()+"\t\t"+s.getName() +"\t\t"+ s.getAge()+"岁\t"+s.getAddress());
}
}*/
//定义 查看学生升级版 方法
public static void findAllStudent(ArrayList<Student> array) {
//判断集合中是否有数据,无弹出相应信息
if (array.size() == 0) {
System.out.println("列表中尚未录入学生信息。");
//让程序不再往下执行
return;
} else {
System.out.println("学号\t\t\t姓名\t\t年龄\t\t居住地");
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getNum() + "\t\t" + s.getName() + "\t\t" + s.getAge() + "岁\t" + s.getAddress());
}
}
}
}