package com.jbit.sms;
/**
* 学生信息管理系统
* @author Administrator
*
*/
import java.util.Arrays;
import java.util.Scanner;
import org.omg.Messaging.SyncScopeHelper;
public class StudentInformation {
public static void main(String[] args) {
// 定义局部变量
int[] stuNumbers = new int[] {};// 学号数组
String[] names = new String[] {};// 学生姓名数组
String[] major = new String[] {};// 专业数组
int[] classId = new int[] {};// 班级数组
Scanner input = new Scanner(System.in);
boolean isLogin = true;// 标识为用户登录成功
/*
* 用户登录主界面
*/
a: while (true) {
System.out.println("******************************\n\n");
System.out.println("欢迎使用学生信息管理系统\n\n");
System.out.println("1.登录");
System.out.println("2.退出\n\n");
System.out.println("******************************");
// 提示用户选择
System.out.println("请选择:");
String choice = input.next();// 用户输入选择
switch (choice) {
case "1":
int change = 3;// 用户的登录机会,超过三次强制退出
while (isLogin) {
System.out.println("请输入用户名:");
String userName = input.next();
System.out.println("请输入密码:");
String passWord = input.next();
// 判断用户输入
if ("admin".equals(userName) && passWord.equals("123")) {
System.out.println("登录成功!请等待!");
// 等待时间
for (int i = 0; i < 6; i++) {
System.out.print("》");
try {
Thread.sleep(250);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
break a;
} else {
change--;
System.out.println("你还有" + change + "次机会");
if (change == 0) {
System.err.println("三次帐号密码均不匹配!登录失败!\n请重新选择:");
break;
}
}
}
break;
case "2":
System.out.println("感谢您的使用!谢谢!");
break;
default:
System.err.println("输入非法!请输入(1-2的整数)!");
break;
}
}
/*
* 登录成功后选择界面
*/
while (isLogin) {
System.out.println("\n******************************\n");
System.out.println("1.添加学生信息");
System.out.println("2.查找学生信息");
System.out.println("3.修改学生信息");
System.out.println("4.删除学生信息");
System.out.println("5.查看所有学生信息");
System.out.println("6.退出\n");
System.out.println("******************************");
System.out.println("请选择:");
String choice = input.next();
/*
* 选择添加学生信息时才进行扩容
*/
if (choice.equals("1")) {
stuNumbers = Arrays.copyOf(stuNumbers, stuNumbers.length + 1);// 学号
names = Arrays.copyOf(names, names.length + 1);// 姓名
major = Arrays.copyOf(major, major.length + 1);// 专业
classId = Arrays.copyOf(classId, classId.length + 1);// 班级
}
switch (choice) {
case "1":
/*
* 从学号开始依次添加
*/
while (true) {
System.out.println("请输入添加的学号:");
int newStuNumbers = input.nextInt();
boolean isAdd = true;
int index = -1;// 索引
for (int i = 0; i < stuNumbers.length; i++) {
if (stuNumbers[i] == newStuNumbers) {
index = i;
isAdd = false;
break;
}
}
if (isAdd) {
stuNumbers[stuNumbers.length - 1] = newStuNumbers;
Arrays.sort(stuNumbers);
break;
} else {
System.err.println("该学号已存在!请重新输入!");
}
}
System.out.println("请输入添加的姓名:");
String newName = input.next();
names[names.length - 1] = newName;
System.out.println("请输入添加的专业:");
String newMajor = input.next();
major[major.length - 1] = newMajor;
System.out.println("请输入添加的班级:");
int newClass = input.nextInt();
classId[classId.length - 1] = newClass;
System.out.println("添加成功!");
break;
case "2":
/*
* 根据学号进行查找
*/
a: while (true) {
System.out.println("请输入需要查找的学号:");
int findStuNo = input.nextInt();
boolean isFind = true;
for (int i = 0; i < stuNumbers.length; i++) {
if (stuNumbers[i] == findStuNo) {
System.out.println("学生信息如下:");
System.out.println("学号\t姓名\t专业\t班级");
System.out.println(stuNumbers[i] + "\t" + names[i] + "\t" + major[i] + "\t" + classId[i]);
break a;
} else {
isFind = false;
}
}
if (!isFind) {
System.err.println("该学号" + findStuNo + "不存在");
break a;
}
}
break;
case "3":
/*
* 根据学号进行修改
*/
b: while (true) {
System.out.println("请输入需要修改的学号:");
int editNo = input.nextInt();
int index = -1;// 定位学号数组的索引
boolean isFindEdit = true;
//System.out.println(stuNumbers.length);
for (int i = 0; i < stuNumbers.length; i++) {
isFindEdit = true;//在这里调试了很久没有考虑到循环一次布尔值都要做相应改变
if (stuNumbers[i] == editNo) {
index = i;
break;
} else {
isFindEdit = false;
}
}
// System.out.println(index);
if (!isFindEdit) {
System.err.println("该学号" + editNo + "不存在");
break b;
}
System.out.println("请输入修改后的姓名:");
String editName = input.next();
names[index] = editName;
System.out.println("请输入修改后的专业:");
String editMajor = input.next();
major[index] = editMajor;
System.out.println("请输入修改后的班级:");
int editClass = input.nextInt();
classId[index] = editClass;
System.out.println("修改成功!");
break b;
}
break;
case "4":
/*
* 根据学号进行删除
*/
c:while(true) {
System.out.println("请输入需要删除的学号:");
int deleteNo = input.nextInt();
int index = -1;
boolean isDelete = true;
for (int i = 0; i < stuNumbers.length; i++) {
isDelete = true;
if (stuNumbers[i] == deleteNo) {
index = i;
break;
}else {
isDelete = false;
}
}
if(!isDelete) {
System.err.println("该学号"+deleteNo+"不存在!删除失败!");
break c;
}
for(int i=stuNumbers.length-1;i>index;i--) {
stuNumbers[i-1] = stuNumbers[i];
}
stuNumbers = Arrays.copyOf(stuNumbers, stuNumbers.length-1);
//删除姓名
for(int i=names.length-1;i>index;i--) {
names[i-1] = names[i];
}
names = Arrays.copyOf(names, names.length-1);
//删除专业
for(int i=major.length-1;i>index;i--) {
major[i-1] = major[i];
}
major = Arrays.copyOf(major, major.length-1);
//删除班级
for(int i=classId.length-1;i>index;i--) {
classId[i-1] = classId[i];
}
classId = Arrays.copyOf(classId, classId.length-1);
System.out.println("删除成功!");
break c;
}
break;
case "5":
System.out.println("学生信息如下:");
System.out.println("学号\t姓名\t专业\t班级");
for (int i = 0; i < stuNumbers.length; i++) {
System.out.println(stuNumbers[i] + "\t" + names[i] + "\t" + major[i] + "\t" + classId[i]);
}
break;
case "6":
System.out.println("感谢使用!");
break;
default:
System.err.println("输入非法!请输入(1-4的整数)!");
break;
}
}
}
}