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

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

思路分析

使用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. UVA - 11134 Fabled Rooks(传说中的车)(贪心)

    题意:在n*n的棋盘上放n个车,使得任意两个车不相互攻击,且第i个车在一个给定的矩形Ri之内,不相互攻击是指不同行不同列,无解输出IMPOSSIBLE,否则分别输出第1,2,……,n个车的坐标. 分析 ...

  2. schema 文件约束

    1. 在javaproject 中创建一个.xsd 文件 <?xml version="1.0" encoding="UTF-8" ?> <! ...

  3. Swift - 从相册中选择视频(过滤掉照片,使用UIImagePickerController)

    (本文代码已升级至Swift4) 有时我们需要从系统相册中选择视频录像,来进行编辑或者上传操作,这时使用 UIImagePickerController 就可以实现. 默认情况下,UIImagePic ...

  4. [题解] Luogu P4721 【模板】分治 FFT

    分治FFT的板子为什么要求逆呢 传送门 这个想法有点\(cdq\)啊,就是考虑分治,在算一段区间的时候,我们把他分成两个一样的区间,然后先做左区间的,算完过后把左区间和\(g\)卷积一下,这样就可以算 ...

  5. js获取浏览器窗口大小

    摘抄:https://blog.csdn.net/qq_27628085/article/details/81947478 常用: JS 获取浏览器窗口大小       // 获取窗口宽度   if ...

  6. C++ DirectShow读取摄像头后然后保存图像数据

    #include <stdio.h> #include "camerads.h" #include <highgui.h> const char *g_sz ...

  7. GIT 操作文档

    https://git-scm.com/book/en/v2 安装git地址:https://git-scm.com/downloads 一.初始化设置 1.设置你用户名称与邮件地址(每一个 Git ...

  8. codeforces 596 C. p-binary

    题意:给你一个n和一个p,让你用 (2k+p)进制来表示n,找出用最少的(2k+p)来表示n. 分析:首先我们看到2k,首先下想到二进制,我们可以我们列出式子,也就是 (2x1 + p)+(2x2 + ...

  9. CTF -攻防世界-misc新手区

    此题flag题目已经告诉格式,答案很简单. 将附件下载后,将光盘挂到虚拟机启动 使用 strings linux|grep flag会找到一个O7avZhikgKgbF/flag.txt然后root下 ...

  10. 阿里巴巴的26款Java开源项目,赶紧戳…

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...