java阶段设计:第一次项目

第一次项目是一个简短的学生管理系统设计。内容如下

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语句混合使用不熟练,成员变量值的传递容易弄混。在编程过程中逻辑混乱,思路不清晰。
这个阶段有很多问题,基础的东西仍然不熟,希望可以以后多用心去练习。

发布了28 篇原创文章 · 获赞 0 · 访问量 427

猜你喜欢

转载自blog.csdn.net/syhfly2333/article/details/105130562