如何改成面向对象的程序设计

img

import java.util.Scanner;

/**

  • 学生信息管理系统练习程序
  • /
    public class StudentAppDemo1 {
    private String[][] info=new String[200][7];//存储最多200名学生的信息,行表示某个学生,列学生某个信息
    private int infoCount=0;//目前存储的学生人数
    private Scanner sc=new Scanner(System.in);
    //初始化学生信息,程序开始时,先初始化一名学生的信息
    public void init(){
      info[0][0]=String.valueOf(++infoCount);
      info[0][1]="20211812001";
      info[0][2]="张三丰";
      info[0][3]="男";
      info[0][4]="1503-03-21";
      info[0][5]="13265438765";
      info[0][6]="武当山";
    
    }
    //菜单
    public void menu(){
      System.out.println("\t学生信息管理系统");
      System.out.println("1-------添加学生");
      System.out.println("2-------编辑学生");
      System.out.println("3-------删除学生");
      System.out.println("4-------显示学生");
      System.out.println("5-------查询学生");
      System.out.println("6-------退出学生");
      System.out.println("\t请选择你的操作:");
    
    }
    //添加学生信息
    public void addStudentInfo(){
      System.out.println("请输入编号");
      info[infoCount][0]=sc.nextLine();
      System.out.println("请输入学生学号");
      info[infoCount][1]=sc.nextLine();
      System.out.println("请输入学生姓名");
      info[infoCount][2]=sc.nextLine();
      System.out.println("请输入学生性别");
      info[infoCount][3]=sc.nextLine();
      System.out.println("请输入生日");
      info[infoCount][4]=sc.nextLine();
      System.out.println("请输入手机号码");
      info[infoCount][5]=sc.nextLine();
      System.out.println("请输入家庭地址");
      info[infoCount][6]=sc.nextLine();
      infoCount++;
    
    }
    //编辑学生信息
    public void editStudentInfo(){
      showStudentsInfo();
      int n=0;
      do{
          System.out.println("请输入你欲编辑学生信息的编号");
          n=Integer.valueOf(sc.nextLine());
      }while(n<1 || n>infoCount);
      System.out.println("请输入学生学号");
      info[n-1][1]=sc.nextLine();
      System.out.println("请输入学生姓名");
      info[n-1][2]=sc.nextLine();
      System.out.println("请输入学生性别");
      info[n-1][3]=sc.nextLine();
      System.out.println("请输入生日");
      info[n-1][4]=sc.nextLine();
      System.out.println("请输入手机号码");
      info[n-1][5]=sc.nextLine();
      System.out.println("请输入家庭地址");
      info[n-1][6]=sc.nextLine();
    
    }
    //删除学生信息
    public void delStudentInfo(){
      showStudentsInfo();
      int n=0;
      do{
          System.out.println("请输入你欲编辑学生信息的编号");
          n=Integer.valueOf(sc.nextLine());
      }while(n<1 || n>infoCount);
      for (int i = n; i < infoCount; i++) {
          info[i-1]=info[i];
      }
      infoCount--;
    
    }
    //显示所有学生信息
    public void showStudentsInfo(){
      System.out.println();
      System.out.println("编号\t学号\t姓名\t性别\t生日\t手机号码\t家庭住址");
      for (int i = 0; i for (int j = 0; j <info[i].length ; j++) {
              System.out.print(info[i][j]+"\t");
          }
          System.out.println();
      }
      System.out.println();
    
    }
    //查询学生信息(根据姓名)
    public void findStudentByName(){
      System.out.println("请输入学生的姓名");
      String name=sc.nextLine();
      for (int i = 0; i if(info[i][2].equals(name)){
              System.out.println("编号\t学号\t姓名\t性别\t生日\t手机号码\t家庭住址");
              for (int j = 0; j < 7; j++) {
                  System.out.print(info[i][j]+"\t");
              }
              break;
          }
      }
      System.out.println();
    
    }
    //程序执行流程
    public void programFlow(){
      init();//初始化数据
      while (true){
          menu();
          String opera=sc.nextLine();
          switch (opera){
              case "1":
                  addStudentInfo();
                  break;
              case "2":
                  editStudentInfo();
                  break;
              case "3":
                  delStudentInfo();
                  break;
              case "4":
                  showStudentsInfo();
                  break;
              case "5":
                  findStudentByName();
                  break;
              case "6":
                  System.exit(1);
                  default:
                      System.out.println("输入有误,请生新输入");
          }
      }
    
    }
    //主方法,启动程序执行
    public static void main(String[] args) {
      new StudentAppDemo1().programFlow();
    
    }
    }

可以将学生、操作等封装成相关的类,以下代码,供你参考:

public Class Student{
      private String sno;
      private String name;
      private Integer age;
      private String age;
}

public Class StuOpt{
        private ArrayList list = new ArrayList();
        public void addStudent(Student student){
           list.add(student);
       };

      public void removeStudent(Student student){
       //remove
      }
}

等等,按照这种模式将代码进行面向对象封装,按照业务流程组装即可。希望可以解决你的问题。