dvd开发小程序
package dvdManager8;
import java.util.Scanner;
public class DvdSystem8 {
static String[][] dvd = new String[7][4];
static Scanner scan = new Scanner(System.in);
static double price=1.3;//日租单价
public static void main(String[] args) {
/**
* 名字 是否借出 借出日期 借出次数
*/
dvd[0][0] = "爱情公寓";
dvd[0][1] = "1";// 1表示借出 0表示未借出
dvd[0][2] = "2";// 目前只支持当月借还 2号
dvd[0][3] = "3";// 借出次数
dvd[1][0] = "重庆森林";
dvd[1][1] = "0";// 1表示借出 0表示未借出
dvd[1][2] = "";// 借出时间 目前只支持当月借还 2号
dvd[1][3] = "3";// 借出次数
dvd[2][0] = "屌丝男士";
dvd[2][1] = "1";// 1表示借出 0表示未借出
dvd[2][2] = "3";// 借出时间 ,目前只支持当月借还 3号
dvd[2][3] = "7";// 借出次数
int input;// 接受键盘输入,指导用户输入0,回到主界面
do { // 使用do while 语句控制,回到主界面
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("7.退出当前系统");
System.out.println("请输入功能编号:");
int num = scan.nextInt();// 接受用户输入,选择指定功能编码
switch (num) {
case 1:
System.out.println("\t\t=====新增dvd信息====");
System.out.println("请输入dvd名称:");
String dvdName = scan.next();// 接受用户输入的dvd名称
boolean isFull = false;// 定义一个变量,初值为false
for (int i = 0; i < dvd.length; i++) {
String[] dvdII = dvd[i];// 将每一个一维数组赋值给dvdII
if (dvdII[0] == null) {
isFull = true;// 将isFull设置为true,判断语句是否进入
dvdII[0] = dvdName;// 输入dvd名称
dvdII[1] = "0";// 刚入库 未借出
dvdII[2] = "";
dvdII[3] = "0";
break;
}
}
if (isFull == false) {
System.out.println("仓库已满,不能新增");
} else {
System.out.println("新增dvd信息成功");
}
break;
case 2:
System.out.println("\t\t=====展示列表====");
System.out.println("编号\t片名\t是否借出\t借出时间\t借出次数");
int j = 1;// 编号
for (int i = 0; i < dvd.length; i++) {
String[] dvdI = dvd[i];// 依次将一维数组赋值给dvdI
if (dvdI[0] != null) {// 判断dvdI是否为空,为空表示没有dvd信息
// 三目运算符见test.java
System.out.println((j++) + "\t" + dvdI[0] + "\t"
+ (dvdI[1] == "1" ? "已借" : "未借") + "\t"
+ dvdI[2] + (dvdI[2] == "" ? "\t" : "号\t")
+ dvdI[3]);
}
}
break;
case 3:
System.out.println("请输入你要删除的dvd名称:");
String dvdInput = scan.next();// 接受用户输入的dvd名称,且赋值给dvdIII
boolean isEx = false;
for (int i = 0; i < dvd.length; i++) {
String[] dvd1 = dvd[i];// 将每一个一维赋值给dvd1
if (dvd1[0] != null) {
if (dvd1[0].equals(dvdInput)) {// 判断是否有这个dvd信息
isEx = true;
dvd1[0] = null;// 设置为null删除信息
dvd1[1] = null;
dvd1[2] = null;
dvd1[3] = null;
break;
}
}
}
if (isEx == false) {
System.out.println("该dvd信息不存在");
} else {
System.out.println("删除成功");
}
break;
case 4:
System.out.println("请输入你要修改dvd名称:");
String dvdNa = scan.next();// 用户输入的库中dvd名称
boolean isExsit = false;// 用来判断库中是否有此dvd(如有没有isExsit赋值为true,没有表示保持false值)
for (int i = 0; i < dvd.length; i++) {
String[] dvdN = dvd[i];// 遍历,将每一个一维数组赋值给dvdN;
// equals 判断两个字符串是否相等,相等返回true否则返回false
if (dvdN[0] != null) {// 保证一下比较的dvdN信息不为null
if (dvdN[0].equals(dvdNa)) {// 判断库中是否有这个dvd信息
isExsit = true;// 判断if语句是否进来
System.out.println("请输入你要修改后的dvd名称");
String dvdE = scan.next();// 用dvdE来接受用户修改后的名称
dvdN[0] = dvdE;// 将原来的名称覆盖
break;// 注意问题所在!
}
}
}
if (isExsit == false) {// 两个==叫判断 一个=号 赋值
System.out.println("你要修改的dvd不存在");
} else {
System.out.println("恭喜你,修改成功!!");
}
break;
case 5:
System.out.println("请输入你要借出的dvd名称:");
String dName = scan.next();
boolean isExsi = false;
for (int i = 0; i < dvd.length; i++) {
String[] dN = dvd[i];
if (dN[0] != null) {
if (dN[0].equals(dName)) {
isExsi = true;
if (dN[1].equals("1")) {// 判断借出状态是否借出
System.out.println("对不起,该dvd已经借出,暂时不能出借!");
break;// 退出当前break所在的最近的循环语句
} else {
System.out.println("请输入你的借出时间(1-30):");
int date = scan.nextInt();// 接受用户输入的时间
dN[2] = String.valueOf(date);// 将int转换为String
dN[1] = "1";// 改变借出状态
int twice = Integer.parseInt(dN[3]);// 将数字字符串(“123”)转换为int类型
dN[3] = String.valueOf(twice + 1); // 将int类型转换为字符串存入dvd信息中
System.out.println("恭喜你借出成功");
break;
}
}
}
}
if (!isExsi) {
System.out.println("暂时库中没有你要借的dvd");
}
break;
case 6:
System.out.println("请输入你要还的dvd名称:");
String dvdNames=scan.next();
boolean flag=false;
for(int i=0;i<dvd.length;i++){
String [] dvdS=dvd[i];
if(dvdS[0]!=null){
if(dvdS[0].equals(dvdNames)){
flag=true;
if(dvd[1].equals("0")){
System.out.println("dvd没有借出,请到别家!!");
break;
}else{
//归还dvd 逻辑
System.out.println("请输入你的归还日期(1-30):");
int dateB=scan.nextInt();
if(dateB<Integer.parseInt(dvdS[2])){//判断归还日期是否小于借出日期
System.out.println("输入日期有误,请退出系统重新归还!");
}else{
int time=dateB-Integer.parseInt(dvdS[2]);//计算日期差
double sumPrice=time*price;//计算总费用
System.out.println("请输入客户所付金额:");
double cash=scan.nextDouble();//接受用户所付的金额赋值给cash
if(cash<sumPrice){//判断所付金额是否足额
System.out.println("您所付的金额不足,请重新支付");
}else{
double changes=cash-sumPrice;//计算找零
System.out.println("您的借出日期为:"+dvdS[2]+"号");
System.out.println("您的归还日期为:"+dateB+"号");
System.out.println("您租借的时间为:"+(time+1)+"天");
System.out.println("日租单价为:"+price);
System.out.println("需要支付:"+sumPrice+"元");
System.out.println("收入:"+cash+"元");
System.out.println("找零为:"+changes+"元");
dvdS[1]="0";//将状态改为未借
dvdS[2]="";//将借出时间记为空
System.out.println("归还成功!!");
}
}
}
}
}
}
if(!flag){
System.out.println("本店没有这个dvd!!");
}
break;
case 7:
System.out.println("系统已退出");
System.exit(-1);
break;
}
System.out.println("请输入0,回到主界面");
input = scan.nextInt();// 接受用户输入
} while (input == 0);
}
}
dvd开发小程序的更多相关文章
- 使用mpvue开发小程序教程(一)
前段时间,美团开源了mpvue这个项目,使得我们又多了一种用来开发小程序的框架选项.由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler),因此在用法上面是高度和Vue一 ...
- 使用mpvue开发小程序教程(二)
在上篇文章中,我们介绍了使用mpvue开发小程序所需要的一些开发环境的搭建,并创建了第一个mpvue小程序代码骨架并将其运行起来.在本文中,我们来研究熟悉一下mpvue项目的主要目录和文件结构. 在V ...
- 使用mpvue开发小程序教程(三)
在上一篇文章中,我们熟悉了一下通过vue-cli生成的mpvue工程代码骨架的基本结构,大致了解了每一个部分的代码到底要放到何处.从本文起我们就开始涉及真正的编码部分,学习使用Vue的语法去编写小程序 ...
- 使用mpvue开发小程序教程(四)
在上一章节中,我们将vue-cli命令行工具生成的代码骨架中的src目录清理了一遍,然后从头开始配置和编写了一个可以运行的小程序页面,算是正真走上了使用mpvue开发小程序的第一步.今天我们将进一步来 ...
- 使用mpvue开发小程序教程(五)
在上一章节中,我们了解了组件的三个基本特性以及组件的基本使用方法.在实际的小程序开发中,我们应该以组件的思维去设计每个小程序的功能页面,对其进行合理的组件拆分,让每个部分都保持功能简洁.条理清楚.各司 ...
- 如何使用wepy和 vant-weapp开发小程序
这里记录一下 使用wepy框架和 vant-weapp库开发小程序废话 不多说 wepy文档: https://tencent.github.io/wepy/document.html#/ van ...
- wepy开发小程序eslint报错error 'getApp' is not defined no-undef
wepy开发小程序使用getApp().globalData保存全局数据很方便,但是会在控制台看到很多报错:“error 'getApp' is not defined no-undef”,这是esl ...
- 使用mpvue开发小程序
前言: 最近接到小程序的开发需求,由于之前也没开发过小程序,心情还是有点激动.先花15分钟看一遍小程序官方文档,再花10分钟看一遍mpvue官方文档,然后拿着原型图和UI图就开干.踩了不少坑,写篇博客 ...
- 如何用Baas快速在腾讯云上开发小程序-系列4:实现客户侧商品列表、商品详情页程序
版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/431172001487671163 来源:腾云阁 h ...
随机推荐
- win7下安装mysql后修改密码
mysql的安装教程网上很多,此处不过多介绍,个人觉得下面这篇教程是比较好的,一步到位.MySQL 5.7.9 ZIP 免安装版本配置过程_百度经验 http://jingyan.baidu.com ...
- js-权威指南学习笔记2
第三章 类型.值和变量 1.JS的数据类型分为两类:原始类型(基本数据类型/不可变类型)和对象类型(引用数据类型/可变类型). JS中的原始类型包括数字/字符串/布尔值,还有两个特殊的:null和un ...
- JUC学习笔记--Thread多线程基础
实现多线程的两种方法 java 实现多线程通过两种方式1.继承Thread类 ,2.实现Runnable接口 class Newthead extends Thread{ public void ru ...
- 基于Vue2.0+Vue-router构建一个简单的单页应用
爱编程爱分享,原创文章,转载请注明出处,谢谢!http://www.cnblogs.com/fozero/p/6185492.html 一.介绍 vue.js 是 目前 最火的前端框架,vue.js ...
- Linux下Steam中支持中文的办法
搜索过好几个解决方案,诸如添加skin等等,在我的ARCH机器上似乎都不行然后在搜索linux steam cjk时, 发现一个链接中有解决DOTA2显示中文不正确的问题,感觉可能有用,就参考着搞定了 ...
- IDF-CTF-牛刀小试-啥?
本人属于Web安全这一块的小白,稍微了作了一下知识补充就开始了CTF,其中的有很多不懂但看多了网上大牛的解题办法和思路.便开始有了一些要想动手记录的冲动,希望大家共同进步学习,本文能对读者有所帮助~ ...
- <<编程之美>>1.2读后有感
问题提出 中国象棋的"将","帅"问题,他俩不能在一条直线上.求出他们的合法位置,并且只能用一个变量. 分析 一头雾水,不明所以.往下看了下,感觉像是程序员为难 ...
- c#面试题汇总
下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补缺用的,真正的把这些题搞懂了,才能“以不变应万变”.回答问题的时候能联系做过项目的例子是最好 ...
- sql 注入问题
1. 关于使用intval强制转换成数字的问题.数字大于2147483647会出现溢出出现负数.使用个方法来替代这个吧$n="\n";$a=2147483648.05555;ech ...
- C#通过WebClient/HttpWebRequest实现http的post/get方法
C#通过WebClient/HttpWebRequest实现http的post/get方法 http://www.cnblogs.com/shadowtale/p/3372735.html