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;
			}			
		}

 

Logo

快速构建 Web 应用程序

更多推荐