JAVA面向对象编程---学生管理系统

今天分享一个简单的Java面向对象编程练习---学生管理系统

首先我们要写一个学生类,属性包含学号,姓名,年龄,居住地,有参无参的构造方法(此处可以Alt+insert(有些电脑需要加fn)直接进行构造~会让你节省很多时间),代码如下 

package com.one;
/*
学生类   Alt+insert+fn
 */
public 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;
    }

    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;
    }
}

  2.第二步就是去编写学生管理系统啦

  1.    创建学生对象,用于存储学生数据
 ArrayList<Student>array=new ArrayList<Student>();

     2.主页面的编写(注意:用到循环是为了选择之后能够再次回到主页面)

 while (true) {
            //1.用输出语句完成主界面的编写
            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("请输入你的选择");

     3.键盘录入数据,通过switch语句完成操作的选择

  // 2.用scanner实现键盘录入数据
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();

            //3.用swith语句完成操作的选择
            switch (line) {
                case "1":
//                    System.out.println("添加学生");
                    addStudent(array);
                    break;
                case "2":
//                    System.out.println("删除学生");
                    deleteStudent(array);
                    break;
                case "3":
//                    System.out.println("修改学生");
                    updateStudet(array);
                    break;
                case "4":
//                    System.out.println("查看所以学生");
                    FindallStudent(array);
                    break;
                case "5":
                    System.out.println("谢谢使用");
//                    break;
                    System.exit(0); //JVM退出

  可以看到case有方法调用,这里就是我们学生管理系统的功能了,分别是增删改查的简单功能,    这里我选择把方法直接写在本类里,废话少说,直接看代码吧!

  (1)添加学生

     

 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) {
            //如果与集合中的某一个学生学号相同,返回true,反之false
          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;
    }

  (2)删除学生的方法

 //定义一个方法,用于删除学生
    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)) {
               index=i;
               break;
           }
       }
       if (index==-1) {
           System.out.println("该信息不存在,请重新输入");
       } else {
           array.remove(index);
           //给出删除学生的提示
           System.out.println("删除学生成功");
       }
    }

   (3)修改学生的方法

     

//定义一个方法,用于修改学生
    public  static void updateStudet(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)) {
                array.set(i,s);
                break;
            }
        }
        System.out.println("修改学生成功");
    }

  好啦,我们的学生管理系统就算写完了!!

  完整代码如下

package com.one;

//学生管理系统

import java.util.ArrayList;
import java.util.Scanner;

/*
  主页面的代码编写
  1.用输出语句完成主界面的编写
  2.用scanner实现键盘录入数据
  3.用switch语句完成操作的选择
  4.用循环再次回到主界面
 */
public class StudentManager {
    public static void main(String[] args) {
        //创建学生对象,用于存储学生数据
        ArrayList<Student>array=new ArrayList<Student>();
        //4.用循环再次回到主界面
        while (true) {
            //1.用输出语句完成主界面的编写
            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("请输入你的选择");

            // 2.用scanner实现键盘录入数据
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();

            //3.用swith语句完成操作的选择
            switch (line) {
                case "1":
//                    System.out.println("添加学生");
                    addStudent(array);
                    break;
                case "2":
//                    System.out.println("删除学生");
                    deleteStudent(array);
                    break;
                case "3":
//                    System.out.println("修改学生");
                    updateStudet(array);
                    break;
                case "4":
//                    System.out.println("查看所以学生");
                    FindallStudent(array);
                    break;
                case "5":
                    System.out.println("谢谢使用");
//                    break;
                    System.exit(0); //JVM退出

            }
        }
    }

    //定义一个方法,用于添加学生信息
    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) {
            //如果与集合中的某一个学生学号相同,返回true,反之false
          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 FindallStudent(ArrayList<Student> array) {
        //判断集合中是否有数据,如果没有显示提示信息
        if (array.size()==0){
            System.out.println("无信息,请先添加信息在查询");
            //为了让程序不在往下执行,给出return;
            return;
        }
        //显示表头信息
        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\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)) {
               index=i;
               break;
           }
       }
       if (index==-1) {
           System.out.println("该信息不存在,请重新输入");
       } else {
           array.remove(index);
           //给出删除学生的提示
           System.out.println("删除学生成功");
       }
    }

    //定义一个方法,用于修改学生
    public  static void updateStudet(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)) {
                array.set(i,s);
                break;
            }
        }
        System.out.println("修改学生成功");
    }


}



  运行的效果图

  有问题可以留言哦,看到就会解答!!我们一起共同进步

猜你喜欢

转载自blog.csdn.net/wuyomhchang/article/details/123596394