比较基础,实现了基本的增删改查,算是对之前学习内容的总结。
创建一个学生类
学生类包含学号姓名等基本信息,便于后续操作
public class Student {
private String id;
private String name;
private String moblie;
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMoblie() {
return moblie;
}
public void setMoblie(String moblie) {
this.moblie = moblie;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", moblie=" + moblie + ", address=" + address + "]";
}
Body
public class Main {
static int index = 0;
static Student [] students = new Student[45];
public static void main(String[] args) {
System.out.println("*********************************");
System.out.println("* 欢迎使用学生管理系统 *");
System.out.println("*********************************");
for(;;) {
menu();
}
}
private static void menu() {
System.out.println("1、添加学生信息");
System.out.println("2、删除学生信息");
System.out.println("3、修改学生信息");
System.out.println("4、查询学生信息");
System.out.println("请输入操作项,点击Enter键");
Scanner sc = new Scanner(System.in);//Ctrl+Shift+O
int option = sc.nextInt();
switch (option) {
case 1:
{
if(index>students.length-1) {
System.out.println("没有座位了");
break;
}
Student student = new Student();
System.out.println("请输入学号,点击Enter键:");
String id = sc.next();
student.setId(id);
if(index != 0) {
for(Student stu : students) {
if(stu == null) {
break;
}
if(stu.getId().equals(student.getId())) {
System.out.println("学号重复");
return;
}
}
}
System.out.println("请输入姓名,点击Enter键:");
String name = sc.next();
student.setName(name);
System.out.println("请输入手机号,点击Enter键:");
String moblie = sc.next();
student.setMoblie(moblie);
System.out.println("请输入家庭住址,点击Enter键:");
String address = sc.next();
student.setAddress(address);
students[index] = student;
index = index + 1;
System.out.println("添加成功");
break;
}
case 2:
{
System.out.println("请输入学号,点击Enter键:");
String id = sc.next();
boolean hasData = false;
int i = 0;
for (; i < students.length; i++) {
if(students[i] == null ) {
break;
}
if(id.equals(students[i].getId())) {
hasData = true;
break;
}
}
if(!hasData) {
System.out.println("查无此人,删除失败");
}
for (; i < students.length; i++) {
if(i == students.length-1) {
students[i] = null;
break;
}
students[i] = students[i+1];
if(students[i+1] == null ) {
break;
}
}
System.out.println("删除成功");
index = index-1;
break;
}
case 3:
{
System.out.println("请输入学号,点击Enter键:");
String id = sc.next();
for(Student student : students) {
if(student == null) {
System.out.println("查无此人");
break;
}
if(student.getName().equals(id)) {
System.out.println("请输入姓名,点击Enter键:");
String name = sc.next();
student.setName(name);
System.out.println("请输入手机号,点击Enter键:");
String moblie = sc.next(); student.setMoblie(moblie);
System.out.println("请输入家庭住址,点击Enter键:");
String address = sc.next();
student.setAddress(address);
System.out.println("修改成功");
break;
}
}
break;
}
case 4:
{
boolean hasData = false;
System.out.println("请输入姓名,点击Enter键:");
String name = sc.next();
for(Student student : students) {
if(student == null) {
break;
}
if(student.getName().equals(name)) {
System.out.println(student);
hasData = true;
}
}
if(!hasData) {
System.out.println("没有找到");
}
break;
}
default:
System.out.println("无此操作项");
}
}
}
关于Static的一点
由此可见,程序运行时先加载静态代码块,在创建对象时再执行非静态代码块中的内容