//创建学生类
public class Student {
// 学生的类
public String id;// 学号
public String name;// 姓名
public int age;// 年龄
public String gender;// 性别
// 显示学生的信息
public void showInfo() {
String st = "Stundent [学号=" + id + ",姓名=" + name + ",年龄=" + age + ",性别=" + gender + "]";
System.out.println(st);
}
}
//创建管理员类
import java.util.Arrays;
import java.util.Scanner;
public class StudentManger {
public static Scanner sc = new Scanner(System.in);
public Student[] st = new Student[0];// 管理所有的学员
/**
* 1.建立学生类,利用Math的方法,对学生类的属性进行赋值。 2.建立管理员类,对学生类属性进行基本的增删查改。
*/
char[] ch = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', // 36个
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', //
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', //
'x', 'y', 'z', '0', //
'A', 'B', 'C', 'D', 'E', 'F', 'G', // 36个
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', //
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', //
'X', 'Y', 'Z', '0', //
'1', '2', '3', '4', '5', '6', '7', '8', '9' };
// 获得随机name:随机的6位字母开头
public String getName() {
String name = "";
name += ch[(int) (Math.random() * 26)];// 字母
for (int i = 0; i < 5; i++) {
name += ch[(int) (Math.random() * 36)];// 26-35
}
return name;
}
// 随机获得学号:6位
public String getId() {
String id = "tx";
for (int i = 0; i < 4; i++) {
id += ch[(int) (Math.random() * (35 - 26 + 1)) + 26];// [26-35]
}
return id;
}
// 随机获得年龄:[18,25]
public int getAge() {
return (int) (Math.random() * (25 - 18 + 1)) + 18;
}
// 随机获得性别
public String getGender() {
int r = (int) (Math.random() * 10) % 2;
if (r == 1) {
return "男";
}
return "女";
}
// 5、初始化数组的方法:默认的添加17位学生
public void initSt() {
for (int i = 0; i < 17; i++) {
st = Arrays.copyOf(st, st.length + 1);
Student student = new Student();
student.age = getAge();
student.name = getName();
student.gender = getGender();
student.id = getId();
st[st.length - 1] = student;
}
}
// 1.添加功能
public void addStudent(Student student) {
st = Arrays.copyOf(st, st.length + 1);
st[st.length - 1] = student;
System.out.println("添加成功!");
}
// 2.查找功能
public void showSt() {
for (int i = 0; i < st.length; i++) {
System.out.print((i + 1) + "、");
st[i].showInfo();
}
}
// 3.修改功能
public void updateStudent(Student student) {
for (int i = 0; i < st.length; i++) {
if (st[i] != null && st[i].id != null && st[i].id.equals(student.id)) {
st[i] = student;
System.out.println("修改成功!");
break;
}
}
}
// 4.删除功能
public void deteleStudent(Student student) {
int index = -1;
boolean isFind = false;
for (int i = 0; i < st.length; i++) {
if (st[i] != null && st[i].id != null && st[i].id.equals(student.id)) {
isFind = true;
index = i;
break;
}
}
// 执行删除位移操作
if (isFind) {
for (int i = index; i < st.length - 1; i++) {
st[i] = st[i + 1];
}
st = Arrays.copyOf(st, st.length - 1);
System.out.println("删除成功!");
} else {
System.out.println("没有此学员!");
}
}
// 服务的方法
public void service() {
initSt();// 先初始化
do {
System.out.println("-------------学生宿管系统------------");
System.out.println("\t1、增加学员");
System.out.println("\t2、查看学员");
System.out.println("\t3、修改学员");
System.out.println("\t4、删除学员");
System.out.println("\t5、退出系统");
System.out.println("----------------------------------");
int num = inputIntNum(1, 5, "请选择编号:");
switch (num) {
case 1: {
// 增加学员
Student student = new Student();
System.out.print("输入学号:");
student.id = sc.next();
System.out.print("输入年龄:");
student.age = sc.nextInt();
System.out.print("输入姓名:");
student.name = sc.next();
System.out.print("输入性别:");
student.gender = sc.next();
addStudent(student);
break;
}
case 2: {
showSt();
break;
}
case 3: {
// 修改学员
Student student = new Student();
System.out.print("输入要修改的学号:");
student.id = sc.next();
System.out.print("输入修改后的年龄:");
student.age = sc.nextInt();
System.out.print("输入修改后的姓名:");
student.name = sc.next();
System.out.print("输入修改后的性别:");
student.gender = sc.next();
updateStudent(student);
break;
}
case 4: {
Student student = new Student();
System.out.print("输入要删除的学号:");
student.id = sc.next();
deteleStudent(student);
break;
}
case 5: {
System.out.println("退出系统!");
return;
}
}
System.out.print("是否继续(y/n):");
if (!sc.next().equals("y")) {
break;
}
} while (true);
}
/**
* 控制数整数和范围的方法 start:整数的起始位置 end:整数的结束位置 msg:你要干什么
*/
public int inputIntNum(int start, int end, String msg) {
int index = -1;
do {
System.out.print(msg);
while (!sc.hasNextInt()) {
System.out.print("输入整数:");
String sd = sc.next();
}
index = sc.nextInt();
if (index <= end && index >= start) {
break;
} else {
System.out.println("选项必须在" + start + "-" + end + "之间!");
}
} while (true);
return index;
}
}
//测试类
public class Test {
public static void main(String[] args) {
StudentManger a = new StudentManger();
a.service();
}
}