学生管理系统,键盘录入三个学生的信息,并实现增删改查,java

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("请重新输入");
            }
        }
    }
}

在这里插入图片描述

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值