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

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

思路分析

使用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. 小程序分享H5页面

    1.在要分享的按钮上写一个跳转 <navigator url="../invite1/invite1"> <button class="invite_b ...

  2. python_re正则表达

    re模块就本质而言,正则表达式(或RE)是一种小型的.高度专业化的编程语言,(在python中)它内嵌在Python中,并通过re模块实现,正则表达式模块被编译成一系列的字节码,然后由用C编写的匹配引 ...

  3. UVA - 1262 Password(密码)(暴力枚举)

    题意:给两个6行5列的字母矩阵,找出满足如下条件的“密码”:密码中的每个字母在两个矩阵的对应列中均出现.给定k(1<=k<=7777),你的任务是找出字典序第k小的密码.如果不存在,输出N ...

  4. mac安装vue没有使用权限不足

    ➜  ~ vue init webpack frontend ⠋ downloading template /usr/local/lib/node_modules/vue-cli/node_modul ...

  5. POJ 3994:Probability One

    Probability One Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1674   Accepted: 1151 D ...

  6. CGridCtrl显示子控件 及事件

    m_Grid.SetCellType(row, , RUNTIME_CLASS(CGridCell)); m_Grid.SetItemText(row, , _T(")); m_Grid.S ...

  7. C# ASP 面试题 2017

    在博客上看到的,感觉还不错 https://www.cnblogs.com/renyiqiu/p/6435261.html

  8. LeetCode刷题笔记(1-9)

    LeetCode1-9 本文更多是作为一个习题笔记,没有太多讲解 1.两数之和 题目请点击链接 ↑ 最先想到暴力解法,直接双循环,但是这样复杂度为n平方 public int[] twoSum(int ...

  9. XML--XSL

    参考 http://blog.51cto.com/cnn237111/1345998 https://www.w3.org/TR/2017/REC-xslt-30-20170608/ 声明 把文档声明 ...

  10. 并发与高并发(十三)J.U.C之AQS

    前言 什么是AQS,是AbstractQueuedSynchronizer类的简称.J.U.C大大提高了并发的性能,而AQS又是J.U.S的核心. 主体概要 J.U.C之AQS介绍 J.U.C之AQS ...