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 }
 

主要功能:对学生信息的添加、删除、修改、查询、显示。
设计过程:将学生的基本信息(学号、姓名、性别、年龄、电话号码)以及对这些信息的设置和获取封装成一个类。将系统的各种操作(添加、修改、删除、查询、显示等功能)封装成一个类。利用数组储存学生对象,即数组的每一个元素代表一个学生。通过一个永真循环来提示用户执行操作,实现各个功能。

 

posted @ 2019-10-20 21:11  霜见  阅读(670)  评论(0编辑  收藏  举报