Witam,
mam problem z pewnym zadaniem. Mam napisać program będący symulatorem jazdy samochodem. Wszystko do tej pory było ok, ale mam problem z jednym punktem. Podejrzewam, że rozwiązanie jest dziecinnie proste, ale już zgłupiałem i nie wiem jak się za to zabrać.
Jeden z punktów zadania i zaznaczone polecenie do zrobienia, o które mi chodzi:
Klasa Program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Symulator_v2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("* * * * * MENU GLOWNE * * * * *\n\n" + "Zdefiniuj swoje auto: \n");
Console.WriteLine("1. Marka, model, pojemnosc silnika, ilosc paliwa, pojemnosc baku na paliwo.");
Console.WriteLine("2. Marka, model, pojemnosc silnika, ilosc paliwa.");
Console.WriteLine("3. Marka, model, silnik."); //zrobic konstruktor do tego punktu -> Samochod
Console.Write("--------------------------------------------------------------------------------");
Wybierz:
Console.Write("Wybrano: ");
int wybor = int.Parse(Console.ReadLine());
switch (wybor)
{
case 1:
Samochod s1 = new Samochod("marka", "model", 0, 0, 60);
goto Jedz;
case 2:
Samochod s2 = new Samochod("marka", "model", 0, 0);
goto Jedz;
case 3:
Samochod s3 = new Samochod("marka", "model", 0);
goto Jedz;
default:
Console.WriteLine("Wybierz poprawnie!");
goto Wybierz;
}
Jedz:
Console.Write("\nWprowadz dlugosc trasy w kilometrach: ");
Samochod.Jedz(int.Parse(Console.ReadLine()));
Console.WriteLine("\nCo przeliczyć?");
Console.WriteLine("1. Spalanie[l/100km] na mile na galon[mpg].");
Console.WriteLine("2. Mile na galon[mpg] na spalanie[l/100km].");
Konwerter:
Console.Write("Wybrano: ");
int konwerter = int.Parse(Console.ReadLine());
switch (konwerter)
{
case 1:
Silnik.Mpg();
break;
case 2:
Silnik.SpalanieLitry();
break;
default:
Console.WriteLine("Wybierz poprawnie!");
goto Konwerter;
}
}
}
}
Klasa Samochod
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace Symulator_v2
{
class Samochod
{
public string Marka;
public string Model;
public double Silnik;
public Samochod(string marka, string model, double pojemnosc, double iloscPaliwa, double pojemnoscBaku)
{
this.Marka = marka;
this.Model = model;
Console.Write("\nMarka samochodu: ");
marka = Console.ReadLine();
Console.Write("\nModel: ");
model = Console.ReadLine();
Silnik s1 = new Silnik(0, 0, 60);
Console.WriteLine("\n\nTwoj samochod to {0} {1}. Do samochodu zatankowano {2}l paliwa. \nSilnik ma pojemnosc {3}l i spala czterokrotnosc jego pojemnosci na 100km.", marka, model, s1.IloscPaliwa, s1.Pojemnosc);
}
public Samochod(string marka, string model, double pojemnosc, double iloscPaliwa)
{
this.Marka = marka;
this.Model = model;
Console.Write("\nMarka samochodu: ");
marka = Console.ReadLine();
Console.Write("\nModel: ");
model = Console.ReadLine();
Silnik s2 = new Silnik(0, 0);
}
public Samochod(string marka, string model, double silnik)
{
this.Marka = marka;
this.Model = model;
this.Silnik = silnik;
Console.Write("\nMarka samochodu: ");
marka = Console.ReadLine();
Console.Write("\nModel: ");
model = Console.ReadLine();
}
public static double Jedz(int dystans) //Si
{
int czas = dystans * 100;
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Start();
for (int i = 0; i < dystans; i++)
{
Console.WriteLine("Jadę!\n");
Console.Write("{0}km...", i);
Thread.Sleep(czas / dystans);
Console.Clear();
}
watch.Stop();
Console.WriteLine("\nJestem!");
Console.WriteLine("\nCzas programowy: {0}ms", czas);
Console.WriteLine("(rzeczywisty czas {0}ms)", watch.ElapsedMilliseconds);
Console.ReadLine();
return czas;
}
}
}
Klasa Silnik
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Symulator_v2
{
class Silnik
{
public readonly double Pojemnosc;
public double IloscPaliwa;
public readonly double PojemnoscBaku;
public const double DomyslnaPojemnoscBaku = 60;
/*
public Silnik(double pojemnosc, double iloscPaliwa) : this(pojemnosc, iloscPaliwa, DomyslnaPojemnoscBaku)
{
Console.WriteLine("\nPojemnosc silnika to {0}l. Ilosc paliwa wynosi {1}l.", Pojemnosc, IloscPaliwa);
}
*/
public Silnik(double pojemnosc, double iloscPaliwa, double pojemnoscBaku)
{
Console.Write("\nPojemnosc baku na paliwo: ");
this.PojemnoscBaku = pojemnoscBaku;
pojemnoscBaku = double.Parse(Console.ReadLine());
Console.WriteLine("\nUWAGA! Jesli pojemnosc baku będzie < ilosci zatankowanego paliwa to program\n zatankuje automatycznie max. paliwa.");
Console.Write("\nPodaj ilosc paliwa[l]: ");
iloscPaliwa = double.Parse(Console.ReadLine());
if ((iloscPaliwa > pojemnoscBaku) || (iloscPaliwa < 0))
{
this.IloscPaliwa = pojemnoscBaku;
Console.WriteLine("Zatankowano {0}l paliwa!", pojemnoscBaku);
}
else
{
this.IloscPaliwa = iloscPaliwa;
Console.WriteLine("Zatankowano {0}l paliwa!", iloscPaliwa);
}
Console.Write("\nPojemnosc silnika: ");
pojemnosc = double.Parse(Console.ReadLine());
if (pojemnosc < 0)
{
this.Pojemnosc = 2.0;
Console.WriteLine("Wprowadzona pojemnosc jest nieprawidlowa. Domyslna pojemnosc {0}.0l.", Pojemnosc);
}
else
{
this.Pojemnosc = pojemnosc;
Console.WriteLine("Pojemnosc {0}l.", Pojemnosc);
}
}
public Silnik(double pojemnosc, double iloscPaliwa)
{
Console.WriteLine("\nUWAGA! Domyslna pojemnosc baku to 60l.");
Powrot:
Console.Write("\nPodaj ilosc paliwa[l]: ");
iloscPaliwa = double.Parse(Console.ReadLine());
if ((iloscPaliwa > DomyslnaPojemnoscBaku) || (iloscPaliwa < 0))
{
this.IloscPaliwa = DomyslnaPojemnoscBaku;
Console.WriteLine("Zatankowales za duzo! Max. to {0}l paliwa!", DomyslnaPojemnoscBaku);
goto Powrot;
}
else
{
this.IloscPaliwa = iloscPaliwa;
Console.WriteLine("Zatankowano {0}l paliwa!", iloscPaliwa);
}
Console.Write("\nPojemnosc silnika: ");
pojemnosc = double.Parse(Console.ReadLine());
if (pojemnosc < 0)
{
this.Pojemnosc = 2.0;
Console.WriteLine("Wprowadzona pojemnosc jest nieprawidlowa. Domyslna pojemnosc {0}.0l.", Pojemnosc);
}
else
{
this.Pojemnosc = pojemnosc;
Console.WriteLine("Pojemnosc {0}l.", Pojemnosc);
}
}
public static double Dzialaj(double spal)
{
//this.IloscPaliwa -= this.Pojemnosc * 4;
return 0;
}
static double litry;
static double galon;
static double kilometry;
static double mile;
static double spalanie;
static double mpg;
public static double Mpg()
{
Console.Write("Ile litrow paliwa zuzyto?: ");
litry = double.Parse(Console.ReadLine());
Console.Write("Wprowadz ilosc przejechanych kilometrow: ");
kilometry = double.Parse(Console.ReadLine());
spalanie = (litry / kilometry) * 100;
Console.WriteLine("----------------------------------------------" + "\n" +
"Spalanie Twojego auta wynosi: {0}[l/100km]" + "\n", spalanie);
mpg = 282.48 / spalanie;
Console.WriteLine("----------------------------------------------" + "\n" + "Po przeliczeniu: {0}[mpg]", mpg);
Console.ReadLine();
return mpg;
}
public static double SpalanieLitry()
{
Console.Write("Podaj ilosc przejechanych mil: ");
mile = double.Parse(Console.ReadLine());
Console.Write("Ile galonów paliwa zuzyto?: ");
galon = double.Parse(Console.ReadLine());
mpg = (mile / galon);
Console.WriteLine("----------------------------------------------" + "\n" + "Przejedziesz {0} mil na 1 galonie." + "\n", mpg);
spalanie = 282.48 / mpg;
Console.WriteLine("----------------------------------------------" + "\n" + "Spalanie Twojego auta wynosi {0}[l/100km]", spalanie);
Console.ReadLine();
return spalanie;
}
}
}
Nie chodzi mi o gotowe rozwiązanie, ale o wskazówki jak to ugryźć. Nie linczujcie mnie, dopiero się uczę;)