zoukankan      html  css  js  c++  java
  • 控制台输出<迷你DVD管理>

    使用顺序、选择、循环、跳转语句 数组

    功能实现菜单显示和切换 输入的数字不符合要求直接退出程序 用户可以选择新增、查看、 删除、借出、归还、退出

    思路分析

    使用switch语句实现菜单选择 使用do-while循环来实现返回和退出

    代码如下

    package com.fnd.twoDayFour;

    import java.util.Scanner;
    /**
    *
    * @author fang
    *
    */
    public class work1 {
    public static void main(String[] args) {
    // TODO 迷你DVD
    Scanner sc = new Scanner(System.in);
    String[] name = new String[7];//存储名称
    int[] state = new int[7];//存储DVD状态
    int[] date = new int[7];//存储DVD借出日期
    int[] count = new int[7];//存储借出次数
    name[0] = "罗马假日";//初始化数据
    name[1] = "风声鹤唳";
    name[2] = "浪漫满屋";
    state[0] = 1;
    state[1] = 0;
    date[0] = 1;
    count[0] = 12;
    count[1] = 16;
    count[2] = 30;
    //功能选项存储在数组中
    String[] inits= {"1. 新增DVD","2. 查看DVD","3. 删除DVD","4. 借出DVD","5. 归还DVD","6. 退出DVD"};
    int choice;
    do {
    int index = 0;
    String dvdName;
    //循环输出功能选项数组
    System.out.println("欢迎使用迷你DVD管理器");
    System.out.println("----------------------------");
    for (String string : inits) {
    System.out.println(" "+string);
    }
    System.out.println("----------------------------");
    System.out.print("请选择:");
    choice=sc.nextInt();//输入0或是1
    //switch-case根据输入的choice实现菜单切换
    switch (choice) {
    case 1:
    boolean flag=false;
    System.out.println("----->新增DVD");
    System.out.println("请输入DVD名字:");
    dvdName = sc.next();

    for (int i = 0; i < name.length; i++) {
    if (dvdName.equals(name[i])) {
    System.out.print("您要添加的DVD已经存在");
    flag=true;
    break;
    }
    if (name[i]==null) {
    //找到第一个能添加的位置
    index=i;//当前下巴赋值给index
    break;
    }
    }
    if(index != -1){
    //添加
    name[index] = dvdName;
    state[index]=1;//可借
    System.out.println("新增DVD<<"+dvdName+">>成功");
    }else {
    if (flag==false) {
    System.out.println("货架已满,不能添加!");
    } else {
    System.out.println("您要添加的DVD已经存在!");
    }
    }
    break;
    case 2:
    System.out.println("----->查看DVD");
    System.out.println("序号 " + "状态 " + "名称 " + "借出日期 " + "借出次数");
    for (int i = 0; i < name.length; i++) {
    if (name[i]!= null) {
    String stateStr = state[i]==0 ? "已借出":"可借";
    String dateStr = date[i] ==0? "" : date[i]+"日";
    System.out.println((i+1)+" "+stateStr+" "+name[i]+" "+dateStr+" "+count[i]+"次");
    }
    }
    break;

    case 3:
    System.out.println("----->删除DVD");
    System.out.println("请输入DVD名称:");
    dvdName = sc.next();
    for (int i = 0; i < inits.length; i++) {
    if (dvdName.equals(name[i])) {
    index=i;
    break;
    }
    }
    if(index==-1){
    System.out.println("要删除的DVD不存在");
    }else {
    //存在但是否删除需要判断
    if (state[index]==0) {
    System.out.println("已经解除,不能删除");
    } else {
    //可以删除,移动元素位置,最后一位为null
    for (int i = index; i < name.length-1; i++) {
    name[i] =name[i+1];
    state[i]=state[i+1];
    date[i]=date[i+1];
    count[i]=count[i+1];
    }
    //给最后一位赋值
    name[name.length-1]=null;
    state[name.length-1]=0;
    date[name.length-1]=0;
    count[name.length -1]=0;
    }
    }
    break;
    case 4:
    System.out.println("----->借出DVD");
    System.out.println("请输入要借出DVD名称:");
    dvdName=sc.next();
    for (int i = 0; i < name.length; i++) {
    if(dvdName.equals(name[i])){
    index=i;
    break;
    }
    }
    if(index==-1){
    System.out.println("要借出的DVD不存在");
    }else {
    //存在,是否可借出要判断处理
    if(state[index]==0){
    System.out.println("请输入借出日期:(1--31)");
    do {//可以借出
    int day = sc.nextInt();
    if (day < 1 || day > 31) {
    System.out.println("您输入的日期有误重新输入!");
    } else {
    //正常借出的情况
    count[index]+=1;//次数加1
    state[index]=0;//已借出
    date[index]=day;//借出日期
    System.out.println("借出<<"+dvdName+">>成功");
    break;
    }
    } while (true);
    }
    }
    break;
    case 5:
    System.out.println("----->归还DVD");
    System.out.println("请输入要归还DVD名称:");
    dvdName=sc.next();

    break;

    case 6:
    System.out.println("谢谢使用");
    break;
    default:
    //输入1-6之外的选项
    System.out.println("输入不合法");
    break;
    }
    System.out.print("输入0返回");
    choice=sc.nextInt();
    } while (choice==0);//输入0循环退出

    }
    }

    运行结果:

  • 相关阅读:
    win32
    win32
    win32
    win32
    C++ 指针的错误释放
    交换两个数不引入第三个变量
    交换两个数不引入第三个变量
    hdu3986 spfa + 枚举最短路上的边
    hdu3986 spfa + 枚举最短路上的边
    hdu2433 spfa+mark[x][u][v]优化
  • 原文地址:https://www.cnblogs.com/rainsnow/p/12186925.html
Copyright © 2011-2022 走看看