java数组——用数组实现学生姓名管理系统
1.需求:可以加入相同的学生姓名package demo;import java.util.Arrays;import java.util.Scanner;/**==========欢迎使用学生管理系统1.0版本=========1. 添加学生2.删除学生3.修改学生4.学生列表5.查询学生6.退出系统*/public class Stude...
·
1.需求:可以加入相同的学生姓名
package demo;
import java.util.Arrays;
import java.util.Scanner;
/*
* ==========欢迎使用学生管理系统1.0版本=========
1. 添加学生 2.删除学生 3.修改学生 4.学生列表 5.查询学生 6.退出系统
*/
public class StudentSystem {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
//建立一个空数组
String[] arr = {};
System.out.println("==============欢迎使用学生管理系统============");
//用if做
while(true) {
System.out.println("\t"+"请选择以下方式操作系统:(选择编号即可)");
System.out.println("1. 添加学生 2.删除学生 3.修改学生 4.学生列表 5.查询学生 6.退出系统");
System.out.println("请输入您选择的编号:");
int num = s.nextInt();
if(num == 1) {
//添加学生
System.out.println("请输入学生姓名:");
String name = s.next();
//将数组长度加1
arr = Arrays.copyOf(arr, arr.length+1);
arr[arr.length-1] = name;
System.out.println("添加成功!");
}
else if(num == 2) {
//删除学生
System.out.println("请输入删除学生的姓名:");
String name = s.next();
//循环遍历数组,判断是否有该学生
//定义一个开关
boolean flag = false;
outer: for(;;) {
for(int i = 0;i<arr.length;i++) {
//如果有这个学生则将这个学生删除
if(arr[i].equals(name)) {
//将这个学生和最后一个学生互换位置后删除
String temp = arr[arr.length-1];
arr[arr.length-1] = arr[i];
arr[i] = temp;
//删除学生
arr = Arrays.copyOf(arr, arr.length-1);
//删除之后判断数组长度是不是为空,如果为空则不能继续删除退出循环
if(arr.length==0) {
System.out.println("已经没有数据了");
break outer;
}
//如果匹配则,flag为真
flag = true;
//如果匹配到就,重新去遍历数组去看是否还存在与之相同的姓名
continue outer;
}else {
//如果循环到最后都没有与之对应的姓名,则退出循环
if(i==arr.length-1) {
break outer;
}
}
}
}
//当数组中的数据不为0的时候,判断是否有该学生,如果为0 ,则不用判断
if(arr.length!=0) {
//如果数组中有这个数据,判断开关是否发生改变,没有发生改变则没有该学生
if(!flag) {
System.out.println("没有该学生");
}else {
//如果开关发生改变,判断长度是否为0,如果不为0在删除成功,如果为0,则没有数据
if(arr.length==0) {
System.out.println("已经没有数据了");
}else {
System.out.println("删除成功!");
}
}
}
}
else if(num == 3) {
boolean flag = false;
//修改学生
System.out.println("请输入修改前学生姓名:");
String name = s.next();
for(int i = 0;i<arr.length;i++) {
if(arr[i].equals(name)) {
System.out.println("请输入修改后的姓名:");
arr[i] = s.next();
flag = true;
}
}
if(!flag) {
System.out.println("没有该学生");
}else {
System.out.println("修改成功");
}
}
else if(num == 4) {
//学生列表
System.out.println("查询结果如下:");
System.out.println(Arrays.toString(arr));
}
else if(num == 5) {
//查询学生
boolean flag = false;
System.out.println("请输入要查询学生的姓名:");
String name = s.next();
for(int i = 0;i<arr.length;i++) {
if(arr[i].equals(name)) {
System.out.println("查询结果如下:");
System.out.println(arr[i]);
flag = true;
}
}
if(!flag) {
System.out.println("没有该学生");
}
}
else if(num == 6) {
//退出系统
System.out.println("欢迎下次使用本系统!");
break;
}else {
System.out.println("输入错误,请重新输入");
}
}
2.不可以有重复的姓名加入 (方法头与前一个方法一样)
int i=0;
Scanner s = new Scanner(System.in);
//定义一个数组,记录学生的姓名
String[] arr = {};
//先把进入页面写好
System.out.println(" =========欢迎使用学生管理系统1.0版本========="+"\n");
while(true) {
System.out.println(" "+"请选择以下操作:(选择序号即可)");
System.out.println("1.添加学生 2.删除学生 3.修改学生 4.学生列表 5.查询学生 6.退出系统");
//接收用户输入的数字
String num = s.next();
//判断输入的数
switch(num) {
case "1":
//定义一个开关
int flag = 0;
//输入学生的姓名
System.out.println("请输入添加学生的姓名:");
//获取学生的姓名
String addName = s.next();
//判断是否已经有了这个学生,如果有则不允许再加入
for(i = 0;i<arr.length;i++) {
//如果该学生已经存在
if(arr[i].equals(addName)) {
System.out.println("该学生已经存在!");
flag ++;
break;
}
}
//如果没有
if(flag!=0) {
break;
}
//将数组加大一个位置
arr = Arrays.copyOf(arr, arr.length+1);
//把获取的姓名放入加大之后的数组中
arr[arr.length-1] = addName;
//打印添加成功
System.out.println("添加成功");
//将下标加1
break;
case "2":
//输入删除学生的姓名
System.out.println("请输入要删除学生的姓名:");
//获取学生姓名
String delName = s.next();
//将学生姓名与数组中的相比较,找到后将其放入数组的后面
for( i = 0;i<arr.length;i++) {
if(arr[i].equals(delName)) {
//如果有该学生,将这个同学和最后一名同学互换
String temp = arr[arr.length-1];
arr[arr.length-1] = arr[i];
arr[i] = temp;
arr = Arrays.copyOf(arr, arr.length-1);
// //如果最后一个数还是要删除的数的话,在删除
// if(arr[arr.length-1].equals(delName)) {
// arr = Arrays.copyOf(arr, arr.length-1);
// }
System.out.println("删除成功");
break;
}else {
//如果没有该学生则显示没有该学生
if(i==arr.length-1) {
System.out.println("没有该学生");
}
}
}
break;
case "3":
System.out.println("请输入要修改学生的姓名:");
String updateName = s.next();
for(i = 0;i<arr.length;i++ ) {
//判断有没有该学生,如果有这个学生则修改
if(arr[i].equals(updateName)) {
System.out.println("请输入修改后的姓名:");
arr[i] = s.next();
System.out.println("修改成功!");
break;
}else {
//判断循环到最后一个人都没有找到该学生,则没有该学生
if(i==arr.length-1) {
System.out.println("没有该学生!");
}
}
}
break;
case "4":
//遍历数组
System.out.println(Arrays.toString(arr));
break;
case "5":
//查询学生
System.out.println("请输入要查询学生的姓名:");
String selName = s.next();
for(i = 0;i<arr.length;i++) {
if(arr[i].equals(selName)) {
System.out.println(arr[i]);
break;
}else {
if(i==arr.length-1) {
System.out.println("没有该学生!");
}
}
}
break;
case "6":
System.out.println("欢迎下次使用本系统!");
System.exit(0);
break;
default:
System.out.println("您输入有误,请重新输入");
break;
}
}
更多推荐
已为社区贡献4条内容
所有评论(0)