MINIDVD
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
int date[] = new int[7];
int count[] = new int[7];
String name[] =new String[7];
String state[] = new String[7];
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{
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){
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("可借")){
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
System.out.print("请输入借出日期:");
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("程序结束");
}
}
MINIDVD的更多相关文章
- 迷你DVD管理器项目
package chapter5; import java.util.*; public class MiniDVD { public static void main(String[] args){ ...
- java基础<迷你DVD系统>
一.写在main方法中 import java.util.*; public class MyDVDMgr { public static void main(String[] args){ Scan ...
- JavaSE学习总结(七)—— 集合
一.为什么需要集合 如果要将100个学生成绩存放到程序中,怎么做? 首先想到是数组 int[] scores=new int[100]; 然而,长度是固定的,比如是101个学生成绩,这个数组就不能用了 ...
- 简易DVD查询系统
==========DVD管理系统========== 这是DVD任务管理器的主界面: package day20181224; import java.text.ParseException; im ...
随机推荐
- 【转】git命令
Git使用 1. git pull 更新服务器代码到本地a). git pull origin master是将origin这个版本库的代码更新到本地的master主分支 2. git push ...
- 批量检查APK是否具有指定的权限。
为测试组的妹子提供的. 效果如下: 目录结构如下: 源代码思路: 1.将apk文件变为zip文件.这里是修改后缀 2.解压文件到指定目录.可以只解压其中mainfest.xml文件 3.移动xml文件 ...
- node.js 下依赖Express 实现post 4种方式提交参数
上面这个图好有意思啊,哈哈, v8威武啊.... 在2014年的最后一天和大家分享关于node.js 如何提交4种格式的post数据. 上上一篇说到了关于http协议里定义的4种常见数据的post方法 ...
- Jconsole连接远程服务器
本地服务器.win7,安装JDK8 远程服务器:centos6.5 ,tomcat7,java8 配置方法: 1)修改远程服务器的~/tomcat/bin/catalina.sh 文件 在 # -- ...
- Bomb(hdu 3555)
题意:给定一个闭区间,求区间内有多少数中含"49" /* dp[i][j]表示i位数以j为最高位位中的所有不符合数的个数. 然后把数字拆分,乱搞即可. */ #include< ...
- 使用PHP和HTML5 FormData实现无刷新文件上传教程
无刷新文件上传是一个常见而又有点复杂的问题,常见的解决方案是构造 iframe 方式实现. 在 HTML5 中提供了一个 FormData 对象 API,通过 FormData 可以方便地构造一个表单 ...
- 【BZOJ 3926】【ZJOI 2015】诸神眷顾的幻想乡
http://www.lydsy.com/JudgeOnline/problem.php?id=3926 广义后缀自动机的例题,感觉广义后缀自动机好恶心... 广义后缀自动机是对一个trie建立的后缀 ...
- jQuery如何创建元素
1.$("<ul>").attr("id","taglist").appendTo("#tagCloud") ...
- Xtrabackup构建MySQL主从环境
环境:HE3主库,HE1从库 HE1:192.168.1.248 HE3:192.168.1.250 从库my.cnf加入以下参数并重启数据库: read_only=1 log_slave_updat ...
- swift中标签的使用
1,标签的创建 1 2 3 4 5 6 7 8 9 10 import UIKit class ViewController: UIViewController { override func ...