Java学生管理系统
最近开始学习Java,刚刚学习了面向对象,所以写一个学生管理系统巩固知识。本人是一个菜鸟,如有不足之处,还望见谅。
一、学生信息类
1 package yyt; 2 import java.util.Scanner; 3 public class Student { 4 Scanner s = new Scanner(System.in); 5 private int stuID; //学号 6 private String name; //姓名 7 private String gender; //性别 8 private int age; //年龄 9 private long phoneNumber; //手机号 10 //设置信息 11 public void setStuID(int stuID) { 12 this.stuID = stuID; 13 } 14 public void setName(String name) { 15 this.name = name; 16 } 17 public void setGender(String gender) { 18 if (gender.equals("男") || gender.equals("女")) { 19 this.gender = gender; 20 return; 21 } 22 System.out.println("您输入的性别不合法,请重新输入:"); 23 setGender(s.nextLine()); 24 } 25 public void setAge(int age) { 26 if (age <= 0 || age > 150) { 27 System.out.println("您输入的年龄不合法,请重新输入:"); 28 setAge(s.nextInt()); 29 return; 30 } 31 this.age = age; 32 } 33 public void setPhone(long phoneNumber) { 34 this.phoneNumber = phoneNumber; 35 } 36 //获取信息 37 public long getstuID() { 38 return stuID; 39 } 40 public String getname() { 41 return name; 42 } 43 public String getgender() { 44 return gender; 45 } 46 public int getage() { 47 return age; 48 } 49 public long getphone() { 50 return phoneNumber; 51 } 52 53 }
二、操作类
1 package yyt; 2 import java.util.Arrays; 3 import java.util.Scanner; 4 public class StudentManage { 5 Scanner s = new Scanner(System.in); 6 final int size = 50; //学生数量 7 Student[] stu = new Student[size]; 8 //打印菜单 9 public void print() { 10 System.out.println("1、添加学生信息"); 11 System.out.println("2、删除学生信息"); 12 System.out.println("3、修改学生信息"); 13 System.out.println("4、查询学生信息"); 14 System.out.println("5、显示所有信息"); 15 System.out.println("6、退出系统"); 16 System.out.printf("请输入选项:"); 17 } 18 //选择操作 19 public void alternation() { 20 int option = s.nextInt(); 21 switch(option) { 22 case 1: add(); break; //添加 23 case 2: delete(); break; //删除 24 case 3: modify(); break; //修改 25 case 4: search(); break; //查询 26 case 5: display(); break; //显示全部学生信息 27 case 6: System.out.println("退出系统,再见。"); System.exit(0); 28 default: System.out.println("输入错误,请重新输入:"); 29 } 30 } 31 //添加信息 32 public void add() { 33 Student p = new Student(); 34 int length = index(); //获取已存储的学生个数 35 if (length >= size) { 36 Student[] newstu = Arrays.copyOf(stu, 2 * stu.length); 37 stu = newstu; 38 } 39 System.out.printf("请输入学号:"); //添加学号 40 int id = s.nextInt(); 41 s.nextLine(); //消除回车的影响 42 if (exist(id)) { 43 System.out.println("该学生的信息已存在!"); 44 return; 45 } 46 p.setStuID(id); 47 System.out.printf("请输入姓名:"); //添加姓名 48 p.setName(s.nextLine()); 49 System.out.printf("请输入性别:"); //添加性别 50 p.setGender(s.nextLine()); 51 System.out.printf("请输入年龄:"); //添加年龄 52 p.setAge(s.nextInt()); 53 System.out.printf("请输入手机号码:"); //添加手机号 54 p.setPhone(s.nextLong()); 55 stu[length] = p; 56 System.out.println("添加成功!"); 57 } 58 //删除信息 59 public void delete() { 60 int i, j; 61 int length = index(); //获取学生个数 62 System.out.println("请输入要删除学生的学号:"); 63 int deleteID = s.nextInt(); 64 if (!exist(deleteID)) { 65 System.out.println("该学生的信息不存在!"); 66 return; 67 } 68 for (i = 0; i < length; i++) { 69 if (deleteID == stu[i].getstuID()) 70 break; 71 } 72 for (j = i; j < length; j++) { 73 stu[j] = stu[j+1]; 74 } 75 System.out.println("删除成功!"); 76 } 77 //修改信息 78 public void modify() { 79 int i; 80 System.out.println("请输入要修改学生的学号:"); 81 int modifID = s.nextInt(); 82 int length = index(); //获取学生个数 83 if (!exist(modifID)) { 84 System.out.println("该学生的信息不存在!"); 85 return; 86 } 87 for (i = 0; i < length; i++) { 88 if (stu[i].getstuID() == modifID) 89 break; 90 } 91 System.out.println("请输入要修改的内容:1、学号 2、姓名 3、性别 4、年龄 5、手机号:"); 92 int choose = s.nextInt(); 93 s.nextLine(); 94 if (choose == 1) { 95 System.out.println("请输入新的学号:"); 96 stu[i].setStuID(s.nextInt()); 97 } 98 else if (choose == 2) { 99 System.out.println("请输入新的姓名:"); 100 stu[i].setName(s.nextLine()); 101 } 102 else if (choose == 3) { 103 System.out.println("请输入新的性别:"); 104 stu[i].setGender(s.nextLine()); 105 } 106 else if (choose == 4) { 107 System.out.println("请输入新的年龄:"); 108 stu[i].setAge(s.nextInt()); 109 } 110 else { 111 System.out.println("请输入新的手机号:"); 112 stu[i].setPhone(s.nextLong()); 113 } 114 System.out.println("修改完毕!"); 115 } 116 //显示所有信息 117 public void display() { 118 int length = index(); //获取学生个数 119 System.out.println("所有学生的信息如下:"); 120 for (int i = 0; i < length; i++) { 121 System.out.printf("学号:%d 姓名:%s 性别:%s 年龄:%d 电话号码:%d\n", 122 stu[i].getstuID(), stu[i].getname(), stu[i].getgender(), 123 stu[i].getage(), stu[i].getphone()); 124 } 125 } 126 //查询某个学生的信息 127 public void search() { 128 int length = index(); //获取学生个数 129 System.out.println("请输入要查询的学号:"); 130 int searchID = s.nextInt(); 131 for (int i = 0; i < length; i++) 132 if (stu[i].getstuID() == searchID) { 133 System.out.println("已找到该学生!"); 134 System.out.printf("学号:%d\n", stu[i].getstuID()); 135 System.out.printf("姓名:%s\n", stu[i].getname()); 136 System.out.printf("性别:%s\n", stu[i].getgender()); 137 System.out.printf("年龄:%d\n", stu[i].getage()); 138 System.out.printf("手机号码:%d\n", stu[i].getphone()); 139 return; 140 } 141 System.out.println("未找到该学生!"); 142 return; 143 144 } 145 //获取当前学生的个数 146 private int index() { 147 int i; 148 for (i = 0; i < stu.length; i++) { 149 if(stu[i] == null) 150 return i; 151 } 152 return i; 153 } 154 //检索学生信息是否存在 155 private boolean exist(int number) { 156 for (int i = 0; i < index(); i++) { 157 if (number == stu[i].getstuID()) 158 return true; 159 } 160 return false; 161 } 162 }
三、测试
1 package yyt; 2 import java.util.Scanner; 3 public class Test { 4 public static void main(String[] args) { 5 Scanner s = new Scanner(System.in); 6 System.out.printf("******欢迎进入学生管理系统******\n"); 7 StudentManage op = new StudentManage(); 8 while(true) { 9 op.print(); 10 op.alternation(); 11 } 12 } 13 }
主要功能:对学生信息的添加、删除、修改、查询、显示。
设计过程:将学生的基本信息(学号、姓名、性别、年龄、电话号码)以及对这些信息的设置和获取封装成一个类。将系统的各种操作(添加、修改、删除、查询、显示等功能)封装成一个类。利用数组储存学生对象,即数组的每一个元素代表一个学生。通过一个永真循环来提示用户执行操作,实现各个功能。