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

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

思路分析

使用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("\t\t"+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("序号\t" + "状态\t" + "名称\t" + "借出日期\t" + "借出次数");
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)+"\t"+stateStr+"\t"+name[i]+"\t"+dateStr+"\t"+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循环退出

}
}

运行结果:

控制台输出<迷你DVD管理>的更多相关文章

  1. java 迷你DVD管理器

    1.DvdSet类 package dvd_01; /** * 定义dvd的一些属性 * @author Administrator * */ public class DvdSet { String ...

  2. 迷你DVD管理器

    import java.text.*; import java.util.*; class DVDSet { String[] name=new String[50]; //定义一个DVD数组 boo ...

  3. 迷你DVD管理器项目

    package chapter5; import java.util.*; public class MiniDVD { public static void main(String[] args){ ...

  4. 迷你DVD管理器(Java版)

    import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;class Test {    pub ...

  5. java基础<迷你DVD系统>

    一.写在main方法中 import java.util.*; public class MyDVDMgr { public static void main(String[] args){ Scan ...

  6. 5、判断、循环、数组综合练习案例(迷你DVD)

    迷你dvd代码如下: package com.manager; import java.util.Scanner; public class DVDManage { public static voi ...

  7. JAVA基础代码分享--DVD管理

    问题描述 为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理. 管理器具备的功能主要有: 1.查看DVD信息. 菜单选择查看功能,展示DVD的信息. 2.新增DVD信息 选择新增功 ...

  8. DVD管理器集合版

    利用所学的集合写出的DVD管理系统,运用到了所学到集合基础. import java.text.ParseException; import java.text.SimpleDateFormat; i ...

  9. 运用集合来做一个DVD管理器(全代码)

    package DVD;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Array ...

随机推荐

  1. HDU 5282:Senior's String

    Senior's String  Accepts: 30  Submissions: 286  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit ...

  2. Atom 插件推荐

    (1)atom-ternjs : js(e6)的自动补充 (2)key-binding-mode : atom 快捷键管理 (3)pre-view : pdf预览 (4)activate-power- ...

  3. js运用sort对json 数组进行排序

    Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列.sort() 方法可以接受一个 方法为参数. sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组 ...

  4. DispatcherServlet(2)_HandlerMapping

    HandlerMapping_xmind SpringMVC默认提供的HandlerMapping BeanNameUrlHandlerMapping SimpleUrlHandlerMapping ...

  5. 统计Shell脚本执行时间

    统计Shell脚本执行时间,帮助分析改进脚本执行 用 date 相减 #!/bin/bash startTime=`date +%Y%m%d-%H:%M:%S` startTime_s=`date + ...

  6. Python中的抽象基类

    1.说在前头 "抽象基类"这个词可能听着比较"深奥",其实"基类"就是"父类","抽象"就是&quo ...

  7. 18 12 30 新建一个 django project

    1. 新建一个 django project 1 2 django-admin.py startproject project_name 特别是在 windows 上,如果报错,尝试用 django- ...

  8. hdu 5147 Sequence II【树状数组/线段树】

    Sequence IITime Limit: 5000/2500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem ...

  9. nodejs(9)使用arttemplate渲染动态页面

    使用arttemplate渲染动态页面 安装 两个包 npm i art-template express-art-template -S 自定义一个模板引擎 app.engine('自定义模板引擎的 ...

  10. [极客大挑战 2019]Http

    0x00知识点 了解HTTP协议,使用bp伪造. 0x01 解题 首先查看源代码,找到Secret.php 访问 使用bp查看 提示我们需要来自该网址,直接改header头信息即可,我们可以通过使用r ...