【学生信息管理系统】
现有一个方便管理学生信息的管理系统急需开发,先学校请你来完成这个开发。具体要求如下:
- 制作程序主菜单,如下图所示
2、制作【1】增加 功能,至少能录入10条数据。录入后应能显示出当前所有学员的信息,并在按下任意键后返回到主菜单。
- 制作【2】查询功能,输入学号后,显示出所查询的学员的信息,并在按下任意键后返回到主菜单。特别地,如果所查询的学员不存在,则提示【找不到该学员】。
- 3、制作【3】显示所有学员 功能。要求输出共有学员X人,并按列表的形式将结果显示。列表应该显示整齐,并在按下任意键后返回到主菜单。
- 制作【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;
}
}