使用Java语言设计一个简单的“学生信息管理系统”

1.需求分析

学生信息管理系统应当包含查看所有学生信息、添加学生信息、修改学生信息、删除学生信息等功能。每个学生都应该包含学号、姓名、性别、联系电话、家庭地址等信息,其中学号还应该具有唯一性。

2.设计过程

2.1 编写学生类

	学生类之中应该包含学生的相关属性以及设置和获取相关属性值的方法,类的无参和有参构造方法。

2.2 编写学生信息管理系统的菜单(即主页面)

	用户可以通过菜单管理学生的信息
		菜单中应包含查看所有学生信息、添加学生信息、删除学生信息、修改学生信息、退出系统等选项,用户选择相应的选项,便可执行相关的功能。
	思路:使用switch实现用户选择相应的选项,执行相关的功能,只要用户没有选择退出键,查询就会一直执行下去,直至用户选择退出系统为止。

2.3 编写查询所有学生信息的方法

	思路:如果集合中没有元素,则在控制台提示“系统中没有学生的信息,请先选择"添加"选项,添加学生。”如果有元素,则遍历集合中的元素,并在控制台输出所有学生的信息。

2.4 编写添加学生信息的方法,其中要保证学生的学号唯一

	思路:输入学生学号后,会遍历集合中所有的元素,查看学号是否已存在,如果已存在,则在控制台提示,并重新输入;如果不存在,则继续输入其他信息。

2.5 编写删除学生信息的方法

	思路:输入要删除学生的学号后,遍历集合中所有的元素,查看学号是否存在,如果不存在,则在控制台提示;如果存在,则输出相关学生的全部信息,让用户确认是否删除,以免误删。

2.6 编写修改学生相关信息的方法

	思路:输入要修改学生的学号后,遍历集合中所有的元素,查看学号是否存在,如果不存在,则在控制台提示;如果存在,则输出相关学生的全部信息,让用户确认是否修改,以免修改错误。若用户选择修改,则继续输入除学号外的其他信息,学号是不能修改的。

3.代码

3.1 学生类(Student.java)的代码如下:

/*
 * 这是一个学生类,包含学生的相关属性以及设置和获取相关属性值的方法,类的无参和有参构造方法。
 * 其中属性值包括:学号、姓名、性别、联系电话、家庭地址
 */
public class Student {
	// 定义学生的相关属性变量
	private String student_id;
	private String student_name;
	private String student_sex;
	private String student_telephone;
	private String student_address;

	public Student() {
	}

	public Student(String student_id, String student_name, String student_sex, String student_telephone,
			String student_address) {
		this.student_id = student_id;
		this.student_name = student_name;
		this.student_sex = student_sex;
		this.student_telephone = student_telephone;
		this.student_address = student_address;
	}

	public String getStudent_id() {
		return student_id;
	}

	public void setStudent_id(String student_id) {
		this.student_id = student_id;
	}

	public String getStudent_name() {
		return student_name;
	}

	public void setStudent_name(String student_name) {
		this.student_name = student_name;
	}

	public String getStudent_sex() {
		return student_sex;
	}

	public void setStudent_sex(String student_sex) {
		this.student_sex = student_sex;
	}

	public String getStudent_telephone() {
		return student_telephone;
	}

	public void setStudent_telephone(String student_telephone) {
		this.student_telephone = student_telephone;
	}

	public String getStudent_address() {
		return student_address;
	}

	public void setStudent_address(String student_address) {
		this.student_address = student_address;
	}

}

3.2 主体类(StudentManagerTest.java)的代码如下:

 import java.util.ArrayList;
    	import java.util.Scanner;
    	/*
    	 * 这是一个学生管理系统的主体类
    	 * 开发过程:
    	 * 		1.编写学生类
    	 * 		2.编写学生信息管理系统的菜单(即主界面)
    	 * 		3.编写查询所有学生信息的方法
    	 * 		4.编写添加学生信息的方法,其中要保证学生的学号唯一
    	 * 		5.编写删除学生信息的方法
    	 * 		6.编写修改学生相关信息的方法
    	 */
    	public class StudentManagerTest {
    		public static void main(String[] args) {
    			// 创建集合对象
    			ArrayList<Student> array = new ArrayList<Student>();
    			while (true) {
    				// 菜单
    				System.out.println("-----------欢迎进入学生信息管理系统-----------");
    				System.out.println("请选择相关选项对学生信息进行管理...\n");
    				System.out.println("1.查看所有学生信息");
    				System.out.println("2.添加学生信息");
    				System.out.println("3.删除学生信息");
    				System.out.println("4.修改学生信息");
    				System.out.println("5.退出系统\n");
    				// 创建键盘录入对象
    				Scanner sc = new Scanner(System.in);
    				// 接收选项数据
    				System.out.println("请输入你的选项:");
    				String option = sc.nextLine();
    				switch (option) {
    				// 查看所有学生信息
    				case "1":
    					findAllStudentInfo(array);
    					break;
    				// 添加学生信息
    				case "2":
    					addStudentInfo(array);
    					break;
    				// 删除学生信息
    				case "3":
    					deleteStudentInfo(array);
    					break;
    				// 修改学生信息
    				case "4":
    					updateStudentInfo(array);
    					break;
    				// 退出系统
    				case "5":
    					System.out.println("退出系统成功!");
    					// 关闭Java虚拟机
    					System.exit(0);
    					break;
    				// 输入错误
    				default:
    					System.out.println("\n输入错误,请重新选择!\n");
    					break;
    				}
    			}
    		}
    		// 查询所有学生信息
    		public static void findAllStudentInfo(ArrayList<Student> array) {
    			// 查询功能
    			if (array.size() == 0) {
    				System.out.println("\n系统中没有学生的信息,请先选择\"添加\"选项,添加学生。\n");
    				return;
    			}
    			System.out.println();
    			System.out.println("-----------欢迎查看所有学生信息-----------");
    			System.out.println("学号\t\t姓名\t性别\t联系电话\t\t家庭地址");
    			for (int i = 0; i < array.size(); i++) {
    				Student s = array.get(i);
    				if (i != array.size() - 1)
    					System.out.println(s.getStudent_id() + "\t" + s.getStudent_name() + "\t" + s.getStudent_sex() + "\t"
    							+ s.getStudent_telephone() + "\t" + s.getStudent_address());
    				else
    					System.out.println(s.getStudent_id() + "\t" + s.getStudent_name() + "\t" + s.getStudent_sex() + "\t"
    							+ s.getStudent_telephone() + "\t" + s.getStudent_address() + "\n");
    			}
    		}
    		// 添加学生信息
    		public static void addStudentInfo(ArrayList<Student> array) {
    			// 创建键盘录入对象
    			Scanner sc = new Scanner(System.in);
    			String student_id;
    			System.out.println();
    			while (true) {
    				// 输入学生信息
    				System.out.print("请输入学号:");
    				student_id = sc.nextLine();
    				// 定义标记
    				boolean flag = false;
    				// 判断学号是否已存在
    				for (int i = 0; i < array.size(); i++) {
    					Student s = array.get(i);
    					if (s.getStudent_id().equals(student_id)) {
    						flag = true;
    						break;
    					}
    				}
    				if (flag)
    					System.out.println("你输入的学号已存在,请重新输入!\n");
    				else
    					break;
    			}
    			System.out.print("请输入姓名:");
    			String student_name = sc.nextLine();
    			System.out.print("请输入性别:");
    			String student_sex = sc.nextLine();
    			System.out.print("请输入联系方式:");
    			String student_telephone = sc.nextLine();
    			System.out.print("请输入家庭地址:");
    			String student_address = sc.nextLine();
    			// 创建学生对象
    			Student s = new Student();
    			s.setStudent_id(student_id);
    			s.setStudent_name(student_name);
    			s.setStudent_sex(student_sex);
    			s.setStudent_telephone(student_telephone);
    			s.setStudent_address(student_address);
    			// 把学生对象作为元素添加到集合中
    			array.add(s);
    			// 输出提示信息
    			System.out.println("\n添加成功!\n");
    		}
    		// 删除学生信息
    		public static void deleteStudentInfo(ArrayList<Student> array) {
    			// 创建键盘输入对象
    			Scanner sc = new Scanner(System.in);
    			// 输入要删除学生的学号
    			System.out.println();
    			System.out.print("请输入你要删除的学生的学号:");
    			String student_id = sc.nextLine();
    			// 定义标记
    			int index = -1;
    			// 查询用户输入的学号是否存在
    			Student s = null;
    
    			for (int i = 0; i < array.size(); i++) {
    				s = array.get(i);
    				if (s.getStudent_id().equals(student_id)) {
    					index = i;
    					break;
    				}
    			}
    			if (index == -1)
    				System.out.println("\n没有查找到你所输入的学号,请检查学号是否输入正确。\n");
    			else {
    				System.out.println("\n你要删除的学号对应的学生信息如下,是否删除?\n输入\"1\"选择\"是\",输入任意键选择\"否\"\n");
    				System.out.println("学号\t\t姓名\t性别\t联系电话\t\t家庭地址");
    				System.out.println(s.getStudent_id() + "\t" + s.getStudent_name() + "\t" + s.getStudent_sex() + "\t"
    						+ s.getStudent_telephone() + "\t" + s.getStudent_address() + "\n");
    				System.out.print("请输入:");
    				String j = sc.nextLine();
    				switch (j) {
    				case "1":
    					array.remove(index);
    					System.out.println("\n删除学号为:" + student_id + "的学生成功\n");
    					break;
    				default:
    					System.out.println("\n删除学号为:" + student_id + "的学生失败\n");
    					break;
    				}
    			}
    		}
    		// 更改学生的相关信息
    		public static void updateStudentInfo(ArrayList<Student> array) {
    			// 创建键盘输入对象
    			Scanner sc = new Scanner(System.in);
    			// 输入要修改学生的学号
    			System.out.println();
    			System.out.print("请输入你要修改的学生的学号:");
    			String student_id = sc.nextLine();
    			// 定义标记
    			int index = -1;
    			Student s = null;
    			for (int i = 0; i < array.size(); i++) {
    				s = array.get(i);
    				if (s.getStudent_id().equals(student_id)) {
    					index = i;
    					break;
    				}
    			}
    			if (index == -1)
    				System.out.println("\n没有查找到你所输入的学号,请检查学号是否输入正确。\n");
    			else {
    				System.out.println("\n你要修改的学号对应的学生信息如下,是否修改?\n输入\"1\"选择\"是\",输入任意键选择\"否\"\n");
    				System.out.println("学号\t\t姓名\t性别\t联系电话\t\t家庭地址");
    				System.out.println(s.getStudent_id() + "\t" + s.getStudent_name() + "\t" + s.getStudent_sex() + "\t"
    						+ s.getStudent_telephone() + "\t" + s.getStudent_address() + "\n");
    				System.out.print("请输入:");
    				String j = sc.nextLine();
    				switch (j) {
    				case "1":
    					System.out.println();
    					// 输入要修改的数据
    					System.out.print("请输入新姓名:");
    					String student_name = sc.nextLine();
    					System.out.print("请输入新性别:");
    					String student_sex = sc.nextLine();
    					System.out.print("请输入新联系方式:");
    					String student_telephone = sc.nextLine();
    					System.out.print("请输入新地址:");
    					String student_address = sc.nextLine();
    					// 修改集合中的学生的信息
    					s.setStudent_name(student_name);
    					s.setStudent_sex(student_sex);
    					s.setStudent_telephone(student_telephone);
    					s.setStudent_address(student_address);
    					System.out.println("\n学号为:" + student_id + "的学生信息修改成功!\n");
    					break;
    				default:
    					System.out.println("\n学号为:" + student_id + "的学生信息修改失败!\n");
    					break;
    				}
    			}
    		}
    	}
  • 29
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值