java设备管理系统简单应用

——简单面向对象(OO)的练习——

1.题目要求

学生设备管理系统:
每个学校都有很多班级,每个班级都有很多设备。(设备可以更新)
每个设备都有购买价格,每种设备都有折旧率(如每年折旧10%)

①按班级进行统计,指定的班级有多少的设数量?
②按班级进行统计,当前时间,指定班级的设备价格总和?(考虑折旧)

2.代码实现

(1)输出案例

java-1:共有设备6
编号:d001   设备类型:电脑   购买时间:2017-10-01
编号:d002   设备类型:电脑   购买时间:2017-10-01
编号:d005   设备类型:投影仪   购买时间:2017-10-01
编号:d007   设备类型:桌子   购买时间:2017-10-01
编号:d008   设备类型:桌子   购买时间:2017-10-01
编号:d012   设备类型:椅子   购买时间:2017-10-01

java-2:共有设备7
编号:d003   设备类型:电脑   购买时间:2017-10-01
编号:d004   设备类型:电脑   购买时间:2017-10-01
编号:d006   设备类型:投影仪   购买时间:2017-10-01
编号:d009   设备类型:桌子   购买时间:2017-10-01
编号:d010   设备类型:桌子   购买时间:2017-10-01
编号:d011   设备类型:桌子   购买时间:2017-10-01
编号:d013   设备类型:椅子   购买时间:2017-10-01

java-1班的设备情况
d001电脑   购买时的价格:3500.0   折旧后的价格:2402
d002电脑   购买时的价格:3500.0   折旧后的价格:2402
d005投影仪   购买时的价格:3000.0   折旧后的价格:2215
d007桌子   购买时的价格:200.0   折旧后的价格:165
d008桌子   购买时的价格:200.0   折旧后的价格:165
d012椅子   购买时的价格:100.0   折旧后的价格:82

java-2班的设备情况
d003电脑   购买时的价格:3500.0   折旧后的价格:2402
d004电脑   购买时的价格:3500.0   折旧后的价格:2402
d006投影仪   购买时的价格:3000.0   折旧后的价格:2215
d009桌子   购买时的价格:200.0   折旧后的价格:165
d010桌子   购买时的价格:200.0   折旧后的价格:165
d011桌子   购买时的价格:200.0   折旧后的价格:165
d013椅子   购买时的价格:100.0   折旧后的价格:82

java-1班设备总和是:7431.0
java-2班设备总和是:7596.0
两个班级目前的设备总和是:15027.0

(2)班级类

package com.lut.biz;

import java.util.ArrayList;
import java.util.List;

public class SClass {
    private String sno;
    private String sname;
    private List<Device> devList;
    
    public SClass(String sno,String sname) {
    	this.sname=sname;
    	this.sno=sno;
    	devList =new ArrayList<Device>(30);
    	
    }
    //添加设备
    public void addDevice(Device dev) {
		devList.add(dev);
	}
    //移除设备
    public void removeDevice(String dno) {
    	for(Device dev:devList) {
    		if(dev.getDno().equals(dno)) {
    			devList.remove(dev);
    			break;
    			
    		}
    	}    	    
    }
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public List<Device> getDevList() {
		return devList;
	}
	public void setDevList(List<Device> devList) {
		this.devList = devList;
	}   
}

(3)学校类

package com.lut.biz;

public class School {
  private String name;
  public School(String name) {
	  this.name =name;
  }
  public String getName() {
	  return name;
  }
  public void setName(String name) {
	  this.name=name;
  }
}

(4)设备名称接口

package com.lut.biz;

public interface DevName  {
	public String COMPUTER="电脑";
	public String TOU_YING="投影仪";
	public String TABLE="桌子";
	public String CHAIR="椅子"
}

(5)设备类型类

package com.lut.biz;

public class DevType {
    private String tno;  //设备类型编号
    private String name; //设备类型名称
    private double price;//价格
    private double oldRate;//折旧率
    
    public DevType(String tno,String name) {
    	this.tno=tno;
    	this.name=name;
    }
    
    
	public String getTno() {
		return tno;
	}
	public void setTno(String tno) {
		this.tno = tno;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public double getOldRate() {
		return oldRate;
	}
	public void setOldRate(double oldRate) {
		this.oldRate = oldRate;
	}
    
    
}

(6)设备类

package com.lut.biz;

import java.util.Date;

public class Device {
	private DevType type; //设备类型
	private Date buydate; //购买时的日期
	private String dno; //设备编号

	public Device(String dno, DevType type) {
		this.dno = dno;
		this.type = type;
	}

	public DevType getType() {
		return type;
	}

	public void setType(DevType type) {
		this.type = type;
	}

	public Date getBuydate() {
		return buydate;
	}

	public void setBuydate(Date buydate) {
		this.buydate = buydate;
	}

	public String getDno() {
		return dno;
	}

	public void setDno(String dno) {
		this.dno = dno;
	}

	// 计算设备折旧后(当前的)的价格
	public double getNowPrice() {		
		Date now = new Date();
		int days = (int)( (now.getTime() - this.buydate.getTime())/(24*3600*1000)) + 1;
		int nowPrice  = (int)(this.type.getPrice() * (1 - this.type.getOldRate()/365 * days));
		System.out.println(this.getDno() + this.getType().getName() +"   购买时的价格:" +this.type.getPrice()+"   折旧后的价格:" + nowPrice);
		return nowPrice;
	}
	
	
}

(7)测试类

package com.lut.ui;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import com.lut.biz.DevName;
import com.lut.biz.DevType;
import com.lut.biz.Device;
import com.lut.biz.SClass;

public class TsetDevice {

	public static void main(String[] args) {
		// 创建两个班级对象
		SClass c1 = new SClass("C001", "java-1班");
		SClass c2 = new SClass("C002", "java-2班");
		// 创建设备名称对象,设置 设备名称 ,设备类型,价格,折旧率
		DevType t1 = new DevType("T001", DevName.COMPUTER);
		t1.setOldRate(0.18); // 折旧率
		t1.setPrice(3500); // 原价
		DevType t2 = new DevType("T002", DevName.TOU_YING);
		t2.setOldRate(0.15);
		t2.setPrice(3000);
		DevType t3 = new DevType("T003", DevName.TABLE);
		t3.setOldRate(0.1);
		t3.setPrice(200);
		DevType t4 = new DevType("T004", DevName.CHAIR);
		t4.setOldRate(0.1);
		t4.setPrice(100);

		// 创建一系列具体的设备
		Device d1 = new Device("d001", t1);
		Device d2 = new Device("d002", t1);
		Device d3 = new Device("d003", t1);
		Device d4 = new Device("d004", t1);// 电脑
		Device d5 = new Device("d005", t2);
		Device d6 = new Device("d006", t2);// 投影仪
		Device d7 = new Device("d007", t3);
		Device d8 = new Device("d008", t3);
		Device d9 = new Device("d009", t3);
		Device d10 = new Device("d010", t3);
		Device d11 = new Device("d011", t3);// 桌子
		Device d12 = new Device("d012", t4);
		Device d13 = new Device("d013", t4);// 椅子

		// 日期格式化
		SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
		try {
			
			//设置购买时的日期
			Date buyDate = sd.parse("2017-10-1");
			d1.setBuydate(buyDate);
			d2.setBuydate(buyDate);
			d3.setBuydate(buyDate);
			d4.setBuydate(buyDate);
			d5.setBuydate(buyDate);
			d6.setBuydate(buyDate);
			d7.setBuydate(buyDate);
			d8.setBuydate(buyDate);
			d9.setBuydate(buyDate);
			d10.setBuydate(buyDate);
			d11.setBuydate(buyDate);
			d12.setBuydate(buyDate);
			d13.setBuydate(buyDate);

		} catch (Exception e) {
			e.printStackTrace();
		}
		
		//添加设备
		c1.addDevice(d1);
		c1.addDevice(d2);
		c2.addDevice(d3);
		c2.addDevice(d4);
		c1.addDevice(d5);
		c2.addDevice(d6);
		c1.addDevice(d7);
		c1.addDevice(d8);
		c2.addDevice(d9);
		c2.addDevice(d10);
		c2.addDevice(d11);
		c1.addDevice(d12);
		c2.addDevice(d13);
		
		// 创建存储集合
		List<Device> devList1 = c1.getDevList();
		System.out.println(c1.getSname() + ":共有设备" + devList1.size());
		for (Device dev1 : devList1) {
			System.out.println("编号:" + dev1.getDno() + "   设备类型:" + dev1.getType().getName() + "   购买时间:"
					+ sd.format(dev1.getBuydate()));
		}
		System.out.println();

		List<Device> devList2 = c2.getDevList();
		System.out.println(c2.getSname() + ":共有设备" + devList2.size());
		for (Device dev2 : devList2) {
			System.out.println("编号:" + dev2.getDno() + "   设备类型:" + dev2.getType().getName() + "   购买时间:"
					+ sd.format(dev2.getBuydate()));

		}
		System.out.println();

		double allPrice = 0, allPrice1 = 0, allPrice2 = 0;
		// 遍历输出当前设备的价格

		System.out.println(c1.getSname() + "的设备情况");
		for (Device dev : devList1) {
			allPrice1 += dev.getNowPrice();
		}
		System.out.println();

		System.out.println(c2.getSname() + "的设备情况");
		for (Device dev : devList2) {
			allPrice2 += dev.getNowPrice();
		}

		allPrice = allPrice1 + allPrice2;

		System.out.println();
		System.out.println(c1.getSname() + "设备总和是:" + allPrice1);
		System.out.println(c2.getSname() + "设备总和是:" + allPrice2);
		System.out.println("两个班级目前的设备总和是:" + allPrice);
	}

}

新人博主,技术有限,如有错误,还望指出。

发布了7 篇原创文章 · 获赞 9 · 访问量 735
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览