博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DVD系统
阅读量:5300 次
发布时间:2019-06-14

本文共 4876 字,大约阅读时间需要 16 分钟。

package cn.solo.com;

import java.util.Scanner;

public class DVD {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);
boolean flag = false;// 是否退出程序,false:不退出,true:退出
String[] names = new String[6];// DVD名字
int[] states = new int[6];// DV借阅状态,0:可借,1:借出去了
int[] dates = new int[6]; // 借出日期
int[] count = new int[6];// 借出次数
// 初始化数据
names[0] = "浪漫满屋";
states[0] = 1;
dates[0] = 8;
count[0] = 1;

names[1] = "罗马假日";

states[1] = 0;
dates[1] = 0;
count[1] = 20;

names[2] = "百科全书";

states[2] = 0;
dates[2] = 0;
count[2] = 30;
// 判断用户是否继续操作系统的数字:0为返回,
int num = -1;
// 程序的主体设计:DVD管理
do {
// 主菜单显示
System.out.println("****************欢迎使用迷你DVD管理器***************");
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("请选择相应的操作:");
String choose = input.next();
switch (choose) {
case "1":// 新增
System.out.println("**********新增DVD************");
System.out.println("请输入要增加的DVD名称:");
String name = input.next();// 增加的DVD名字
boolean flag1 = false;// false代表不能插入,true代表可以插入。
for (int i = 0; i < names.length; i++) {
// 插入DVD,第一个为null的位置,进行新增。
if (names[i] == null) {
names[i] = name;
flag1 = true;
break;
}
}

if (flag1) {

System.out.println("新增DVD《" + name + "》成功!");
} else {
System.out.println("货架已满,不能增加。");
}
break;
case "2": // 查看
System.out
.println("******************查看DVD*********************");
System.out.println("序号:\t状态\t名称\t借出日期\t借出次数");
for (int i = 0; i < names.length; i++) {
if (names[i] != null) {
String state = (states[i] == 0) ? "可借阅" : "已借出";//三木运算符判断
String dateStr = (dates[i] == 0) ? ""
: (dates[i] + "日");
String countStr = count[i] + "次";
System.out.println((i + 1) + "\t" + state + "\t"
+ names[i] + "\t" + dateStr + "\t" + countStr);
}
}
break;
case "3":// 删除
System.out.println("请输入要删除的DVD名称:");
String delete = input.next();
boolean flag2 = false;// 能否找到用户删除的DVD,false=no,true=yes。
// 记录删除的位置;
int index = -1;
// 找到要删除的DVD位置
for (int i = 0; i < names.length; i++) {
if (delete.equals(names[i]) && (states[i] == 1)) {
// 有,但是借出去了。
flag2 = true;
System.out.println("对不起,要删除的DVD已经被借出,无法删除。");
break;
} else if (delete.equals(names[i]) && (states[i] == 0)) {
// 有, 没借出去。
flag2 = true;
index = i;
System.out.println("删除" + delete + "成功");
break;

}

}

// 找到DVD,进行删除。
if (index != -1) {
// 根据index,进行删除、后面的值依次进行覆盖,最后一个值变为null。
for (int i = index; i < names.length; i++) {
if (i != names.length - 1) {
names[i] = names[i + 1];
states[i] = states[i + 1];
dates[i] = dates[i + 1];
count[i] = count[i + 1];
}
names[names.length - 1] = null;
states[names.length - 1] = 0;
dates[names.length - 1] = 0;
count[names.length - 1] = 0;
}
}
if (!flag2) {
System.out.println("对不起,没有匹配的DVD信息,无法删除!");
}

break;

case "4":// 借出
System.out.println("请输入要借阅的DVD名称:");
String want = input.next();

for (int i = 0; i < names.length; i++) {

if (names[i] == null) {//循环到null 依旧没有。

System.out.println("没有匹配的DVD信息");

break;

} else if (want.equals(names[i]) && (states[i] == 1)) {//已经借出
System.out.println("已经借出" + "《" + want + "》" + ",无法借阅");
break;
} else if (want.equals(names[i]) && (states[i] == 0)) {//没有借出
System.out.println("请输入借阅日期:");
dates[i] = input.nextInt();
while (dates[i] < 1 || dates[i] > 31) {
System.out.println("请重新输入日期(1-31):");
dates[i] = input.nextInt();
}
states[i] = 1;
count[i]++;
System.out.println("《" + want + "》" + "借阅成功");

break;

}
}

break;

case "5":// 归还

System.out.println("请输入要归还的DVD名称:");
String back = input.next();

for (int i = 0; i < names.length; i++) {

if (names[i] == null) {//循环到null,没有匹配。
System.out.println("没有匹配的DVD信息");
break;
} else if (back.equals(names[i]) && (states[i] == 0)) {//DVD未被借出
System.out.println("《" + back + "》" + ",没有被借出,无法归还。");
break;
} else if (back.equals(names[i]) && (states[i] == 1)) {//可以归还
System.out.println("请输入归还日期:");
int backDate = input.nextInt();// 归还日期
while (dates[i] > backDate || backDate > 31) {
if (dates[i] > backDate) {
System.out.println("归还日期不能小于借出日期,请重新输入:");
} else if (backDate > 31) {
System.out.println("归还日期必须在1-31之间,请重新输入:");
}

backDate = input.nextInt();

}
// 计算租金;
int money = (backDate - dates[i]) * 1;
System.out.println("\n*******************************");
System.out.println("《" + back + "》归还成功:");
System.out.println("《" + back + "》借阅日期:" + dates[i]
+ "日");
System.out.println("《" + back + "》归还日期:" + backDate
+ "日");
System.out.println("《" + back + "》应付租金:" + money + "元");
// 数据更新
states[i] = 0;// 变为可借状态
dates[i] = 0;// 借出日期为0
break;
}
}
break;
case "6":// 退出
flag = true;
break;

default:// 输入错误,默认退出

flag = true;
break;
}
if (flag) {
// 退出
num = -1;
break;
} else {
// 不退出
System.out
.println("*******************************************"
+ "\n请输入0返回:");
num = input.nextInt();
}
} while (num == 0);// 用户输入为0,进行循环。
System.out.println("谢谢使用");// 程序结束

}

}

转载于:https://www.cnblogs.com/soloxu/p/6187689.html

你可能感兴趣的文章
Unity3D开发之NGUI点击事件穿透响应处理
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)
查看>>
7.5 文件操作
查看>>
六、强大的 Stream API
查看>>
DFS-hdu-2821-Pusher
查看>>
吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:地址(Address)
查看>>
吴裕雄--天生自然 JAVASCRIPT开发学习: 表单
查看>>
UITextField
查看>>
浏览器,图片格式及特点
查看>>
Spring事务管理的三种方式
查看>>
通过 Javacore 诊断线程挂起等性能问题
查看>>
《『若水新闻』客户端开发教程》——05.设计新闻列表UI
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>
Java_正则表达式
查看>>
Linux内核分析——第二周学习笔记
查看>>
windows基本命令
查看>>
Qt图片显示效率的比较(转)
查看>>
VMware中CentOS设置静态IP
查看>>