简易迷你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 }