学生信息管理系统(java作业)

作业要求:

定义学生类:
(1)成员变量:学号(String),姓名(String),专业(String)。
(2)构造方法:已知学号,姓名,专业创建学生对象。
(3) 编写获取学生信息的方法public String info(),学生信息格式要求如下: 学号***,姓名***,专业***。
定义学生集合类StudentGroup(用数组实现)。

  • 成员变量:学生数组,学生实际个数size;
  • 构造方法:创建学生数组,长度为100,size初值为0。
  • 编写添加一条学生记录、根据学号修改学生记录、根据学号删除记录、列出所有学生记录、记录按学号排序的五个方法(add,update,delete,query,sort)。功能尽量考虑全面,比如添加记录时学号不能重复,且超过数组长度给出提示不能添加。

代码如下:

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;


class Student {//单个学生
  String NO,name,major;
  public Student() {
    this.NO=null;
    this.name=null;
    this.major=null;
  }
  public Student(String NO,String name,String major) {
    this.NO=NO;
    this.name=name;
    this.major=major;
  }
  public void update(String name,String major) {
    this.name=name;
    this.major=major;
  }
  public String info() {
    return "学号:\t"+this.NO+"\n姓名:\t"+this.name+"\n专业:\t"+this.major+"\n";
  }
}

class StudentGroupClass {
  Scanner stuIn=new Scanner(System.in);
  Student[] StudentGroup=new Student[100];//学生数据库
  int size=0;
  public void add() {//正常的添加信息
    System.out.println("输入要添加的学生记录:学号,姓名,专业。");
    Student student=new Student(stuIn.next(),stuIn.next(),stuIn.next());
    if(size>=100) {
      System.out.println("容量已满,无法添加!");
      return;
    }
    for(int i=0;i<size;i++) {
      if(StudentGroup[i].NO.equals(student.NO)){
        System.out.println("学号重复,无法添加!");
        return;
        }
      }
    StudentGroup[size++]=student;
    System.out.println("添加完成\n");
    }
  public void add(String no) {//额外添加的学生信息
    System.out.println("输入学号为"+no+"的学生的姓名与专业");
    Student student=new Student(no,stuIn.next(),stuIn.next());
    if(size>=100) {
      System.out.println("容量已满,无法添加!");
      return;
    }
    for(int i=0;i<size;i++) {
      if(StudentGroup[i].NO.equals(student.NO)){
        System.out.println("学号重复,无法添加!");
        return;
        }
      }
    StudentGroup[size++]=student;
    System.out.println("添加完成\n");
    }
  public void update() {//修改
    System.out.println("输入想要修改学生的学号");
    String no=stuIn.next();
    int index=0;
    boolean flag=false;
    for(int i=0;i<size;i++) {
      if(StudentGroup[i].NO.equals(no)) {
        index=i;
        flag=true;
        break;
      }
    }
    if(flag) {
      System.out.println("对学号为"+no+"的同学信息进行更改,输入你想改成的名字和专业");
      StudentGroup[index].update(stuIn.next(),stuIn.next());
      System.out.println("修改完成");
      return;
    }
    System.out.println("未找到该学生,按Y把该学生添加到数据库?任意键返回");
    char judge=stuIn.next().charAt(0);
    if(judge=='Y'||judge=='y') {
      add(no);
    }
    System.out.println("操作完成\n");
  }
  public void delete() {//删除
    System.out.println("输入想要删除学生的学号");
    String no=stuIn.next();
    int index=0;
    boolean flag=false;
    for(int i=0;i<size;i++) {
      if(StudentGroup[i].NO.equals(no)) {
        index=i;
        flag=true;
        break;
      }
    }
    if(flag) {
      System.out.println("已经找到这条记录");
      System.out.println(StudentGroup[index].info()+"\n是否删除?(按Y确认,任意键取消该操作)\n");
      char judge=stuIn.next().charAt(0);
      if(!(judge=='y'||judge=='Y')) return;
      else {
        size-=1;
        for(int i=index;i<size;i++)
          StudentGroup[i]=StudentGroup[i+1];
        System.out.println("删除成功!");
      }
      
    }
  }
  public void query() {
    for(int i=0;i<size;i++) {
      System.out.println("数据库中的第"+(i+1)+"个记录\n"+StudentGroup[i].info());
    }
    System.out.println("输出完成\n");
  }
  public void sort() {
    Arrays.sort(StudentGroup,0,size,new Comparator<Student>() {
      public int compare(Student A, Student B) {
         return Integer.parseInt(A.NO)-Integer.parseInt(B.NO);
        }
      });
    System.out.println("排序完成!\n输出排序结果:\n");
    query();
  }
}


public class Main
{
  static Scanner cin=new Scanner(System.in);
  public static void menu(){
    System.out.println("**********学生信息管理系统**********");
    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("***********************************");
  }
  public static void main(String []args)
  {
    StudentGroupClass yuheng=new StudentGroupClass();
    int judge;
    while(true) {
      menu();
      judge=cin.nextInt();
      switch(judge) {
        case 1:{
          yuheng.add();
          break;
        }
        case 2:{
          yuheng.update();
          break;
        }
        case 3:{
          yuheng.sort();
          break;
        }
        case 4:{
          yuheng.query();
          break;
        }
        case 5:{
          System.out.println("系统成功退出!");
          System.exit(0);
          break;
        }
      }
    }
  }
}

 

发表评论

电子邮件地址不会被公开。