大体上分为3个类:
- student类,作为学生的javabean
- studentlist,作为学生列表管理
- managerpanel,作为交互界面
Student类
package StudentManager;
public class Student {
//JavaBean 类
private String name;
private char gender;//F & M
private String id;
private int age;
public Student() {
}
public Student(String name, char gender, String id, int age) {
this.name = name;
this.gender = gender;
this.id = id;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
StudentList类
package StudentManager;
public class StudentList {
private Student[] studentList;
private int numOfStudent;
public StudentList(int numOfStudent) {
studentList =new Student[numOfStudent];
}
public boolean addStudent(Student student){
if (numOfStudent<studentList.length){
studentList[numOfStudent++]=student;
return true;
}
return false;//添加失败返回false
}
public boolean deleteStudent(int index){
if (index<1||index>numOfStudent) return false;
for (int i=index-1;i<=numOfStudent-2;i++){
studentList[i]=studentList[i+1];
}
studentList[--numOfStudent]=null;//末尾置为null
return true;
}
public boolean upDataStudent(int index,Student student){
if (index<1||index>numOfStudent) return false;
studentList[index-1]=student;
return true;
}
public Student[] getAllStudent() {
Student[] students=new Student[numOfStudent];
for(int i=0;i<numOfStudent;i++){
students[i]=studentList[i];
}
return students;
}
public Student getStudent(int index){
return studentList[index-1];
}
public int getNumOfStudent() {
return numOfStudent;
}
}
ManagerPanel类
package StudentManager;
import java.util.Scanner;
public class ManagerPanel {
private StudentList studentList;
Scanner scanner;
private boolean flag ;
public void enterManagerPanal() {
studentList=new StudentList(10);
scanner=new Scanner(System.in);
flag=true;
while (flag){
System.out.println("------------欢迎来到学生管理系统------------");
System.out.println("\t请选择您的操作:");
System.out.println("\t1.添加学生");
System.out.println("\t2.修改学生信息");
System.out.println("\t3.查看学生信息");
System.out.println("\t4.查看学生列表");
System.out.println("\t5.删除学生");
System.out.println("\t6.退出系统");
int i= scanner.nextInt();
switch (i){
case 1:
Add();
break;
case 2:
UpData();
break;
case 3:
LookForStudent();
break;
case 4:
LookAllStudent();
break;
case 5:
Delete();
break;
case 6:
Exit();
break;
default:
System.out.println("输入有误,请重新输入!");
break;
}
}
}
public void Add(){
while(true){
System.out.println("-------------------");
System.out.println("请输入姓名:");
String name=scanner.next();
System.out.println("请输入性别:");
char gender=scanner.next().charAt(0);
System.out.println("请输入学号:");
String id=scanner.next();
System.out.println("请输入年龄:");
int age=scanner.nextInt();
Student student=new Student(name,gender,id,age);
if(studentList.addStudent(student)){
System.out.println("添加成功!\n");
System.out.println("是否继续添加?(Y/N):");
char c=scanner.next().charAt(0);
if (c=='y'||c=='Y') {}
else break;
}
else {
System.out.println("容量不足,添加失败!");
break;
}
}
//若不使用while,当多个Add()嵌套时会多次询问”是否查看学生列表“
System.out.println("是否查看当前学生列表?(Y/N):");
char cc=scanner.next().charAt(0);
if (cc=='y'||cc=='Y'){
LookAllStudent();
}
}
public void Delete(){
boolean flag = true;
while(flag){
System.out.println("请确定您要删除的学生编号:");
int index= scanner.nextInt();
if (index>studentList.getNumOfStudent()||index<=0){
System.out.println("输入编号有误,请重新输入\n");
continue;
}
System.out.println("确认删除吗?(Y/N):");
char c=scanner.next().charAt(0);
if (c=='y'||c=='Y'){
if (studentList.deleteStudent(index)){
flag= false;
System.out.println("删除成功!\n");
System.out.println("是否继续删除?(Y/N):");
char cc=scanner.next().charAt(0);
if (cc=='y'||cc=='Y'){
Delete();
}
System.out.println("是否查看当前学生列表?(Y/N):");
char ccc=scanner.next().charAt(0);
if (ccc=='y'||ccc=='Y'){
LookAllStudent();
}
}
else System.out.println("输入编号有误!请重新输入\n");
}
else flag=false;
};
}
public void UpData(){
boolean flag=true;
while (flag){
System.out.println("-------------------");
System.out.println("请输入您要修改的学生编号:");
int index=scanner.nextInt();
if (index>studentList.getNumOfStudent()||index<=0){
System.out.println("输入编号有误,请重新输入\n");
continue;
}
System.out.println("请输入姓名:");
String name=scanner.next();
System.out.println("请输入性别:");
char gender=scanner.next().charAt(0);
System.out.println("请输入学号:");
String id=scanner.next();
System.out.println("请输入年龄:");
int age=scanner.nextInt();
Student student=new Student(name,gender,id,age);
if(studentList.upDataStudent(index,student)){
System.out.println("修改成功!\n");
System.out.println("是否查看修改后学生信息?(Y/N):");
char c=scanner.next().charAt(0);
if (c=='y'||c=='Y'){
LookForStudent();
}
}else System.out.println("输入学生编号有误,修改失败!\n");
flag=false;
}
}
public void LookForStudent(){
boolean flag=true;
while (flag){
System.out.println("请输入您要查看的学生编号:");
int index=scanner.nextInt();
if (index>studentList.getNumOfStudent()||index<=0){
System.out.println("输入编号有误,请重新输入\n");
continue;
}
System.out.println("-------------------");
Student student=studentList.getStudent(index);
System.out.print("学号:");
System.out.println(student.getId());
System.out.print("姓名:");
System.out.println(student.getName());
System.out.print("性别:");
System.out.println(student.getGender());
System.out.print("年龄:");
System.out.println(student.getAge());
flag=false;
}
}
public void LookAllStudent(){
Student[] students= studentList.getAllStudent();
if (students.length==0){
System.out.println("暂无学生");
System.out.print("是否添加学生?(Y/N):");
char c=scanner.next().charAt(0);
if (c=='Y'||c=='y'){
Add();
}
}
else{
System.out.println(String.format("%-16s","学号")+String.format("%-8s","姓名")
+String.format("%-4s","性别")+String.format("%-4s","年龄"));
for (int i=0;i< students.length;i++){
Student student=students[i];
System.out.println(String.format("%-16s",student.getId())
+String.format("%-8s",student.getName())
+String.format("%-4c",student.getGender())
+String.format("%-4d",student.getAge()));
}
}
}
private void Exit() {
flag=false;
System.out.println("退出成功!");
}
}
StudentManagerTest
import StudentManager.ManagerPanel;
public class StudentManagerTest {
public static void main(String[] args) {
ManagerPanel managerPanel=new ManagerPanel();
managerPanel.enterManagerPanal();
}
}