简易迷你DVD管理器(高仿图书馆借书系统)集合代码

此题涉及的知识点较多,需仔细分析

  1 package com.lv.DVD;
  2 import java.util.*;
  3 import java.text.*;
  4 class DvdSet{
  5     //定义三个属性
  6     ArrayList<String> name = new ArrayList<String>();    
  7     ArrayList<String> date = new ArrayList<String>();
  8     ArrayList<Integer> state = new ArrayList<Integer>();
  9     ArrayList<Integer> count = new ArrayList<Integer>();
 10 }
 11 class DvdMgr{
 12     //创建一个DvdSet对象
 13     DvdSet dvd = new DvdSet();
 14     public void initial(){
 15         dvd.name.add("罗马假日");
 16         dvd.state.add(0);
 17         dvd.count.add(30);
 18         dvd.date.add("2016-12-1");
 19         
 20         dvd.name.add("风声鹤唳");
 21         dvd.state.add(1);
 22         dvd.count.add(0);
 23         dvd.date.add("");
 24         
 25         dvd.name.add("浪漫满屋");
 26         dvd.state.add(1);
 27         dvd.count.add(10);
 28         dvd.date.add("");
 29     }
 30     public void startMenu(){
 31         System.out.println("*********************************");
 32         System.out.println("******欢迎使用迷你DVD管理器******");
 33         System.out.println("******       1.新增DVD     ******");
 34         System.out.println("******       2.查看DVD     ******");
 35         System.out.println("******       3.删除DVD     ******");
 36         System.out.println("******       4.借出DVD     ******");
 37         System.out.println("******       5.归还DVD     ******");
 38         System.out.println("******       6.DVD排行榜   ******");
 39         System.out.println("******       7.退出        ******");
 40         System.out.println("*********************************");
 41         
 42         Scanner input = new Scanner(System.in);
 43         System.out.println("请输入您的操作");
 44         int option = input.nextInt();
 45         
 46         switch(option){
 47         case 1:
 48             addDvd();
 49             returnMenu();
 50             break;
 51             
 52         case 2:
 53             searchDvd();
 54             returnMenu();
 55             break;
 56             
 57         case 3:
 58             deleteDvd();
 59             returnMenu();
 60             break;
 61             
 62         case 4:
 63             lendDvd();
 64             returnMenu();
 65             break;
 66             
 67         case 5:
 68             returnDvd();
 69             returnMenu();
 70             break;
 71             
 72         case 6:
 73             list();
 74             returnMenu();
 75             break;
 76             
 77         case 7:
 78             System.out.println("谢谢使用,欢迎下次在来");
 79             break;
 80             
 81         default:
 82             System.out.println("输入异常,程序已经崩溃,正在重新启动……");
 83             break;
 84         }
 85     }
 86     //返回菜单
 87     public void returnMenu(){
 88         System.out.println("输入0返回");
 89         Scanner input = new Scanner(System.in);
 90         if(input.nextInt()==0){
 91             startMenu();
 92         }else{
 93             System.out.println("输入异常,请重新输入:");
 94             returnMenu();
 95         }
 96     }
 97     //查看的功能
 98     public void searchDvd(){
 99         System.out.println("******欢迎进入查看页面*****");
100         System.out.println("序号\t名称\t\t状态\t借出时间\t");
101         for(int i=0;i<dvd.name.size();i++){
102             if(dvd.name.get(i)==null){
103                 break;
104             }else if(dvd.state.get(i) == 0){
105                 //代表已经借出
106                 System.out.println(i+1+"\t"+"<<"+dvd.name.get(i)+">>\t已借出\t"+dvd.date.get(i));
107             }else if(dvd.state.get(i) == 1){
108                 //代没有借出
109                 System.out.println(i+1+"\t"+"<<"+dvd.name.get(i)+">>\t可借\t");
110             }
111         }
112         System.out.println("**************************************");
113     }
114     //新增Dvd
115     public void addDvd(){
116         System.out.println("******欢迎进入添加页面*****");
117         System.out.println("请输入您要添加的Dvd:");
118         Scanner input = new Scanner(System.in);
119         String name = input.next();
120         //将新增的内容放到最后
121         dvd.name.add(name);
122         dvd.state.add(1);
123         dvd.date.add("");
124         dvd.count.add(0);
125         System.out.println("<<"+name+">>dvd添加成功");
126     }
127     //删除dvd
128     public void deleteDvd(){
129         System.out.println("******欢迎进入删除页面*****");
130         System.out.println("请输入您要删除的Dvd名称:");
131         Scanner input = new Scanner(System.in);
132         String name = input.next();
133         for(int i=0;i<dvd.name.size();i++){
134             if(dvd.name.get(i) != null){
135                 if(dvd.name.get(i).equals(name)){
136                     if(dvd.state.get(i) == 0){
137                         System.out.println("《"+name+"》已经被借出");
138                         break;
139                     }else if(dvd.state.get(i) == 1){
140                         
141                                 dvd.name.remove(i);
142                                 System.out.println("11删除《"+name+"》成功");
143                                 break;
144                             
145                         
146                     }
147                 }
148             }else{
149                 System.out.println("没有您要删除的dvd");
150                 System.out.println("***********************************************");
151                 break;
152             }
153         }
154     }
155     //借dvd的功能
156     public void lendDvd(){
157         
158         System.out.println("********欢迎进入借书页面********");
159         System.out.println("请输入您要借的dvd名称:");
160         Scanner input1 = new  Scanner(System.in);
161         String name = input1.next();
162         
163         //判断有没有dvd
164         
165         int count = dvd.name.indexOf(name);
166 
167         if (count >= 0){
168             if(dvd.state.get(count) == 1){
169                 dvd.state.set(count,0);
170                 System.out.println("请输入借书的时间(年-月-日):");
171                 Scanner inputDate = new Scanner(System.in);
172                 String dd = inputDate.next();
173                 dvd.date.set(count,dd);    
174                 dvd.count.set(count,dvd.count.get(count)+1);
175                 System.out.println("借书成功");
176             }else if(dvd.state.get(count)==0){
177                 System.out.println("不好意思此借书已经被借出");
178             }
179         }else{
180             System.out.println("没有您要找的DVD");
181         }
182     }
183     //计算价格
184     public void returnDvd(){
185         System.out.println("********欢迎进入还DVD页面******************");
186         System.out.println("请输入还dvd的名称:");
187         Scanner input = new Scanner(System.in);
188         double  price = 0.0;
189         String name = input.next();
190         int count = dvd.name.indexOf(name);
191         if(count>=0){
192             if(dvd.state.get(count)==0){
193                 dvd.state.set(count,1);
194                 System.out.println("请输入归还书籍的时间(年-月-日):");
195                 Scanner inputDate = new Scanner(System.in);
196                 //获取时间差
197                 String de = inputDate.next();
198                 long charge = charge(dvd.date.get(count),de);
199                 price = charge*1;
200                 System.out.println("《"+dvd.name.get(count)+"》归还成功");
201                 System.out.println("您应付"+price+"元");
202                 //清空时间
203                 dvd.date.set(count,"");
204                 //dvd.state.set(count, 1);
205             }else{
206                 System.out.println("没有找到匹配的信息");
207             }
208             
209         }
210         System.out.println("************************************************");
211     }
212     public long charge(String date1,String date2){
213         SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
214         long charge = 0;
215         try{
216             Date d1 = sd.parse(date1);  
217             Date d2 = sd.parse(date2);
218             //时间也是以毫秒为单位。
219             charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60);
220         }catch(ParseException e){
221             System.out.println(e);
222         }
223         
224         return charge;
225     }
226     public void list(){
227         System.out.println("欢迎进入Dvd排行榜");
228         for(int i=0;i<dvd.name.size()-1;i++){
229             if(dvd.name.get(i)!=null){
230                 for(int j=0;j<dvd.name.size()-1-i;j++){
231                     if(dvd.name.get(j)!=null){
232                         if(dvd.count.get(j)<dvd.count.get(j)){
233                             int temp1 = dvd.count.get(j);
234                             int temp2 = dvd.count.get(j+1);
235                             dvd.count.set(j, temp1);
236                             dvd.count.set(j+1, temp2);
237                             
238                             String name1 = dvd.name.get(j);
239                             String name2 = dvd.name.get(j+1);
240                             dvd.name.set(j, name1);
241                             dvd.name.set(j+1, name2);
242 
243 
244                             String date1= dvd.date.get(j);
245                             String date2= dvd.date.get(j+1);
246                             dvd.date.set(j, date1);
247                             dvd.date.set(j+1, date2);
248                             
249                             int state1= dvd.state.get(j);
250                             int state2= dvd.state.get(j+1);
251                             dvd.state.set(j, state1);
252                             dvd.state.set(j+1, state2);
253                             
254                         }
255                     }else{
256                         break;
257                     }
258                     
259                 }
260             }else{
261                 break;
262             }
263             
264         }
265         System.out.println("序号\t名称\t\t状态\t借出时间\t");
266         for(int i=0;i<dvd.name.size();i++){
267             if(dvd.name.get(i)==null){
268                 break;
269             }else if(dvd.state.get(i)==0){
270                 System.out.println(i+1+"\t"+"<<"+dvd.name.get(i)+">>\t已借出\t"+dvd.date.get(i));
271             }else if(dvd.state.get(i)==1){
272                 System.out.println(i+1+"\t"+"<<"+dvd.name.get(i)+">>\t可借\t");
273             }
274         }
275         System.out.println("**************************************");
276     }
277 }
278 public class Demo1 {
279     public static void main(String[] args){
280         DvdMgr dvd = new DvdMgr();
281         dvd.initial();
282         
283         //开始进入切换菜单
284         dvd.startMenu();
285         
286     }
287 }

 

posted @ 2016-12-03 00:05  LXQLCCC  Views(264)  Comments(0Edit  收藏  举报