看完了老师前面140集的视频,终于熬到了学生管理系统,于是在看老师的讲解视频前,按照前面的学习,先做了一个出来,虽然冗长,充满缺陷:
package com.itheima;
import java.util.Scanner;
import java.util.ArrayList;
public class StudentManager {
public static void main(String[] args) {
ArrayList<Student> stu=new ArrayList<>();
while(true) {
Scanner sc = new Scanner(System.in);
System.out.println("-----学生信息管理系统-----");
System.out.println("1 添加一名学生信息");
System.out.println("2 查看所有学生信息");
System.out.println("3 删除学生信息");
System.out.println("4 修改学生信息");
System.out.println("请自行选择功能...");
System.out.println("-----学生信息管理系统-----");
int sin = sc.nextInt();
switch (sin) {
case 1:
addStudent(stu);
System.out.println("添加完成!");
break;
case 2:
getStudent(stu);
System.out.println("列出完毕!");
break;
case 3:
removeStudent(stu);
System.out.println("删除完成!");
break;
case 4:
setStudent(stu);
System.out.println("修改完成!");
break;
default:
System.out.println("无此功能项!");
break;
}
System.out.println("继续使用系统?(YES)退出?(NO)");
Scanner sc2 = new Scanner(System.in);
String judge=sc2.nextLine();
if(judge.equals("YES")) System.out.println();
if(judge.equals("NO")) break;
}
}
//定义方法实现添加学生信息
public static void addStudent(ArrayList<Student> stu){
Student s1=new Student();
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生姓名:");
s1.setName(sc.nextLine());
System.out.println("请输入年龄");
s1.setAge(sc.nextLine());
System.out.println("请输入学号:");
s1.setId(sc.nextLine());
stu.add(s1);
}
//定义方法实现查看所有学生信息
public static void getStudent(ArrayList<Student> stu){
for (int i=0;i<stu.size();i++) {
Student s=stu.get(i);
System.out.println(s.getName()+","+s.getAge()+","+s.getId());
}
}
//定义方法实现删除学生信息
public static void removeStudent(ArrayList<Student> stu){
Scanner sc=new Scanner(System.in);
System.out.println("请输入要删除的学生名字:");
String sb=sc.nextLine();
for(int i=0;i<stu.size();i++){
Student s=stu.get(i);
if(s.getName().equals(sb)){
stu.remove(i);
}
}
}
//定义方法实现修改学生信息
public static void setStudent(ArrayList<Student> stu){
Scanner sc=new Scanner(System.in);
System.out.println("请输入要修改的学生名字:");
String sb=sc.nextLine();
for(int i=0;i<stu.size();i++){
Student s=stu.get(i);
if(s.getName().equals(sb)){
Student s1=new Student();
System.out.println("请输入学生姓名:");
s1.setName(sc.nextLine());
System.out.println("请输入年龄");
s1.setAge(sc.nextLine());
System.out.println("请输入学号:");
s1.setId(sc.nextLine());
stu.set(i,s1);
}
}
}
}
学生类:
package com.itheima;
public class Student {
private String name;
private String age;
private String id;
public Student(){
}
public Student(String name,String age,String id){
this.name=name;
this.age=age;
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 getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
再看老师的视频,修改了退出的逻辑、查看所有学生的方法,解决输入的学号不存在问题。
package com.itheima;
import java.util.Scanner;
import java.util.ArrayList;
public class StudentManager {
public static void main(String[] args) {
ArrayList<Student> stu=new ArrayList<>();
while(true) {
Scanner sc = new Scanner(System.in);
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("-----学生信息管理系统-----");
int sin = sc.nextInt();
switch (sin) {
case 1:
addStudent(stu);
System.out.println("添加完成!");
break;
case 2:
getStudent(stu);
System.out.println("列出完毕!");
break;
case 3:
removeStudent(stu);
System.out.println("删除完成!");
break;
case 4:
setStudent(stu);
System.out.println("修改完成!");
break;
case 5:
System.out.println("退出...");
System.exit(0);
default:
System.out.println("无此功能!请重新选择:");//break;
}
}
}
//定义方法实现添加学生信息
public static void addStudent(ArrayList<Student> stu){
Student s1=new Student();
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生姓名:");
s1.setName(sc.nextLine());
System.out.println("请输入年龄");
s1.setAge(sc.nextLine());
System.out.println("请输入学号:");
s1.setId(sc.nextLine());
stu.add(s1);
}
//定义方法实现查看所有学生信息
public static void getStudent(ArrayList<Student> stu){
if(stu.size()==0) {
System.out.println("无数据,请先添加数据!");
return;
}
System.out.println("姓名\t\t年龄\t\t学号");
for (int i = 0; i < stu.size(); i++) {
Student s = stu.get(i);
System.out.println(s.getName() + "\t" + s.getAge() + "\t" + s.getId());
}
}
//定义方法实现删除学生信息
public static void removeStudent(ArrayList<Student> stu){
Scanner sc=new Scanner(System.in);
System.out.println("请输入要删除的学生名字:");
String sb=sc.nextLine();
int index=-1;
for(int i=0;i<stu.size();i++){
Student s=stu.get(i);
if(s.getName().equals(sb)){
index=1;
stu.remove(i);
break;
}
}
if(index==-1){
System.out.println("查无此人!");
}
}
//定义方法实现修改学生信息
public static void setStudent(ArrayList<Student> stu){
Scanner sc=new Scanner(System.in);
System.out.println("请输入要修改的学生名字:");
String sb=sc.nextLine();
for(int i=0;i<stu.size();i++){
Student s=stu.get(i);
if(s.getName().equals(sb)){
Student s1=new Student();
System.out.println("请输入学生姓名:");
s1.setName(sc.nextLine());
System.out.println("请输入年龄");
s1.setAge(sc.nextLine());
System.out.println("请输入学号:");
s1.setId(sc.nextLine());
stu.set(i,s1);
break;
}
}
}
}