博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java基础<迷你DVD系统>
阅读量:5150 次
发布时间:2019-06-13

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

一.写在main方法中

1 import java.util.*;  2   3 public class MyDVDMgr {  4     public static void main(String[] args){  5         Scanner input=new Scanner(System.in);  6         //是否退出系统,false代表退出系统  7         boolean flag=true;  8         //DVD相关信息,最多只能存储6个DVD信息  9         String[] name=new String[6]; //DVD名称 10         int[] state=new int[6]; //借阅状态,0:可借阅 ;1:已借出 11         int[] date=new int[6];  //借出日期 12         int[] count=new int[6]; //借出次数 13          14         /* 15          * 初始化三个DVD 16          * */ 17         name[0]="罗马假日"; 18         state[0]=1; 19         date[0]=1; 20         count[0]=15; 21          22         name[1]="风声鹤唳"; 23         state[1]=0; 24         count[1]=12; 25          26         name[2]="浪漫满屋"; 27         state[2]=0; 28         count[2]=30; 29          30         int num=-1; 31         //循环操作 32         do{ 33             //输出欢迎菜单 34             System.out.println("欢迎使用迷你DVD管理器"); 35             System.out.println("-------------------------"); 36             System.out.println("1.新增DVD"); 37             System.out.println("2.查看DVD"); 38             System.out.println("3.删除DVD"); 39             System.out.println("4.借出DVD"); 40             System.out.println("5.归还DVD"); 41             System.out.println("6.退出DVD"); 42             System.out.println("-------------------------"); 43             System.out.println("请选择:"); 44             int choose=input.nextInt(); 45             switch(choose){ 46                 case 1: 47                     //新增DVD 48                     System.out.println("-->新增DVD\n"); 49                     System.out.println("请输入DVD名称:"); 50                     String dvdName=input.next(); 51                     boolean flag2=false; 52                     for(int i=0;i
查看DVD\n"); 68 System.out.println("序号\t状态\t名称\t借出日期\t借出次数"); 69 for(int i=0;i
删除DVD\n"); 82 System.out.println("请输入要删除DVD的名称:"); 83 String delete=input.next(); 84 boolean flag3=false; 85 int index=-1; //记录要删除DVD的位置 86 for(int i=0;i
借出DVD\n");118 System.out.print("请输入DVD名称:");119 String want=input.next(); //要借出的DVD名称120 for(int i=0;i
31){ //当输入借出的日期不满足1-31时129 System.out.println("必须输入大于等于1且小于等于31的数字,请重新输入:");130 date[i]=input.nextInt();131 }132 System.out.println("借出《"+want+"》成功!");133 count[i]++;134 break;135 }else if(want.equals(name[i]) && state[i]==1){ //找到匹配已被借出136 System.out.println("《"+want+"》已被借出!");137 break;138 }139 }140 System.out.println("*****************************************");141 break;142 case 5:143 //归还DVD144 System.out.println("-->归还DVD\n");145 int charge=0; //租金146 System.out.print("请输入归还DVD名称:");147 want=input.next();148 for(int i=0;i
31){ //归还日期不能小于借出日期,也不能大于31157 if(redate
MyDVDMgr.java

二.抽分方法写在不同类

1.初始化使用数组类DVDSet.java

1 package com.jb.minidvd;2 3 public class DVDSet {4     String[] name = new String[50];   //数组1存储DVD名称数组5     int[] state = new int[50];        //数组2存储DVD借出状态:0已借出/1可借6     String[] date=new String[50];     //数组3存储DVD借出日期7     int[] count=new int[50];         //借出次数8    9 }
DVDSet.java

2.DVD业务类DVDMgr.java

1 package com.jb.minidvd;  2   3 import java.text.ParseException;  4 import java.text.SimpleDateFormat;  5 import java.util.*;  6 public class DVDMgr {  7     /**  8      * 创建DVD对象  9      */ 10     DVDSet dvd = new DVDSet(); 11     /** 12      * 初始三个DVD      13      */ 14     public void initial() { 15          16         dvd.name[0] = "罗马假日"; 17         dvd.state[0] = 0;  18         dvd.date[0]="2013-7-1"; 19         dvd.count[0]=15; 20          21         dvd.name[1] = "风声鹤唳"; 22         dvd.state[1] = 1;   23         dvd.count[1]=12; 24          25         dvd.name[2] = "浪漫满屋"; 26         dvd.state[2] = 1; 27         dvd.count[2]=30; 28     }     29     /** 30      * 开始菜单 31      */ 32     public void startMenu(){ 33          System.out.println("欢 迎 使 用 迷 你 DVD 管 理 器"); 34             System.out.println("-------------------------------------"); 35             System.out.println("0. 借出排行榜"); 36             System.out.println("1. 新 增 DVD"); 37             System.out.println("2. 查 看 DVD"); 38             System.out.println("3. 删 除 DVD"); 39             System.out.println("4. 借 出 DVD"); 40          System.out.println("5. 归 还 DVD");          41             System.out.println("6. 退         出 "); 42              43             System.out.print("--------------------------------------\n"); 44      45             System.out.print("请选择: "); 46             Scanner input = new Scanner(System.in); 47             int choice = input.nextInt(); 48             switch(choice){ 49                 case 0: 50                    list(); 51                    break; 52                 case 1: 53                    add(); 54                    break; 55                case 2:  56                    search(); 57                    break; 58                case 3: 59                    delete(); 60                    break; 61                case 4: 62                    lend(); 63                    break; 64                case 5: 65                    returnDvd(); 66                    break; 67                case 6: 68                    System.out.println("\n谢谢 使 用!"); 69                    break; 70             } 71     } 72     /** 73      * 返回主菜单 74      */ 75     public void returnMain(){ 76         Scanner input = new Scanner(System.in);  77         System.out.print("输入0返回:"); 78         if(input.nextInt() == 0){ 79             startMenu(); 80         }else{ 81             System.out.println("输入错误, 异常终止!"); 82         } 83     } 84     /** 85      * 查看DVD 86      */ 87     public void search(){ 88         System.out.println("---> 查看DVD\n"); 89         System.out.println("序号\t状 态\t名称\t\t借出日期"); 90         for(int i = 0 ; i < dvd.name.length; i++){ 91                if(dvd.name[i]==null){ 92                    break; 93                }else if(dvd.state[i] == 0){ 94                    System.out.println((i+1)+"\t已借出\t"+"<<"+ dvd.name[i]+ ">>\t" + dvd.date[i]); 95                }else if(dvd.state[i] == 1){ 96                    System.out.println((i+1)+"\t可 借\t"+"<<"+dvd.name[i]+">>"); 97                } 98            } 99         System.out.println("**************************");100         returnMain();      101     }102     /**103      * 新增DVD104      */105     public void add(){106      Scanner input = new Scanner(System.in);107         System.out.println("---> 新增DVD\n");        108         System.out.print("请输入DVD名称: ");109         String name = input.next();  110         for(int i = 0; i < dvd.name.length; i++){            111             if(dvd.name[i] == null){    //查询最后一个空位置插入112                dvd.name[i]=name;113                dvd.state[i]=1;//置新增的DVD可借状态114                 System.out.println("新增《"+name+"》成功!");115                 break;116             }117         }118         System.out.println("**************************");119         returnMain();   120     }    121     /**122      * 删除DVD123      */124     public void delete(){125         Scanner input = new Scanner(System.in);126         boolean flag=false;//标识删除成功与否127         System.out.println("---> 删除DVD\n");128         System.out.print("请输入DVD名称: ");129           String name = input.next();  130           //遍历数组,查找匹配信息131           for(int i = 0 ; i < dvd.name.length; i++){132               //查找到,每个元素前移一位133               if(dvd.name[i]!=null &&dvd.name[i].equalsIgnoreCase(name)&&dvd.state[i]==1){134                   int j=i;135                   while(dvd.name[j+1]!=null){136                       dvd.name[j]=dvd.name[j+1];137                       dvd.state[j]=dvd.state[j+1];138                       dvd.date[j]=dvd.date[j+1];139                       j++;140                   }141                   //最后一个不为空的元素置空142                    dvd.name[j]=null;                   143                    dvd.date[j]=null; 144                 System.out.println("删除《"+name+"》成功!");145                 flag=true;//置位,表示删除成功146                 break;147               }else if(dvd.name[i]!=null &&dvd.name[i].equalsIgnoreCase(name)&&dvd.state[i]==0){148                   System.out.println("《"+name+"》为借出状态,不能删除!"); 149                   flag=true;//置位150                   break;151               }152           }153           if(!flag){154               System.out.println("没有找到匹配信息!");155           }156           System.out.println("**************************");157           returnMain();      158     }159     /**160      * 借出DVD161      */162     public void lend(){163         System.out.println("---> 借出DVD\n");164         165         Scanner input = new Scanner(System.in);166         System.out.print("请输入DVD名称: ");167         String want = input.next();  //要借出的DVD名称 168         for(int i = 0; i < dvd.name.length; i++){            169             if(dvd.name[i] == null){    //无匹配170                 System.out.println("没有找到匹配信息!");171                 break;172             }else if(dvd.name[i].equals(want)&& dvd.state[i]==1){  //找到匹配可借     173                 dvd.state[i] = 0;174                 System.out.print("请输入借出日期(年-月-日):");175                 dvd.date[i]=input.next();176                 System.out.println("借出《"+want+"》成功!");               177                 dvd.count[i]++;178                 break;179             }else if(dvd.name[i].equals(want)&& dvd.state[i]==0){  //找到匹配已被借出             180                 System.out.println("《"+want+"》已被借出!");181                 break;182             }            183         }184         System.out.println("**************************");185         returnMain();186     }187     /**188      * 归还DVD并计算租金189      */190     public void returnDvd(){191         System.out.println("---> 归还DVD\n");192         193         Scanner input = new Scanner(System.in);194         long loan=0;//租金195         System.out.print("请输入DVD名称: ");196         String want = input.next();197         for(int i = 0; i < dvd.name.length; i++){            198             if(dvd.name[i] == null){    //无匹配199                 System.out.println("没有找到匹配信息!");200                 break;201             }else if(dvd.name[i].equals(want) && dvd.state[i]==0){  //找到匹配     202                 dvd.state[i] = 1;203                 System.out.print("请输入归还日期(年-月-日):");204                 String redate=input.next();205                 //计算租金206                 loan=charge(dvd.date[i],redate);207                 System.out.println("\n归还《"+want+"》成功!");208                 System.out.println("借出日期为:"+dvd.date[i]);209                 System.out.println("归还日期为:"+redate);210                 System.out.println("应付租金(元):"+loan);211                 break;212             }  else if(dvd.name[i].equals(want) && dvd.state[i]==1){ //找到匹配但没有借出213                System.out.println("该DVD没有被借出!无法进行归还操作。");214                break;215             }216         }217         System.out.println("**************************");218         returnMain();219     }220     /**221      * 计算日期差222      * @param dstr1 第一个日期223      * @param dstr2 第二个日期224      * 225      */226     public long charge(String dstr1,String dstr2){227         long charge=0;228         SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");229         try {230             Date d1=sd.parse(dstr1);231             Date d2=sd.parse(dstr2);232             charge=(d2.getTime()-d1.getTime())/(24*60*60*1000);233         } catch (ParseException e) {            234             e.printStackTrace();            235         }        236         return charge;237     }238     /**239      * 借出排行榜240      */241     public void list(){242         //定义新数组,用来存放排序后DVD信息243         String[] newname = new String[50];   //       244         int[] newcount=new int[50];  245         for(int k=0;k
newcount[j]){254 int tempc=newcount[i];255 newcount[i]=newcount[j];256 newcount[j]=tempc;257 String tempn=newname[i];258 newname[i]=newname[j];259 newname[j]=tempn;260 } 261 } 262 }263 System.out.println("---> 排行榜\n");264 System.out.println("**************************");265 System.out.println("次数\t名称");266 //显示排行榜信息267 for(int i=newname.length-1;i>=0;i--){268 if(newname[i]!=null){269 System.out.println(newcount[i]+"\t<<"+ newname[i]+ ">>" );270 }271 } 272 System.out.println("**************************");273 returnMain();274 }275 }
DVDMgr.java

3.功能测试类Start.java

1 package com.jb.minidvd; 2  3 public class Start { 4  5     /** 6      * @param args 7      */ 8     public static void main(String[] args) { 9         DVDMgr dm=new DVDMgr();    10         dm.initial();11         dm.startMenu();12 13     }14 15 }
Start.java

三、运行效果图

 

转载于:https://www.cnblogs.com/holly8/p/6009862.html

你可能感兴趣的文章
LeetCode#189 Rotate Array
查看>>
潮流设计:15个创意的 3D 字体版式作品欣赏
查看>>
modern.IE – Web 开发必备的 IE 浏览器测试工具
查看>>
非常酷的国外网站导航设计案例欣赏
查看>>
40个优秀的单页网站设计范例(下篇)
查看>>
未来的Web:让你惊叹的 Chrome 浏览器实验项目
查看>>
进阶学习项目实战链接
查看>>
jQuery中的serializer序列化—炒鸡好用
查看>>
VSCode 必装的 10 个高效开发插件
查看>>
python是强类型还是弱类型语言
查看>>
mysql数据库连接错误10060
查看>>
易错题
查看>>
numpy库简单使用
查看>>
基于DRF的图书增删改查
查看>>
pandas库简介和数据结构
查看>>
利用Git版本控制管理你的项目
查看>>
windows下使用pycharm开发基于ansible api的python程序
查看>>
错误 warning: LF will be replaced by CRLF in README.md.
查看>>
博客园修改鼠标图标样式
查看>>
SQLAlchemy学习
查看>>