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

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

思路分析

使用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. python类、super函数

    #PYTHON语言及其应用学习笔记 1.创建简单的类 class Person(): #python中特殊的对象初始化方法__init__,一个特殊的函数名 #当你在类声明里定义__init__()方 ...

  2. Egret Engine 2D - 显示对象

        alpha:透明度 width:宽度 height:高度 rotation:旋转角度 scaleX:横向缩放 scaleY:纵向缩放 skewX:横向斜切 skewY:纵向斜切 visible ...

  3. JS - 使 input 失去焦点

    $(document).ready(function(){ $("body").click(function(){ if(!event.srcElement.type) {     ...

  4. 3 react 简书 添加 头部搜索动态效果

    1. 添加动态效果组件 yarn add react-transition-group 2. 修改 src/common/header/index.js import React, {Componen ...

  5. jQuery网页定时弹出广告

    1.下载jQuery,并导入:https://blog.csdn.net/weixin_44718300/article/details/88746796 2.代码实现: <!DOCTYPE h ...

  6. python函数-函数进阶

    python函数-函数进阶 一.命名空间和作用域 1.命名空间 内置命名空间 —— python解释器 就是python解释器一启动就可以使用的名字存储在内置命名空间中 内置的名字在启动解释器的时候被 ...

  7. POJ 2251:Dungeon Master

    Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20687   Accepted: 8004 D ...

  8. Java算法练习——寻找两个有序数组的中位数

    题目链接 题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 $O(log(m + n))$. 你可以假设 nu ...

  9. 题解 P1220 【关路灯】

    区间DP, 考虑设\(dp[i][j][t]\)为已经关掉了\([i,j]\)的电灯, 人在t端点处时的最小代价 可以推出方程: \[ dp[i+1][j][0]+(p[n]-p[j]+p[i])*( ...

  10. delphi 串口的打开与关闭

    Delphi 打开串口与关闭串口 procedure TForm1.btn1Click(Sender: TObject); begin cm1.CommName:=cbb1.Text; cm1.Bau ...