public int Wheels { get; set; }
public string Description { get; set; }
public string HorsePower { get; set; }
public Vehical(int wheels, string description, string horsepower)
Description = description;
public virtual double CargoCapacity()
public class MotorCycle : Vehical
public double Radius { get; set; }
public MotorCycle(double radius, int wheels, string description, string horsepower)
: base(wheels, description, horsepower)
public override double CargoCapacity()
return Math.PI * (Radius * Radius) * 2;
public class Automobile : Vehical
public double Length { get; set; }
public double Width { get; set; }
public double Height { get; set; }
public Automobile(double length, double width, double height, int wheels, string description, string horsepower)
: base(wheels, description, horsepower)
public override double CargoCapacity()
return Length*Width*Height;
public double Price { get; set; }
public int Quantity { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Order[] Orders = new Order[2];
public void InitialiseCustomer(Customer[] customers)
customers[0] = new Customer {FirstName = "Joe", LastName = "Smith"};
customers[1] = new Customer {FirstName = "Sally", LastName = "Jones"};
customers[0].Orders[0] = new Order
Vehicals = new MotorCycle(70, 2, "Bike Honda-Gold Wing", "1,832 cc"),
customers[1].Orders[0] = new Order
Vehicals = new Automobile(45065, 1296, 4506, 4, "Car Porsche 911", "1688cc"),
public void DisplayOnScreen(Customer[] customers)
foreach (Customer cust in customers)
Console.WriteLine("=======================================================\n");
Console.Write("Customer Name".PadLeft(20));
Console.Write(":".PadLeft(6) + cust.FirstName.PadLeft(10) + ' ' + cust.LastName + "\n\n");
Console.WriteLine("=========================ORDER=========================\n");
foreach (Order ord in cust.Orders)
Console.WriteLine("Description".PadLeft(20) + ": {0}".PadLeft(10), ord.Vehicals.Description);
Console.WriteLine("Horse Power".PadLeft(20) + ": {0}".PadLeft(10),
ord.Vehicals.HorsePower + "\t");
Console.WriteLine("Wheels".PadLeft(20) + ": {0}".PadLeft(10), ord.Vehicals.Wheels + "\t");
Console.WriteLine("Cargo capacity".PadLeft(20) + ": {0}".PadLeft(10),
ord.Vehicals.CargoCapacity());
Console.WriteLine("Price".PadLeft(20) + ": {0:c}".PadLeft(12), ord.Price);
Console.WriteLine("Quantity".PadLeft(20) + ": {0}".PadLeft(10), ord.Quantity);
Console.WriteLine("\n\n");
public void WriteInFile(Customer[] customers)
StreamWriter sw = new StreamWriter(@"d:\TestWriting.txt");
foreach (Customer cust in customers)
sw.WriteLine("=======================================================");
sw.Write("Customer Name".PadLeft(20));
sw.WriteLine(":".PadLeft(6) + cust.FirstName.PadLeft(10) + ' ' + cust.LastName);
sw.WriteLine("=========================ORDER=========================\n");
foreach (Order ord in cust.Orders)
sw.WriteLine("Description".PadLeft(20) + ": {0}".PadLeft(10), ord.Vehicals.Description);
sw.WriteLine("Horse Power".PadLeft(20) + ": {0}".PadLeft(10),
ord.Vehicals.HorsePower + "\t");
sw.WriteLine("Wheels".PadLeft(20) + ": {0}".PadLeft(10), ord.Vehicals.Wheels + "\t");
sw.WriteLine("Cargo capacity".PadLeft(20) + ": {0}".PadLeft(10),
ord.Vehicals.CargoCapacity());
sw.WriteLine("Price".PadLeft(20) + ": {0:c}".PadLeft(12), ord.Price);
sw.WriteLine("Quantity".PadLeft(20) + ": {0}".PadLeft(10), ord.Quantity);
public static void Main(string[] args)
Customer[] customers = new Customer[3];
Initialize In = new Initialize();
In.InitialiseCustomer(customers);
p.DisplayOnScreen(customers);
p.WriteInFile(customers);