search

Задачи OOP JS

1. Создайте объект - Automobile со свойствами color (цвет), model (модель), year (год выпуска), manufact (производитель) Напишите фукнцию autoInfo, позволяющий узнать модель, год выпуска, цвет и производителя автомобиля.
2. Отдельно от создания объекта добавьте к нему свойства: name (имя хозяина автомобиля) и experience (водительский стаж). Напишите фукнцию driverInfo, позволяющий узнать имя и стаж хозяина автомобиля. Вывести в браузер объект Automobile со всеми свойствами и их значениями.
3. Напишите функцию, которая проверяет год выпуска автомобиля с значением, введенным пользователем. Если он совпадает, то вывести на экран «Подходит», иначе вывести «Жаль» .
4. Напишите функцию, которая заменяет цвет машины на введенный пользователем . Вывести в браузер объект Automobile со всеми свойствами и их значениями.


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Automobile</title>
	
 <style type="text/css">
 	p{
 		color: red; 
 		font-family: arial; 
 		font-size: 27px;
 	}
 	b{
 		color: green;
 		font-family: sans-serif;
 		font-size: 27px;
 	}
 </style>
</head>
<body>
	<script type="text/javascript">
		/*Class Automobile*/
		class Automobile{ // Demonstration class Automobile
			constructor(color, model, year, manufact){ // CONSTRUCTOR
				this.color = color; 
				this.model = model; 
				this.year = year; 
				this.manufact = manufact; 
			}
			checkYear(year){
				if(this.year == year){ document.write("<p>"+"Подходит"+"</p>"); return true; }
					else { document.write("<p>"+"Жаль"+"</p>"); return false; }
			}
			setColor(color){ this.color = color; }
			getColor(){ return this.color; }
			setName(name){ this.name = name; }
			getName(){ return this.name; }
			setExperience(experience){ this.experience = experience; }
			getExperience(){ return this.experience; }
			driverInfo(){
				document.write("<p>"+"Name = "+this.name+"<br>"+"Experience = "+this.experience+"<br>"+"</p>");
			}
			autoinfo(){ // SHOW
				document.write("<p>"+"Color = "+this.color+"<br>"+"Model = "+this.model+"<br>"+"Year = "+this.year+"<br>"+"Manufact = "+this.manufact+"<br>"+"</p>"); 
			}
		}

		//********************************************************************
		//Object Audi
		//********************************************************************
		var Audi = new Automobile ("Red", "Audi", "2019", "Germany");
		Audi.autoinfo(); 

		Audi.setName("Igor"); 
		Audi.setExperience("10"); 

		Audi.driverInfo();
		var audi_Name = Audi.getName();
		var audi_Experience = Audi.getExperience(); 
		document.write<b>"+"Audi name = "+audi_Name+"<br>"+"Audi Experience = "+audi_Experience+"<br><br>"+"</b>")

		for(var key in Audi)
			document.write("<b>"+"Key -> "+key+" = "+Audi[key]+"<br>"+"</b>")

		var year = prompt("Enter year: "); 
		Audi.checkYear(year);

		var color = prompt("Enter color: "); 
		Audi.setColor(color); 

		for(var key in Audi)
			document.write("<b>"+"Key -> "+key+" = "+Audi[key]+"<br>"+"</b>")

		//********************************************************************
		//Object Ford
		//********************************************************************

		var Ford = new Automobile ("Yellow", "Ford", "1997", "America");
		Ford.autoinfo(); 

		Ford.setName("Vladimir"); 
		Ford.setExperience("25"); 

		Ford.driverInfo();
		var ford_Name = Ford.getName();
		var ford_Experience = Ford.getExperience(); 
		document.write("<b>"+"Ford name = "+ford_Name+"<br>"+"Ford Experience = "+ford_Experience+"<br><br>"+"</b>")

		for(var key in Ford)
			document.write("<b>"+"Key -> "+key+" = "+Ford[key]+"<br>"+"</b>")

		var year = prompt("Enter year: "); 
		Ford.checkYear(year);

		var color = prompt("Enter color: "); 
		Ford.setColor(color); 

		for(var key in Ford)
			document.write("<b>"+"Key -> "+key+" = "+Ford[key]+"<br>"+"</b>")

		//********************************************************************
		//End
		//********************************************************************
	</script>
</body>
</html>	

Результат

Создайте эмулятор кофемашины!


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>CoffeeMachine</title>
	
	<style type="text/css">
		b{
			font-family: sans-serif;
			font-weight: bolder;
			color: red;
			font-size: 27px;
		}
	</style>
</head>
<body>
	<script type="text/javascript">
		//****************************************************************
		// Demonstration class Machine
		//****************************************************************
		class Machine{
			constructor(enabled) { this.enabled  = enabled; };
			enable(){ this.enabled = true; return this.enabled; }
			disable(){ this.enabled = false; return this.enabled; }
		}
		class Fridge extends Machine{ // extends Machine
			constructor(power){ // CONSTRUCTOR
				super(power); 
					this.power = power;
				if(power <= 100)
					this.food = new Array(power);
				else
					alert("power MAX 100"); 
			}
			disable_(){ 
				if(this.food.length > 0){
					alert("Not Empty"); 
				}
				else{
					alert("Empty");
				}
			}
			addFood(item) {
				if(this.enabled == true)
				for (var i = 0; i < arguments.length; i++)
					this.food[i] = arguments[i]; 
				else
					alert("Fridge OFF!");
					this.disable_(); // EMPTY || NOT EMPTY
			}
			getFood(){
				var arr = new Array(this.power); 
				for(var i = 0; i < arr.length; i++)
					arr[i] = this.food[i]; 
				return arr;
			}
			show(){
				for (var i = 0; i < this.food.length; i++)
					document.write("<b>"+this.food[i]+"</b>");
					document.write("<br>"); 
			}
		}
		var f = new Fridge(5); 
		/*DEMONSTRATION Polymorphism*/
		f.enable(); // Inheritance ==>> Method disable() at class Machine
		f.addFood(1, 2, 3, 4, 5, 7, 8, 9, 10); 
		f.show();
		//-----------------------------------------
		var f1 = new Fridge(2); 
		f1.enable();
		f1.addFood(52, 855, 14);
		f1.getFood();
		f1.show();
		f1.addFood(50, 252, 14);
		//-----------------------------------------
		f.show();
		f1.show();
		//-----------------------------------------
		f.disable_();
		//****************************************************************
		// Demonstration class CoffeeMachine
		//****************************************************************
		class CoffeeMachine extends Machine{
			constructor(waterAmount, power, capacity){
				super(waterAmount, power, capacity);
				this.waterAmount = waterAmount;
				this.power = power;
				this.capacity = capacity; 
			}
			getBoilTime(){
				return ((this.waterAmount * 4200) * 80) / this.power; 
			}
			onReady(){
				alert( 'Кофе готов!' );
			}
			run(enabled){
				this.enabled = enabled;
				if(this.enabled == true){
				var time = this.getBoilTime(); 
				this.setTimeout(time);
			}
			else
				alert("Machine off");
			}
			setTimeout(BoilTime){
				this.onReady(); 
			}
			clearTimeout(){
				alert("STOP");
			}
			Stop(){
				this.clearTimeout(); 
			}
			setWaterAmount(value){
				if(value <= 1000)
					this.waterAmount = value;
				else
					alert("error value very big");
			}
			getWaterAmount(){
				return this.waterAmount; 
			}
			 getPower(){
			 	return this.power;
			 }
		}
		var coffe = new CoffeeMachine(150, 25, 1000);
		var on = coffe.disable(); // Inheritance ==>> Method disable() at class Machine
		coffe.run(on);
		coffe.Stop();

		coffe.setWaterAmount(100); 
		var water = coffe.getWaterAmount();
		document.write(water+"<br>"); 

		var power = coffe.getPower();
		document.write(power+"<br>");
	</script>
</body>
</html>	

Результат