java .简易版的DVD管理系统

class DvdSet {

    //定义三个属性
    String[] name = new String[50]; // 为保证数组足够大
    String[] date = new String[50];// 借书的时间
    int[]    state = new int[50];  // 借书的状态 , 0表示借出 ,1.表示可以借。
    int[]    count = new int[50]; // 借书的次数
}
import java.util.*;
import java.text.*;
class DvdMgr {

    //创建一个DvdSet对象
    DvdSet dvd = new DvdSet();    

    //1.第一个方法初始化三个DVD数据
    public void initial(){
        //初始化三个Dvd
         dvd.name[0]= "罗马假日";
           dvd.state[0]=0;
         dvd.count[0] = 30;
          dvd.date[0]= "2016-11-18";
          dvd.name[1]="风声鹤唳";
               dvd.state[1]=1;
               dvd.name[2]= "浪漫满屋";
               dvd.state[2]=1;
         dvd.count[2] = 10;
    }

    //2.实现一个菜单切换
    public void startMenu() {

        System.out.println("*********************************");
        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("*********************************");

        Scanner input = new Scanner(System.in);
        System.out.println("请输入您的操纵:");
        int option = input.nextInt();

        switch(option){

            case 1 :
                addDvd();
                returnMenu();
                break;

            case 2 :
                searchDvd();
                returnMenu();
                break;
            case 3 :
                deleteDvd();
                returnMenu();
                break;
            case 4 :
                lendDvd();
                returnMenu();
                break;
            case 5 :
                returnDvd();
                returnMenu();
                break;
            case 6:
                list();
                returnMenu();

                break;
            case 7:
                System.out.println("谢谢使用,欢迎下次在来");
                break;
            default:
                System.out.println("输入异常,程序已经吓崩溃,正在重启中...");
                break;

        }

    }

    //3.返回菜单
    public void returnMenu() {
        System.out.println("输入0返回:");
        Scanner input = new Scanner(System.in);

        if(input.nextInt() == 0){

            //在此进入菜单切换
            startMenu();
        }else {

            System.out.println("输入异常,请从输入:");
            returnMenu();  // 递归调用。
        }

    }

    //4.查看的功能
    public void searchDvd(){
        System.out.println("******欢迎进入查看页面*****");
        //\t Tap
        System.out.println("序号\t名称\t\t状态\t借出时间\t");
        for(int i=0;i<dvd.name.length ; i++){
            if(dvd.name[i] == null){

                break;
            }else if (dvd.state[i] == 0){
                //代表已经借出
                System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t已借出\t"+dvd.date[i]);
            }else if(dvd.state[i] == 1){

                //代没有借出
                System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t可借\t");
            }
        }

        System.out.println("**************************************");

    }

    //5.新增Dvd
    public void addDvd(){
        System.out.println("******欢迎进入添加页面*****");
        System.out.println("请输入您要添加的Dvd:");
        Scanner input = new Scanner(System.in);
        String name = input.next();
        //将新增的内容放到最后
        for(int i = 0;i<dvd.name.length;i++){

            if(dvd.name[i] == null){ //到最后去了。

                dvd.name[i] = name;
                dvd.state[i] = 1;
                System.out.println("<<"+name+">>dvd添加成功");
                break;
            }
        }

    }

    //6.删除dvd

    public void deleteDvd(){
        System.out.println("******欢迎进入删除页面*****");
        System.out.println("请输入您要删除的Dvd名称:");
        Scanner input = new Scanner(System.in);
        String name = input.next();

        //1.没有找到  :  提示没有找到 请重新输入
        //2.找到 :
            //1.已经借出去 : 不能够删除
            //2.没有借出去 : 删除

        for(int i = 0;i<dvd.name.length;i++){
            //查找是否存在
            if(dvd.name[i] != null){

                if(dvd.name[i].equalsIgnoreCase(name)){ //已经找到

                    //是否已经被借出
                    if(dvd.state[i] == 0){ // 借出
                        System.out.println("《"+name+"》已经被借出");
                        break;
                    }else if(dvd.state[i] == 1) {

                        //没有借出需要删除
                        //思路 : 1.用后面一个替换前面的。
                            //2.把最后面多余的地方赋值为null.

                        for(int j = i ;j<dvd.name.length;j++){

                            //做交换
                            if(dvd.name[j +1] != null){
                                dvd.name[j] = dvd.name[j+1];
                                dvd.state[j] = dvd.state[j+1];

                            }else{
                                //清空最后一个值
                                dvd.name[j] = null;
                                dvd.date[j] = null;
                                break;
                            }

                        }

                        System.out.println("删除《"+name+"》成功");
                        break;
                    }
                }

            }else {

                    System.out.println("没有您要删除的dvd");
                    System.out.println("***********************************************");
                    break;
                }
        }

    }

    //7.借dvd的功能
    public void lendDvd(){
        System.out.println("********欢迎进入借书页面********");
        System.out.println("请输入您要借的dvd名称:");
        Scanner input = new  Scanner(System.in);
        String name = input.next();

        //1.判断有没有dvd
            //1.又没有被借出去。
        for(int i = 0;i<dvd.name.length;i++){

            if(dvd.name[i] != null){ // 有dvd

                if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 1){ //有书并且没有被借出去

                    //借书
                    //1.修改状态
                    dvd.state[i] = 0;
                    System.out.println("请输入借书的时间(年-月-日):");
                    Scanner inputDate = new Scanner(System.in);
                    dvd.date[i] = inputDate.next();
                    System.out.println("借书成功");
                    dvd.count[i]++;
                    break;

                }else if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){
                    System.out.println("不好意思此借书已经被借出");
                    break;
                }

            }else { // dvd

                System.out.println("没有您要找的DVD");
                break;
            }
        }

    }

    //8.还Dvd 计算价格
    public void returnDvd(){

        System.out.println("********欢迎进入还DVD页面******************");
        System.out.println("请输入还dvd的名称:");
        Scanner input = new Scanner(System.in);
        double  price = 0.0;
        String name = input.next();
        for(int i = 0;i<dvd.name.length;i++){

            if(dvd.name[i]!=null){ //有

                if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){ //以借出就可以归还
                    dvd.state[i] = 1;
                    System.out.println("请输入归还书籍的时间(年-月-日):");
                    Scanner inputDate = new Scanner(System.in);
                    //获取时间差
                    long charge = charge(dvd.date[i],inputDate.next());
                    price = charge * 1;
                    System.out.println("《"+dvd.name[i]+"》归还成功");
                    System.out.println("您应付"+price+"元");
                    //清空时间
                    dvd.date[i] = null;
                    break;

                }

            }else{
                System.out.println("没有找到匹配的信息");
                break;
            }
        }
        System.out.println("************************************************");

    }

    public long charge(String date1,String date2){

        //做时间差
        //将String转为Date做计算
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        long charge = 0;
        try{
            Date d1 = sd.parse(date1);
            Date d2 = sd.parse(date2);
            //时间也是以毫秒为单位。
            charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60);
        }catch(ParseException e){
            System.out.println(e);
        }

        return charge;
    }

    //排行榜
    public void list(){

        System.out.println("欢迎进入Dvd排行榜");
        //排序
        for(int i = 0 ; i <dvd.name.length-1;i++){

            if(dvd.name[i] != null){

                for(int j = 0; j<dvd.name.length-1-i;j++){

                    if(dvd.name[j] != null){

                        if(dvd.count[j] < dvd.count[j+1]){

                        int temp = dvd.count[j];
                        dvd.count[j] = dvd.count[j+1];
                        dvd.count[j+1]= temp;

                        String name1 = dvd.name[j];
                        dvd.name[j] = dvd.name[j+1];
                        dvd.name[j+1] = name1;    

                        String date1= dvd.date[j];
                        dvd.date[j] = dvd.date[j+1];
                        dvd.date[j+1] = date1;    

                        int state1= dvd.state[j];
                        dvd.state[j] = dvd.state[j+1];
                        dvd.state[j+1] = state1;

                        }
                    }else {
                        break;
                    }

                }

            }else{
                break;
            }
        }
        System.out.println("序号\t名称\t\t状态\t借出时间\t");
        for(int i=0;i<dvd.name.length ; i++){
            if(dvd.name[i] == null){

                break;
            }else if (dvd.state[i] == 0){
                //代表已经借出
                System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t已借出\t"+dvd.date[i]);
            }else if(dvd.state[i] == 1){

                //代没有借出
                System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t可借\t");
            }
        }

        System.out.println("**************************************");

    }

}


class DvdMain{

    public static void main (String[] args){

        DvdMgr dvd = new DvdMgr();
        //初始化dvd
        dvd.initial();

        //开始进入切换菜单
        dvd.startMenu();
    }
}
时间: 2024-11-06 09:34:25

java .简易版的DVD管理系统的相关文章

java学习中,DVD管理系统纯代码(java 学习中的小记录)

java学习中,DVD管理系统纯代码(java 学习中的小记录)作者:王可利(Star·星星) class DvdMain{ public static void main (String[] args){ DvdMgr dvd = new DvdMgr(); //初始化dvd dvd.initial(); //开始进入切换菜单 dvd.startMenu(); } } 1 class DvdSet { 2 3 //定义三个属性 4 String[] name = new String[50];

简易版CMS后台管理系统开发流程

前言:最近公司做了几版后台管理系统,都不太满意.正好赶上51放假期间,我打算自己在花点时间做一个. 后台的界面设计,程序编写都是由我自己一个人来完成,如果有感兴趣的朋友可以和我一起来做. 开发环境是VS2013+MVC5+EF6 数据库采用Sql server2012 IIS7.5 制作工具HBuilder 今天先来看看搭建个大概框架放到下一章吧 下一章:FytMsys    系统框架搭建 有感兴趣的朋友可以加我群:86594082

MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理

目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理 MVC5+EF6 简易版CMS(非接口) 第四章:使用业务层方法,以及关联表解决方案 先来了解下各项的引用关系 FytCms.DALMSSQL=>Domain.Entity.EntityFramework BusinessLogic.Server=>FytCms.D

MVC5+EF6 简易版CMS(非接口) 第四章:使用业务层方法,以及关联表解决方案

目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理 MVC5+EF6 简易版CMS(非接口) 第四章:使用业务层方法,以及关联表解决方案 上一章介绍了,如何建数据层和业务,以及各层之间的引用过关系 这章主要讲解怎么使用业务层的方法. 以及普遍遇到的EF关联查询的问题解决方案 1.在FytMsys.Web文件夹下建Fyt

简易版聊天系统实现 Socket VS NIO两种实现方式

说是简单聊天系统,压根不能算是一个系统,顶多算个雏形.本文重点不在聊天系统设计和实现上,而是通过实现类似效果,展示下NIO 和Socket两种编程方式的差异性.说是Socket与NIO的编程方式,不太严谨,因为NIO的底层也是通过Socket实现的,但又想不出非常好的题目,就这样吧. 主要内容 Socket方式实现简易聊天效果 NIO方式实现简易聊天效果 两种方式的性能对比 前言 预期效果,是客户端之间进行"广播"式聊天,类似于QQ群聊天.希望以后有机会,以此简易版为基础,不断演进,演

杭电2083(简易版之最短距离)

简易版之最短距离 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 2   Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 寒假的时候,ACBOY要去拜访很多朋友,恰巧他所有朋友的家都

Android学习之路——简易版微信为例(三)

最近好久没有更新博文,一则是因为公司最近比较忙,另外自己在Android学习过程和简易版微信的开发过程中碰到了一些绊脚石,所以最近一直在学习充电中.下面来列举一下自己所走过的弯路: (1)本来打算前端(即客户端)和后端(即服务端)都由自己实现,后来发现服务端已经有成熟的程序可以使用,如基于XMPP协议的OpenFire服务器程序:客户端也已经有成熟的框架供我们使用,如Smack,同样基于XMPP协议.这一系列笔记式文章主要是记录自己学习Android开发的过程,为突出重点(Android的学习)

简易版的TimSort排序算法

欢迎探讨,如有错误敬请指正 如需转载,请注明出处http://www.cnblogs.com/nullzx/ 1. 简易版本TimSort排序算法原理与实现 TimSort排序算法是Python和Java针对对象数组的默认排序算法.TimSort排序算法的本质是归并排序算法,只是在归并排序算法上进行了大量的优化.对于日常生活中我们需要排序的数据通常不是完全随机的,而是部分有序的,或者部分逆序的,所以TimSort充分利用已有序的部分进行归并排序.现在我们提供一个简易版本TimSort排序算法,它

简易版支付系统部署(单节点) 吴水成

一.前期准备 1.MySQL数据库的安装:MySQL-5.6.22,自行安装 2.Dubbo视频教程--基础篇--第03节--ZooKeeper注册中心安装 3.Dubbo视频教程--基础篇--第06节--Dubbo管理控制台的安装 4.Dubbo视频教程--基础篇--第10节--Dubbo监控中心的介绍与简易监控中心的安装 5.持续集成管理平台(SVN.Nexus.Maven.Hudson)的安装: Dubbo视频教程--基础篇--第11节至18节 6.Dubbo视频教程--高级篇--第21节