<script>
// 面向对象素例:用面向对象做一个车辆租赁管理系统
// 1.把所有车的公共属性提取处理,作为--个车辆的公共类,
// 2.有不同类型的车辆,每种车辆应是由车辆分类的类产生的,不同类型的车辆应该继承自车辆公共类型。VIP的车辆类型和普通车辆类型
// 3. 每辆车有company,id(车编号),price(价格),day(租车天数),每辆有计算租车价格的方法,租车成功的方法,还车的方法,
// 4. VIP车辆是100元1天,普通车辆是80元1天
//创建一个cars类 公共类
function ClassCar(company, id, price) {
this.company = company;
this.id = id;
this.price = price;
this.day = 0;//租车的时候穿天数
//看车是否租出 false 是没有租出
this.isOut = false;
}
//创建租车的方法 (公用的方法放在原型省空间)
ClassCar.prototype.rent = function (day) {
this.isOut = true;
this.day = day;
alert("租车成功,车辆编号是" + this.id + ",您租车" + day + "天,总价是:" + this.day * this.price)
}
//创建还车的方法 (看输入对象的isOut属性)
ClassCar.prototype.back = function () {
if (this.isOut) {
this.isOut = false;
alert("车辆编号是" + this.id + "还车成功")
} else {
alert("该车辆已归还");
}
}
//创建vip类
function VipCar(id, company) { //根据ID来判断车
//继承公共类的属性
ClassCar.call(this, company, id, 100)
this.type = "vip";
//原型属性不能直接继承,用浅拷贝
VipCar.prototype.rent = ClassCar.prototype.rent;
VipCar.prototype.back = ClassCar.prototype.back;
}
//创建普通类
function NormalCar(id, company) {
//继承公共类的属性
ClassCar.call(this, company, id, 80)
this.type = "normal"
//租车的原型
NormalCar.prototype.rent = ClassCar.prototype.rent;
//还车的原型
NormalCar.prototype.back = ClassCar.prototype.back;
}
//创建5辆车数组
var cars = [
new VipCar(1000, "a"),
new VipCar(1001, "a"),
new VipCar(1002, "a"),
new NormalCar(2001, "c"),
new NormalCar(2002, "c"),
]
//提示菜单
var out = true;
while (out) {
var type = +prompt("1.租车 2.还车 3.退出");
//1.租车
if (type === 1) {
//提示客户是vip还是normal
var carType = prompt("请输入租车的类型:vip或normal");
var day = +prompt("请输入你想要租车的天数");
//遍历cars数组 如果cars数组中的type属性 = 输入的 carType 并且 车子并没有租出,则吧这辆车子的信息输出
var car = "";
for (var i = 0; i < cars.length; i++) {
if (cars[i].type === carType && !cars[i].isOut) {
car = cars[i];
break;
}
}
//如果找到car 则询问用户是否确认租这辆车
if (car) {
// confirm js自带的确认框,确定返回true,取消返回false
var ok = confirm("确定租用这辆车?");
if (ok) {
//如果想要租车 则调用租车的方法
car.rent(day);
}
} else {
alert("没有找到符合条件的车辆");
}
}
//2.还车 需要用汽车的编号去还对应的车辆
else if (type === 2) {
var carId = +prompt("请输入车辆编号");
//车辆变量
var car = "";
for (var i = 0; i < cars.length; i++) {
if (cars[i].id === carId) {
car = cars[i];
break;
}
}
if (car) {
car.back();
} else {
alert("没有找到符合条件的车辆");
}
}
else if (type === 3) {
out = false;
}
}
</script>
JS-面向对象-车辆租赁系统
最新推荐文章于 2024-06-20 20:20:21 发布