学生信息管理系统(JAVA)
一、目的
设计开发一套完整的学生信息管理系统---
(能够对学生的信息进行管理,包括对学生信息的添加,修改,删除,查看以及系统的关闭退出等)
二、整体框架与思路
学生类:(将学生的个人信息全部封装起来)
main方法:
实现界面的初始化
能够从键盘录入数据
选择相应的模块能够调用相应的方法
程序能够终止
添加学生的方法
查看学生的方法
删除学生的方法
程序退出
三、本系统重难点
- 添加、删除、查看、修改四个方法的书写
四、程序完整代码
package Pattern;
import java.util.ArrayList;
import java.util.Scanner;
public class T15 {
public static void main(String[] args) {
//定义一个ArrayList用来存放学生信息
ArrayList<Student> arrayList = new ArrayList<>();
//使用一个循环控制系统能够持续执行
while (true) {
//构建系统初始化界面
System.out.println("-----欢迎使用同学通讯录-----");
System.out.println("1 添加同学");
System.out.println("2 查看同学");
System.out.println("3 删除同学");
System.out.println("4 修改信息");
System.out.println("5 退出通讯录");
System.out.println("请输入你的选择:");
//从键盘读取数字,得到用户想要进行的操作
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
//通过对数字的判断来进行相应的增删查改
switch (i) {
case 1:
addStudent(arrayList);
break;
case 2:
findStudent(arrayList);
break;
case 3:
deleteStudent(arrayList);
break;
case 4:
updateStudent(arrayList);
break;
case 5:
System.out.println("退出通讯录成功!");
System.exit(0);//当选择了5时,直接关闭JVM,整个系统结束
}
}
}
//增加学生信息
public static void addStudent(ArrayList<Student> array) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生学号:");
int num = scanner.nextInt();
System.out.println("请输入学生QQ:");
int qq = scanner.nextInt();
System.out.println("请输入学生电话:");
int phone = scanner.nextInt();
//因为ArrayList传入的数据需要是对象,所以new出来一个封装好的学生对象
//对象里面的数据就是从键盘录入的,通过set方法将数据传入
Student s1 = new Student();
s1.setNum(num);
s1.setQq(qq);
s1.setPhone(phone);
//把学生对象add进ArrayList
array.add(s1);
System.out.println("添加成功!");
}
//通过遍历ArrayList来实现查看功能
public static void findStudent(ArrayList<Student> array) {
//需要先判断ArrayList是否为空
if (array.size() == 0) {
System.out.println("通讯录为空,请先录入数据");
return;//为空的话,退出当前方法
}
//不为空向下执行,遍历输出
System.out.println("学号\tQQ\t\t电话");
for (int i = 0; i < array.size(); i++) {
//获取array的每一位,然后调用get方法得到数据
Student s = array.get(i);
System.out.println(s.getNum() + "\t\t" + s.getQq() + "\t\t" + s.getPhone());
}
}
//通过输入得到的学号与集合里面对象的num进行比较,如果相同,就新new一个Student
//来替换原先的对象(这边有一个小瑕疵,如果学号不存在的情况还没有考虑)
public static void updateStudent(ArrayList<Student> array) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你要修改的同学学号:");
int snum = scanner.nextInt();
System.out.println("请输入新学号:");
int newnum = scanner.nextInt();
System.out.println("请输入新QQ:");
int newqq = scanner.nextInt();
System.out.println("请输入新电话:");
int newphone = scanner.nextInt();
Student s = new Student();
s.setQq(newqq);
s.setNum(newnum);
s.setPhone(newphone);
for (int i = 0; i < array.size(); i++) {
Student student = array.get(i);
if (student.getNum() == snum) {
array.set(i, s);
break;
}
}
System.out.println("修改成功!");
}
//删除学生信息,比对集合中是否存在该学号的数据,若存在则删除
public static void deleteStudent(ArrayList<Student> array) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入需要删除的同学的学号:");
int num = scanner.nextInt();
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getNum() == num){
index = i;
break;
}
}
if (index == -1){
System.out.println("你输入的信息不存在,请重新输入");
}else {
array.remove(index);
System.out.println("删除成功!");
}
}
}
class Student {
private int num;
private int qq;
private int phone;
public Student() {
}
public Student(int num, int qq, int phone) {
this.num = num;
this.qq = qq;
this.phone = phone;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getQq() {
return qq;
}
public void setQq(int qq) {
this.qq = qq;
}
public int getPhone() {
return phone;
}
public void setPhone(int phone) {
this.phone = phone;
}
}
五、系统总结
这个系统的书写还是很经典的,通过这个系统可以让我对ArrayList集合的遍历,以及对象封装之后作为元素存储在集合里,怎么通过get方法获取到对象里面的数据然后进行比对。如果有必要,需要在次把代码全部删除,从头开始重新书写练习一遍。