【Java基础】-初学者练习题-模拟学生管理系统



【学生信息管理系统】

现有一个方便管理学生信息的管理系统急需开发,先学校请你来完成这个开发。具体要求如下:

  1. 制作程序主菜单,如下图所示

     2、制作【1】增加 功能,至少能录入10条数据。录入后应能显示出当前所有学员的信息,并在按下任意键后返回到主菜单。

  1. 制作【2】查询功能,输入学号后,显示出所查询的学员的信息,并在按下任意键后返回到主菜单。特别地,如果所查询的学员不存在,则提示【找不到该学员】。

  1. 3、制作【3】显示所有学员 功能。要求输出共有学员X人,并按列表的形式将结果显示。列表应该显示整齐,并在按下任意键后返回到主菜单。

  1. 制作【4】退出 功能。选择此功能后,程序退出。

答案一

package studentproject;

import java.util.Scanner;

/*
 * 学生信息系统 09
 */
public class StudentSystem09 {
	Scanner in =  new Scanner(System.in);
	//声明数组
	String[] ids =  new String[50];//默认值null,学号
	String[] names =  new String[50];//默认值null,姓名
	int[] sexs =  new int[50];//默认0,性别
	int[] ages =  new int[50];//默认0,年龄
	String[] phones =  new String[50];//默认值null,电话
	String[] births =  new String[50];//默认值null,籍贯
	

	public static void main(String[] args) {
		StudentSystem09 sts = new StudentSystem09();
		sts.start();
	}
	/**
	 * 开始
	 */
	public void start() {
		int choose;
		do {
		//(1)	制作程序主菜单
		choose = mainMenu();
		switch(choose) {
		case 1:
			//(2)	制作【1】增加 功能
			add();
			break;
		case 2:
			//(3)	制作【2】查询功能
			search();
			break;
		case 3:
			//(4)	制作【3】显示所有学员 功能。
			showAll();
			break;
		case 4:
			//(5)	制作【4】退出 功能
			System.out.println("-----欢迎下次使用------");
			break;
		default:
			System.out.println("输入错误");
		}
		}while(choose!=4);
		
	}
	/**
	 * 显示所有信息
	 */
	private void showAll() {
		int index = isNull();
		System.out.printf("\t\t共有学员%d,列表如下\n",index);
		System.out.println("序号           学号              姓名                性别               年龄");
		System.out.println("---    ---      ---     ---     ---");
		for(int i=0;i<index;i++) {
			//处理性别
			String sex = "男";
			if(sexs[i]==1) {
				sex = "女";
			}
			System.out.printf("%d      %s       %s       %s       %S",i+1,ids[i],names[i],sex,ages[i]);
		}
		System.out.println("\t按回车键返回主菜单......\n");
		new Scanner(System.in).nextLine();//按回车键返回主菜单
	}
	/**
	 * 查询
	 */
	public void search() {
		System.out.print("请输入要查询你的学员学号:");
		String id = in.next();
		int index = isNull();
		System.out.println("学员详细信息如下:");
		System.out.println("-------------------------");
		boolean f =false;
		for(int i=0;i<index;i++) {
			if(ids[i].equals(id)) {
				f=true;
				//输出学员信息
				System.out.println("学号:"+ids[i]);
				System.out.println("姓名:"+names[i]);
				//性别处理
				String sex = "女";
				if(sexs[i]==0) {
					sex="男";
				}
				System.out.println("性别:"+sex);
				System.out.println("年龄:"+ages[i]);
				System.out.println("电话:"+phones[i]);
				System.out.println("籍贯:"+births[i]);
				
			}
			
		}
		if(!f) {
			System.out.println("查询不到学员信息!!");
		}
		
		System.out.println("\t按回车键返回主菜单......\n");
		new Scanner(System.in).nextLine();//按回车键返回主菜单
	}
	/**
	 * 增加
	 */
	private void add() {
		System.out.print("请输入学员人数:");
		int num = in.nextInt();
		int index = isNull();//判断存储数据的下标,只有数组的元素是null,返回相应的下标,即是下一个存储的下标
		int count =1;
		//循环录入信息
		for(int i=index;i<num+index;i++) {
			System.out.printf("请输入第%d位学员信息\n",count);
			System.out.print("学号:");
//			String id = in.next();
//			ids[i] = id;
			ids[i] = in.next();
			
			System.out.print("姓名:");
			names[i] = in.next();
			
			System.out.print("性别(0-男 1-女):");
			sexs[i] = in.nextInt();
			
			System.out.print("年龄:");
			ages[i] = in.nextInt();
			
			System.out.print("电话:");
			phones[i] = in.next();
			
			System.out.print("籍贯:");
			births[i] = in.next();
			count++;
		}
		System.out.printf("\n成功录入%d\n",num);
		//显示所有信息
		showAll();
	}
	/**
	 * 判断存储数据的下标,只有数组的元素是null,存储
	 * @return
	 */
	private int isNull() {
		for(int i=0;i<names.length;i++) {
			if(names[i]==null) {
				return i;
			}
		}
		return names.length;
	}
	/**
	 * 制作程序主菜单
	 */
	public int mainMenu() {
		System.out.println("--------学生信息管理系统---------");
		System.out.println();
		System.out.println("以下为系统主菜单,请选择功能");
		System.out.println("【1】增加");
		System.out.println("【2】查询(按学号)");
		System.out.println("【3】显示所有");
		System.out.println("【4】退出");
		System.out.println("键入菜单功能前的数字后,按回车键继续");
		return in.nextInt();
	}
	
	
	

}

 答案二

package studentproject;

import java.util.Scanner;

/**
 * 学生信息管理系统  10
 * 
 * @author weijiangzhu
 *
 */
public class StudentSystem10 {
	Scanner in = new Scanner(System.in);
	//生命并创建数组
	String[] ids = new String[40];//学号
	String[] names = new String[40];//姓名
	int[] ages = new int[40];//年龄
	int[] sexs = new int[40];//性别
	String[] phones = new String[40];//电话
	String[] births = new String[40];//籍贯

	public static void main(String[] args) {
		// 创建对象
		StudentSystem10 sts = new StudentSystem10();
		// 调用start方法
		sts.start();
	}
	/**
	 * 开始
	 */
	public void start() {
		int choose;
		do {
			// (1) 制作程序主菜单,
			choose = mainMenu();
			switch (choose) {
			case 1:
				// (2) 制作【1】增加 功能,
				add();

				break;
			case 2:
				// (3) 制作【2】查询功能
				searchOne();
				break;
			case 3:
				// (4) 制作【3】显示所有学员 功能
				show();
				break;
			case 4:
				// (5) 制作【4】退出 功能。
				System.out.println("-------欢迎下次使用--------");
				break;
			}

		} while (choose != 4);
	}

	/**
	 * 查询
	 */
	public void searchOne() {
		System.out.print("请输入要查询的学员学号");
		String id = in.next();
		System.out.println("学员详细信息如下:");
		System.out.println("-----------------");
		int index = searchIndex();
		boolean f = false;
		for(int i=0;i<index;i++) {//便利学号的数组
			if(ids[i].equals(id)) {
				f = true;
				System.out.println("学号:"+ids[i]);
				System.out.println("姓名:"+names[i]);
				//处理性别
				//处理性别
				String sex = "男";
				if(sexs[i]==1) {
					sex = "女";
				}
				System.out.println("性别:"+sex);
				System.out.println("年龄:"+ages[i]);
				System.out.println("电话:"+phones[i]);
				System.out.println("籍贯:"+births[i]);
			}
			
		}
		
		if(f==false) {
			System.out.println("查询不到该学元信息");
		}
		System.out.println("\t按回车键返回主菜单");
		new Scanner(System.in).nextLine();
		
	}
	/**
	 * 增加
	 */
	private void add() {
		System.out.print("请输入学员人数:");
		int num = in.nextInt();
		int index = searchIndex();
		int count=1;
		for(int i=index;i<num+index;i++) {
			System.out.printf("请输入%d位学员的信息\n",count);
			System.out.print("学号:");
			ids[i] = in.next();//存入数组
			
			System.out.print("姓名:");
			names[i] = in.next();//存入数组
			
			System.out.print("性别(0-男 1-女):");
			sexs[i] = in.nextInt();//存入数组
			
			System.out.print("年龄:");
			ages[i] = in.nextInt();//存入数组
			
			
			System.out.print("电话:");
			phones[i] = in.next();//存入数组
			
			System.out.print("籍贯:");
			births[i] = in.next();//存入数组
			
			
			count++;
		}
		
		
		System.out.printf("\n成功录入%d个学员信息\n",num);
		
		//显示信息
		show();
		
	}
	/**
	 * 制作【3】显示所有学员 功能
	 */
	public void show() {
		//查询第一次值是null的元素的下标
		int index = searchIndex();
		System.out.printf("\t\t共有%d个学员,列表如下\n",index);
		System.out.println("序号\t学号\t姓名\t    性别 \t年龄");
		System.out.println("---\t---\t---\t   ---\t---");
		for(int i=0;i<index;i++) {
			//处理性别
			String sex = "男";
			if(sexs[i]==1) {
				sex = "女";
			}
			System.out.printf("%s\t%s\t%S\t%s\t%s\n",i+1,ids[i],names[i],sex,ages[i]);
		}
		System.out.println("\t按回车键返回主菜单");
		new Scanner(System.in).nextLine();
		
	}
	
	/**
	 * //查询第一次值是null的元素的下标
	 * @return
	 */
	private int searchIndex() {
		//遍历数组
		for(int i=0;i<ids.length;i++) {
			if(ids[i]==null) {
				return i;
			}
		}
		return ids.length;
	}
	/**
	 * 制作程序主菜单,
	 * 
	 * @return
	 */
	private int mainMenu() {
		System.out.println("-------学生信息管理系统-------");
		System.out.println();
		System.out.println("以下为系统主菜单,请选择功能");
		System.out.println("【1】增加");
		System.out.println("【2】查询(学号)");
		System.out.println("【3】显示所有信息");
		System.out.println("【4】退出");
		System.out.println("键入菜单功能前的数字,按回车键继续");
		int choose = in.nextInt();
		return choose;
	}

}

答案三

package com.studentinforsystem;

import java.util.Scanner;

/**
 * 学生信息管理系统
 * @ClassName: StudentSystem 
 * @Description: TODO(这里用一句话描述这个类的作用) 
 * @author: wei_jiangzhu
 * @date: 2021年5月4日 下午1:03:16
 */
public class StudentSystem {
	Scanner in =  new Scanner(System.in);
	//声明并创建6个数组存储学员的相关信息
	String[] ids = new String[50];  //学号
	String[] names =  new String[40];//姓名
	int[] ages =  new int[40];//年龄
	int[] sexs =  new int[40];//性别
	String[] phones =  new String[40];//电话
	String[] places =  new String[40];//籍贯
	
	public static void main(String[] args) {
		StudentSystem sts =  new StudentSystem();
		sts.start();//调用方法
	}
	/**
	 * 开始
	 * @Description: TODO(这里用一句话描述这个方法的作用) 
	 * @author: wei_jiangzhu
	 * @最后修改时间: 2021年5月4日 下午1:05:39 对方法的参数进行描述
	 * @throws
	 */
	public void start() {
		int choose;
		do {
			//制作程序主菜单,如下图
			choose = mainMenu(); 
			switch(choose) {
			case 1:
				//制作【1】增加 功能
				add();//增加
				break;
			case 2:
				//制作【2】查询功能
				search();
				break;
			case 3:
				//制作【3】显示所有学员
				showAll();
				break;
			case 4:
				//制作【4】退出 功能。
				System.out.println("--------欢迎下次使用----------");
				break;
			default :
				System.out.println("没有这个功能,请重新选择");
			}
			
		}while(choose!=4);
		
	}
	/**
	 * 查询功能
	 * @Description: TODO(这里用一句话描述这个方法的作用) 
	 * @author: wei_jiangzhu
	 * @最后修改时间: 2021年5月4日 下午2:01:16 对方法的参数进行描述
	 * @throws
	 */
	private void search() {
		System.out.println("请输入你要查询的学员的学号:");
		String id =  in.next();
		int index = searchIndex();
		boolean f = false;//标记
		for(int i=0;i<index;i++) {
			if(ids[i].equals(id)) {
				f = true;
				System.out.println("学员详细信息如下:");
				System.out.println("-----------------");
				System.out.println("学号:"+ids[i]);
				System.out.println("姓名:"+names[i]);
				String sex = "男";
				if(sexs[i]==0) {
					sex = "女";
				}
				System.out.println("性别:"+sex);
				System.out.println("年龄:"+ages[i]);
				System.out.println("电话:"+phones[i]);
				System.out.println("籍贯:"+places[i]);
			}	
		}
		
		if(f==false) {
			System.out.println("找不到该学员");
		}
		
		System.out.println("\t按回车键返回主菜单");
		new Scanner(System.in).nextLine();

	}
	/**
	 * 增加
	 * @Description: TODO(这里用一句话描述这个方法的作用) 
	 * @author: wei_jiangzhu
	 * @最后修改时间: 2021年5月4日 下午1:28:54 对方法的参数进行描述
	 * @throws
	 */
	private void add() {
		System.out.print("增加学员人数:");
		int num =  in.nextInt();//学员人数
		int index = searchIndex();//判断存储数据的数组下标
		for(int i=1;i<=num;i++) {
			System.out.printf("请输入第%d个学员信息\n",i);
			System.out.print("学号:");
			ids[index+i-1] = in.next();//控制台读取输入的信息
			System.out.print("姓名:");
			names[index+i-1] = in.next();
			System.out.print("性别:");
			sexs[index+i-1] =in.nextInt();
			System.out.print("年龄:");
			ages[index+i-1] = in.nextInt();
			System.out.print("电话:");
			phones[index+i-1] =in.next();
			System.out.print("籍贯:");
			places[index+i-1] =in.next();
			
		}
		
		System.out.printf("成功了录入%d\n",num);
		
		//显示学员列表
		showAll();
	}
	/**
	 * 显示所有学员信息
	 * @Description: TODO(这里用一句话描述这个方法的作用) 
	 * @author: wei_jiangzhu
	 * @最后修改时间: 2021年5月4日 下午1:50:39 对方法的参数进行描述
	 * @throws
	 */
	private void showAll() {
		int num = searchIndex();//调用方法,返回学员总人数
		System.out.printf("\t\t总共有%d个学员\n",num);
		System.out.println("序号\t 学号\t姓名\t性别\t年龄");
		System.out.println("----\t ----\t----\t----\t----");
		
		for(int i=0;i<num;i++) {
			String sex = "男";
			if(sexs[i]==0) {
				sex = "女";
			}
			System.out.printf("%d\t %s\t%s\t%s\t%s\n",i+1,ids[i],names[i],sex,ages[i]);
		}
		
		System.out.println("\t按回车键返回主菜单");
		new Scanner(System.in).nextLine();
		
	}
	/**
	 * 返回下次要存储数据的数组元素的下标|已经存储的数组的元素的个数
	 * @Description: TODO(这里用一句话描述这个方法的作用) 
	 * @author: wei_jiangzhu
	 * @最后修改时间: 2021年5月4日 下午1:38:37
	 * @return 对方法的参数进行描述
	 * @throws
	 */
	public int searchIndex() {
		for(int i=0;i<ids.length;i++) {
			if(ids[i]==null) {
				return i;
			}
		}
		return ids.length;
		
	}
	
	/**
	 * 显示主菜单的方法
	 * @Description: TODO(这里用一句话描述这个方法的作用) 
	 * @author: wei_jiangzhu
	 * @最后修改时间: 2021年5月4日 下午1:10:57
	 * @return 对方法的参数进行描述
	 * @throws
	 */
	private int mainMenu() {
		System.out.println("--------学生信息管理系统---------\n");
		System.out.println("以下为系统主菜单,请选择功能");
		System.out.println("【1】增加");
		System.out.println("【2】查询(学号)");
		System.out.println("【3】显示所有信息");
		System.out.println("【4】退出");
		
		System.out.println("键入菜单功能前的数字,按回车键继续");
		int choose = in.nextInt();//读取控制台输入的数字
		return choose;
	}
	
	
	

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a box of Sweets

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值