JAVA基础代码分享--DVD管理
问题描述
为某音像店开发一个迷你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管理的更多相关文章
- JAVA基础代码分享--学生成绩管理
问题描述: 从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ 成绩>=最高分-30 等级为’C’ ...
- JAVA基础代码分享--求圆面积
问题描述 用户输入圆的半径,计算并显示圆的面积 代码分享 /** * @author hpu-gs * 2015/11/25 */ public class Circle { public stati ...
- JAVA基础代码分享--模拟人机猜拳系统
问题描述: 一.主要功能: .电脑与人互动,实现“剪刀.石头.布”的游戏: 1.1 角色登陆: ******************** ***欢迎进入猜拳游戏*** **************** ...
- 如何学习java?Java基础知识点分享
面对未知的行业,人们的第一反应应该是:拒绝踏入.因为学习真的是一个痛苦的过程.想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的.在学习Java基础知识期间,千锋小编疯狂为 ...
- Java基础练习4(内存管理)
请根据如下程序代码,画出对应的内存管理图(不需要画方法区),并写出输出结果. 1. public class Cell{ int row; int col; public Cell(int row,i ...
- Java基础学习分享
一.Java介绍 Java是由原Sun公司(现已被甲骨文公司收购)于1991年开发的编程语言,初衷是为智能家电的程序设计提供一个分布式代码系统.为了使整个系统与平台无关,采用了虚拟机器码方式,虚拟机内 ...
- nuxt项目打包上线,以及nuxt项目基础代码分享
nuxt的项目部署到线上环境,有多种方法,这里分享我使用的方法,一步步照着配置,就可以配置成功~ (1)项目先执行npm run build 打包好 (2)服务器安装node 和pm2依赖 服务器 ...
- [Java基础]代码块及java反编译
块的作用域: 块(即复合语句)是指一对花括号括起来的若干条简单的java语句.块确定了变量的作用域.一个块可以嵌套在另一个块中.但是,在嵌套的两个块中声明同名的变量时应注意,块中变量申明在块外变量 ...
- Java基础-String 存储机制管理
JVM运行的时候,将内存分为两个部分,一部分是堆,一部分是栈.堆中存放的是创建对象,而栈中存放的则是方法调用过程中的局部变量或引用.在设计JAVA字符串对象内存实现的时候,在堆中又开辟了一块很小的内存 ...
随机推荐
- 子代选择器(>)后代选择器(' ')的区别
子代选择器是指紧接着父级的那个标签,如:container>a指的是紧接着container后面的第一个a(儿子级别的,孙子或者之后的a是不能生效的) 后代选择器是用空格分开的,如:contai ...
- ASP.NET中获取Repeater模板列中LinkButton按钮事件中获取ID等
前台页面中: <asp:Repeater ID="repComment" runat="server"> <ItemTe ...
- 使用GDB 追踪依赖poco的so程序,core dump文件分析.
前言 在windows 下 系统核心态程序蓝屏,会产生dump文件. 用户级程序在设置后,程序崩溃也会产生dump文件.以方便开发者用windbg进行分析. so,linux 系统也有一套这样的东东- ...
- 从问题看本质:socket到底是什么?
一.问题的引入——socket的引入是为了解决不同计算机间进程间通信的问题 1.socket与进程的关系 1).socket与进程间的关系:socket 用来让一个进程和其他的进程互通信息(IPC ...
- Firefox页面缩放
这一段firefox只能缩放文字,不能实现整个页面的缩放,各种尝试,最后发现是勾选了view--zoom--zoom text only!!(按alt键调出菜单)
- homework-01
我的GitHub账户名是Firedamp. 其实我最一开始看到最大子序列的和这个题目,最先想到的就是最简单的O(n^3)的算法,在课堂上教的也确实是这个程序,但是这种算法的时间复杂度必然是最高的,在数 ...
- socket编程学习step1
socket学习参考链接,赞一个:http://blog.csdn.net/hguisu/article/details/7445768 sockets(套接字)编程有三种,流式套接字(SOCK_ST ...
- ubuntu 下emacs 配置
(set-language-environment 'Chinese-GB) (set-keyboard-coding-system 'utf-8) (set-clipboard-coding-sys ...
- Java Web项目报错java.lang.NullPointerException at org.apache.jsp.front.index_jsp._jspInit(index_jsp.java:30)
环境:myeclipse+tomcat6+jdk6 今天搭建了一个Java Web项目,访问index.jsp时报如下错误: 严重: Servlet.service() for servlet jsp ...
- 科学计算软件——Octave安装
Octave是一个旨在提供与Matlab语法兼容的开放源代码科学计算及数值分析的工具,是Matlab商业软件的一个强有力的竞争产品. 参考:[ML:Octave Installation] Gener ...