Java单纯数组与对象实现学生管理系统1.0

版权声明:版权所有@万星明 https://blog.csdn.net/qq_19533277/article/details/82943983

public class Student {
	private String name;
	private String phoneNumber;
	
	public Student() {
		
	}
	public Student(String name,String phoneNumber) {
		this.name = name;
		this.phoneNumber = phoneNumber;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPhoneNumber() {
		return phoneNumber;
	}

	public void setPhoneNumber(String phoneNumber) {
		this.phoneNumber = phoneNumber;
	}
	
}
import java.util.Scanner;
/**
 * @ 实现学员管理系统V1.0,采用数组来作为存储的数据结构,学员信息只需包含姓名和电话即可,要求学员姓名保持唯一性。
 * @author 万星明
 * @version 2.0
 * @time 2018-10-04
 */
public class StudentAdmin {
	//创建全局输入对象
	static Scanner sc = new Scanner(System.in);
	/**
	 * @param 主方法
	 */
	public static void main(String[] args) {
		//通过Student类作为数据类型,生成一个容量20的数组
		Student stu[] = new Student[20];
		//对数组进行遍历,将每个元素new成Student对象
		for(int i=0;i<stu.length;i++) {
			stu[i] = new Student();
		}
		//调用菜单栏方法
		menu(stu);
	}
	/**
	 * @param 菜单栏方法
	 */
	public static void menu(Student[] stu) {
		System.out.println("*******学员管理系统V1.0*********");
		System.out.println("1、添加学员信息");
		System.out.println("2、删除学员信息");
		System.out.println("3、查询学员信息");
		System.out.println("4、退出");
		System.out.println("请输入您的选择:");
		int answer = sc.nextInt();
		//使用switch选择结构,对键入的值进行分别判断
		switch(answer) {
			case 1:
				addStu(stu);
				menu(stu);
				break;
			case 2:
				delStu(stu);
				menu(stu);
				break;
			case 3:
				findStu(stu);
				menu(stu);
				break;
			case 4:
				System.out.println("谢谢使用!");
				System.exit(0);	
				break;
			default:
				System.out.println("你输入有误!");
				menu(stu);
				break;
		}
	}
	/**
	 * @param 添加方法
	 */
	public static void addStu(Student[] stu) {
		System.out.println("请输入学员姓名:");
		String name = sc.next();
		System.out.println("请输入学员联系电话:");
		String phoneNumber = sc.next();
		//定义一个布尔型变量,初值为false,对数组特定值进行查询判定
		boolean flag = false;
		//遍历数组stu,对数组中每个对象的name属性与键入的name对比
		for(int i=0;i<stu.length;i++) {
			if(stu[i].getName()!=null&&stu[i].getName().equals(name)) {
				//如果数组中有对象的name属性与键入的name相同,将flag变量赋值为true
				flag = true;
			} 
		}
		//通过对flag变量进行判断,若为true,则数组中存在键入的姓名,进行相应操作
		if(flag==true) {
			System.out.println("该学员姓名已经存在,是否继续录入?(y/n)");
			String answer=sc.next();
			if(answer.equalsIgnoreCase("y")) {
				addStu(stu);
			}
		}else {
			//flag为false初值,即对stu数组进行遍历,若数组中有对象的name属性为null,则将键入的name属性赋值给予
			for(int i=0;i<stu.length;i++) {
				if(stu[i].getName()==null) {
					stu[i].setName(name);
					stu[i].setPhoneNumber(phoneNumber);
					System.out.println("添加成功!");
					break;
				}
			}
		}
		
	}
	/**
	 * @param 删除方法
	 */
	public static void delStu(Student[] stu) {
		System.out.println("请输入学员姓名:");
		String name = sc.next();
		//定义布尔变量,初值为false
		boolean flag= false;
		//对数组stu进行遍历,对数组中每个对象的name属性与键入的name对比
		for(int i=0;i<stu.length;i++) {
			//判断键入值是否已经存在数组某个对象的name属性中
			if(stu[i].getName()!=null&&stu[i].getName().equals(name)) {
				//存在,则将flag值赋true,将该对象的name属性、phoneNamber属性置null
				flag=true;
				stu[i].setName(null);
				stu[i].setPhoneNumber(null);
				System.out.println("删除成功!");
				break;
			}
		}
		//判断若数组中无对象的name属性与键入的相同
		if(flag==false) {
			System.out.println("该学员不存在,是否继续录入?(y/n)");
			String anwser = sc.next();
			if(anwser.equalsIgnoreCase("y")) {
				delStu(stu);
			}
		}
		
	}
	/**
	 * @param 查询方法
	 */
	public static void findStu(Student[] stu) {
		System.out.println("查询学员信息-->>");
		System.out.println("姓名"+"\t"+"电话");
		//对stu数组进行遍历
		for(int i=0;i<stu.length;i++) {
			//判断数组中对象的name属性不为空
			if(stu[i].getName()!=null) {
				//则输出该对象的name属性和phoneNamber属性
				System.out.println(stu[i].getName()+"\t"+stu[i].getPhoneNumber());
			}
		}
	}
	
}

猜你喜欢

转载自blog.csdn.net/qq_19533277/article/details/82943983