控制台输出<迷你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("\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管理>的更多相关文章
- java 迷你DVD管理器
1.DvdSet类 package dvd_01; /** * 定义dvd的一些属性 * @author Administrator * */ public class DvdSet { String ...
- 迷你DVD管理器
import java.text.*; import java.util.*; class DVDSet { String[] name=new String[50]; //定义一个DVD数组 boo ...
- 迷你DVD管理器项目
package chapter5; import java.util.*; public class MiniDVD { public static void main(String[] args){ ...
- 迷你DVD管理器(Java版)
import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;class Test { pub ...
- java基础<迷你DVD系统>
一.写在main方法中 import java.util.*; public class MyDVDMgr { public static void main(String[] args){ Scan ...
- 5、判断、循环、数组综合练习案例(迷你DVD)
迷你dvd代码如下: package com.manager; import java.util.Scanner; public class DVDManage { public static voi ...
- JAVA基础代码分享--DVD管理
问题描述 为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理. 管理器具备的功能主要有: 1.查看DVD信息. 菜单选择查看功能,展示DVD的信息. 2.新增DVD信息 选择新增功 ...
- DVD管理器集合版
利用所学的集合写出的DVD管理系统,运用到了所学到集合基础. import java.text.ParseException; import java.text.SimpleDateFormat; i ...
- 运用集合来做一个DVD管理器(全代码)
package DVD;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Array ...
随机推荐
- sprngmvc+restFul 请求报错:404
服务端代码 control类 @RequestMapping(value="getUser",method = RequestMethod.POST) @ResponseBody ...
- Win10电脑安装虚拟机
版权声明:本文为CSDN博主「MHades」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/qq_42545 ...
- 实验吧Web-难-猫抓老鼠
看题目好像就有让我们抓包的意思. 不管输什么走势一个结果:Check Failed! 也用bp爆破了,但是出不来什么结果. 抓到包后,送到repeater中go一下,发现有一串base64码,以为解码 ...
- python函数-装饰器
python函数-装饰器 1.装饰器的原则--开放封闭原则 开放:对于添加新功能是开放的 封闭:对于修改原功能是封闭的 2.装饰器的作用 在不更改原函数调用方式的前提下对原函数添加新功能 3.装饰器的 ...
- cf1200 E Compress Words(哈希)
题意 有n个字符串,记为s1,s2……sn,s2与s1合并,合并的方式为:s1的后缀若与s2的前缀相同,就可以重叠起来,要最长的. 举个例子: “1333” “33345” → “133345” s ...
- Java基础之反射、注解、代理
反射 笔者对反射的理解就是解剖class文件,来进行一系列操作. Class类 获取Class类实例的三种方式: 类名.class 对象.getClass() static Class forName ...
- 80.常用的返回QuerySet对象的方法使用详解:order_by
order_by: 将模型生成的表按照某个字段进行排序,默认情况下,按照升序的顺序排序,如果想要按照降序的顺序排序可以在字段的前面加一个"-",加一个负号就可以进行反转. mode ...
- Numa解释
原路径:http://www.sohu.com/a/126402403_609500 内容概要 今天的文章我们将简单学习下Hyper-V如何通过NUMA(Non-Uniform Memory Acce ...
- pywin32获得tkinter的Canvas窗口句柄,并在上面绘图
上一篇博文获得主窗口句柄使用的是root.frame或者通过子控件调用master.frame方法,但是子控件本身没有frame方法.那么怎么获得子控件的句柄呢?试过了很多办法,想过把Canvas当作 ...
- Python笔记_第四篇_高阶编程_进程、线程、协程_3.进程vs线程
1.多任务的实现原理: 通常我们会设计Mater-Workder模式,Master负责分配任务,Worker负责执行任务,因此多任务环境下,通常是一个Master,多个Worker 2.多进程: 主进 ...