学生管理系统(无IO)

这是我看java学习视频期间,完成的练习。

package com.java1;
//学生信息管理类
public class StudentMansgeDemo {
	//定义要使用到的变量
	private String id;
	private String name;
	private String age;
	private String adress;
	
	//定义方法
	public StudentMansgeDemo() {
	
	}

	public StudentMansgeDemo(String id, String name, String age, String adress) {
		this.id = id;
		this.name = name;
		this.age = age;
		this.adress = adress;
	}
	//定义变量赋值及获取方法
	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 getAdress() {
		return adress;
	}

	public void setAdress(String adress) {
		this.adress = adress;
	}	
}

//测试类
package com.java1;

import java.util.ArrayList;
import java.util.Scanner;

//设计主页 以及实现相应的选择和功能
public class StudentManage {
	public static void main(String[] args) {
		//创建学生信息容器
		ArrayList<StudentMansgeDemo> arr=new ArrayList<StudentMansgeDemo>();
		//为了实现每次选择完之后都能够重复显示功能选择页面  因此使用循环实现
		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);
		String ch=sc.nextLine();
		//为了实现功能的选择  采用switch实现
		switch(ch){
		case "1":
			//查看信息
			findAllStudent(arr);
			break;
		case "2":
			//增加信息
			addStudent(arr);
			break;
		case "3":
			//删除信息
			deleteStudent(arr);
			break;
		case "4":
			//修改信息
			updateStudent(arr);
			break;
		case "5":
			//退出系统
			System.out.println("感谢使用,再会!");
			//break;
			System.exit(0);//当用户选择5 退出之后  终止循环 退出系统
		default:
			System.out.println("输入有误(1-5)");
		}
	}
	}
	
	//编写查看学生信息的方法以供case1 调用
		public static void findAllStudent(ArrayList<StudentMansgeDemo> arr){
		//判断是否有数据  
		if(arr.size()==0){
			System.out.println("不好意思,当前学生信息为空,请选择其他操作");
			return;
		}
		System.out.println("学号\t姓名\t年龄\t地址");
		//循环遍历学生信息
		for(int i=0;i<arr.size();i++){
			StudentMansgeDemo s=arr.get(i);
			System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAdress());
		}
	}
	
	//编写增加学生信息的方法以供case2调用
		public static void addStudent(ArrayList<StudentMansgeDemo> arr){
			//创建键盘录入对象
			Scanner sc=new Scanner(System.in);
			String id;
			while(true){
			//创建对象接收键盘录入的字符
			System.out.println("请输入学号");
			 id=sc.nextLine();
			boolean flag=false;
			//为了 防止用户输入重复的学生信息  因此需要有一个判断语句
			//遍历 得到每一个学生的信息
			for(int i=0;i<arr.size();i++){
				StudentMansgeDemo s=arr.get(i);
				//把拿到的信息和之前的进行比较
				if(s.getId().equals(id)){
					flag=true;//此时说明被占用
					break;
				}
			}
			if(flag){
				System.out.println("你添加的学号已经被占用");
			}
			else{
				//说明flag为false  即并没有被占用  跳出去  继续提示输入
				break;
			}
		}
		System.out.println("请输入姓名");
		String name=sc.nextLine();
		System.out.println("请输入年龄");
		String age=sc.nextLine();
		System.out.println("请输入地址");
		String adress=sc.nextLine();
		
		//把接收了字符的对象赋值给学生对象 采用set
		StudentMansgeDemo s=new StudentMansgeDemo();
		s.setId(id);
		s.setName(name);
		s.setAge(age);
		s.setAdress(adress);
		
		//把学生对象的元素添加到容器arr中
		arr.add(s);
		System.out.println("添加信息成功");
	}
	
	//编写删除信息的方法以供case3调用
		public static void deleteStudent(ArrayList<StudentMansgeDemo> arr){
		//创建要删除的学号键盘录入对象
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入你要删除的学生学号");
		String id=sc.nextLine();
		
		int index=-1;
		for(int i=0;i<arr.size();i++){
			StudentMansgeDemo s=arr.get(i);
			
			//判断我给出的学号和遍历学生信息库得到的学号是否一致
			if(s.getId().equals(id)){
				index=i;
				break;
			}
		}
		if(index==-1){
			//索引依然为-1说明信息库中没有这个信息
			System.out.println("删除失败,信息库中没有此条记录");
			return;
		}
		else{
		     arr.remove(index);
		}
		System.out.println("删除成功");
	}
	
		//编写信息修改方法以供case4调用
		public static void updateStudent(ArrayList<StudentMansgeDemo> arr){
			//键盘录入需要修改的学生学号
			Scanner sc=new Scanner(System.in);
			System.out.println("请输入你要修改的学生的学号");
			String id=sc.nextLine();
			
			//首先需要将输入进来的学号和原来的信息库进行比较  以防没有此条信息
			//因此需要遍历信息库
			int index=-1;
			for(int i=0;i<arr.size();i++){
				StudentMansgeDemo s=arr.get(i);
				if(s.getId().equals(id)){
					index=i;
					break;
				}
			}
			if(index==-1){
				System.out.println("输入有误,不存在该条信息");
			}else{
				//说明信息库中有你输入的信息 可以进行修改操作  进一步提示操作
				System.out.println("请输入姓名");
				String name=sc.nextLine();
				System.out.println("请输入年龄");
				String age=sc.nextLine();
				System.out.println("请输入地址");
				String adress=sc.nextLine();
				
				//把接收了字符的对象赋值给学生对象 采用set
				StudentMansgeDemo s=new StudentMansgeDemo();
				s.setId(id);
				s.setName(name);
				s.setAge(age);
				s.setAdress(adress);
				
				arr.set(index, s);
				
				//给出修改成功的提示
				System.out.println("修改成功");
			}
			
		}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值