用Java编写一个迷你DVD租借系统

要求实现以下功能:

  • 借出排行榜
  • 新 增 DVD
  • 查 看 DVD
  • 删 除 DVD
  • 借 出 DVD
  • 归 还 DVD
  • 退 出

需要编写三个类

  • DVDSet类(定义存放的数据)
  • DVDFunction类(实现该程序的各个功能的方法)
  • DVDTest类(测试类)

calss DVDSet

package cn.it.DVD;public class DVDSet {int[] no = new int[50];// 序号String[] name = new String[50];// DVD名字String[] state = new String[50];// DVD状态String[] time = new String[50]; // 借出日期int[] count = new int[50];// 记录被借出次数,用于排行榜中
}

DVDFunction类

package cn.it.DVD;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;public class DVDFunction {Scanner sc = new Scanner(System.in);DVDSet set = new DVDSet();// 实例化DVDSet类// 主界面 show()方法public void show() {System.out.println("欢  迎  使  用  迷  你  DVD  管  理  器");System.out.println("-----------------------");System.out.println("0.  借出排行榜");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.  退          出");System.out.println("-----------------------");}// 添加DVD add()方法public void add(String DVDName) {// 找到第一个为空的数组,将新增的DVD添加进去int i;for (i = 0; i < set.name.length; i++) {if (set.name[i] == null) {// 成功添加set.name[i] = DVDName;set.no[i] = i;set.state[i] = "可借";set.time[i] = "  ";set.count[i] = 0;System.out.println("新增《" + DVDName + "》成功!");System.out.println("*********************");break;}}if (i == set.name.length) {System.out.println("存储空间已满,无法继续添加!");System.out.println("*********************");}}// 查看DVD examine()方法public void examine() {System.out.println("序号\t状态\t名称\t借出日期");// 将DVD循环输出for (int i = 0; i < set.name.length; i++) {if (set.name[i] != null) {System.out.println((set.no[i] + 1) + "\t" + set.state[i] + "\t《" + set.name[i] + "》\t" + set.time[i]);}}System.out.println("*********************");}// 删除DVD delete()方法public void delete(String DVDName) {// 遍历name[]数组int i;for (i = 0; i < set.name.length; i++) {if (set.name[i] != null && set.name[i].equals(DVDName)) {// 找到名字满足的DVD记录if (set.state[i].equals("可借")) { // 并且为没有借出状态// 删除掉名为DVDName的记录set.name[i] = set.name[i + 1];set.name[i + 1] = null;// set.no[i] = set.no[i + 1];set.no[i + 1] = 0;set.state[i] = set.state[i + 1];set.state[i + 1] = null;set.time[i] = set.time[i + 1];set.time[i + 1] = null;set.count[i] = set.count[i + 1];set.count[i + 1] = 0;System.out.println("删除《" + DVDName + "》成功!");System.out.println("*********************");break;} else {System.out.println(set.name[i] + "为借出状态,不能删除!");System.out.println("*********************");break;}}}if (i == set.name.length) {System.out.println("没有找到:《" + DVDName + "》!");System.out.println("*********************");}}// 借出DVD borrow()方法public void borrow(String DVDName) {int i;for (i = 0; i < set.name.length; i++) {if (set.name[i] != null && set.name[i].equals(DVDName)) {if (set.state[i].equals("可借")) {set.state[i] = "借出";// 标记借书状态为 已借出set.count[i]++;System.out.print("请输入借出日期(年-月-日):");set.time[i] = sc.next();System.out.println("借出《" + set.name[i] + "》成功!");System.out.println("*********************");break;} else {System.out.println("《" + set.name[i] + "》为借出状态!");break;}}}if (i == set.name.length) {System.out.println("没有找到:" + DVDName + "!");System.out.println("*********************");}}// 归还DVD returnDVD()方法public void returnDVD(String DVDName) throws ParseException {int i;Date d = new Date();SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");for (i = 0; i < set.name.length; i++) {if (set.name[i] != null && set.name[i].equals(DVDName)) {if (set.state[i].equals("借出")) {String borrowtime = set.time[i];// 标记借出时间System.out.print("情输入归还日期(年-月-日):");set.state[i] = "可借";set.time[i] = sc.next();System.out.println("\n归还" + DVDName + "成功!");System.out.println("借出日期为:" + borrowtime);System.out.println("归还日期为:" + set.time[i]);Date d1 = df.parse(borrowtime);Date d2 = df.parse(set.time[i]);System.out.println("应付租金为:" + ((d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000)));System.out.println("*********************");set.time[i] = " ";break;} else {System.out.println("《" + set.name[i] + "》没有被借出,归还失败!");break;}}}if (set.name.length == i) {System.out.println("没有找到《" + DVDName + "》!");}}// 排行榜ranking() 方法public void ranking() {for (int i = 0; i < set.count.length - 1; i++) {for (int j = 0; j < set.count.length - 1 - i; j++) {if (set.count[j] < set.count[j + 1]) {int t = set.count[j];// 交换的中间变量String tt = set.name[j];// 交换的中间变量set.count[j] = set.count[j + 1];set.name[j] = set.name[j + 1];set.count[j + 1] = t;set.name[j + 1] = tt;}}}for (int k = 0; k < set.name.length; k++) {if (set.name[k] != null) {System.out.println(set.count[k] + "\t《" + set.name[k] + "》");}}}// 退出系统 exit()方法public void exit() {System.out.println("谢谢使用!");}
}

DVDTest类

package cn.it.DVD;import java.text.ParseException;
import java.util.Scanner;public class DVDTest {public static void main(String[] args) throws ParseException {DVDFunction dvd = new DVDFunction();// 实例化dvd功能类Scanner sc = new Scanner(System.in);boolean isGoon = false;// 判断返回主菜单的选择是否正确boolean isCon = true;// 判断返回上一级菜单的选择是否输入正确boolean isSon = true;do {isGoon = false;// 初始化isCon = true;isSon = true;dvd.show();// 调用主界面System.out.print("请选择:");switch (sc.next()) {case "0":System.out.println("--->排行榜");System.out.println("\n*********************");System.out.println("次数\t名称");dvd.ranking();break;case "1":// 增加DVD的选择System.out.println("--->新增DVD");System.out.print("请输入   DVD 名称:");dvd.add(sc.next());// 调用增加DVD的方法break;case "2":// 查看DVD的选择System.out.println("--->查看DVD");dvd.examine();break;case "3":// 删除DVD的选择System.out.println("--->删除DVD");System.out.print("请输入DVD名称:");dvd.delete(sc.next());break;case "4":// 借出DVD的选择System.out.println("--->借出DVD");System.out.print("请输入DVD名称:");dvd.borrow(sc.next());break;case "5":// 归还DVD的选择System.out.println("--->归还DVD");System.out.print("请输入DVD名称:");dvd.returnDVD(sc.next());break;case "6":// 退出系统dvd.exit();isCon = false;break;default:System.out.println("输入有误!");break;}while (isCon) {System.out.print("\n输入0返回:");if (sc.nextInt() == 0) {isCon = false;// 返回上一级菜单输入正确isGoon = true;} else {System.out.println("输入有误,重新输入");isCon = true;// 返回上一级菜单输入错误}}} while (isGoon);}}

运行截图:

  • 增加dvd

  • 查看dvd

  • 删除dvd

  • 租借dvd

  • 归还dvd

  • 查看排行榜

Java小程序,编写一个迷你DVD租借系统(控制台输出)相关推荐

  1. 基于数组,编写一个迷你DVD碟片租赁系统。

    功能包括: 新增DVD.删除DVD.修改DVD.查看DVD.借出DVD.归还DVD.退出系统 效果图大概如下图所示: 代码如下: package com.cx1;import java.time.Lo ...

  2. JAVA小程序:一个基于MVC框架的贪吃蛇程序

    学习JAVA也有一段时间了,之前看了翁恺老师的视频,跟着做了一个细胞自动机,粗浅地了解了一点MVC框架的知识,感觉获益匪浅.但是细胞自动机毕竟是跟着视频完成的,有很大程度上都是参考了视频里的代码,没有 ...

  3. 微信小程序编写一个试卷demo

    最近写项目需要有一个试卷功能,作为初学者一头雾水,网上找了些资料.非常感谢 才华横溢吴道简 大佬写的答题小程序.参考了大佬的文章,自己做了一点点修改.欢迎大佬指点.原文链接:http://t.csdn ...

  4. Java 小程序 之将输入的数字转换为金额输出

    import java.text.DecimalFormat; import java.util.Scanner;import javax.swing.JOptionPane;public class ...

  5. java程序获取外部java程序的控件,将 Java 小程序迁移到 Microsoft J# 浏览器控件-JSP教程,Java技巧及代码...

    visual j# .net 小组 microsoft corporation 摘要:通过 microsoft j# 浏览器控件,开发人员可以将所编写的在 java 虚拟机上运行的 java 小程序迁 ...

  6. java 获取文件所在的文件夹_带你0基础编写一个Java小程序,领略Java程序从编写到编译再到运行的全流程...

    在学习Java之前我们需要先认识下什么是计算机语言?计算机语言又有哪些分类?在了解这些后对我们理解学习帮助是很大的. 要知道计算机语言是人与计算机之间进行信息交流沟通的一种特殊语言,又分为机械语言.汇 ...

  7. 用集合java字符串第一个单词_Java小程序 输入一个字符串,将每一个单词首字母大写...

    Java 小程序 01 输入一个字符串,将每一个单词首字母大写 1.首先写一个接收传入的单词,并将传入单词首字母大写.这一步比较简单,没什么好说的! private String titleCase ...

  8. java编写某计算器控制台程序_用java程序编写一个计算器

    点击查看用java程序编写一个计算器具体信息 答:给你一个参考,希望不要被百度吞了当晚餐 import java.awt.BorderLayout; import java.awt.GridLayou ...

  9. 3.每天一个java小程序之累加累乘

    3.每天一个java小程序之累加累乘 java小练习之数的累加累乘,在于锻炼数学计算思维. 每天一个小程序,每天进步一点点. 代码如下: package com.zou; import java.ut ...

最新文章

  1. php sql语句去掉重复,sql 去除重复记录的语句
  2. c语言程序设计试题及答案十,C语言程序设计试题试题及答案.doc
  3. CVPR2021|SpinNet:学习用于3D点云配准的通用表面描述符
  4. 数据库表扩展字段设计思路
  5. 易语言 服务器抓包,易语言抓包获得地址实现TP路由器登陆的代码
  6. 被远程机器长时间无响应 (错误码:[308])_自动折叠式“Rollbot”为完全不受束缚的软机器人铺平了道路...
  7. c++中友元函数详解
  8. 为什么数据库连接很消耗资源?
  9. 在别的函数或者线程函数里使用 PostMessage
  10. 乐视跳过服务器验证,pandwonload不能登录?试试跳过启动验证
  11. 风险事件文本分类(达观杯Rank4)
  12. PHP-redis中文文档 1
  13. 理解InnoDB数据及索引文件存储格式
  14. 前端学习(二十五)移动端(笔记)
  15. 速达软件启示录——记中国一代ERP性价比之王的没落
  16. Redis下载安装-Windows版本
  17. IOS开发—系统定位
  18. android 后台运行管理,Android 后台运行白名单实现保活
  19. python dbf导入到sql_python读写dbf数据库
  20. Easyx-----c语言实现图形化打砖块

热门文章

  1. 工作中遇到问题以及解决方法
  2. 学习springcloud
  3. MySQL + navicat
  4. ESP8266学习之路 十二 (读写文件)
  5. 想当程序员,如何判断自己是否适合当前端程序员?
  6. 【微信小程序】把客服按钮替换成自己想要的图片
  7. ip地址的作用及分类
  8. thinkpad t570更换内存条教程
  9. allegro cadence bubble 灰色不可用
  10. C语言:素数筛法与分解素因数