问题描述

为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理。

管理器具备的功能主要有:

  1、查看DVD信息。

  菜单选择查看功能,展示DVD的信息。

  2、新增DVD信息

  选择新增功能,根据提示输入新增的DVD名称,添加到库存,如果DVD货架已满,即达到6张,则提示增加失败。

  3、删除DVD信息

  执行删除命令,输入要删除的DVD的名称,如果DVD为借出状态,不允许删除。如果没有该DVD信息,则提示“没有找到匹配信息”;

  4、借出DVD

  如果该DVD已经被借出,则系统提示“XX已经被借出”。如果没有找到该DVD信息,则系统提示“没有找到匹配信息!”。而且一个月默认为31天,如果输入的借出日期为大于31的数字,则系统给出提示“必须输入大于等于 1且小于等于31的数字,请重新输入”。

  5、归还DVD

  计算租金,1天1元。如果归还的DVD未被借出,则系统提示“该DVD没有被借出,无法进行归还操作。如果归还的DVD与列表中的DVD不匹配,则系统提示“没有找到匹配信息”。,如果归还时间小于借出时间,或者是大于31的数字,则系统分别提示“归还日期不能小于借出日期,请重新输入,和一个月只有31天,请重新输入。”

  6、当用户执行退出命令时,结束本程序。

代码分享

public class ManagerDVD {
private static String [][] dvdstr = new String[6][5];
private static int n = 0;//用户输入的操作命令
private static Scanner in;//数字输入
private static Scanner input;//汉字输入
private static String name = null;//DVD名字 public static void main(String[] args) {
System.out.println("--------------------欢迎使用DVD管理系统--------------------");
System.out.println("系统的操作命令:\n1、添加DVD\n2、删除DVD\n3、查看DVD\n4、借出DVD\n5、归还DVD\n0、注销退出");
in = new Scanner(System.in);
for(int i=0; i<6; i++){
dvdstr[i][0] = ""+(i+1);
dvdstr[i][4] = "0";
}
do {
System.out.print("请输入操作命令:");
n = in.nextInt();
if(n!=0){
setManager(n);
}
} while (n!=0);
} private static void setManager(int n) {
switch (n) {
case 1:
System.out.println("添加DVD");
if(dvdstr[5][2]!=null){
System.out.println("DVD库存已满,无法添加");
break;
}
System.out.print("请输入DVD名字:");
input = new Scanner(System.in);
name = input.nextLine();
boolean boo = true;
for(int i=0; i<6; i++){
if(dvdstr[i][2]!=null&&name.equals(dvdstr[i][2])){
boo = false;
break;
}
}
if(boo){
for(int i=0; i<6; i++){
if(dvdstr[i][2]==null){
dvdstr[i][1] = "未借出";
dvdstr[i][2] = name;
System.out.println("添加操作完成");
break;
}
}
}else{
System.out.println("该DVD已存在");
}
break;
case 2:
System.out.println("删除DVD");
if(dvdstr[0][2]==null){
System.out.println("库存还没有DVD,无法进行删除操作");
break;
}
System.out.print("请输入DVD名字:");
input = new Scanner(System.in);
name = input.nextLine();
boolean bo = false;
for(int i=0; i<6; i++){
if(dvdstr[i][2]!=null&&name.equals(dvdstr[i][2])){
for(int j=i; j<5; j++){
dvdstr[j][1] = dvdstr[j+1][1];
dvdstr[j][2] = dvdstr[j+1][2];
dvdstr[j][3] = dvdstr[j+1][3];
dvdstr[j][4] = dvdstr[j+1][4];
}
dvdstr[5][1] = null;
dvdstr[5][2] = null;
dvdstr[5][3] = null;
dvdstr[5][4] = null;
bo = true;
break;
}
}
if(bo){
System.out.println("删除操作成功");
}else{
System.out.println("未找到该商品");
}
break;
case 3:
System.out.println("查看DVD");
System.out.println("序号\t状态\t名称\t\t借出日期\t借出次数");
for(int i=0; i<6; i++){
if(dvdstr[i][2]==null){
break;
}
System.out.println(dvdstr[i][0]+"\t"+dvdstr[i][1]+"\t"+dvdstr[i][2]+"\t\t"+dvdstr[i][3]+"\t"+dvdstr[i][4]);
}
break;
case 4:
System.out.println("借出DVD");
if(dvdstr[0][2]==null){
System.out.println("库存还没有DVD,无法进行借出操作");
break;
}
System.out.print("请输入DVD的名字:");
name = input.nextLine();
boolean b = false;
for(int i=0; i<6; i++){
if(dvdstr[i][2]!=null&&name.equals(dvdstr[i][2])){
if("未借出".equals(dvdstr[i][1])) {
System.out.print("请输入借出日期:");
int date = 0;
do {
date = in.nextInt();
} while (date>31&&date<=0);
dvdstr[i][1] = "已借出";
dvdstr[i][3] = ""+date;
dvdstr[i][4] = ""+(Integer.parseInt(dvdstr[i][4])+1);
System.out.println("借出操作完成");
}else{
System.out.println("该DVD已被借出");
}
b = true;
break;
}
}
if(!b){
System.out.println("该DVD不存在");
}
break;
case 5:
System.out.println("归还DVD");
if(dvdstr[0][2]==null){
System.out.println("库存还没有DVD,无法进行归还操作");
break;
}
System.out.print("请输入DVD的名字:");
name = input.nextLine();
boolean flag = false;
for(int i=0; i<6; i++){
if(dvdstr[i][2]!=null&&name.equals(dvdstr[i][2])){
if("已借出".equals(dvdstr[i][1])) {
System.out.print("请输入归还日期:");
int date = 0;
int lend = Integer.parseInt(dvdstr[i][3]);
do {
date = in.nextInt();
} while (date>31&&date<=0&&date>=lend);
dvdstr[i][1] = "未借出";
dvdstr[i][3] = null;
System.out.println("归还操作完成");
System.out.println("借出日期:"+lend);
System.out.println("归还日期:"+date);
System.out.println("您一共需要支付租金:"+((date-lend)*5)+"元");
}else{
System.out.println("该DVD已被借出");
}
flag = true;
break;
}
}
if(!flag){
System.out.println("该DVD不存在");
}
break; default:
System.out.println("您输入的命令不合法!");
break;
}
} }

JAVA基础代码分享--DVD管理的更多相关文章

  1. JAVA基础代码分享--学生成绩管理

    问题描述: 从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10  等级为’A’   成绩>=最高分-20  等级为’B’ 成绩>=最高分-30  等级为’C’ ...

  2. JAVA基础代码分享--求圆面积

    问题描述 用户输入圆的半径,计算并显示圆的面积 代码分享 /** * @author hpu-gs * 2015/11/25 */ public class Circle { public stati ...

  3. JAVA基础代码分享--模拟人机猜拳系统

    问题描述: 一.主要功能: .电脑与人互动,实现“剪刀.石头.布”的游戏: 1.1 角色登陆: ******************** ***欢迎进入猜拳游戏*** **************** ...

  4. 如何学习java?Java基础知识点分享

    面对未知的行业,人们的第一反应应该是:拒绝踏入.因为学习真的是一个痛苦的过程.想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的.在学习Java基础知识期间,千锋小编疯狂为 ...

  5. Java基础练习4(内存管理)

    请根据如下程序代码,画出对应的内存管理图(不需要画方法区),并写出输出结果. 1. public class Cell{ int row; int col; public Cell(int row,i ...

  6. Java基础学习分享

    一.Java介绍 Java是由原Sun公司(现已被甲骨文公司收购)于1991年开发的编程语言,初衷是为智能家电的程序设计提供一个分布式代码系统.为了使整个系统与平台无关,采用了虚拟机器码方式,虚拟机内 ...

  7. nuxt项目打包上线,以及nuxt项目基础代码分享

    nuxt的项目部署到线上环境,有多种方法,这里分享我使用的方法,一步步照着配置,就可以配置成功~ (1)项目先执行npm run build 打包好   (2)服务器安装node 和pm2依赖 服务器 ...

  8. [Java基础]代码块及java反编译

    块的作用域:   块(即复合语句)是指一对花括号括起来的若干条简单的java语句.块确定了变量的作用域.一个块可以嵌套在另一个块中.但是,在嵌套的两个块中声明同名的变量时应注意,块中变量申明在块外变量 ...

  9. Java基础-String 存储机制管理

    JVM运行的时候,将内存分为两个部分,一部分是堆,一部分是栈.堆中存放的是创建对象,而栈中存放的则是方法调用过程中的局部变量或引用.在设计JAVA字符串对象内存实现的时候,在堆中又开辟了一块很小的内存 ...

随机推荐

  1. linux常用命令总结

    du -sh * 当前目录下所有文件占用空间大小,df  空间占用 top 资源使用情况 M 根据驻留内存大小进行排序 tail 1.tail -f filename说明:监视filename文件的尾 ...

  2. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  3. 关于Android中res目录strings.xml文件中的转义字符之笔录

    res目录strings.xml文件中的转义字符:         ------------------>     代表着一个汉字的位置:                        ---- ...

  4. android 通过uri获取bitmap图片并压缩

    很多人在调用图库选择图片时会在onActivityResult中用Media.getBitmap来获取返回的图片,如下: Uri mImageCaptureUri = data.getData(); ...

  5. Jquery 系列(2) 选择元素

    Jquery基础学习 jQuery利用css选择符的能力,能够在DOM中快捷而轻松地获取元素. 主要内容如下: 介绍DOM树 如何通过CSS选择符在页中查找元素 扩展jQuery标准的CSS选择符 选 ...

  6. Jquery 仿 android Toast效果

    JS代码如下: /** * 模仿android里面的Toast效果,主要是用于在不打断程序正常执行的情况下显示提示数据 * @param config * @return */var Toast = ...

  7. jQuery中设置form表单中action值与js有什么不同。。。。

    jQuery中设置form表单中action值与js有什么不同.... HTML代码如下: <form action="" method="post" i ...

  8. 思科交换机配置DHCP的四个方面

    这里我们主要讲解了思科交换机配置DHCP的相关内容.我们对网络拓扑先进行一下了解,然后对于其在进行一下说明,之后对于配置的代码和命令再进行一下解析. 思科交换机配置DHCP一.网络拓扑 思科交换机配置 ...

  9. Css 相关资源(本篇不定期更新)

    http://www.tuicool.com/articles/3eaINn---<终于搞懂了CSS实现三角形图标的原理>---☆☆☆☆☆.这篇讲的是css中的如何挤出一个三角形,这个讲的 ...

  10. org.apache.jasper.JasperException:省略"/html/sysmaintain/authority/user/../../module/verify_login.jsp" not found

    说明了JSP页面里引用安全登录页面的jsp路径代码:<%@ include file="../../module/verify_login.jsp"%>这句代码引用的路 ...