Java--练习--DVD管理系统

 一、详细代码

package demo2.Test;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;public class DVD2 {//DVD管理系统//声明三个数组   用来存储 名称 状态 借出日期 借出次数String[] names = new String[50];String[] state = new String[50];//状态String[] dts = new String[50];//借出日期int[] num = new int[50];//借出次数Scanner sc =new Scanner(System.in);//初始化定义public void init() {names[0] = "罗马假日";names[1] = "超级玛丽";names[2] = "功夫熊猫";state[0] = "可借";state[1] = "借出";state[2] = "可借";dts[0] = null;dts[1] = "2012-12-13";dts[2] = null;num[0] = 20;num[1] = 15;num[2] = 36;}public static void main(String[] args) {DVD2 dvd2 = new DVD2();//创建了一个 DVD2 类的 新实例,并将  其引用赋值 给 变量 dvd2。具体功能取决于 DVD2 类的定义dvd2.init();//调用的是对象 dvd2的 init方法,用于初始化dvd2相关资源或状态dvd2.menu();}// 1.菜单public void menu() {System.out.println("---------------------欢迎:DVD管理系统-------------------------");System.out.println("0.热门排行;1.查看;2.新增;3.删除;4.借用;5.归还并结算;6.退出系统");int i = sc.nextInt();switch (i) {case 0:System.out.println("0.热门排行");sort();break;case 1:System.out.println("1.查看");check();break;case 2:System.out.println("2.新增");add();break;case 3:System.out.println("3.删除");delete();break;case 4:System.out.println("4.借用");lend();break;case 5:System.out.println("5.归还并结算");back();break;case 6:System.out.println("退出成功,感谢使用");System.exit(6);}menu();}//2. 热门排行public void sort() {int sum = 0;for (int i = 0; i < names.length; i++) {if (names[i] == null) {sum = i ;break;}}for (int i = 1; i <= sum - 1; i++) {       //count - 1:表示数组最后一个元素的索引。for (int j = 0; j <= sum - 1 - i; j++) {//count - 1 - i:表示当前未排序部分的最后一个元素的索引if (num[j] < num[j + 1]) {int tnum = num[j];String tstate = state[j];String tnames = names[j];String tdts = dts[j];num[j] = num[j + 1];state[j] = state[j + 1];names[j] = names[j + 1];dts[j] = dts[j + 1];num[j + 1] = tnum;state[j + 1] = tstate;names[j + 1] = tnames;dts[j + 1] = tdts;}}}check();}//3. 查看public void check() {for (int i = 0; i < names.length; i++) {if (names[i] != null) {System.out.println("序 号    状态     名称    借出日期     借次数");System.out.println((i + 1) + "\t\t" + state[i] + "\t\t" + names[i] + "\t" + dts[i] + "\t\t\t" + num[i]);}}}// 4.新增public void add() {System.out.println("请输入新增名称:");String name = sc.next();for (int i = 0; i < names.length; i++) {if (name.equals(names[i])) {//查到 说明 已经存在 不能增加System.out.println("名称已经存在,请重新输入:");add();break;} else if (names[i] == null) {//没查找到 可以新增 赋值给正好置空的位置names[i] = name;state[i] = "可借";for (int j = 0; j < names.length; j++) {if (name.equals(names[i])) {dts[j] = null;//因为有的DVD没有借出 借出日期是空的 所以如果跟着之前的循环走 会串格break;}}break;}}check();}// 删除public void delete() {System.out.println("输入删除作品的名称:");String name = sc.next();boolean bool = false;for (int i = 0; i < names.length; i++) {//遍历数组if (name.equals(names[i]) && "可借".equals(state[i])) {bool = true;for (int j = 0; j < names.length; j++) {//可以删除   进行删除动作   最后一位置空   最后之前的每一位if (names[j]!=null) {//为空时 说明没有数据,或者到最后一位 表示已经删除names[j] = names[j + 1];state[j] = state[j + 1];dts[j] = dts[j + 1];num[j] = num[j + 1];} else if (j == names.length - 1) {names[j] = null;state[j] = null;dts[j] = null;num[j] = 0;}}} else if (!bool) {System.out.println("该书无法删除(借出/查无),重新输入");delete();break;}}check();}// 借用public void lend() {System.out.println("请输入借用名称:");String name = sc.next();boolean found = false;for (int i = 0; i < names.length; i++) {if (name.equals(names[i])) {found = true;if (state[i].equals("可借")) {System.out.println("请输入借出日期:");String dtsl = sc.next();state[i] = "借出";dts[i] = dtsl;num[i]++;System.out.println("借出成功!!!");check();break;} else if (state[i].equals("借出")) {System.out.println("已借出,请重新输入:");lend();break;}break;}}if (!found) { // 只在未找到时打印System.out.println("名称不存在,请重新输入:");lend();}}//    归还结算费用public void back() {System.out.println("输入归还名称:");String name = sc.next();boolean found = false;for (int i = 0; i < names.length; i++) {if (name.equals(names[i])) {found = true;if (state[i].equals("借出")) {state[i] = "可借";String dtsl = dts[i];System.out.println("请输入归还日期:");String dtsb = sc.next();dts[i] = null;System.out.println("归还成功");System.out.println("应付租金:" + getmoney(dtsl, dtsb));check();break;} else if (state[i].equals("可借")) {System.out.println("该名称未借出,请重新输入:");back();break;}break;}}if (!found) {System.out.println("未查找到该项,请重新输入:");back();}}
//租金public int getmoney(String dtsl,String dtsb) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//控制日期输入标准格式try{Date date1 =sdf.parse(dtsl);Date date2=sdf.parse(dtsb);long lon=(date2.getTime()-date1.getTime())/(1000*60*60*24);//求出时间差 目前设置 1天1块钱  租金就等于时间差return (int)lon;}catch(ParseException e){e.printStackTrace();return 1;}}
}
// 退出系统  输入6直接退出

二、运行结果

 

备注:谁有好方法能让输入的日期和上面的题头“借出日期”对齐!!!打在评论区,观摩一下~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏引擎哪家强?选哪一个更有钱途

游戏引擎乃是构筑及开发视频游戏的软件架构。其供应一整套工具与库&#xff0c;以处置常见的游戏开发事务&#xff0c;诸如渲染图形、模拟物理、管控音频等等。凭借对游戏引擎的运用&#xff0c;开发人员能够将精力倾注于构建其游戏的独特之处&#xff0c;而非再度发明此类基础…

【游戏模组】极品飞车12无间风云冬季mod,冬天版本的无间风云你体验过吗

各位好&#xff0c;今天小编给大家带来一款新的高清重置魔改MOD&#xff0c;本次高清重置的游戏叫《极品飞车12无间风云》。 《极品飞车12&#xff1a;无间风云》是由Black Box游戏制作室开发的竞速类游戏&#xff0c;于2008年11月18日在北美首发、2008年11月21日在欧洲先后推…

【深入学习Redis丨第八篇】详解Redis数据持久化机制

前言 Redis支持两种数据持久化方式&#xff1a;RDB方式和AOF方式。前者会根据配置的规则定时将内存中的数据持久化到硬盘上&#xff0c;后者则是在每次执行写命令之后将命令记录下来。两种持久化方式可以单独使用&#xff0c;但是通常会将两者结合使用。 一、持久化 1.1、什么…

MySQL【知识改变命运】04

复习&#xff1a; 1&#xff1a;CURD 1.1Create &#xff08;创建&#xff09; 语法&#xff1a; insert [into] 表名 [column[,column]] valuse(value_list)[,vaule_list]... value_list:value,[value]...创建一个实例表&#xff1a; 1.1.1单⾏数据全列插⼊ values_l…

Python爬虫之正则表达式于xpath的使用教学及案例

正则表达式 常用的匹配模式 \d # 匹配任意一个数字 \D # 匹配任意一个非数字 \w # 匹配任意一个单词字符&#xff08;数字、字母、下划线&#xff09; \W # 匹配任意一个非单词字符 . # 匹配任意一个字符&#xff08;除了换行符&#xff09; [a-z] # 匹配任意一个小写字母 […

CSS之一

目录 简介 CSS 语法规范 CSS 代码风格 1.样式格式书写 2.样式大小写 CSS 基础选择器 选择器分类 标签选择器 类选择器 案例之画盒子 多类型使用 id选择器 通配符选择器 font-family设置字体 字体系列 字体大小 字体粗细 文字样式 字体复合属性 示例 CSS 文…

解决关于HTML+JS + Servlet 实现前后端请求Session不一致的问题

1、前后端不分离情况 在处理session过程中&#xff0c;如果前后端项目在一个容器中&#xff0c;session是可以被获取的。例如如下项目结构&#xff1a; 结构 后端的代码是基本的设置值、获取值、销毁值的内容&#xff1a; 运行结果 由此可见&#xff0c;在前后统一的项目中&a…

《Linux从小白到高手》综合应用篇:详解Linux系统调优之服务器硬件优化

List item 本篇介绍Linux服务器硬件调优。硬件调优主要包括CPU、内存、磁盘、网络等关键硬件组。 1. CPU优化 选择适合的CPU&#xff1a; –根据应用需求选择多核、高频的CPU&#xff0c;以满足高并发和计算密集型任务的需求。CPU缓存优化&#xff1a; –确保CPU缓存&#x…

SAP导出excel报错:发现“EXPORT.XLSX“中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击“是”。

1.问题描述&#xff1a;SAP报表程序导出excel的时报错 2.问题原因 文本信息中包含了非法符号&#xff08;SAP不认识的符号&#xff09; 比如&#xff1a;NLSY10 3.解决方式&#xff0c;把这个文本信息特殊符号去掉&#xff0c;就可以恢复正常了。 怎么找这个特殊符号&#…

2019年计算机网络408真题解析

第一题&#xff1a; 解析&#xff1a;OSI参考模型第5层完成的功能 首先&#xff0c;我们需要对OSI参考模型很熟悉&#xff1a;从下到上依次是&#xff1a;物理层-数据链路层-网络层- 运输层-会话层-表示层-应用层&#xff0c;由此可知&#xff0c;题目要问的是会话层的主要功能…

第十五章 RabbitMQ延迟消息之延迟插件

目录 一、引言 二、延迟插件安装 2.1. 下载插件 2.2. 安装插件 2.3. 确认插件是否生效 三、核心代码 四、运行效果 五、总结 一、引言 上一章我们讲到通过死信队列组合消息过期时间来实现延迟消息&#xff0c;但相对而言这并不是比较好的方式。它的代码实现相对来说比…

嵌入式开发:STM32 硬件 CRC 使用

测试平台&#xff1a;STM32G474系列 STM32硬件的CRC不占用MCU的资源&#xff0c;计算速度快。由于硬件CRC需要配置一些选项&#xff0c;配置不对就会导致计算结果错误&#xff0c;导致使用上没有软件计算CRC方便。但硬件CRC更快的速度在一些有时间资源要求的场合还是非…

使用python批量替换文件夹文件名(已亲测)

1. 需要使用高版本的python,本机版本 3.12.4 2. 配置国内Python镜像源 常用的国内Python镜像源&#xff1a; 清华大学TUNA镜像源&#xff1a;这是非常受欢迎的一个镜像源&#xff0c;提供了高速且稳定的服务。 地址&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple 临时…

基于DCGM+Prometheus+Grafana的GPU监控方案

目录 前言一、指标导出器1、DCGM&#xff1a;获取远程节点的信息 2、 DCGM-Exporter收集多节点信息更改收集指标 二、 Prometheus - From metrics to insight修改配置文件查看收集结果 三、Grafana仪表板展示导入数据源创建仪表板更多仪表板 前言 基于DCGM&#xff08;NVIDIA …

DNS安全概述

一、DNS的解析过程 1.递归解析 递归解析是一种由DNS客户端&#xff08;通常是用户的应用程序&#xff0c;如一个浏览器&#xff09;向本地DNS解析器发出解析请求&#xff0c;然后本地DNS解析器负责查询最终结果并将结果返回给客户端&#xff0c;而中间的所有查询请求都由本地D…

LabVIEW空间相机测控系统

空间相机是遥感技术中的核心设备&#xff0c;其在太空中的性能对任务的成功至关重要。为了确保空间相机能够在极端环境下稳定工作&#xff0c;地面模拟测试成为必不可少的环节。LabVIEW开发的空间相机测控系统&#xff0c;通过对温度、应力和应变等参数进行高精度测量&#xff…

云贝教育 |【技术文章】OpenTenBase_V2.6基于麒麟V10源码编译安装

本文为云贝教育 刘老师 原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎和未经注明出处的转载。 前言&#xff1a;什么是OpenTenBase OpenTenBase 是一个提供写可靠性&#xff0c;多主节点数据同步的关系数据库集群平台。你可以…

LabVIEW智能可变温循环PCT测试系统

随着全球能源危机的加剧和环境保护需求的提升&#xff0c;开发和利用清洁能源已成为全球必然趋势。氢能作为一种高效的替代能源&#xff0c;正逐步受到关注。然而&#xff0c;储氢技术的研究至关重要&#xff0c;尤其是储氢材料的PCT&#xff08;Pressure-Composition-Temperat…

iTOP-3A5000主控板龙芯自主指令系统外加机箱就是一台电脑主机

性能强采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统 (LoongArch)的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能。桥片采用龙芯 7A2000&#xff0c;支持PCIE 3.0、USB 3.0和 SATA 3.0.显示接口2 路、HDMI 和1路 VGA&…

sql数据库命令行操作(数据库的增删改查)

查询数据库 查询电脑里面所有数据库 SHOW DATABASES;查询当前所处的数据库 SELECT DATABASE();应用场景&#xff1a;当我使用了USE命令后不知道自己所在哪个数据库时&#xff0c;可以使用这个命令查询自己所在数据库 创建数据库 创建 CREATE DATABASE [IF NOT EXISTS] 数据…