第一次项目是一个简短的学生管理系统设计。内容如下
package venus;
import java.util.Scanner;
import javax.xml.soap.Detail;
import venus.Student;
public class Test {
static int index=0;
static Student [] students = new Student[45];//静态里面直接使用,都要加static
public static void main(String[] args) {
for (;;) {
menu();
}
}
public static void menu() {
Scanner scanner = new Scanner(System.in);
System.out.println("***********************************");
System.out.println("* 欢迎使用学生管理系统 *");
System.out.println("***********************************");
System.out.println("1、添加学生信息");
System.out.println("2、删除学生信息");
System.out.println("3、修改学生信息");
System.out.println("4、查询学生信息");
System.out.println("请输入操作项");
int option = scanner.nextInt();
switch (option) {
case 1:{
if (index>students.length) {
System.out.println("人员超额");
return;
}
Student student = new Student();
System.out.println("请输入学生学号");
String id = scanner.next();
student.setId(id);
System.out.println("请输入学生姓名");
String name = scanner.next();
student.setName(name);
System.out.println("请输入学生手机号");
String mobile = scanner.next();
student.setMobile(mobile);
System.out.println("请输入学生地址");
String address = scanner.next();
student.setAddress(address);
System.out.println("添加成功");
System.out.println(index);
if (index!=0) {
for (Student stu : students) {
if (stu==null) {
break;
}
if (stu.getId().equals(students)) {
System.out.println("学号不允许重复");
return;
}
}
}
students[index]=student;
index = index+1;
break;
}
case 2:{
System.out.println("请输入学号");
String id = scanner.next();
/*for (Student student : students) {//这里是第一种方法。
if (student==null) {
System.out.println("没有找到该学生");
return;
}
}
/*boolean flag = false;
int length = students.length;
for(int i = 0; i < length; i++) {
if(student.getId().equals(id)) {
for(int j= i; j< length - 1; j++) {
students[j] = students[j+1];
}
length--;
flag = true;
}
}
if (flag) {
System.out.println("删除" +id+ "成功!");
}else {
System.out.println("输入id有误,不存在该" +id+"学生,无法删除");
}//先判断和进行数组的前移,在判断一次是否有该学生。
}*/
int i = 0;//i 后面一直在用,拿出来。
boolean hasData = false;
for (; i < students.length; i++) {//()中的写法
if (students[i]==null) {
System.out.println("没有找到该学生");
break;
}
if (id.equals(students[i].getId())) {
hasData = true;
break;
}
if (!hasData) {
System.out.println("没有找到该"+id+"学生,删除失败 ");
}else {
System.out.println("删除成功");
index = index-1;//数组长度减少
}
for ( i = 0; i < students.length; i++) {
if (i==students.length-1) {
students[i]=null;//让最后一个为null。
break;
}
students[i]=students[i+1];
if (students[i+1]==null) {
break;
}
}
}//这个方法的思路是先想办法找到要找的对象,再进行数组中元素的前移。
}
case 3:{
System.out.println("请输入学号");
String id = scanner.next();
for (Student student : students) {
if (student==null) {
System.out.println("没找到学生");
return;
}
if (student.getId().equals(id)){
System.out.println("请输入新名字");
student.setName(scanner.next());
System.out.println("请输入新号码");
student.setMobile(scanner.next());
System.out.println("请输入新地址");
student.setAddress(scanner.next());
System.out.println("修改成功");
break;
}
}
System.out.println("没有找到该学生");
}
break;
case 4:{
boolean hasData = false;
//Student student = new Student();
System.out.println("请输入学号");
String id = scanner.next();
//student.setId(id);
//students[index]=student2;
for (Student student : students) {
if (student==null) {
break;
}
if (student.getId().equals(id)) {
System.out.println(student);
hasData = true;
}
}
if (!hasData) {
System.out.println("没有找到该学生");
}
return;
}
default:
System.out.println("系统没有找到"+option+"操作项");
}
}
}
这次项目设计是第一次,很多语言并不是很熟,开始忘了基本的东西,如创建数组,新对象的创建,语言中的细节容易出错。且对于大括号使用易乱,if和for语句混合使用不熟练,成员变量值的传递容易弄混。在编程过程中逻辑混乱,思路不清晰。
这个阶段有很多问题,基础的东西仍然不熟,希望可以以后多用心去练习。