Java学生管理系统

目录

前言

 一、定义学生类

 二、主界面代码的编写

三、添加学生代码的编写

四、查看学生代码的编写

五、删除学生代码的编写

六、修改学生代码的编写

七、代码的实现

总结


前言

学生管理系统思路给小白一些借鉴

 一、定义学生类

定义学生类:
    1.成员变量,用private修饰,数据
       类型统一使用String,方便接下来代码的编写
    2.构造方法,无参带参构造
    3.成员方法:提供get/set方法

 二、主界面代码的编写

1.用输出语句完成主页面的编写
2.用Scanner录入数据
3.用switch语句完成操作的选择
4.用循环完成再次回到主界面

三、添加学生代码的编写

1.键盘录入选择添加学生
2.定义一个方法用于添加学生
    ①显示提示信息
    ②键盘录入学生对象要的信息
            Ⅰ.在录入学生学号时作判断
            Ⅱ.判断录入学号是否重复,重复则给出提示信息并且返回②
            Ⅲ.不重复则向下继续执行
    ③创建学生对象,把键盘录入的值赋值给学生对象的成员变量
    ④将学生对象添加到集合中
    ⑤给出提示
3.调用方法

四、查看学生代码的编写

1.键盘录入选择查看所有学生信息
2.定义一个方法用于查看所有学生信息
    ①判断集合中有无数据,没有数据则给出提示信息
    ②有数据,则打印表头信息         \t 制表符
    ③将集合中的数据以对应格式打印出来
3.调用方法

五、删除学生代码的编写

1.键盘录入选择删除学生
2.定义一个方法用于删除学生
    ①显示提示信息
    ②键盘录入要删除学生的学号
    ③遍历集合,作判断有无对应的学生信息
    ④有则将对应学生删除,无则给出提示信息
    ⑤给出删除成功的提示
3.调用方法

六、修改学生代码的编写

1.键盘录入选择修改学生
2.定义一个方法用于修改学生
    ①显示提示信息
    ②键盘录入要修改学生的学号
    ③键盘录入要修改的学生信息
    ④遍历集合修改对应的学生信息
    ⑤给出修改成功的提示
3.调用方法

七、代码的实现

import java.util.Scanner;
import java.util.ArrayList;
//定义一个学生类
class Student {
	//成员变量进行封装
    private String sid;
    private String name;
    private String age;
    private String address;

    //构造无参方法
    public Student() {
    }

    //构造带参方法
    public Student(String sid, String name, String age, String address) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }
    //设置get方法
    //获取学号
    public String getSid() {
        return sid;
    }
    //获取名字
    public String getName() {
        return name;
    }
    //获取年龄
    public String getAge() {
        return age;
    }
    //获取地址
    public String getAddress() {
        return address;
    }
    //设置set方法
    //添加学号
    public void setSid(String sid) {
        this.sid = sid;
    }
    //添加名字
    public void setName(String name) {
        this.name = name;
    }
    //添加年龄
    public void setAge(String age) {
            this.age = age;
    }
    //添加地址
    public void setAddress(String address) {
        this.address = address;
    }
}

public class 学生管理系统 {
	public static void main(String[] args) {
		//创建集合对象用于存储数据
		ArrayList<Student> array = new ArrayList<>();
		//程序主界面的实现
		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 (line) {
                case "1":
                    //System.out.println("添加学生");
					addStudent(array);
                    break;
                case "2":
                    //System.out.println("删除学生");
					DelStudent(array);
                    break;
                case "3":
                    //System.out.println("修改学生");
					ChangeStudent(array);
                    break;
                case "4":
                    //System.out.println("查看所有学生");
					findAllStudent(array);
                    break;
                case "5":
                    System.out.println("    谢谢使用");
                    System.exit(0);//JVM退出
            }
		}
	}
    //创建一个方法用来添加学生
    public static void addStudent(ArrayList<Student> array) {
        //键盘录入学生信息
        Scanner sc = new Scanner(System.in);
        //要让sid在循环外可以使用,在循环外面定义
        String sid;
        while(true) {
            System.out.println("请输入学生的学号:");
            sid = sc.nextLine();
            boolean flag = isUsed(array, sid);
            if(flag==true) {
                System.out.println("输入的学号已存在,请重新输入!");
            } else if(sid.length() != 10){
                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) {
        //遍历集合,判断录入的学号是否存在,存在为true,不存在为false
        boolean flag = false;
        for(int i = 0; i<array.size(); i++) {
            Student s = array.get(i);
            //字符串用equals()方法,判断是否相等
            if(s.getSid().equals(sid)) {
                flag = true;
                break;
            }
        }
        return flag;
    }
    //创建一个方法用来查看所有学生信息
    public static void findAllStudent(ArrayList<Student> array){
        //判断集合中是否有数据,没有数据给出提示信息
        if(array.size()==0) {
            System.out.println("无信息,请先录入学生信息再查询");
            //return 程序不再向下执行
            return;
        }
        //打印表头信息
        // \t表示tab,制表符
        System.out.println("学号\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 DelStudent(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);
            //字符串比较大小用equals()方法
            if(s.getSid().equals(sid)) {
                index = i;
                break;
            }
        }
        //判断录入的学号是否存在
        if(index == -1) {
            System.out.println("该信息不存在,请重新输入!");
        } else {
            array.remove(index);
            System.out.println("删除成功!");
        }
    }
    //创建一个方法用来修改学生信息
    public static void ChangeStudent(ArrayList<Student> array) {
        //键盘录入要修改的学生学号,显示提示信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要修改的学生学号:");
        String sid = 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.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)) {
                //修改i索引处的元素
                array.set(i,s);
                break;
            }
        }
        System.out.println("修改成功!");
    }
}

总结

学生管理系统的代码实现到这里就结束了,新手需要注意的几个点:

1.在添加学生时需要考虑到学号重复的问题

2.在查看学生时需要考虑到集合中无数据的情况

3.关于主界面代码的编写过程中新手遇到的死循环无法退出的情况,需要使用System.exit(0);这个代码是在Java中System类里的常用方法,它的含义是终止当前运行的Java虚拟机。

4.这篇文章起借鉴作用,每个人要的需求都不一样

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值