package chapter5;
import java.util.*; public class MiniDVD {
public static void main(String[] args){
//扫描器
Scanner input = new Scanner(System.in);
//重要参数及初始化
//Create four arrays with length of 7
//定义四个数组长度为7
int date[] = new int[7]; //borrow date
int count[] = new int[7]; //total count
String name[] =new String[7]; //name of DVDs
String state[] = new String[7]; //state
//Initiate three DVD
//FirstDVD
name[0] = "罗马假日";
state[0] = "已借出";
date[0] = 1;
count[0] =15;
//Second DVD
name[1] = "风声鹤唳";
state[1] = "可借";
date[1] = 0;
count[1] =12;
//Third DVD
name[2] = "浪漫满屋";
state[2] = "可借";
date[2] = 0;
count[2] =30; //循环进入条件
String choice = " ";
boolean flag = true;
do{
//Create DVD Menu
System.out.println("欢迎使用迷你DVD管理器");
System.out.println("------------------------------------------------------");
System.out.println("1.新增DVD");
System.out.println("2.查看DVD");
System.out.println("3.删除DVD");
System.out.println("4.借出DVD");
System.out.println("5.归还DVD");
System.out.println("6.退出DVD");
System.out.println("------------------------------------------------------");
System.out.print("请选择:");
choice = input.next(); //Switch choice menu
switch (choice){
case "1":
System.out.println("--->新增DVD");
System.out.print("\n请输入DVD名称:");
boolean firstMonitor = true;
boolean secondMonitor = false;
String bookName = " ";
do{
bookName= input.next();
if(firstMonitor){
for(int i = 0; i<name.length; i++){
if(bookName.equals(name[i])){
System.out.println("货架上已经存在该DVD,请返回目录重新选择!");
secondMonitor = true;
break;
}
}
}
firstMonitor =false;
}while(firstMonitor); if(!secondMonitor){
for (int j = 0;j<name.length; j++){
if((name[j])==null){
name[j]= bookName;
state[j] = "可借";
count[j] = 0;
System.out.println("新增《"+bookName+"》成功!");
System.out.println("***************************");
break;
}
if(name[name.length-2] !=null){
System.out.println("DVD货架已满,添加失败!");
System.out.println("***************************");
break;
}
}
}
break;
case "2":
System.out.println("--->查看DVD");
System.out.println("序号\t状态\t名称\t\t借出日期\t借出次数");
for (int i = 0; i<name.length; i++){
if(name[i] == null){
System.out.println("***************************");
break;
}
String myDate = " ";
if(date[i] != 0){
myDate = date[i]+"日";
}
System.out.println((i+1)+"\t"+state[i]+"\t"+"《"+name[i]+"》"+"\t"+myDate+"\t"+count[i]+"次");
}
break;
case "3":
System.out.println("--->删除DVD");
System.out.print("\n请输入DVD名称:");
String delName = input.next();
//define index monitor: check
int check = -1;
for(int i = 0; i < name.length; i++){
if(delName.equals(name[i])){
check = i;
break;
}
}
if(check != -1){
if(state[check].equals("可借")){
//Delete operation
for(int j = check; j < name.length-1; j++){
name[j] = name[j+1];
state[j] = state[j+1];
date[j] = date[j+1];
count[j] = count[j+1];
}
System.out.println("删除《"+delName+"》成功!");
System.out.println("***************************");
break;
}else{
System.out.println("DVD为借出状态,不允许删除!");
System.out.println("***************************");
}
}else{
System.out.println("没有找到匹配信息!");
System.out.println("***************************");
}
break;
case "4":
System.out.println("--->借出DVD");
System.out.print("\n请输入DVD名称:");
String lendName = input.next();
//Initiate lendDate with 1, so as to enter the do-loop
int lendDate = 1;
System.out.print("请输入借出日期:");
//Avoid user input wrong date
do{
lendDate = input.nextInt();
if((lendDate<1)||(lendDate>31)){
System.out.print("必须输入大于等于1且小于等于31的数字,请重新输入:");
}
}while((lendDate<1)||(lendDate>31)); //define index monitor
int index = -1;
for(int i = 0; i < name.length; i++){
if(lendName.equals(name[i])){
index = i;
break;
} }
//lend operation
if(index != -1){
if(state[index].equals("可借")){
state[index] = "已借出";
count[index] +=1;
date[index] = lendDate;
System.out.println("借出《"+lendName+"》成功!");
System.out.println("***************************");
}else{
System.out.println("《"+lendName+"》已被借出!");
System.out.println("***************************");
}
}else{
System.out.println("没有找到匹配信息!");
System.out.println("***************************");
}
break;
case "5":
System.out.println("--->归还DVD");
System.out.print("\n请输入DVD名称:");
String returnName = input.next();
//define index monitor
int monitor = -1;
for(int i = 0; i < name.length; i++){
if(returnName.equals(name[i])){
monitor = i;
break;
} }
//Initiate myLendPeriod with 0, and enter the do-loop
int returnDate = 0;
int myLendPeriod = 0;
do{
System.out.print("请输入归还日期:");
//Avoid user input wrong date
do{
returnDate = input.nextInt();
if(monitor != -1){
myLendPeriod = returnDate - date[monitor];
}
if(returnDate > 31){
System.out.print("一个月只有31天,请重新输入:");
}
if(myLendPeriod < 0){
System.out.println("归还日期不能小于借出日期,请重新输入:");
}
}while((returnDate>31)||(myLendPeriod<0));
//Return operation
if(monitor != -1){
if(state[monitor].equals("已借出")){
state[monitor] = "可借";
date[monitor] = 0;
System.out.println("归还《"+returnName+"》成功!");
System.out.println("借出日期为:"+date[monitor]+"日");
System.out.println("归还日期为:"+returnDate+"日");
System.out.println("应付租金(元):"+myLendPeriod);
System.out.println("***************************");
}else{
System.out.println("该DVD没有被借出!无法进行归还操作。");
System.out.println("***************************");
}
}else{
System.out.println("没有找到匹配信息!");
System.out.println("***************************");
}
break;
}while(myLendPeriod < 0);
break;
case "6":
flag = false;
break;
default:
}
if(flag){
System.out.print("输入任意值返回:");
choice = input.next();
}
}while(flag); //program exit
System.out.println("程序结束");
}
}

迷你DVD管理器项目的更多相关文章

  1. 迷你DVD管理器

    import java.text.*; import java.util.*; class DVDSet { String[] name=new String[50]; //定义一个DVD数组 boo ...

  2. java 迷你DVD管理器

    1.DvdSet类 package dvd_01; /** * 定义dvd的一些属性 * @author Administrator * */ public class DvdSet { String ...

  3. 迷你DVD管理器(Java版)

    import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;class Test {    pub ...

  4. DVD管理器集合版

    利用所学的集合写出的DVD管理系统,运用到了所学到集合基础. import java.text.ParseException; import java.text.SimpleDateFormat; i ...

  5. 运用集合来做一个DVD管理器(全代码)

    package DVD;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Array ...

  6. java模拟DVD管理器

    import java.util.*;import java.text.*;class DVDSet{    String[] name = new String[50]; //名字    int[] ...

  7. 控制台输出<迷你DVD管理>

    使用顺序.选择.循环.跳转语句 数组 功能实现菜单显示和切换 输入的数字不符合要求直接退出程序 用户可以选择新增.查看. 删除.借出.归还.退出 思路分析 使用switch语句实现菜单选择 使用do- ...

  8. 【iOS开发之Objective-C】书签管理器项目

    1.项目 新建一个书签管理器的项目,能够存储书签的网址.中文名.星级.訪问量和权限信息.具有增.删.改.查和排序的功能. 2.找对象,抽象类 书签管理器,书签管理器.书签管理器--  多读几次书是不是 ...

  9. JAVA基础代码分享--DVD管理

    问题描述 为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理. 管理器具备的功能主要有: 1.查看DVD信息. 菜单选择查看功能,展示DVD的信息. 2.新增DVD信息 选择新增功 ...

随机推荐

  1. JSON数据解析(转)

    上篇随笔详细介绍了三种解析服务器端传过来的xml数据格式,而对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三种格式,那么本篇随笔将讲解一下json这个知识点,包括如何通过 ...

  2. [iOS] 使用xib做为应用程序入口 with Code

    [iOS] 使用xib做为应用程序入口 with Code 前言 开发iOS APP的时候,使用storyboard能够快速并且直觉的建立用户界面.但在多人团队开发的情景中,因为storyboard是 ...

  3. Automapper扩展方法

    问题描述 系统中实现了一个自定义的PagedList /// <summary> /// Paged list interface /// </summary> public ...

  4. Oracle数据库中创建表空间语句

    1:创建临时表空间 create temporary tablespace user_temp tempfile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj ...

  5. UITabBar,UINavigationBar的布局和隐藏问题

    ---恢复内容开始--- 1. 前言 UITabBar,UINavigationBar非常的好用,但是毕竟是系统自带的,不受自己完全掌握,对于布局和隐藏会有一些问题,现在就来谈谈我的想法和一些问题. ...

  6. Android—SQLITE数据库的设计和升降级

    Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLite 只需要带一个动 ...

  7. animation of android (3)

    视图动画,只有view可以使用. 在android3.0以后,属性动画. ValueAnimation 可以记录属性变化的过程,所以他的对象是任何object. 所以ValueAnimation 的真 ...

  8. 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)

    当Adobe.Microsoft.Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协 ...

  9. JavaScript Patterns 2.8 Number Conversions with parseInt()

    Strings that start with 0 are treated as octal numbers (base 8) in ECMAScript 3; however, this has c ...

  10. 问题解决——MFC SDI程序 CFormView中控件随窗口缩放

    从来都是做对话框程序,这次想做个SDI的程序,想着用一下带Robbin界面的office2007风格,就不用使用那些花钱的商业控件/UI库了. 如果你不想看我打的文字,可以直接拷走代码,自己声明上定义 ...