student类
package Text10;
//需求:创建一个存储学生对象的集合,存储3个学生对象,
// 使用程序实现在控制台遍历该集合,学生的姓名和年龄来自键盘输入
//定义的学生类
public class Student {
//成员变量
private String sid;//学号
private String age;//年龄
private String name;//姓名
private String address;//住址
//构造方法
public Student() {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
//get/set方法
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
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;
}
}
StudentManager类
package Text10;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager {
public static void main(String[] args) {
//创建集合对象,用于存储学生信息
ArrayList<Student> array=new ArrayList<Student>();
//while循环完成回到主界面
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 line = sc.nextLine();
//switch语句完成操作的选择
switch (line) {
case "1":
addStudent(array);
// System.out.println("添加学生");
break;
case "2":
deleteStudent(array);
// System.out.println("删除学生");
break;
case "3":
updateStudent(array);
//System.out.println("修改学生");
break;
case "4":
findStudent(array);
//System.out.println("查看学生");
break;
case "5":
System.out.println("退出成功,谢谢使用");
System.exit(0);//直接退出Java虚拟机
}
}
}
//添加学生
public static void addStudent(ArrayList<Student> array){
//键盘录入
Scanner sc=new Scanner(System.in);
//为了让sid在while循环外被使用到
String sid;
//让程序回到这里
while(true){
System.out.println("请输入学号");
sid = sc.nextLine();
Boolean flag=isUsed(array,sid);
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 address = sc.nextLine();
//创建学生对象,吧键盘录入的数据复制给学生对象的成员变量
Student s=new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//将学生对象添加到集合中
array.add(s);
//提示
System.out.println("添加学生成功");
}
//解决添加学生学号重复的方法
public static Boolean isUsed(ArrayList<Student> array, String sid){
boolean flag=false;
for (int i=0;i<array.size();i++){
Student s = array.get(i);
if (s.getSid().equals(sid)){
flag=true;
break;
}
}
return flag;
}
//查看学生方法
public static void findStudent(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.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress());
}
}
}
//删除学生信息
public static void deleteStudent(ArrayList<Student> array){
Scanner sc=new Scanner(System.in);
System.out.println("请输入要删除的学生学号:");
String sid = sc.nextLine();//接收学号
int index=-1;
for (int i=0;i<array.size();i++){
Student s = array.get(i);
//接收的学号与集合中的学号比较是否相等
if (s.getSid().equals(sid)){ //equals字符串的比较
// int index=-1;
index=i;
break;
}
}
if (index==-1){
System.out.println("该信息不存在,请重新输入");
}else{
array.remove(index);
System.out.println("该学生信息已删除");
}
}
//修改学生信息
public static void updateStudent(ArrayList<Student> array){
Scanner sc=new Scanner(System.in);
System.out.println("请输入要修改的学生学号");
String sid= sc.nextLine();
for (int j=0;j<array.size();j++){
Student st = array.get(j);
if (st.getSid().equals(sid)){
//键盘录入要修改的学生信息
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);
//遍历集合修改对应的学生信息
for (int i=0;i<array.size();i++){
Student student = array.get(i);
if (student.getSid().equals(sid)){
//根据索引把新的学生对象传过去
array.set(i,s);
break;
}
}
System.out.println("修改成功");
}else{
System.out.println("请重新输入");
}
}
}
}