0
点赞
收藏
分享

微信扫一扫

小人物成长史二

小人物成长史二


前情绪要

话说主角刚创出一个数组级别的DVD管理系统,让灵恢复了一点力量,然而危险也接憧而来,远处几千米外飞速掠过一道身影,不一会儿就到了身前,跟灵战斗了起来。“快点,我现在打不过对面,我传给你面向对象,你要进化这个程序,让我有更强的力量”


一、进化:面向对象-DVD管理系统

数组级别的力量是最弱小的,少年,你还需要成长啊

二、准备

1.创建类

面向对象是一种思想,你要学会去理解它,当主角闭上了眼睛去阅读少女传给他知识的时候,少女的声音也随之传来,“首先,你需要一个实体类,然后往这个类里添加其所共有的属性,所以还是那5个属性,记住这一句话-类是对象的模板,对象是类的实例”。少女停顿了一会儿,似乎在等少年消化,“我教你面向对象是里面有一个办法可以对付他的篡改大法,此法名为封装,通过独特的方法去访问里面的属性,实体类一般有属性,构造方法,setter和getter方法,所以我们还需要一个对象类去做具体的事情,最后一个类去启动他们”

三 方法

3.1 新增

//1.输入新增的DVD的两项信息
				Scanner sc=new Scanner(System.in);
				System.out.print("输入DVD的名称:");
				String dvdName=sc.next();
				System.out.print("输入DVD的日租金:");
				double price=sc.nextDouble();
				//找到新DVD在数组中的位置(第一个为null的位置)
				int index=-1;
				for (int i = 0; i < dvds.length; i++) {
					if(dvds[i]==null) {
						index=i;
						break;
						
					}
				}
				if(index==-1) {
					System.out.println("新增失败,库存已满!");
				}else {
					dvds[index]=new Dvd(dvdName, price);
					System.out.println("操作成功!");
				}

3.2 显示

	
			System.out.println("名称\t租金\t出租时间\t状态\t出租次数");
			for (int i = 0; i < dvds.length; i++) {
				if(dvds[i]==null) {
					break;
				}
				dvds[i].showInfo();
			}

3.3 删除

Scanner input=new Scanner(System.in);
			System.out.print("输入要删除DVD的名称:");
			String dvdName=input.next();
			//1.调用本类中的findIndexByDVDName查询DVD的位置
			int index=findIndexByDVDName(dvdName);
			if(index==-1) {
				System.out.println("没有此dvd!");
			}else {
				for(int i=index;i<dvds.length;i++) {
					if(dvds[i]==null) {
						break;
					}
					dvds[i]=dvds[i+1];
					
					
				}
				System.out.println("删除成功!");
			}
		}
		//根据DVD名称获取DVD在数组中的位置
		
		private  int findIndexByDVDName(String name) {

			int index=-1;
			for (int i = 0; i < dvds.length; i++) {
				if(dvds[i]==null) {
					break;
				}else {
					if(dvds[i].getName().equals(name)) {
						index=i;
						break;
					}
				}
			}
			
			return index;

3.4 修改

Scanner input=new Scanner(System.in);
			System.out.print("输入要修改租金的碟片名称:");
			String dvdName=input.next();
			//1.调用本类中的findIndexByDVDName查询DVD的位置
			int index=findIndexByDVDName(dvdName);
			if(index==-1) {
				System.out.println("没有此dvd!");
			}else {
				System.out.print("请输入修改后的单价");
			double price=input.nextDouble();
			dvds[index].setPrice(price);
			System.out.println("修改成功");
			}

3.5 出租

Date date=new Date();
		Scanner input=new Scanner(System.in);
		System.out.print("输入要出租DVD的名称:");
		
		String dvdName=input.next();
		//1.调用本类中的findIndexByDVDName查询DVD的位置
		int index=findIndexByDVDName(dvdName);
		if(index==-1) {
			System.out.println("没有此dvd!");
		}else if(dvds[index].isStatus()) {
			System.out.println("已出租");
			
			
		}
		else {
			
			dvds[index].setStatus(true);
			dvds[index].setDate(new Date());
			int temp=dvds[index].getCount()+1;
			
			
			dvds[index].setCount(temp);
			
			System.out.println("出租成功!");
		}

3.6 归还

Scanner input=new Scanner(System.in);
			System.out.print("输入要归还DVD的名称:");
			String dvdName=input.next();
			//1.调用本类中的findIndexByDVDName查询DVD的位置
			int index=findIndexByDVDName(dvdName);
			if(index==-1) {
				System.out.println("没有此dvd!");
			}else {
				dvds[index].setBackdate(new Date());
				dvds[index].setStatus(false);
				Date date2=dvds[index].getBackdate(new Date());
				long day=0;
			long days=day<0 ?	((date2.getTime()-dvds[index].getDate().getTime())/1000/60/60/24):-1;
				
			//long day=dvd.calrate(dvds[index].getBackdate(new Date()), dvds[index].getDate());
						
				System.out.println("出租日期:"+dvds[index].show());
			System.out.println("归还日期:"+dvds[index].showback());
			System.out.println("共计:"+days);
				System.out.println("日租金:"+dvds[index].getPrice());
			System.out.println("应支付"+days*dvds[index].getPrice()+"元");
			System.out.println("归还成功!");
			}

3.7 排行榜

//重新建一个数组对象,不影响原先的数组
			Dvd[] d=new Dvd[50];
			for (int i = 0; i < dvds.length; i++) {
				d[i]=dvds[i];
				

			}
			//冒泡排序,对对象也有用
			
			for (int i = 0; i < d.length; i++) {
				for (int j = 0; j < d.length-1; j++) {
					if(d[j].getCount()<d[j+1].getCount()) {
						
					 dvd=d[j];
					 d[j]=d[j+1];
					 d[j+1]=dvd;
					 
					}
					 
				}
				
			}
			//前三名
			for (int i = 0; i < 3; i++) {
				System.out.println(d[i]);
			}

图片

界面
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


总结

不行,你bug太多了,时间不多,我想你需要一些援军,上传代码,集众人之力把排行榜功能完善吧
dvd管理系统源代码

举报

相关推荐

0 条评论