实战数组,for循环 if语句 switch语句 制作一个小明的成绩管理系统

这几天和刚学java的同学聊天,他们说老师课堂就写一个demo,各种混着用,于是乎就想写一下他们课堂的demo。

直接贴代码  利用for switch if  对 一个输入的数组进行增 删 查 改, 增加是在数组后面追加,删除和修改是一个道理是一个伪删除。 

例子中有5个操作码,1 2 3 4 5 6   用 switch去 区分, switch 又在大的while里边,具体是在do while 里边如果输入判断不是 设定的 12345 中任何一个  default 给它返回重新输入。

代码很简单 逻辑也清楚希望能和大家进行学习交流。

import java.util.Scanner;

public class GradesManagement {

	public static void main(String[] args) {
		int cod=0;
		int projectsNum;
		double gradePlus;
		int  deletePosition=-100;
		int  updatePosition=0;
		Scanner scanner=new Scanner(System.in);		
	while(true)
	{			
		System.out.println("请输入小明的成绩个数");
		projectsNum=scanner.nextInt();
		double allGrades[]=new double[projectsNum];
		System.out.println("请输入小明所有科目成绩");
		
		for(int i=0;i<=projectsNum-1;i++)
		{   allGrades[i]=scanner.nextDouble();
			System.out.println("科目"+(i+1)+"成绩为:"+allGrades[i]);
		}
		
	 do
	  {
		System.out.println("请输入操作码:"+"\n"+"1增加成绩:"+
	                           "2删除成绩:"+"\n"+"3修改成绩:"+
	                           "4查询成绩:"+"\n"+"5退出系统");
		cod=scanner.nextInt();
		switch(cod)
		{ 
		case 1: 
			System.out.println("请输入你要追加的成绩");
			gradePlus=scanner.nextDouble();
			double gradePlusArray[]=new double[++projectsNum];
			for(int addloop=0; addloop<projectsNum-1;addloop++)
			{
				gradePlusArray[addloop]=allGrades[addloop];   //复制数组
			}
			System.out.println("prohectsNum"+projectsNum);
			gradePlusArray[projectsNum-1]=gradePlus;  //将最后一个加入数组	
			allGrades=new double[projectsNum];
			allGrades=gradePlusArray; //长数组赋值短数组,短数组不会变长,为了变长需要从新new一下需要的长度再赋值就ok
			System.out.println("追加成绩成功!此时成绩个数为:"+allGrades.length);
			continue;
		case 2: 
			System.out.println("请输入你要删除的成绩位于第几个");
			deletePosition =scanner.nextInt();
			if(deletePosition<0||deletePosition>projectsNum)
			{
		      System.out.println("输入号码有误请重新输入");continue;
		      
			}
			
			else 
			{
				if(allGrades[deletePosition-1]<=0)
		       { 
		    		 System.out.println("成绩已经不存在,请勿重复操作");continue;
		       }else
		       {
				allGrades[deletePosition-1]=-1;
				System.out.println("删除成功!");
		       }
			}
			continue;
		case 3:  
			     System.out.println("请输入需要修改的成绩位置:");
		         updatePosition=scanner.nextInt();
					if((updatePosition<0||updatePosition>projectsNum))
					{
				      System.out.println("输入号码有误请重新输入");continue;}
		         System.out.println("请输入需要修改的成绩"); 
			     allGrades[updatePosition-1]=scanner.nextDouble();
			     System.out.println("修改成功!");
			continue;
		case 4: 
			for(int i=0;i<allGrades.length;i++)
			{
				if(allGrades[i]>0)
             {System.out.println("成绩"+(i+1)+"为:"+allGrades[i]);}
				else{System.out.println("成绩"+(i+1)+"为空");}
			}
			continue;
		case 5: System.out.println("系统已退出,谢谢使用!");System.exit(0);break;
		default :System.out.println("输入有误!请重新输入");continue;
		}
		
		}while(cod!=1||cod!=2||cod!=3||cod!=4||cod!=5);
	  }	

	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值