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]; // 为保证数组足够大
5     String[] date = new String[50];// 借书的时间  
6     int[]    state = new int[50];  // 借书的状态 , 0表示借出 ,1.表示可以借。
7 }
  1 import java.util.*;
  2 import java.text.*;
  3 class DvdMgr {
  4     
  5     //创建一个DvdSet对象
  6     DvdSet dvd = new DvdSet();    
  7     
  8     //1.第一个方法初始化三个DVD数据
  9     public void initial(){
 10         //初始化三个Dvd
 11          dvd.name[0]= "罗马假日";
 12            dvd.state[0]=0;
 13          dvd.count[0] = 30;
 14           dvd.date[0]= "2016-11-18";
 15           dvd.name[1]="风声鹤唳"; 
 16                dvd.state[1]=1;
 17                dvd.name[2]= "浪漫满屋";
 18                dvd.state[2]=1; 
 19          dvd.count[2] = 10;
 20     }
 21 
 22     //2.实现一个菜单切换
 23     public void startMenu() {
 24 
 25         System.out.println("*********************************");
 26         System.out.println("******欢迎使用迷你DVD管理器******");
 27         System.out.println("******       1.新增DVD     ******");
 28         System.out.println("******       2.查看DVD     ******");
 29         System.out.println("******       3.删除DVD     ******");
 30         System.out.println("******       4.借出DVD     ******");
 31         System.out.println("******       5.归还DVD     ******");
 32         System.out.println("******       6.DVD排行榜   ******");
 33         System.out.println("******       7.退出        ******");
 34         System.out.println("*********************************");
 35 
 36         Scanner input = new Scanner(System.in);
 37         System.out.println("请输入您的操纵:");
 38         int option = input.nextInt();
 39 
 40         switch(option){
 41 
 42             case 1 :
 43                 addDvd();
 44                 returnMenu();
 45                 break;
 46 
 47             case 2 :
 48                 searchDvd();
 49                 returnMenu();    
 50                 break;
 51             case 3 :
 52                 deleteDvd();
 53                 returnMenu();
 54                 break;
 55             case 4 :
 56                 lendDvd();
 57                 returnMenu();
 58                 break;
 59             case 5 :
 60                 returnDvd();
 61                 returnMenu();
 62                 break;
 63             case 6:
 64                 list();
 65                 returnMenu();
 66                 
 67                 break;
 68             case 7:
 69                 System.out.println("谢谢使用,欢迎下次在来");
 70                 break;
 71             default:
 72                 System.out.println("输入异常,程序已经吓崩溃,正在重启中...");
 73                 break;
 74 
 75         }
 76         
 77     }
 78 
 79     //3.返回菜单
 80     public void returnMenu() {
 81         System.out.println("输入0返回:");
 82         Scanner input = new Scanner(System.in);
 83 
 84         if(input.nextInt() == 0){
 85             
 86             //在此进入菜单切换
 87             startMenu();
 88         }else {
 89         
 90             System.out.println("输入异常,请从输入:");
 91             returnMenu();  // 递归调用。
 92         }
 93         
 94     }
 95 
 96     //4.查看的功能
 97     public void searchDvd(){
 98         System.out.println("******欢迎进入查看页面*****");
 99         //	 Tap
100         System.out.println("序号	名称		状态	借出时间	");
101         for(int i=0;i<dvd.name.length ; i++){
102             if(dvd.name[i] == null){
103                 
104                 break;
105             }else if (dvd.state[i] == 0){
106                 //代表已经借出
107                 System.out.println(i+1+"	"+"<<"+dvd.name[i]+">>	已借出	"+dvd.date[i]);
108             }else if(dvd.state[i] == 1){
109 
110                 //代没有借出
111                 System.out.println(i+1+"	"+"<<"+dvd.name[i]+">>	可借	");
112             }
113         }
114 
115         System.out.println("**************************************");
116             
117     }
118 
119     //5.新增Dvd
120     public void addDvd(){
121         System.out.println("******欢迎进入添加页面*****");
122         System.out.println("请输入您要添加的Dvd:");
123         Scanner input = new Scanner(System.in);
124         String name = input.next();
125         //将新增的内容放到最后
126         for(int i = 0;i<dvd.name.length;i++){
127             
128             if(dvd.name[i] == null){ //到最后去了。
129 
130                 dvd.name[i] = name;
131                 dvd.state[i] = 1;
132                 System.out.println("<<"+name+">>dvd添加成功");
133                 break;
134             }
135         }
136         
137     }
138 
139     //6.删除dvd
140 
141     public void deleteDvd(){
142         System.out.println("******欢迎进入删除页面*****");
143         System.out.println("请输入您要删除的Dvd名称:");
144         Scanner input = new Scanner(System.in);
145         String name = input.next();
146 
147         //1.没有找到  :  提示没有找到 请重新输入
148         //2.找到 :
149             //1.已经借出去 : 不能够删除
150             //2.没有借出去 : 删除
151 
152         for(int i = 0;i<dvd.name.length;i++){
153             //查找是否存在
154             if(dvd.name[i] != null){
155 
156                 if(dvd.name[i].equalsIgnoreCase(name)){ //已经找到
157 
158                     //是否已经被借出
159                     if(dvd.state[i] == 0){ // 借出
160                         System.out.println("《"+name+"》已经被借出");
161                         break;
162                     }else if(dvd.state[i] == 1) {
163 
164                         //没有借出需要删除
165                         //思路 : 1.用后面一个替换前面的。
166                             //2.把最后面多余的地方赋值为null.
167                         
168 
169                         for(int j = i ;j<dvd.name.length;j++){
170                             
171                             //做交换
172                             if(dvd.name[j +1] != null){
173                                 dvd.name[j] = dvd.name[j+1];
174                                 dvd.state[j] = dvd.state[j+1];
175 
176                             }else{
177                                 //清空最后一个值
178                                 dvd.name[j] = null;
179                                 dvd.date[j] = null;
180                                 break;
181                             }
182                             
183                         }
184 
185                         System.out.println("删除《"+name+"》成功");
186                         break;
187                     }
188                 }
189 
190             }else {
191                     
192                     System.out.println("没有您要删除的dvd");
193                     System.out.println("***********************************************");
194                     break;
195                 }    
196         }
197 
198     }
199 
200 
201     //7.借dvd的功能
202     public void lendDvd(){
203         System.out.println("********欢迎进入借书页面********");
204         System.out.println("请输入您要借的dvd名称:");
205         Scanner input = new  Scanner(System.in);
206         String name = input.next();
207         
208         //1.判断有没有dvd
209             //1.又没有被借出去。
210         for(int i = 0;i<dvd.name.length;i++){
211 
212             if(dvd.name[i] != null){ // 有dvd
213 
214                 if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 1){ //有书并且没有被借出去
215                     
216                     //借书
217                     //1.修改状态
218                     dvd.state[i] = 0;
219                     System.out.println("请输入借书的时间(年-月-日):");
220                     Scanner inputDate = new Scanner(System.in);
221                     dvd.date[i] = inputDate.next();
222                     System.out.println("借书成功");
223                     dvd.count[i]++;
224                     break;
225 
226                 }else if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){
227                     System.out.println("不好意思此借书已经被借出");
228                     break;
229                 }
230 
231             }else { // dvd
232                 
233                 System.out.println("没有您要找的DVD");
234                 break;
235             }
236         }
237 
238     }
239 
240     //8.还Dvd 计算价格
241     public void returnDvd(){
242 
243         System.out.println("********欢迎进入还DVD页面******************");
244         System.out.println("请输入还dvd的名称:");
245         Scanner input = new Scanner(System.in);
246         double  price = 0.0;
247         String name = input.next();
248         for(int i = 0;i<dvd.name.length;i++){
249 
250             if(dvd.name[i]!=null){ //
251 
252                 if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){ //以借出就可以归还
253                     dvd.state[i] = 1;
254                     System.out.println("请输入归还书籍的时间(年-月-日):");
255                     Scanner inputDate = new Scanner(System.in);
256                     //获取时间差
257                     long charge = charge(dvd.date[i],inputDate.next());
258                     price = charge * 1;
259                     System.out.println("《"+dvd.name[i]+"》归还成功");
260                     System.out.println("您应付"+price+"元");
261                     //清空时间
262                     dvd.date[i] = null;
263                     break;
264 
265                 }
266 
267             }else{
268                 System.out.println("没有找到匹配的信息");
269                 break;
270             }
271         }
272         System.out.println("************************************************");
273 
274     }
275 
276     public long charge(String date1,String date2){
277         
278         //做时间差
279         //将String转为Date做计算
280         SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
281         long charge = 0;
282         try{
283             Date d1 = sd.parse(date1);  
284             Date d2 = sd.parse(date2);
285             //时间也是以毫秒为单位。
286             charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60);
287         }catch(ParseException e){
288             System.out.println(e);
289         }
290         
291         return charge;
292     }
293 
294 
295     //排行榜
296     public void list(){
297 
298         System.out.println("欢迎进入Dvd排行榜");
299         //排序
300         for(int i = 0 ; i <dvd.name.length-1;i++){
301 
302             if(dvd.name[i] != null){
303                 
304                 for(int j = 0; j<dvd.name.length-1-i;j++){
305 
306                     if(dvd.name[j] != null){
307 
308                         if(dvd.count[j] < dvd.count[j+1]){
309 
310                         int temp = dvd.count[j];
311                         dvd.count[j] = dvd.count[j+1];
312                         dvd.count[j+1]= temp;
313                         
314                         String name1 = dvd.name[j];
315                         dvd.name[j] = dvd.name[j+1];
316                         dvd.name[j+1] = name1;    
317 
318                         String date1= dvd.date[j];
319                         dvd.date[j] = dvd.date[j+1];
320                         dvd.date[j+1] = date1;    
321                         
322                         int state1= dvd.state[j];
323                         dvd.state[j] = dvd.state[j+1];
324                         dvd.state[j+1] = state1;
325 
326                         }
327                     }else {
328                         break;
329                     }
330                     
331                     
332                 }
333 
334             }else{
335                 break;
336             }
337         }
338         System.out.println("序号	名称		状态	借出时间	");
339         for(int i=0;i<dvd.name.length ; i++){
340             if(dvd.name[i] == null){
341                 
342                 break;
343             }else if (dvd.state[i] == 0){
344                 //代表已经借出
345                 System.out.println(i+1+"	"+"<<"+dvd.name[i]+">>	已借出	"+dvd.date[i]);
346             }else if(dvd.state[i] == 1){
347 
348                 //代没有借出
349                 System.out.println(i+1+"	"+"<<"+dvd.name[i]+">>	可借	");
350             }
351         }
352 
353         System.out.println("**************************************");
354             
355     }
356 }
原文地址:https://www.cnblogs.com/StarKL/p/6126127.html