using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MIP
{
#region Vehicle
class Vehicle
{
public string brand;
public string model;
public int distance;
public int year;
public decimal price;
public decimal topSpeed;
public double engineSize;
public decimal kmpl;
public string fuelType;
public string energyClass;
public string title;
public int seller;
public Vehicle(string brand, string model, int distance, int year, decimal price, decimal topSpeed, double engineSize, decimal kmpl, string fuelType, string title, int seller)
{
this.brand = brand;
this.model = model;
this.distance = distance;
this.year = year;
this.price = price;
this.topSpeed = topSpeed;
this.engineSize = engineSize;
this.fuelType = fuelType;
#region fuelType
/* Opmærksom på: autocampere skal udregnes anderledes */
if (fuelType.ToLower() == "diesel")
{
if (kmpl >= 25.0M)
{
this.energyClass = "A";
}
else if (kmpl >= 20.0M)
{
this.energyClass = "B";
}
else if (kmpl >= 15.0M)
{
this.energyClass = "C";
}
else
{
this.energyClass = "D";
}
}
else if (fuelType.ToLower() == "gasoline")
{
if (kmpl >= 20.0M)
{
this.energyClass = "A";
}
else if (kmpl >= 15.0M)
{
this.energyClass = "B";
}
else if (kmpl >= 10.0M)
{
this.energyClass = "C";
}
else
{
this.energyClass = "D";
}
}
#endregion
this.title = title;
this.seller = seller;
}
}
#endregion
#region Car
class Car : Vehicle
{
public bool isVeteran;
public Car(string brand, string model, int distance, int year, decimal price, decimal topSpeed, double engineSize, decimal kmpl, string fuelType, string title, int seller)
: base(brand, model, distance, year, price, topSpeed, engineSize, kmpl, fuelType, title, seller)
{
if (this.year <= 1987)
{
this.isVeteran = true;
this.title += " veteran bil";
}
}
}
#endregion
#region Truck
class Truck : Vehicle
{
public int payload;
public bool sleepingseat;
public double height;
public double weight;
public char driverslicense;
public Truck(int payload, bool sleepingseat, double height, int weight, string brand, string model, int distance, int year, decimal price, decimal topSpeed, double engineSize, decimal kmpl, string fuelType, string title, int seller)
: base(brand, model, distance, year, price, topSpeed, engineSize, kmpl, fuelType, title, seller)
{
this.payload = payload;
this.sleepingseat = sleepingseat;
this.height = height;
this.weight = weight;
/*if(fuelType == "diesel")
{
this.fuelType = fuelType;
}
else
{
exception fuel dosnt exist for this type of vehicle
}*/
this.driverslicense = 'C';
}
}
#endregion
#region Van
class Van : Vehicle
{
public int payload;
public double loadAreaDim;
public Van(int payload, double loadAreaDim, string brand, string model, int distance, int year, decimal price, decimal topSpeed, double engineSize, decimal kmpl, string fuelType, string title, int seller)
: base(brand, model, distance, year, price, topSpeed, engineSize, kmpl, fuelType, title, seller)
{
this.payload = payload;
this.loadAreaDim = loadAreaDim;
}
}
#endregion
#region Bus
class Bus : Vehicle
{
public int seats;
public int sleepingseats;
public bool toilet;
public double height;
public int weight;
public char driverslicense;
public Bus(int seats, int sleepingseats, bool toilet, double height, int weight, string brand, string model, int distance, int year, decimal price, decimal topSpeed, double engineSize, decimal kmpl, string fuelType, string title, int seller)
: base(brand, model, distance, year, price, topSpeed, engineSize, kmpl, fuelType, title, seller)
{
this.seats = seats;
this.sleepingseats = sleepingseats;
this.toilet = toilet;
this.height = height;
this.weight = weight;
/*if(fuelType == "diesel")
{
this.fuelType = fuelType;
}
else
{
exception fuel dosnt exist for this type of vehicle
}*/
this.driverslicense = 'C';
}
}
#endregion
#region Autocamper
class Autocamper : Vehicle
{
public int seats;
public int sleepingseats;
public string heatingsystem;
public double energiclass;
public Autocamper(int seats, int sleepingseats, string heatingsystem, string brand, string model, int distance, int year, decimal price, decimal topSpeed, double engineSize, decimal kmpl, string fuelType, string title, int seller)
: base(brand, model, distance, year, price, topSpeed, engineSize, kmpl, fuelType, title, seller)
{
this.seats = seats;
this.sleepingseats = sleepingseats;
heatingsystem.ToLower();
if (heatingsystem == "gas")
{
this.heatingsystem = heatingsystem;
//this.energiclass = this.kmpl * 0.7;
}
else if (heatingsystem == "strøm")
{
this.heatingsystem = heatingsystem;
//this.energiclass = this.kmprliter * 0.8;
}
else if (heatingsystem == "oliefyr")
{
this.heatingsystem = heatingsystem;
//this.energiclass = this.kmprliter * 0.9;
}
else
{
//mangler exception
}
}
}
#endregion
#region Seller
class Seller
{
public string name;
public int zipCode;
public string telephone;
public string homepage;
public Seller(string name, int zipCode, string telephone, string homepage)
{
this.name = name;
this.zipCode = zipCode;
if (telephone.Length == 8)
{
this.telephone = telephone;
}
else
{
Console.WriteLine("Det indtastede nummer er ikke gyldigt");
}
homepage.ToLower(); //hvis man skulle indtaste "HTTP://www"
if (homepage.Contains("http://www"))
{
this.homepage = homepage;
}
else
{
Console.WriteLine("Hjemmesiden du indtastede startede ikke med http://www");
}
// mangler at kunne tilføje køretøjer
}
}
#endregion
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Indtast 1: for at tilføje et køretøj");
Console.WriteLine("Indtast 2: for at fjerne et køretøj");
Console.WriteLine("Indtast 3: for at gennemløbe alle køretøj");
Console.WriteLine("Indtast 4: for at soege efter køretøj");
int choice = int.Parse(Console.ReadLine());
if (choice == 1)
{
Console.WriteLine("Du skal oplyse, hvilken slags køretøj du vil tilføje");
Console.WriteLine("Indtast 1: Hvis du vil tilføje en personbil");
Console.WriteLine("Indtast 2: Hvis du vil tilføje en lastbil");
Console.WriteLine("Indtast 3: Hvis du vil tilføje en varevogn");
Console.WriteLine("Indtast 4: Hvis du vil tilføje en bus");
Console.WriteLine("Indtast 5: Hvis du vil tilføje en autocamper");
int carChoice = int.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse, hvilket mærke dit køretøj er(f.eks. VW eller BMW)");
string brand = Console.ReadLine();
Console.WriteLine("Du skal oplyse, hvilken model dit køretøj er(f.eks. Polo eller Golf)");
string model = Console.ReadLine();
Console.WriteLine("Du skal oplyse, hvor mange kilometer dit køretøj har gået");
int distance = int.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse, hvilken årgang dit køretøj er");
int year = int.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse, hvad salgsprisen på dit køretøj er");
int price = int.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse, hvilken motorstørrelse dit køretøj har");
double motorsize = double.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse, hvor mange kilometer køretøjet kan køre på en liter brændstof");
decimal kmpl = decimal.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse, hvilken slags brændstoftype som køretøjet anvender");
string fuel = Console.ReadLine();
string title = brand + model + motorsize;
Console.WriteLine("Du skal oplyse dit fulde navn");
string name = Console.ReadLine();
Console.WriteLine("Du skal oplyse dit postnummer");
int zipCode = int.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse dit telefonnummer");
string telephone = Console.ReadLine();
Console.WriteLine("Hvis du har en hjemmeside kan du oplyse den");
string homepage = Console.ReadLine();
bool addSeller = false;
string sellersname = name.Replace(" ", string.Empty);
if (carChoice == 1)
{
//lav liste fra garage-klasse fra forleden
//tjek om bilen allerede er der, hvis den er skal den ikke lave en ny men skrive at bilen allerede er tilføjet.
Car carsName = new Car(brand, model, distance, year, price, 407, motorsize, kmpl, fuel, title, 7);
addSeller = true;
Console.WriteLine(carsName.brand + carsName.model + carsName.distance + carsName.year + carsName.price
+ 407 + carsName.engineSize + carsName.kmpl + carsName.fuelType + carsName.title + 7);
}
else if (carChoice == 2)
{
Console.WriteLine("Indtast din lastbils maksimale lasteevne");
int payload = int.Parse(Console.ReadLine());
Console.WriteLine("Indtast 1, hvis man kan sove i din lastbil. Indtast 2, hvis man ikke kan sove i din lastbil");
bool sleepingseat;
if ("1" == Console.ReadLine())
{
sleepingseat = true;
}
else
{
sleepingseat = false;
}
Console.WriteLine("Du skal oplyse, hvor høj din lastbil er");
double height = double.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse, hvor tung din lastbil er");
int weight = int.Parse(Console.ReadLine());
//lav liste fra garage-klasse fra forleden
//tjek om lastbilen allerede er der, hvis den er skal den ikke lave en ny men skrive at bilen allerede er tilføjet.
Truck truckName = new Truck(payload, sleepingseat, height, weight, brand, model, distance, year, price, 95, motorsize, kmpl, fuel, title, 7); //tilføj at man skal have et C-kørekort
addSeller = true;
}
else if (carChoice == 3)
{
Console.WriteLine("Indtast din varevogns maksimale lasteevne");
int payload = int.Parse(Console.ReadLine());
Console.WriteLine("Indtast din varevogns varerums-dimension");
double loadAreaDim = double.Parse(Console.ReadLine());
//lav liste fra garage-klasse fra forleden
//tjek om varevognen allerede er der, hvis den er skal den ikke lave en ny men skrive at bilen allerede er tilføjet.
Van vanName = new Van(payload, loadAreaDim, brand, model, distance, year, price, 95, motorsize, kmpl, fuel, title, 7);
addSeller = true;
}
else if (carChoice == 4)
{
Console.WriteLine("Du skal oplyse det maksimale antal siddepladser, der er i bussen");
int seats = int.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse det maksimale antal soveplader, der er i bussen");
int sleepingseats = int.Parse(Console.ReadLine());
Console.WriteLine("Indtast 1, hvis der er toilet. Indtast 2, hvis der ikke er toilet i bussen");
bool toilet;
if ("1" == Console.ReadLine())
{
toilet = true;
}
else
{
toilet = false;
}
Console.WriteLine("Du skal oplyse, hvor høj din bus er");
double height = double.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse, hvor bred din bus er");
int weight = int.Parse(Console.ReadLine());
//lav liste fra garage-klasse fra forleden
//tjek om varevognen allerede er der, hvis den er skal den ikke lave en ny men skrive at bilen allerede er tilføjet.
Bus busName = new Bus(seats, sleepingseats, toilet, height, weight, brand, model, distance, year, price, 95, motorsize, kmpl, fuel, title, 7);//tilføj at man skal have et C-kørekort
addSeller = true;
}
else if (carChoice == 5)
{
Console.WriteLine("Du skal oplyse det maksimale antal siddepladser, der er i bussen");
int seats = int.Parse(Console.ReadLine());
Console.WriteLine("Du skal oplyse det maksimale antal soveplader, der er i bussen");
int sleepingseats = int.Parse(Console.ReadLine());
Console.WriteLine("Indtast 1: hvis autocamperen bruger gas. Indtast 2: hvis autocamperen bruger strøm. Indtast 3: hvis atuocamperen bruger oliefyr");
string heatingsystem = "";
if ("1" == Console.ReadLine())
{
heatingsystem = "gas";
}
else if ("2" == Console.ReadLine())
{
heatingsystem = "strøm";
}
else if ("3" == Console.ReadLine())
{
heatingsystem = "oliefyr";
}
//lav liste fra garage-klasse fra forleden
//tjek om varevognen allerede er der, hvis den er skal den ikke lave en ny men skrive at bilen allerede er tilføjet.
Autocamper autocamperName = new Autocamper(seats, sleepingseats, heatingsystem, brand, model, distance, year, price, 407, motorsize, kmpl, fuel, title, 7);
addSeller = true;
}
else
{
Console.WriteLine("Du har indtasten en forkert valgmulighed programmet slutter");
//command til shutdown
}
if (addSeller)
{
//måske lige tjek om sellername allerede er tilføjet.
Seller sellerName = new Seller(name, zipCode, telephone, homepage);
}
else
{
}
}
/*
else if(choice == 2)
* implement slet
else if(choice == 3)
* implement gennemløb
else if(choice == 4)
* implement søg
else
* fejl*/
/*
string sellersname = name.Replace(" ", string.Empty);
Seller s1 = new Seller("soren", 9000, "88888888", "http://www.hejmeddig.dk");
Console.WriteLine(s1.name + s1.zipCode + s1.telephone + s1.homepage);*/
Console.WriteLine();
Console.ReadLine();
}
}
}