Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цылиндров, мощностью

Артём1111

Кому не трудно, помогите с решением задачи! Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цылиндров, мощностью. Определить методы переназначения и изменения мощности. Создать производный класс Lorry (грузовик), характеризуемый также грузоподъемностью кузова. Определить функции переназначения марки и изменения грузоподьемности. Реализировать вывод на экран, методы получения значений полей и методы установки значений полей, а также необходимые конструкторы (если это не указано в задании явно). Конструкторы и методы обязательно должны проверять параметры на допустимость; в случае неправильных данных - выводить значение об ошибке и заканчивать работу. Преобразование в строку реализовать в виде функции преобразования string.
4 ответа

Артём1111

Ребята ,помогите пожалуйста.


Артём1111

Помоему нелогично, что марку переопределить может только грузовик а не класс машины в целом. Сделал как логичнее.
using System;
using System.Collections.Generic;
 
namespace ConsApp_Cars
{
    class Program
    {
        static void Main(string[] args)
        {
            //В характеристиках реальной техники не секу, так что цифры "от балды"
            Car[] cars =
            {
                new Car("Ford", 330u, 8u),
                new Lorry("Scania", 750u, 12u, 30000u)
            };
 
            DisplayCarInfo(cars, Environment.NewLine);
 
            Console.ReadKey();
        }
 
        private static void DisplayCarInfo(IEnumerable<Car> cars, string infoSeparator = "")
        {
            foreach (Car car in cars)
            {
                DisplayCarInfo(car, infoSeparator);
            }
        }
 
        private static void DisplayCarInfo(Car car, string infoSeparator = "")
        {
            Console.WriteLine("Торговая марка: {1}{0}Мощность: {2}{3}",
                              Environment.NewLine, car.GetTradeMark(), car.GetEnginePower(), infoSeparator);
        }
    }
}
using System;
 
namespace ConsApp_Cars
{
    public class Car
    {
        private string _tradeMark;
        private **** _enginePower;
        private **** _numberOfCylinders;
 
        public Car(string tradeMark, **** enginePower, **** numberOfCylinders)
        {
            if (tradeMark == null)
                throw new NullReferenceException("tradeMark");
 
            _tradeMark = tradeMark;
            _enginePower = enginePower;
            _numberOfCylinders = numberOfCylinders;
        }
 
        public string GetTradeMark()
        {
            return _tradeMark;
        }
 
        public virtual void SetTradeMark(string name)
        {
            if (name == null)
                throw new NullReferenceException("name");
 
            if (string.IsNullOrWhiteSpace(name))
                throw new ArgumentException("name не может быть пустой строкой или строкой состоящей из одних пробелов");
 
            _tradeMark = name;
        }
 
        public **** GetEnginePower()
        {
            return _enginePower;
        }
 
        public **** GetNumberOfCylinders()
        {
            return _numberOfCylinders;
        }
    }
}
namespace ConsApp_Cars
{
    public class Lorry : Car
    {
        private **** _weight_CarryingAbility; //по-английски именно так: weight-carrying ability (...ght_Car...)
 
        public Lorry(string tradeMark, **** enginePower, **** numberOfCylinders, **** weight_CarryingAbility) :
            base(tradeMark, enginePower, numberOfCylinders)
        {
            _weight_CarryingAbility = weight_CarryingAbility;
        }
 
        public **** GetWeight_CarryingAbility()
        {
            return _weight_CarryingAbility;
        }
 
        public virtual void SetWeight_CarryingAbility(**** weight)
        {
            _weight_CarryingAbility = weight;
        }
    }
}
Сделал без свойств, так как в задании именно методы...


Артём1111

а на с++ можете помочь??? буду оооочень благодарна)
Помоему нелогично, что марку переопределить может только грузовик а не класс машины в целом. Сделал как логичнее.
а на с++ можете помочь??? буду оооочень благодарна)


Артём1111

а на с++ можете помочь??? буду оооочень благодарна)
Создайте тему в разделе С++, здесь обсуждается код только на C#