(该项目通过视频讲解过程中完成,其中将一些操作进行了修改和完善,其目的是为了巩固前面学习java的一些用法,熟悉写项目的过程)
一.项目要求
学生类:
- 属性:id、姓名、年龄、家庭住址
添加功能:
- 键盘录入每一个学生信息并添加,需要满足以下要求: ID唯一
删除功能:
- 键盘录入要删除的学生id,需要满足以下要求
- id存在删除
- id不存在,需要提示不存在,并回到初始菜单
修改功能:
- 键盘录入要修改的学生id,需要满足以下要求
- id存在,继续录入其他信息
- id不存在,需要提示不存在,并回到初始菜单
查询功能:
- 打印所有的学生信息,需要满足以下要求。
- 如果没有学生信息,提示:当前无学生信息,请添加后再查询
- 如果有学生信息,需要按照以下格式输出。
二.项目过程
1.提取项目要求,按要求分成不同的模块.
2.根据各个的操作分析,采取相应的方法
添加操作:按学生属性添加成员信息
删除操作:将通过ID在学生中查找,通过返回值,判断是否存在学生,如果不为-1,即是学生的编号.
修改操作:将通过ID在学生中查找,得到学生编号,在通过Change方法,对具体的学生信息进行修改
查询操作:遍历输出成员信息.
二.代码实现
学生类 Student
package studentguangli;
import java.util.ArrayList;
public class Student {
    //成员变量
    private String id;
    private String name;
    private String sex;
    private int age;
    private String address;
    //空参的构造方法
    public Student() {
    }
    //带参的构造方法
    public Student(String id, String name, String sex, int age, String address) {
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.address = address;
    }
    //get方法和set方法
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}StudentSystem
package studentguangli;
import studyone.ArrUtill;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class StudentSystem {
    public static void main(String[] args) {
        ArrayList<Student> list=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 choice=sc.next();
            switch (choice){
                case "1":
                    Addstudent(list);
                    break;
                case "2":
                    Deletestudent(list);
                    break;
                case "3":
                    Changestudent(list);
                    break;
                case "4":
                    Findstudent(list);
                    break;
                case "5":
                    System.out.println("退出系统!");
                    System.exit(0);
                default: break;
            }
        }
    }
    public static void Addstudent(ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        String id= null;
        //判断id是否唯一
        while (true) {
            System.out.println("请输入添加学生的id:");
            id = sc.next();
            boolean flag=checkid(list,id);
            if(flag){
                System.out.println("id重复,请重新输入:");
            }else{
                break;
            }
        }
        System.out.println("请输入添加学生的姓名:");
        String name=sc.next();
        System.out.println("请输入添加学生的性别:");
        String sex=sc.next();
        System.out.println("请输入添加学生的年龄:");
        int age=sc.nextInt();
        System.out.println("请输入添加学生的家庭住址:");
        String address=sc.next();
        Student s=new Student(id,name,sex,age,address);
        list.add(s);
        System.out.println("学生信息添加成功!");
    }
    public static void Deletestudent(ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("请输入要删除的学生id:");
            String id=sc.next();
            int k=getid(list,id);
            if(k==-1){
                System.out.println("没有找到此id的学生,请重新输入id:");
            }else{
                list.remove(k);
                System.out.println("删除成功!");
                break;
            }
        }
    }
    public static void Changestudent(ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("请输入要修改的学生id:");
            String id=sc.next();
            int k=getid(list,id);
            if(k==-1){
                System.out.println("没有找到此id的学生,请重新输入id:");
            }else{
                change(list,id,k);
                System.out.println("修改成功!");
                break;
            }
        }
    }
    public static void Findstudent(ArrayList<Student> list){
        if(list.isEmpty()){
            System.out.println("暂时没有学生信息,请添加后再查询!");
            return;
        }
        System.out.println("id\t\t姓名\t\t性别\t\t年龄\t\t家庭住址");
        for(int i=0;i< list.size();i++){
            Student s=list.get(i);
            System.out.println(s.getId()+"\t"+s.getName()+"\t  "+s.getSex()+"\t  "+s.getAge()+"\t  "+s.getAddress());
        }
    }
    public static boolean checkid(ArrayList<Student> list,String id){
//        //从学生中查找是否有相同的id
//        for(int i=0;i<list.size();i++){
//            Student s= list.get(i);
//            String sid=s.getId();
//            if(sid.equals(id)){
//                //如果有返回true
//                return true;
//            }
//        }
//        //如果没有返回false
//        return false;
        return getid(list,id)>=0;
    }
    public static int getid(ArrayList<Student> list,String id){
        //从学生中查找是否有相同的id
        for(int i=0;i<list.size();i++){
            Student s= list.get(i);
            String sid=s.getId();
            if(sid.equals(id)){
                //如果有返回该学生的序号
                return i;
            }
        }
        //如果没有返回-1
        return -1;
    }
    public static void change(ArrayList<Student> list,String id,int num){
        Scanner sc=new Scanner(System.in);
        Student s=list.get(num);
        System.out.println("你要修改的学生信息编号(1.姓名,2.性别,3.年龄,4.家庭住址)");
        int choice=sc.nextInt();
        switch (choice){
            case 1:
                System.out.println("请输入你要修改的学生姓名:");
                String newname=sc.next();
                s.setName(newname);
                break;
            case 2:
                System.out.println("请输入你要修改的学生性别:");
                String newsex=sc.next();
                s.setSex(newsex);
                break;
            case 3:
                System.out.println("请输入你要修改的学生年龄:");
                int newage=sc.nextInt();
                s.setAge(newage);
                break;
            case 4:
                System.out.println("请输入你要修改的学生家庭住址:");
                String newaddress=sc.next();
                s.setAddress(newaddress);
                break;
            default:break;
        }
    }
}
三.运行结果





















![[OpenCV学习笔记]Qt+OpenCV实现图像灰度反转、对数变换和伽马变换](https://img-blog.csdnimg.cn/direct/fc1224c2f0b84a49b017689ffa02763a.gif#pic_center)

