题目:实现此页面的所有功能
初始化
先建立一个学生类,用二维数组存储不同学生信息(学号、姓名、性别、年龄),二维数组只是起到索引作有6,创立四个一维数组实现学生不同信息的具体内容,学生类作为增删改除四个类的父类,具体内容如下:
public class Student {
public static int num = 3;
public static int[][] students = new int[num][4];
public static String[] name = {"张三", "王五", "李四", null, null, null};
public static int[] age = {15, 14, 16, 0, 0, 0, 0};
public static int[] sex = {0, 1, 0, 0, 0, 0};
public static int[] id = {1001, 1002, 1003, 0000, 0000, 000};
public void Studentt() {
for (int i = 0; i < students.length; i++) {
for (int j = 0; j < students[i].length; j++) {
switch (j) {
case 0:
students[i][j] = id[i];
break;
case 2:
students[i][j] = sex[i];
break;
case 3:
students[i][j] = age[i];
break;
default:
break;
}
}
}
}
}
测试类
flag为true时,do循环一直持续,知道输入5数字,flag赋值为false,循环结束.
输入数字i,不同数字代表不同功能,用switch获取i值,不同i值调用不同类,实现不同方法
public class Test {
public static void main(String[] args) {
System.out.println("***************欢迎进入学生管理系统**********");
//flag为true时,do循环一直持续,知道输入5数字,flag赋值为false,循环结束.
boolean flag=true;
do{
System.out.println(" 1.显示所有学生信息");
System.out.println(" 2.添加学生");
System.out.println(" 3.修改学生信息");
System.out.println(" 4.删除学生");
System.out.println(" 5.退出");
Scanner scanner = new Scanner(System.in);
//输入数字i,不同数字代表不同功能,用switch获取i值,不同i值调用不同类,实现不同方法
int i=scanner.nextInt();
switch (i){
case 1:
Print print = new Print();
print.print();
break;
case 2:
Add ad=new Add();
ad.add();
break;
case 3:
Modify modify = new Modify();
modify.modify();
break;
case 4:
Delete delete = new Delete();
delete.delete();
break;
case 5:
flag=false;
System.out.println("退出成功");
break;
}
}
while (flag);
}
}
实现功能1:将学生信息显示出来
循环遍历二位数字students[i][j],i值表示有i个学生,j值为j个学生属性 具体内容显示调用父类数组id[i]、name[i]、sex[i]、age[i]
用0,1值代表女、男,
public class Print extends Student {
public void print() {
//调用父类方法
super.Studentt();
//循环遍历二位数字students[i][j],i值表示有i个学生,j值为j个学生属性
// 具体内容显示调用父类数组id[i]、name[i]、sex[i]、age[i]
//用0,1值代表女、男,
for (int i = 0; i < num; i++) {
for (int j = 0; j < students[1].length; j++) {
switch (j) {
case 0:
System.out.print(id[i]);
break;
case 1:
System.out.print(" " + name[i]);
break;
case 2:
if (sex[i] == 0) {
System.out.print(" " + "女");
} else if(sex[i] == 1){
System.out.print(" " + "男");
}
else if(sex[i] == 3){
System.out.print(" " + "null");
}
break;
case 3:
System.out.print(" " + age[i]);
break;
default:
break;
}
}
System.out.println();
}
}
}
实现功能2,添加学生
这里会有个很大的问题,数组的长度是不能变的,所以要实现增加学生人数又不改变数组长度,我是设了num值来显示二维数组长度。但是另外4个一维数组,我是直接多开辟几个空的空间的数组。
public static String[] name = {"张三", "王五", "李四", null, null, null};
public static int[] age = {15, 14, 16, 0, 0, 0, 0};
public static int[] sex = {0, 1, 0, 0, 0, 0};
public static int[] id = {1001, 1002, 1003, 0000, 0000, 000};
public static int[][] students = new int[num][4];
每增加以为一位学生,num+1,数组长度+1
public class Add extends Student {
public void add() {
Scanner scanner = new Scanner(System.in);
num +=1;
System.out.println("请输入学号");
id[num-1]=scanner.nextInt();
System.out.println("请输入姓名");
super.name[num-1]=scanner.next();
System.out.println("请输入性别");
if(scanner.next()=="女"){
sex[num-1]=0;
}
else {
sex[num-1]=1;
}
System.out.println("请输入年龄");
int age=scanner.nextInt();
super.age[num-1]=age;
Student st= new Student();
st.Studentt();
System.out.println("输入成功");
}
}
实现功能3:修改学生信息
通过查找学生id号来修改学生信息。
import java.util.Scanner;
public class Modify extends Student {
public void modify() {
System.out.println("请选择您想修改的学号");
Scanner scanner = new Scanner(System.in);
int idd=scanner.nextInt();
boolean flag=true;
for (int i = 0; i < num; i++) {
for (int j = 0; j < students[1].length; j++) {
if(id[i]==idd){
System.out.println("请重新设立学号");
id[i]=scanner.nextInt();
System.out.println("请重新设定名字");
name[i]=scanner.next();
System.out.println("请重新设定性别:0.女 1.男");
sex[i]=scanner.nextInt();
System.out.println("请重新设定年龄");
age[i]=scanner.nextInt();
Student st= new Student();
st.Studentt();
System.out.println("修改成功");
flag=false;
}
else {
break;
}
}
}
if(flag){
System.out.println("没有该学生");
}
}
}
实现功能4:删除学生信息
通过查找学生id号来删除学生信息,将数组信息直接回复(String数组初始值为null),0(int数组初始值为0)。
public class Delete extends Student {
public void delete() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要删除的学号");
boolean flag=true;
int im = scanner.nextInt();
for (int i = 0; i < num; i++) {
for (int j = 0; j < students[1].length; j++) {
if (id[i] == im) {
name[i] = "该号学生已被注销";
super.id[i] = 0;
super.age[i] = 0;
super.sex[i] = 3;
Student st = new Student();
st.Studentt();
System.out.println("删除成功");
flag=false;
} else {
break;
}
}
}
if(flag){
System.out.println("没有该学生信息");
}
}
}
在这里插入图片描述