• 【从零开始学Java笔记】学生管理系统


    大家可以关注作者的账号,关注从零开始学Java笔记文集。也可以根据目录前往作者的博客园博客进行学习。本片文件将基于黑马程序员就业班视频进行学习以及资料的分享,并记录笔记和自己的看法。欢迎大家一起学习和讨论。

    【从零开始学Java笔记】目录

    学生管理系统一直是大学学习过程中无法跳过的环节,因为这个系统囊括了很多知识,是初学者不错的上手项目。

    需求:
    1.学生属性有学号,姓名,年龄和地址
    2.要有主界面
    3.可以增加学生,学号唯一,不能重复添加
    4.可以查看所有学生
    5.可以根据学号删除学生
    6.可以根据学号查找学生

    实现:

    package com.tyust.studentmanagement;
    
    public class Student {
    	
    	//成员变量
    	private String id;
    	private String name;
    	private String age;
    	private String address;
    		
    	
    	//get、set方法
    	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 getAge() {
    		return age;
    	}
    
    	public void setAge(String age) {
    		this.age = age;
    	}
    
    	public String getAddress() {
    		return address;
    	}
    
    	public void setAddress(String address) {
    		this.address = address;
    	}
    	
    	//无参构造
    	public Student() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    	
    	//有参构造
    	public Student(String id, String name, String age, String address) {
    		super();
    		this.id = id;
    		this.name = name;
    		this.age = age;
    		this.address = address;
    	}
    }
    
    package com.tyust.studentmanagement;
    
    import java.util.ArrayList;
    import java.util.Scanner;
    
    /*
     * 
     */
    public class StudentAction {
    	public static void main(String[] args) {
    
    		// 创建一个集合
    		ArrayList<Student> stu = new ArrayList<Student>();
    
    		// 主界面,while(true)是一个死循环
    		while (true) {
    			System.out.println("**********欢迎来到学生管理系统**********");
    			System.out.println("如需添加学生信息,请按1");
    			System.out.println("如需查看学生信息,请按2");
    			System.out.println("如需删除学生信息,请按3");
    			System.out.println("如需修改学生信息,请按4");
    			System.out.println("如需退出,请按5");
    			System.out.println("请输入您需要的操作:");
    
    			// 从键盘输入
    			Scanner sc = new Scanner(System.in);
    			// 接收
    			int choice = sc.nextInt();
    
    			// switch选择
    			switch (choice) {
    			case 1:
    				addStudent(stu);
    				break;
    			case 2:
    				travelStudent(stu);
    				break;
    			case 3:
    				deleteStudent(stu);
    				break;
    			case 4:
    				modifyStudent(stu);
    				break;
    			// 这个地方用了case穿透,即case 5没有内容,直接穿透到下一个case
    			case 5:
    			default:
    				System.out.println("谢谢您的使用!");
    				// 关闭虚拟机,结束程序
    				System.exit(0);
    
    			}
    		}
    	}
    
    	// 增加学生
    	public static void addStudent(ArrayList<Student> stu) {
    
    		// 键盘输入
    		Scanner sc = new Scanner(System.in);
    		// 提拉,将id的声明提拉至循环外,以便循环后还能使用,如果在循环内声明,循环结束后,变量也随之消失
    		String id;
    
    		// while循环,判断学号是否重复
    		while (true) {
    			System.out.println("请输入学号:");
    			id = sc.nextLine();
    			// 判断标志初始化
    			boolean index = false;
    			// 循环判断,如果发现相同,改变判断标志,跳出循环
    			for (int i = 0; i < stu.size(); i++) {
    				if (id.equals(stu.get(i).getId())) {
    					index = true;
    					break;
    				}
    			}
    
    			// 判断
    			if (index) {
    				System.out.println("您输入的学号已存在!请重新输入。");
    				System.out.println("如需重新输入学生信息,请按1");
    				System.out.println("如需回主菜单,请按2");
    				System.out.println("请输入您需要的操作:");
    				Scanner sc1 = new Scanner(System.in);
    				// 接收
    				int flag = sc1.nextInt();
    
    				// switch选择
    				switch (flag) {
    				case 1:
    					// 跳出判断继续循环
    					break;
    
    				case 2:
    				default:
    					// return直接结束方法
    					return;
    				}
    			} else
    				break;
    		}
    
    		// 输入其他信息,并添加至集合
    		System.out.println("请输入姓名:");
    		String name = sc.nextLine();
    		System.out.println("请输入年龄:");
    		String age = sc.nextLine();
    		System.out.println("请输入地址:");
    		String address = sc.nextLine();
    		Student s = new Student(id, name, age, address);
    
    		stu.add(s);
    
    		System.out.println("添加成功");
    
    	}
    
    //查看所有叙述
    	public static void travelStudent(ArrayList<Student> stu) {
    		//如果没有学生显示没有学生,如果有显示学生信息
    		if (stu.size() == 0) {
    			System.out.println("没有学生");
    		} else {
    			System.out.println("学号		姓名	年龄	地址	");
    			for (int i = 0; i < stu.size(); i++) {
    				Student s = stu.get(i);
    				System.out.println(s.getId() + "		" + s.getName() + "	" + s.getAge() + "	" + s.getAddress());
    			}
    		}
    
    	}
    //修改学生信息
    	public static void modifyStudent(ArrayList<Student> stu) {
    		System.out.println("请输入要修改学生的学号:");
    		//接收学号
    		Scanner sc = new Scanner(System.in);
    		String id = sc.nextLine();
    		//标志初始化
    		boolean judge = false;
    		int index = -1;
    		//遍历寻找学生,找到修改标志
    		for (int i = 0; i < stu.size(); i++) {
    			if (id.equals(stu.get(i).getId())) {
    				
    				judge = true;
    				index = i;
    				break;
    			}
    		}
    
    		if (judge) {
    
    			
    			System.out.println("请重新输入姓名:");
    			String name = sc.nextLine();
    			System.out.println("请重新输入年龄:");
    			String age = sc.nextLine();
    			System.out.println("请重新输入地址:");
    			String address = sc.nextLine();
    			//新建一个对象
    			Student s = new Student(id, name, age, address);
    			//修改
    			stu.set(index,s);
    
    			System.out.println("修改成功");
    		} else {
    			System.out.println("没有这个学生!");
    		}
    	}
    //删除学生信息
    	public static void deleteStudent(ArrayList<Student> stu) {
    		System.out.println("请输入要删除学生的学号:");
    		//接收学生学号
    		Scanner sc = new Scanner(System.in);
    		String id = sc.nextLine();
    		//标注初始化
    		boolean judge = false;
    		//遍历寻找
    		for (int i = 0; i < stu.size(); i++) {
    			if (id.equals(stu.get(i).getId())) {
    				//移除
    				stu.remove(i);
    
    				judge = true;
    				break;
    			}
    		}
    		//判断
    		if (judge) {
    			System.out.println("删除成功!");
    		} else {
    			System.out.println("没有这个学生!");
    		}
    	}
    
    }
    
    
  • 相关阅读:
    软件加载前显示加载中画面
    datatable用法
    arcsde安装
    dev gridcontrol (一)绑定值
    dev常用
    lookupedit用法(combox功能)
    关于NetBox2.8端口问题
    asp.net中,登录互斥的相关代码(不包含中途退出的处理)
    我老婆其人其事(一)
    判断文件是否为UTF8编码(以前收集的)
  • 原文地址:https://www.cnblogs.com/zllk/p/12656873.html
Copyright © 2020-2023  润新知