我的代码需要帮助。我被困在2(查看学生记录),我们只允许使用数组而不是数组列表或链表。任何建议和帮助都可以。
说明如下: 编写一个菜单驱动程序来执行以下操作:
1.添加记录 - 可以添加N个学生记录到列表中(ID号,姓名,类(class),年份)
2.查看记录 - 可以按ID号、按类(class)、按类(class)和年份查看记录 - 或查看全部
3.更新记录 - 可以编辑/修改除ID之外的记录属性
4.删除 - 可以删除学生记录
这是我的代码:
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");
}
}
}
我的学生类(class):
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 方法并将代码放在 main 中。但是我无法将 Student 数组和 i 设置为静态
import java.util.Scanner;
公共(public)类StudentArray {
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");
}
}
}
最佳答案
在方法调用之间您会丢失学生值。如果您将 Student 数组和 i 设置为静态,它将在方法调用之间保留您的值。
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");
}
}
}
关于java - 使用数组添加、查看、更新和删除学生记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59052101/