java 迷你dvd_java基础<迷你DVD系统>

1 packagecom.jb.minidvd;2

3 importjava.text.ParseException;4 importjava.text.SimpleDateFormat;5 import java.util.*;6 public classDVDMgr {7 /**

8 * 创建DVD对象9 */

10 DVDSet dvd = newDVDSet();11 /**

12 * 初始三个DVD13 */

14 public voidinitial() {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 voidstartMenu(){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 = newScanner(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 voidreturnMain(){76 Scanner input = newScanner(System.in);77 System.out.print("输入0返回:");78 if(input.nextInt() == 0){79 startMenu();80 }else{81 System.out.println("输入错误, 异常终止!");82 }83 }84 /**

85 * 查看DVD86 */

87 public voidsearch(){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"+"<>\t" +dvd.date[i]);95 }else if(dvd.state[i] == 1){96 System.out.println((i+1)+"\t可 借\t"+"<>");97 }98 }99 System.out.println("**************************");100 returnMain();101 }102 /**

103 * 新增DVD104 */

105 public voidadd(){106 Scanner input = newScanner(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 voiddelete(){125 Scanner input = newScanner(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 voidlend(){163 System.out.println("---> 借出DVD\n");164

165 Scanner input = newScanner(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 voidreturnDvd(){191 System.out.println("---> 归还DVD\n");192

193 Scanner input = newScanner(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 *@paramdstr1 第一个日期223 *@paramdstr2 第二个日期224 *225 */

226 public longcharge(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 returncharge;237 }238 /**

239 * 借出排行榜240 */

241 public voidlist(){242 //定义新数组,用来存放排序后DVD信息

243 String[] newname = new String[50]; //

244 int[] newcount=new int[50];245 for(int k=0;k

250 //利用冒泡排序算法进行排序

251 for(int i=0;inewcount[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<>");270 }271 }272 System.out.println("**************************");273 returnMain();274 }275 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值