小陈。。。 2022-10-16 17:21 采纳率: 0%
浏览 23

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

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 <infoCount ; 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 <infoCount ; 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();
    
    }
    }
  • 写回答

1条回答 默认 最新

  • 夜郎king 2022博客之星IT其它领域TOP 12 2022-10-17 09:32
    关注

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

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

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

    评论

报告相同问题?

问题事件

  • 创建了问题 10月16日