本文主要使用Java语言完成了一个简单的学生信息管理系统,包括添加学生、删除学生、修改学生等基本功能,其中保证了学生ID的唯一性。因为没有涉及数据库,仅在编译器界面使用数组实现,所以每一次的运行的数据都不会保留,仅一次有效,更好的便捷了代码运行debug纠错。
本次代码使用了Javabean创建了一个学生类,如下:
package studentarray;
public class Student {
private int id;
private String name;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
实现学生信息管理系统页面代码如下:
package studentarray;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//初始化一个数组,存储3名学生信息为初始数据
Student[] arr = new Student[3];
Student stu1 = new Student(1,"ZhangSan",23);
Student stu2 = new Student(2,"LiSi",24);
Student stu3 = new Student(3,"WangWu",22);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
System.out.println("#######学生信息页面#######");
while(true) {
readArr(arr);
System.out.println("请选择您要进行的操作:");
System.out.println("1.添加学生");
System.out.println("2.删除学生");
System.out.println("3.修改学生");
Scanner sc1 = new Scanner(System.in);
int choose = sc1.nextInt();
switch(choose){
case 1:
arr = addStu(arr);
break;
case 2:
deleteStu(arr);
break;
case 3:
updStu(arr);
break;
default:
System.out.println("请输入对应操作编号:");
}
}
}
//添加一个学生对象
public static Student[] addStu(Student[] arr) {
Student stu4 = new Student();
while(true) {
//输入学生信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要添加的学生ID:");
int id4=sc.nextInt();
System.out.println("请输入您要添加的学生姓名:");
String name4 = sc.next();
System.out.println("请输入您要添加的学生年龄:");
int age4=sc.nextInt();
//放入学生对象中
stu4.setId(id4);
stu4.setName(name4);
stu4.setAge(age4);
boolean flag = contain(arr,stu4.getId());
if(flag) {
System.out.println("当前id重复,请重新输入!");//学号重复提示
}
else {
//学号不重复时判断原学生数组长度
int count = getCount(arr);
if(count==arr.length) {
//数组已满员,则需new一个数组把原数据放进来,加上新学生对象
Student[] newArr = copyArr(arr);
newArr[count] = stu4;
//添加完后,提示操作成功
System.out.println("操作成功!");
return newArr;
}
else {
//数组未满员,直接在后面添加
Student[] newArr = arr;
newArr[count] = stu4;
//添加完后,提示操作成功
System.out.println("操作成功!");
return newArr;
}
}
}
}
//根据id删除学生信息
public static void deleteStu(Student[] arr) {
//首先需要判断id是否存在
while(true) {
System.out.println("请输入您想删除的学生ID:");
Scanner sc2 = new Scanner(System.in);
int id = sc2.nextInt();
boolean f = contain(arr,id);
if(!f) {
System.out.println("当前ID无对应学生,请重新输入");
}
else {
for(int i = 0 ; i < arr.length ; i++) {
if(arr[i].getId()==id) {
System.out.println("您要删除的学生信息如下:");
System.out.println("学生ID:"+arr[i].getId());
System.out.println("学生姓名:"+arr[i].getName());
System.out.println("学生年龄:"+arr[i].getAge());
for(int j = i;j<arr.length-1;j++) {
arr[j].setId(arr[j+1].getId());
arr[j].setName(arr[j+1].getName());
arr[j].setAge(arr[j+1].getAge());
}
arr[arr.length-1]=null;
break;
}
}
break;
}
}
}
//修改学生信息by id
public static void updStu(Student[] arr) {
//首先需要判断id是否存在
while(true) {
System.out.println("请输入您想修改的学生ID:");
Scanner sc3 = new Scanner(System.in);
int id = sc3.nextInt();
boolean f = contain(arr,id);
if(!f) {
System.out.println("当前ID无对应学生,请重新输入");
}
else {
for(int i = 0 ; i < arr.length ; i++) {
if(arr[i].getId()==id) {
System.out.println("您要修改的学生原信息如下:");
System.out.println("学生ID:"+arr[i].getId());
System.out.println("学生姓名:"+arr[i].getName());
System.out.println("学生年龄:"+arr[i].getAge());
System.out.println("接下来请根据提示重新输入该学生的信息");
while(true) {
//输入学生信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生ID:");
int id1=sc.nextInt();
System.out.println("请输入学生姓名:");
String name = sc.next();
System.out.println("请输入学生年龄:");
int age=sc.nextInt();
boolean flag = contain(arr,id1);
if(flag && id1!= id) {
System.out.println("当前id重复,请重新输入!");//学号重复提示
}
else {
arr[i].setId(id1);
arr[i].setName(name);
arr[i].setAge(age);
break;
}
}
break;
}
}
break;
}
}
}
//判断id是否重复
public static boolean contain(Student[] arr, int id) {
for(int i = 0; i < arr.length ;i++) {
Student stu = arr[i];
int sid = stu.getId();
if(sid==id) {
return true;
}
}
return false;
}
//判断数组中存了几个元素
public static int getCount(Student[] arr) {
int count = 0;
for(int i = 0 ; i<arr.length;i++) {
if(arr[i] != null) {
count++;
}
}
return count;
}
//拷贝原数据并扩容
public static Student[] copyArr(Student[] arr) {
Student[] newArr = new Student[arr.length+1];
for(int i = 0; i<arr.length ; i++) {
newArr[i] = arr[i];
}
return newArr;
}
//遍历学生信息,并打印
public static void readArr(Student[] arr) {
for(int i = 0; i<arr.length ; i++) {
if(arr[i]!=null) {
System.out.println("************************************");
System.out.println((i+1) +"号学生的信息如下");
System.out.println("学生ID:" + arr[i].getId());
System.out.println("学生姓名:" + arr[i].getName());
System.out.println("学生年龄:" + arr[i].getAge());
}
else {
break;
}
}
}
}
又是丑丑的页面,等我学页面设计了一定改!仅做手作纪念ღ( ´・ᴗ・` )