js编写一个汽车租赁系统:继承 分析出系统的类:汽车类Vehicle,轿车类Car,客车类Bus,货车类Trucks 分析出类对应的成员: 汽车类:品牌brand,车牌vno,日租金rent,计算租金(天数)calcRent(days) 轿车类:继承至汽车类,型号type 客车类:继承至汽车类,座位数seat 货车类:继承至汽车类,载重量weight 车牌是随机的: 粤B+4位数 汽车租赁系统,UI界面化。 1.界面出现一个按钮,点击消失,进入页面开始加载所有车辆信息,并渲染到页面上 2.每个车辆信息得到鼠标时,下方就显示该车辆的详情信息 3.点击车辆信息时,直接进入租赁业务,弹窗询问租用的天数,告知费用

时间: 2023-11-28 21:51:00 浏览: 31
以下是一个简单的汽车租赁系统的代码实现,包含了上述要求: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>汽车租赁系统</title> <style> .container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; margin-top: 20px; } .vehicle { margin-right: 20px; margin-bottom: 20px; width: 200px; height: 200px; border: 1px solid black; text-align: center; cursor: pointer; } .vehicle:hover { background-color: lightgray; } .details { margin-top: 10px; text-align: center; } .form { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; height: 200px; border: 1px solid black; background-color: white; text-align: center; display: none; } .form h3 { margin-top: 20px; } .form input { margin-top: 20px; } .form button { margin-top: 20px; } </style> </head> <body> <div class="container"> <button id="loadBtn">加载车辆信息</button> </div> <div class="form"> <h3>请输入租用天数</h3> <input type="number" id="daysInput" placeholder="请输入天数"> <button id="confirmBtn">确定</button> </div> <script> // 定义车辆类 class Vehicle { constructor(brand, rent) { this.brand = brand; this.vno = `粤B${Math.floor(Math.random() * 10000).toString().padStart(4, '0')}`; this.rent = rent; } calcRent(days) { return days * this.rent; } } // 定义轿车类 class Car extends Vehicle { constructor(brand, rent, type) { super(brand, rent); this.type = type; } } // 定义客车类 class Bus extends Vehicle { constructor(brand, rent, seat) { super(brand, rent); this.seat = seat; } } // 定义货车类 class Truck extends Vehicle { constructor(brand, rent, weight) { super(brand, rent); this.weight = weight; } } // 创建一些示例车辆 const car1 = new Car('Toyota', 200, 'Camry'); const car2 = new Car('Honda', 180, 'Accord'); const bus1 = new Bus('Yutong', 300, 50); const bus2 = new Bus('Higer', 280, 40); const truck1 = new Truck('Dongfeng', 400, 10); const truck2 = new Truck('Foton', 380, 8); // 将车辆添加到数组中 const vehicles = [car1, car2, bus1, bus2, truck1, truck2]; // 获取DOM元素 const loadBtn = document.getElementById('loadBtn'); const form = document.querySelector('.form'); const daysInput = document.getElementById('daysInput'); const confirmBtn = document.getElementById('confirmBtn'); // 加载车辆信息 loadBtn.addEventListener('click', () => { const container = document.querySelector('.container'); container.innerHTML = ''; for (let vehicle of vehicles) { const div = document.createElement('div'); div.classList.add('vehicle'); div.innerHTML = `<h4>${vehicle.brand}</h4><p>${vehicle.vno}</p>`; div.addEventListener('mouseover', () => { const details = document.createElement('div'); details.classList.add('details'); details.innerHTML = `<p>日租金:${vehicle.rent}元</p>`; if (vehicle instanceof Car) { details.innerHTML += `<p>型号:${vehicle.type}</p>`; } else if (vehicle instanceof Bus) { details.innerHTML += `<p>座位数:${vehicle.seat}</p>`; } else if (vehicle instanceof Truck) { details.innerHTML += `<p>载重量:${vehicle.weight}吨</p>`; } div.appendChild(details); }); div.addEventListener('mouseout', () => { const details = div.querySelector('.details'); if (details) { div.removeChild(details); } }); div.addEventListener('click', () => { form.style.display = 'block'; confirmBtn.addEventListener('click', () => { const days = Number(daysInput.value); if (isNaN(days) || days <= 0) { alert('请输入有效天数'); } else { const rent = vehicle.calcRent(days); alert(`租用${vehicle.brand},共${days}天,费用为${rent}元`); form.style.display = 'none'; daysInput.value = ''; } }); }); container.appendChild(div); } loadBtn.style.display = 'none'; }); </script> </body> </html> ``` 这个系统通过创建Vehicle、Car、Bus、Truck四个类来实现不同类型的车辆,并在页面上展示它们的品牌、车牌、日租金等基本信息。当鼠标悬停在某个车辆上时,会显示出该车辆的详细信息,包括型号、座位数或载重量。当点击某个车辆时,会弹出一个输入框,询问租用天数,并计算出费用。

相关推荐

解决近年来,事故灾害、自然灾害以及公共卫生事件频繁爆发,对人民的生命和财产安全造成巨大威胁。对此,在灾害发生前储备相应救援应急物资,在灾害发生后积极展开应急救援工作,及时为灾区提供应急物资就显得尤为重要。 国内某地区有1320个居民点,任意两个居民点间的距离见附件1,每个居民点的居民数和3个仓库的所在位置见附件2。请建立数学模型求解下列问题。 问题1. 有一批应急物资A需要按人手一份尽快运送到所有居民手里。假设每个仓库中都有充足的物资A,它们已经按每600份一箱打包装在规格为长0.3米、宽0.3米、高0.3米的箱子里,由规格为长8.5米、宽3米、高3.5米的货车运送到居民点,在装卸货和运送过程中这些箱子都不拆封,因此每个居民点最终都收到整数箱的物资A。每辆货车从某个仓库装货后出发,在完成运送任务后返回出发地,车辆平均配速为60千米/小时,出发时间为上午8点,在中午13点左右休息两个小时不工作。货车在每个居民点的卸货时间是10分钟。当所有货车返回出发仓库,意味着整个物资运送工作完成。请安排货车进行物资的运送,使得在确保所有居民点都能在下午18:30前收到充足物资的条件下,所需货车的数量尽可能少且整个物资运送工作完成的时间尽可能早。给出matlab的遗传算法fitness代码

最新推荐

recommend-type

麦肯锡-年月―中国xx集团战略咨询项目建议书.ppt

麦肯锡-年月―中国xx集团战略咨询项目建议书.ppt
recommend-type

廖倩5.14运营款.xlsx

廖倩5.14运营款.xlsx
recommend-type

setuptools-25.0.2-py2.py3-none-any.whl

文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
recommend-type

全网第一个宝宝生活记录网站root ca

全网第一个宝宝生活记录网站,帮我写一个网站介绍,网址 https://43.136.21.175/ ,二维码分享和登录,统计记录最近时间,功能很全很实用,手机和电脑都可以访问,手机浏览器可以生成快捷方式到桌面和App一样,点右上角可以打开菜单,里面我做了图表统计可以看每天的喂养次数哪些,我们一直在用,很方便的
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依