问题描述

为某音像店开发一个迷你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. Access restriction: The type 'FileURLConnection' is not API

    遇到这种报错,解决方案如下: 报错原因是访问限制报错 工具栏中Project>preferences>java-Compiler>Errors/Warnings>把右侧的[De ...

  2. 安装cocoaPods的详细步骤

    先大概说下安装的步骤: Xcode 这个是开发必须的, HomeBrew RVM Ruby CocoaPods 一.HomeBrew: 打开官网链接:http://brew.sh/index_zh-c ...

  3. 【SQL语句】update ... ... from ......

    要求:修改vaj表中的vaj02字段的值,vaj02字段的值=cag.cag03的值,vaj 表与 cag 表无直接关联 实现: update vaj set vaj02=c.cag03 from l ...

  4. Grunt 使用记录

    想了解Grunt,可以先去官网 看看. 第一次接触Grunt是通过Coding的移动端项目, 刚开始因为环境的问题折腾了一两天,然后就顿悟了. Grunt构建工具对于前端开发而言,简直是神器(ps.虽 ...

  5. 求N个数的最大公约数和最小公倍数(转)

    除了分解质因数,还有另一种适用于求几个较小数的最大公约数.最小公倍数的方法 下面是数学证明及算法实现 令[a1,a2,..,an] 表示a1,a2,..,an的最小公倍数,(a1,a2,..,an)表 ...

  6. jquery修改Switchery复选框的状态

    script //选择框 var mySwitch; /* * 初始化Switchery * * classNmae class名 */ function initSwitchery(classNam ...

  7. jquery 回到顶部,简洁大方

    效果

  8. 丰富“WinForms” 的一个别样"项目"(学生管理)

    一个别样的WinForms项目,他并没多么的新颖,但是它的用处确实有点多,或许会有你需要的地方:如果你对WinForms中那么多控件无法把握,又或者是你根本就不懂,那我觉得你应该好好看看,如果一个人的 ...

  9. 初步认识Less

    LESS 是一个流行的样式表语言,它提供了 CSS3 也未曾实现的多种功能,让您编写 CSS 更加方便,更加直观.LESS 已经被广泛使用在多种框架中 ( 例如:BootStrap).本文将介绍 LE ...

  10. Microsoft JScript 运行时错误: 属性“$”的值为 null、未定义或不是 Function 对象

    运行网站时有的页面中可能有的js代码不起作用,原因可能是 JQ引用错误!他找不到JQ的基类!你引用的是JQ的插件.程序是先找到JQ的基类才能去实现插件功能的.把JQ的基类放在所有插件的前面.这样就不会 ...