<java>利用简单一维数组完成信息的增删改查

具体实现如下,刚学到这边写着玩的,本人小白,高手请指点:奋斗

import java.util.*;
class Student{
	int[] bianhao = new int[1024];
	int[] id = new int[1024]; //学生ID
	String[] name = new String[1024];//学生姓名
	
	public Student(){
		Pint();
	}
	public void Pint()
	{
		System.out.println("学生管理系统");
		System.out.print("是否显示菜单(Y/N):");
		Scanner scan =new Scanner(System.in);
		String y = scan.next();
		if(y.equalsIgnoreCase("n")){
			System.out.println("不显示菜单,系统退出!!");
			System.exit(-1);
		}else if(y.equalsIgnoreCase("y")){
			CaiDan(); //调用菜单方法,显示菜单
		}
	}
	
	public void CaiDan()
	{
		System.out.println("1.添加学生信息");
		System.out.println("2.查询学生信息");
		System.out.println("3.修改学生信息");
		System.out.println("4.删除学生信息");
		System.out.println("5.系统退出");
		System.out.print("请选择您要选择的选项:");
		Scanner scan =new Scanner(System.in);
		int i = scan.nextInt(); //接收用户选项值
		switch(i){
		case 1:addStudent();break; //调用添加学生信息方法
		case 2:selectStudent();break;//调用查询学生信息方法
		case 3:updateStudent();break; //调用修改学生信息方法
		case 4:delStudent();break; //删除学生信息方法
		case 5:System.out.println("系统退出!");System.exit(-1);break;
		default:System.out.println("您输入的学生选择项不存在,请重新输入!");
				CaiDan(); //调用出错,重新输入
				break;
		}
	}
	
	static int count = 0; //记录学生数
	//添加学生信息
	public void addStudent()
	{
		String y = null; //用户输入判断信息
		//System.out.println("功能完善当中!");
		Scanner scan = new Scanner(System.in);
		System.out.print("学生编号:");
		bianhao[count]= count+1;
		id[count] = scan.nextInt();
		System.out.print("学生姓名:");
		name[count] = scan.next();
		count++;
		System.out.print("是否继续输入Y/N:");
		y = scan.next();
		if(y.equalsIgnoreCase("y"))
		{
			StudentPrint(count);	
			CaiDan();
		}else if(y.equalsIgnoreCase("n"))
		{
			System.out.println("成功退出!");
			CaiDan();
		}
			
	}
	
	//学生信息输入
	public void StudentPrint(int count)
	{
		Scanner scan = new Scanner(System.in);
		String y=null;
		while(count!=0)
		{
			bianhao[count]= count+1;
			System.out.print("学生编号:");
			id[count] = scan.nextInt();
			System.out.print("学生姓名:");
			name[count] = scan.next();
			count++;
			System.out.print("是否继续输入Y/N:");
			y = scan.next();
			if(y.equalsIgnoreCase("n"))
			{
				System.out.println("成功退出!");break;
				//如果N,退出循环
			}
			
		}
		
	}
	
	//查询学生信息
	public void selectStudent()
	{
		String p = null;
		Scanner scan = new Scanner(System.in);
		//System.out.println("功能完善当中!");
		if(bianhao[0]!=0)
		{
				System.out.println("学生编号"+"\t\t"+"学生学号"+"\t\t"+"学生姓名");
			for(int i=0;i<bianhao.length;i++)
				{
					//进行判断,如果是空值则不输出
					if(bianhao[i]!=0) System.out.print(bianhao[i]+"\t\t"); 
					if(id[i]!=0) System.out.print(id[i]+"\t");
					if(name[i]!=null) System.out.println("\t"+name[i]);
				}
				System.out.print("是否返回主菜单Y/N:");
				p = scan.next();
				if(p.equalsIgnoreCase("y")) //不区分大小写
				{
					  CaiDan();
				}else if(p.equalsIgnoreCase("N"))
				{
					System.out.println("系统退出!");
					System.exit(-1);
				}
		
		}
		else
		{
				System.out.println("亲,没有输入学生的信息哦!");
				CaiDan(); //返回主菜单
		}
	}



	//修改学生信息
	public void updateStudent()
	{
		int  p=0; //接收收到的学生学号
		int count=0;
			if(id[0]==0)
			{
				System.out.println("亲,没有学生信息,不能修改哦!");
				CaiDan();
			}
		while(id[count]!=0)
		{
			count++; //获取数组中有数据的长度
		}
		count -=1; //减1;
		//System.out.println("功能完善当中!");
		Scanner scan = new Scanner(System.in);
		System.out.print("请输入你想查找的学生编号:");
		p = scan.nextInt() -1;  //所要查找的人应该是输入的数字减1,数组0开始计算
		if(p>count)
		{
			System.out.println("亲,你输入的ID不存在!");
			CaiDan(); //返回主菜单
		}else
		{
			for(int i=0;i<count;i++)
			{
				if(id[i]==0) continue;
				else
					 if(id[i]!=p)
					{
						continue; //继续向下执行
					}else if(id[i]==p){
						p=i;
						break;
					}else{
						System.out.println("对不起,你要找的学生不存在!!");
					}
			}
		}
		System.out.println("修改学生信息:");
		System.out.print("请输入学生ID:");
		id[p]= scan.nextInt();
		System.out.print("请输入学生姓名:");
		name[p]= scan.next();
		System.out.println("修改成功");
		CaiDan();
	}
	
	
	
	//删除学生信息
	public void delStudent()
	{
		//System.out.println("功能完善当中!");
		int delId=0;
		int count=0;
		Scanner scan = new Scanner(System.in);
		System.out.print("请输入您要删除的学生编号:");
		delId = scan.nextInt()-1;
		if(bianhao[0]==0)
		{
			System.out.println("没有学生信息你删个毛线。");
			CaiDan(); //返回主菜单
			
		}
		else
		{
			while(id[count]!=0)
			{
				count++; //获取数组中有数据的长度
			}
			count -=1; //减1; 获取数组中赋值后的下标
			if(count==0) //在输入信息中只有一个学生的情况下。
			{
				bianhao[0] = 0;
				id[0] = 0;
				name[0] = null;
				System.out.println("删除成功!");
				CaiDan();//返回主菜单
			}else
			{
				//有多个学生信息
				if(count>0)
				{
					bianhao[delId]=0;
					id[delId]=0;
					name[delId]=null;
					for(int i=0;i<=count-delId;i++)
					{
						bianhao[delId] = bianhao[delId+1]-1;//编号减1
						id[delId] = id[delId+1];
						name[delId] = name[delId+1];
						delId++;
					}
					//将最后下标的值变为空值
					bianhao[count]=0;
					id[count]=0;
					name[count]=null;
					System.out.println("删除成功!");
					CaiDan();
				}
			}
		}
	}
}

//测试类
public class StudentTest {
	public static void main(String args[]){
		Student st = new Student();
	}

}

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值