**
/注意,没有做用户输入类型判断,如果遇到input.nextInt();输入字符会报错
第一种、用switch做菜单
//不使用Arrays类的方法
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO 自动生成的方法存根
// TODO 5.初始为3 同学信息保存
//一个数组保存学员姓名
//一个数组保存学员成绩
//一个数组保存学员性别
//功能一:添加数据 保存同学的信息 用户可持续输入 选择n时结束
//功能二:遍历展示所有信息 没有信息时提示先添加数据
// 姓名 性别 成绩
// 张三 男 89
//功能三:输入待修改信息的学员姓名 修改其成绩及性别
//功能四:输入待查询信息的学员姓名 展示展示其姓名及学员信息
//功能五:输入性别 展示该性别所有学员的信息
//功能六:输入一个成绩 展示所有大于等于这个成绩的学员信息
//功能七:退出应用程序
//要求项目可以循环执行菜单选择 用户选择7时 退出应用 其他情况提示输入有误
String[] names = new String[3];
int[] scores = new int[3];
char[] sexs = new char[3];
Scanner input = new Scanner(System.in);
int num = 0;//存入用户输入的选择
int num2 = -1;//数组索引变量
String name = null;//存放用户输入的姓名
char sex = ' ';//存放用户输入的性别
int score = 0;//保存用户输入的成绩判断条件
boolean bool = true;//输出提示判断标记
boolean quit = false;//退出判断标记
while(true) {//循环执行菜单
System.out.println("菜单\n1.添加 2.查看全部 3.修改 4.条件查询(姓名)\n"
+ "5.成绩查询(大于当前输入成绩)6.条件查询(性别)7.退出");
System.out.println("=================================================");
num = input.nextInt();
System.out.println("==========================================");
switch(num) {
case 1://添加
num2=0;
while(true) {//循环添加
if(num2>=2) {//当数组没有空间开辟空间
String[] names2 =new String[names.length+2];
int[] scores2 = new int[scores.length+2];
char[] sexs2 = new char[sexs.length+2];
for(int i = 0;i<names.length;i++) {
names2[i]=names[i];
scores2[i]=scores[i];
sexs2[i]=sexs[i];
}
names=names2;
scores=scores2;
sexs=sexs2;
}
//System.out.println(num2);
System.out.println("请输入姓名:");
names[num2]=input.next();//保存姓名数据
System.out.println("==========================================");
System.out.println("请输入成绩:");
scores[num2]=input.nextInt();//保存成绩数据
System.out.println("==========================================");
System.out.println("请输入性别:");
sexs[num2]=input.next().charAt(0);//保存性别数据
System.out.println("==========================================");
System.out.println("是否继续添加y/n:");
if(input.next().equals("n")) {//判断是否继续添加
System.out.println("==========================================");
break;
}
System.out.println("==========================================");
num2++;
}
break;
case 2://查询全部
System.out.println("学生信息");
//System.out.println(name);
if(num2==-1) {//判断数组中是否有数据,没有数据输出提示并返回
System.out.println("没有学生信息,请添加学生信息");
System.out.println("==========================================");
System.out.println("返回菜单");
System.out.println("==========================================");
continue;
}
for(int i = 0;i<=num2;i++) {//遍历数组
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
}
break;
case 3://修改信息
System.out.println("请输入你要修改学生的姓名:");
name = input.next();
System.out.println("==========================================");
int num3 = 0;
bool=true;
for(int i = 0;i <num2;i++) {
if(names[i].equals(name)) {
bool=false;
num3=i;
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
break;
}
}
if(bool) {//判断bool初始值是否更改
System.out.println("未找到学生信息,返回菜单");
System.out.println("==========================================");
continue;//返回菜单
}
while(true) {//循环修改
System.out.println("请选择你要修改的信息:\n1.姓名2.性别3.成绩");
num=input.nextInt();
System.out.println("==========================================");
if(num==1) {//修改姓名
System.out.println("请输入姓名");
names[num3]=input.next();
System.out.println("修改成功");
System.out.println("==========================================");
}else if(num==2) {//修改性别
System.out.println("请输入性别");
sexs[num3]=input.next().charAt(0);
System.out.println("修改成功");
System.out.println("==========================================");
}else if(num==3) {//修改成绩
System.out.println("请输入成绩");
scores[num3]=input.nextInt();
System.out.println("修改成功");
System.out.println("==========================================");
}else {//输入其他数字
System.out.println("输入有误,请重新选择");
System.out.println("==========================================");
continue;
}
//是否返回修改此学生其它信息
System.out.println("是否修改其他信息y/n(返回):");
if(input.next().equals("y")) {
System.out.println("==========================================");
continue;
}else {
System.out.println("==========================================");
break;
}
}
break;
case 4://条件查询(姓名)
System.out.println("请输入你要查询学生的姓名:");
name = input.next();
System.out.println("==========================================");
if(num2==-1) {//判断数组中是否有数据,没有数据输出提示并返回
System.out.println("没有学生信息,请添加学生信息");
System.out.println("==========================================");
System.out.println("返回菜单");
System.out.println("==========================================");
continue;
}
bool=true;
for(int i = 0;i <=num2;i++) {//遍历查询是否有这个学生
if(names[i].equals(name)) {
bool=false;
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
break;
}
}
//未查询到
if(bool) {
System.out.println("没有查询到信息");
System.out.println("==========================================");
}
break;
case 5://成绩查询
System.out.println("请输入你要查询学生的成绩(大于等于当前输入分数):");
score = input.nextInt();
System.out.println("==========================================");
if(num2==-1) {
System.out.println("没有学生信息,请先添加学生信息");
System.out.println("==========================================");
System.out.println("返回菜单");
System.out.println("==========================================");
continue;
}
bool =true;
for(int i = 0;i <=num2;i++) {//遍历数组
if(scores[i]>score) {//判断条件是否满足
bool=false;
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
}
}
//未查询到
if(bool) {
System.out.println("没有查询到信息");
System.out.println("==========================================");
}
break;
case 6://条件查询(性别)
System.out.println("请输入你要查询学生的性别:");
sex = input.next().charAt(0);
System.out.println("==========================================");
//判断整改数组是否有数据
if(num2==-1) {
System.out.println("没有学生信息,请先添加学生信息");
System.out.println("==========================================");
System.out.println("返回菜单");
System.out.println("==========================================");
continue;
}
bool=true;
for(int i = 0;i <=num2;i++) {//遍历数组
if(sexs[i]==sex) {//判断条件是否满足
bool=false;
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
}
}
if(bool) {
System.out.println("没有查询到信息");
System.out.println("==========================================");
}
break;
case 7://退出
//System.out.println("退出程序");
quit=true;
//return;
break;
default:
System.out.println("输入有误,请重新输入");
System.out.println("==========================================");
continue;
}
if(quit) {//退出
System.out.println("退出程序");
break;
}
//返回菜单/退出程序
System.out.println("是否返回菜单y/n(退出):");
if(input.next().equals("y")) {
System.out.println("==========================================");
continue;
}else {
System.out.println("已退出程序");
System.out.println("==========================================");
break;
}
}
}
}
第二种、使用if做菜单,并使用Arrays方法
import java.util.Arrays;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO 5.初始为3 同学信息保存
//一个数组保存学员姓名
//一个数组保存学员成绩
//一个数组保存学员性别
//功能一:添加数据 保存同学的信息 用户可持续输入 选择n时结束
//功能二:遍历展示所有信息 没有信息时提示先添加数据
// 姓名 性别 成绩
// 张三 男 89
//功能三:输入待修改信息的学员姓名 修改其成绩及性别
//功能四:输入待查询信息的学员姓名 展示展示其姓名及学员信息
//功能五:输入性别 展示该性别所有学员的信息
//功能六:输入一个成绩 展示所有大于等于这个成绩的学员信息
//功能七:退出应用程序
//要求项目可以循环执行菜单选择 用户选择7时 退出应用 其他情况提示输入有误
String[] names = new String[3];
int[] scores = new int[3];
char[] sexs = new char[3];
Scanner input = new Scanner(System.in);
int num = 0;//存入用户输入的选择
int num2 = -1;//数组索引变量
String name = null;//存放用户输入的姓名
char sex = ' ';//存放用户输入的性别
int score = 0;//保存用户输入的成绩判断条件
boolean bool = true;
while(true) {//循环执行菜单
System.out.println("菜单\n1.添加 2.查看全部 3.修改 4.条件查询(姓名)\n"
+ "5.成绩查询(大于当前输入成绩)6.条件查询(性别)7.退出");
num = input.nextInt();
if(num==1) {//添加
num2=0;
while(true) {//循环添加
if(num2>=2) {//当数组没有空间开辟空间
// String[] names2 =new String[names.length+2];
// int[] scores2 = new int[scores.length+2];
// char[] sexs2 = new char[sexs.length+2];
// for(int i = 0;i<names.length;i++) {
// names2[i]=names[i];
// scores2[i]=scores[i];
// sexs2[i]=sexs[i];
// }
//使用Arrays类中的copyOf复制老数组并扩容两位数组空间
String[] names2=Arrays.copyOf(names, names.length+2);
int[] scores2=Arrays.copyOf(scores, scores.length+2);
char[] sexs2=Arrays.copyOf(sexs, sexs.length+2);
//将新数组地址赋值给老数组
names=names2;
scores=scores2;
sexs=sexs2;
}
System.out.println(num2);
System.out.println("请输入姓名:");
names[num2]=input.next();//保存姓名数据
System.out.println("请输入成绩:");
scores[num2]=input.nextInt();//保存成绩数据
System.out.println("请输入性别:");
sexs[num2]=input.next().charAt(0);//保存性别数据
System.out.println("是否继续添加y/n:");
if(input.next().equals("n")) {//判断是否继续添加
break;
}
num2++;
}
}else if(num==2) {//查看全部
System.out.println("学生信息");
//System.out.println(name);
if(num2==-1) {//判断数组中是否有数据,没有数据输出提示并返回
System.out.println("没有学生信息,请添加学生信息");
System.out.println("返回菜单");
continue;
}
for(int i = 0;i<=num2;i++) {//遍历数组
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
}
//返回菜单/退出程序
System.out.println("是否返回菜单y/n(退出):");
if(input.next().equals("y")) {
continue;
}else {
System.out.println("已退出程序");
break;
}
}else if(num==3) {//修改
System.out.println("请输入你要修改学生的姓名:");
name = input.next();
int num3 = 0;
bool=true;
for(int i = 0;i <num2;i++) {
if(names[i].equals(name)) {
bool=false;
num3=i;
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
break;
}
}
if(bool) {//判断bool初始值是否更改
System.out.println("未找到学生信息,返回菜单");
continue;//返回菜单
}
while(true) {//循环修改
System.out.println("请选择你要修改的信息:\n1.姓名2.性别3.成绩");
num=input.nextInt();
if(num==1) {//修改姓名
System.out.println("请输入姓名");
names[num3]=input.next();
System.out.println("修改成功");
}else if(num==2) {//修改性别
System.out.println("请输入性别");
sexs[num3]=input.next().charAt(0);
System.out.println("修改成功");
}else if(num==3) {//修改成绩
System.out.println("请输入成绩");
scores[num3]=input.nextInt();
System.out.println("修改成功");
}else {//输入其他数字
System.out.println("输入有误,请重新选择");
continue;
}
//是否返回修改此学生其它信息
System.out.println("是否修改其他信息y/n(返回):");
if(input.next().equals("y")) {
continue;
}else {
break;
}
}
}else if(num==4) {//条件查询(姓名)
System.out.println("请输入你要查询学生的姓名:");
name = input.next();
if(num2==-1) {//判断数组中是否有数据,没有数据输出提示并返回
System.out.println("没有学生信息,请添加学生信息");
System.out.println("返回菜单");
continue;
}
bool=true;
for(int i = 0;i <=num2;i++) {//遍历查询是否有这个学生
if(names[i].equals(name)) {
bool=false;
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
break;
}
}
//未查询到
if(bool) {
System.out.println("没有查询到信息");
}
}else if(num==5) {//成绩查询
System.out.println("请输入你要查询学生的成绩(大于等于当前输入分数):");
score = input.nextInt();
if(num2==-1) {
System.out.println("没有学生信息,请先添加学生信息");
System.out.println("返回菜单");
continue;
}
bool =true;
for(int i = 0;i <=num2;i++) {//遍历数组
if(scores[i]>score) {//判断条件是否满足
bool=false;
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
}
}
//未查询到
if(bool) {
System.out.println("没有查询到信息");
}
}else if(num==6) {//条件查询(性别)
System.out.println("请输入你要查询学生的性别:");
sex = input.next().charAt(0);
//判断整改数组是否有数据
if(num2==-1) {
System.out.println("没有学生信息,请先添加学生信息");
System.out.println("返回菜单");
continue;
}
bool=true;
for(int i = 0;i <=num2;i++) {//遍历数组
if(sexs[i]==sex) {//判断条件是否满足
bool=false;
System.out.println(names[i]+"\t"+sexs[i]+"\t"+scores[i]);
}
}
if(bool) {
System.out.println("没有查询到信息");
}
}else if(num==7) {//退出
break;
}else {
System.out.println("输入有误,请重新输入");
}
//返回菜单/退出程序
System.out.println("是否返回菜单y/n(退出):");
if(input.next().equals("y")) {
continue;
}else {
System.out.println("已退出程序");
break;
}
}
}
}