看完了老师前面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;
}
}
}
}
博客内容展示了作者根据视频教程自制的学生信息管理系统,并在观看后续视频后进行了优化,包括添加退出功能、改进查看所有学生信息的显示以及处理删除和修改操作时的异常情况。改进后的系统能更好地处理用户交互和数据验证。
3205

被折叠的 条评论
为什么被折叠?



