当前位置: 首页 > 知识库问答 >
问题:

使用数组添加、查看、更新和删除学生记录

章晗日
2023-03-14

我的代码需要帮助。我停留在2(查看学生记录),我们只允许使用数组,而不允许使用数组列表或链接列表。任何建议和帮助都可以。

以下是说明:编写一个菜单驱动程序,执行以下操作:

1.添加记录 - 可以将N个学生记录添加到列表中(ID编号,姓名,课程,年份)

2.查看记录-可以按ID号、按课程、按课程和年份查看记录-或查看全部

3.更新记录 - 可以编辑/修改记录属性,不包括ID

4.Delete-可以删除学生记录

这是我的代码:

import java.util.Scanner;

public class StudentArray {

public static void main(String[] args){

    getMenu();

}
public static void getMenu( ){
    Student[] stud = new Student[100];

    Scanner sc = new Scanner(System.in);
    int select;
    System.out.println("1. Add Student Record");
    System.out.println("2. View Student Record");
    System.out.println("3. Update Student Record");
    System.out.println("4. Delete Student Record");
    System.out.println("0. Exit");
    select = sc.nextInt();

    switch (select){
        case 1:
            addStud(stud);
            getMenu();
            break;
        case 2:
            viewStud(stud);
            getMenu();
            break;
        case 3:
            break;
        case 4:
            break;
        case 0:
            break;
        default:
    }

}
public static void addStud(Student[] stud){
    Scanner sc = new Scanner(System.in);
     int numID, year;
     String userName, course;

    int addMore;
    int i = 0;
    do{

        System.out.println("1. Enter Student ID: ");
         numID = sc.nextInt();
        sc.nextLine();
        System.out.println("2. Enter Student Name");
         userName = sc.nextLine();
        System.out.println("3. Enter Student Course");
         course = sc.nextLine();
        System.out.println("4. Enter Student Year");
         year = sc.nextInt();
         stud[i] = new Student(numID, year, userName, course);
        ++i;

        System.out.println("To add another Student Record Press 1");
        addMore = sc.nextInt();
    }while (addMore == 1 );

}
public static void viewStud(Student[] stud){
    for(int x = 0; x < stud.length ; ++x){
        System.out.println("1. Student ID: " + stud[x].getNumID());
        System.out.println("2. Student Name: " + stud[x].getUserName());
        System.out.println("3. Student Course: " + stud[x].getCourse());
        System.out.println("4. Student Year: " + stud[x].getYear() + "\n");
    }

}
}

我的学生班级:

public class Student {

private int numID, year;
private String userName, course;

public Student(int numID, int year, String userName, String course) {

    this.numID = numID;
    this.year = year;
    this.userName = userName;
    this.course = course;

}


public int getNumID() {
    return numID;
}

public void setNumID(int numID) {
    this.numID = numID;
}

public int getYear() {
    return year;
}

public void setYear(int year) {
    this.year = year;
}

public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}

public String getCourse() {
    return course;
}

public void setCourse(String course) {
    this.course = course;
}

}

你好,谢谢你,SNJ,

我删除了getMenu方法,并将代码放在主instead.But我无法将学生数组和i设置为静态

import java.util.Scanner;

公共类学生数组{

    public static void main(String[] args) {

        static Student[] stud = new Student[100];
        static int i = 0;

        Scanner sc = new Scanner(System.in);
        while (true) {

            int select;
            System.out.println("1. Add Student Record");
            System.out.println("2. View Student Record");
            System.out.println("3. Update Student Record");
            System.out.println("4. Delete Student Record");
            System.out.println("0. Exit");
            select = sc.nextInt();

            switch (select) {
                case 1:
                    addStud(stud);
                    break;
                case 2:
                    viewStud(stud);
                    break;
                case 3:
                    break;
                case 4:
                    break;
                case 0:
                    return;
                default:
                    System.out.println("Invalid Option");
            }
        }

    }

    public static void addStud(Student[] stud) {
        Scanner sc = new Scanner(System.in);
        int numID, year;
        String userName, course;

        int addMore;

        do {

            System.out.println("1. Enter Student ID: ");
            numID = sc.nextInt();
            sc.nextLine();
            System.out.println("2. Enter Student Name");
            userName = sc.nextLine();
            System.out.println("3. Enter Student Course");
            course = sc.nextLine();
            System.out.println("4. Enter Student Year");
            year = sc.nextInt();
            stud[i] = new Student(numID, year, userName, course);
            ++i;

            System.out.println("To add another Student Record Press 1");
            addMore = sc.nextInt();
        } while (addMore == 1);

    }

    public static void viewStud(Student[] stud) {

        for (Student element : stud) {
            if (null != element) {
                System.out.println("1. Student ID: " + element.getNumID());
                System.out.println("2. Student Name: " + element.getUserName());
                System.out.println("3. Student Course: " + element.getCourse());
                System.out.println("4. Student Year: " + element.getYear() + "\n");
            }
        }

    }

共有1个答案

司徒斌
2023-03-14

在方法调用之间,你失去了学生的价值。如果您将Student array和I设为static,它将在方法调用之间保留您的值。

import java.util.Scanner;

public class StudentArray {

public static void main(String[] args){

static Student[] stud = new Student[100];
    static int i = 0;

    public static void main(String[] args) {

    getMenu();

    }

    public static void getMenu() {
 Scanner sc = new Scanner(System.in);
    while (true) {

        int select;
        System.out.println("1. Add Student Record");
        System.out.println("2. View Student Record");
        System.out.println("3. Update Student Record");
        System.out.println("4. Delete Student Record");
        System.out.println("0. Exit");
        select = sc.nextInt();

        switch (select) {
        case 1:
        addStud(stud);

        break;
        case 2:
        viewStud(stud);

        break;
        case 3:
        break;
        case 4:
        break;
        case 0:
        return;
        default:
        System.out.println("Invalid Option");
        }
    }

    }

    public static void addStud(Student[] stud) {
    Scanner sc = new Scanner(System.in);
    int numID, year;
    String userName, course;

    int addMore;

    do {

        System.out.println("1. Enter Student ID: ");
        numID = sc.nextInt();
        sc.nextLine();
        System.out.println("2. Enter Student Name");
        userName = sc.nextLine();
        System.out.println("3. Enter Student Course");
        course = sc.nextLine();
        System.out.println("4. Enter Student Year");
        year = sc.nextInt();
        stud[i] = new Student(numID, year, userName, course);
        ++i;

        System.out.println("To add another Student Record Press 1");
        addMore = sc.nextInt();
    } while (addMore == 1);

    }

    public static void viewStud(Student[] stud) {

    for (Student element : stud) {
        if (null != element) {
        System.out.println("1. Student ID: " + element.getNumID());
        System.out.println("2. Student Name: " + element.getUserName());
        System.out.println("3. Student Course: " + element.getCourse());
        System.out.println("4. Student Year: " + element.getYear() + "\n");
        }
    }

    }
 类似资料:
  • 本文向大家介绍ORACLE学习笔记-添加更新数据函数篇,包括了ORACLE学习笔记-添加更新数据函数篇的使用技巧和注意事项,需要的朋友参考一下 一、添加数据 说明:如果不指定将数据添加到那个字段,那么此时必须列出全部数据,如果列出字段,则一一对应,必须列出约束不为空的所有字段,否则报错。 二、更新数据 说明:SET后面为你要更新的数据,WHERE后面为条件 三、增加列 说明:在STU中增加KC_N

  • 利用UPDATE和DELETE语句进行操作表数据。 更新数据 UPDATE用来更新修改表中的数据 更新表中特定的行 更新表中所有行 注意: 如果省略了WHERE子句,就会更新所有行。 UPDATE语句有三个部分组合 要更新的表 列名和他们的新值 确定要更新哪些行的过滤条件 mysql> UPDATE Customers -> SET cust_email = '[email protect

  • SQLAlchemy 1.4 / 2.0 Tutorial 此页是 SQLAlchemy 1.4/2.0教程 。 上一次: 使用核心或ORM选择行 |下一步: |next| 使用核心更新和删除行 到目前为止,我们已经讨论过 Insert ,这样我们就可以将一些数据放入我们的数据库中,然后花费大量时间在 Select 其处理用于从数据库检索数据的广泛的使用模式。在本节中,我们将介绍 Update 和

  • 本文向大家介绍详解Linux添加/删除用户和用户组,包括了详解Linux添加/删除用户和用户组的使用技巧和注意事项,需要的朋友参考一下 本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数。废话不多说,下面我们来看一下。 1、建用户: adduser phpq                             //新建phpq用户 passwd phpq            

  • 问题内容: 我正在尝试添加和删除被单击的li元素上的类。这是一个菜单,当我单击每个li项目时,我希望它获得该课程,而所有其他li项目都将其删除。因此,一次只有一个li项目上课。这就是我走了多远(见小提琴)。我不确定如何使“ about-link”从当前类开始,但是当单击其他li项之一时将其删除吗? 问题答案: 为什么不尝试这样的事情?