这几天和刚学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);
}
}
}