【发布时间】:2016-06-21 10:14:16
【问题描述】:
我目前正在开发一个系统,但想在其上实现 SDT 计算器,请查看我的源代码并在可能的地方提供帮助 :) 它有点大块,但没有完整的源代码我觉得这可能有点令人困惑:)
namespace example_project
{
class Program
{
const string A = "A";
const string B = "B";
const string C = "C";
const string D = "D";
const string E = "E";
const string F = "F";
const string S = "sunny";
const string R = "raining";
public abstract class Route
{
public abstract void Intro();
public abstract void Distance();
public abstract void SurfaceType();
}
public class CandyLane : Route
{
public override void Intro()
{
Console.WriteLine("[D] Candy Lane --------");
}
public override void Distance()
{
Console.WriteLine("84 Miles to end of route");
}
public override void SurfaceType()
{
Console.WriteLine("Smooth Surface Type");
}
}
public class BostonAvenue : Route
{
public override void Intro()
{
Console.WriteLine("[E] Boston Avenue --------");
}
public override void Distance()
{
Console.WriteLine("126 Miles to end of route");
}
public override void SurfaceType()
{
Console.WriteLine("Rough Surface Type");
}
}
public class DenhamVale : Route
{
public override void Intro()
{
Console.WriteLine("[F] Denham Vale --------");
}
public override void Distance()
{
Console.WriteLine("39 Miles to end of route");
}
public override void SurfaceType()
{
Console.WriteLine("Medium Surface Type");
}
}
public abstract class Cars
{
public abstract void Speed();
public abstract void Engine();
public abstract void Intro();
}
public class Toyota : Cars
{
public override void Intro()
{
Console.WriteLine("[A] TOYOTA---------");
}
public override void Speed()
{
Console.WriteLine("Toyota Speed = 47MPH");
}
public override void Engine()
{
Console.WriteLine("Engine Type = 1.2 litre engine");
}
}
public class Fiat : Cars
{
public override void Intro()
{
Console.WriteLine("[B] FIAT---------");
}
public override void Speed()
{
Console.WriteLine("Fiat Speed = 76MPH");
}
public override void Engine()
{
Console.WriteLine("Engine = 1.3 litre engine");
}
}
public class Honda : Cars
{
public override void Intro()
{
Console.WriteLine("[C] HONDA---------");
}
public override void Speed()
{
Console.WriteLine("Honda Speed = 94MPH");
}
public override void Engine()
{
Console.WriteLine("Engine = 1.3 litre engine");
}
public static void Main()
{
Console.WriteLine("Welcome To My Program");
Console.WriteLine("Please See List and pick a car for your journey: ");
Toyota t = new Toyota();
t.Intro();
t.Speed();
t.Engine();
Fiat f = new Fiat();
f.Intro();
f.Speed();
f.Engine();
Honda h = new Honda();
h.Intro();
h.Speed();
h.Engine();
string input;
input = Console.ReadLine();
if (string.Equals(A, input, StringComparison.CurrentCultureIgnoreCase))
{
string input2;
Console.WriteLine("You have chosen to drive the toyota." + Environment.NewLine + "Please pick a route: ");
List<Route> Routes = new List<Route>();
Routes.Add(new CandyLane());
Routes.Add(new BostonAvenue());
Routes.Add(new DenhamVale());
foreach (Route Route in Routes)
{
Route.Intro();
Route.Distance();
Route.SurfaceType();
}
input2 = Console.ReadLine();
if (string.Equals(D, input2, StringComparison.CurrentCultureIgnoreCase))
{
string input3;
Console.WriteLine("You have chosen: Candy Lane"+Environment.NewLine+"Is it raining or sunny?");
input3 = Console.ReadLine();
if (string.Equals(R, input3, StringComparison.CurrentCultureIgnoreCase))
{
Console.WriteLine("You have chosen Raining. + 10 minutes...");
}
}
else if (string.Equals(E, input2, StringComparison.CurrentCultureIgnoreCase))
{
Console.WriteLine("You have chosen: Boston Avenue" + Environment.NewLine + "Is it raining or sunny?");
}
else if (string.Equals(F, input2, StringComparison.CurrentCultureIgnoreCase))
{
Console.WriteLine("You have chosen: Denham Vale" + Environment.NewLine + "Is it raining or sunny?");
}
else
{
Console.WriteLine("This Route Doesnt Exsist");
}
}
else if (string.Equals(B, input, StringComparison.CurrentCultureIgnoreCase))
{
string input2;
Console.WriteLine("You have chosen to drive the Fiat." + Environment.NewLine + "Please pick a route: ");
List<Route> Routes = new List<Route>();
Routes.Add(new CandyLane());
Routes.Add(new BostonAvenue());
Routes.Add(new DenhamVale());
foreach (Route Route in Routes)
{
Route.Intro();
Route.Distance();
Route.SurfaceType();
}
input2 = Console.ReadLine();
if (string.Equals(D, input2, StringComparison.CurrentCultureIgnoreCase))
{
Console.WriteLine("You have chosen: Candy Lane"+Environment.NewLine+"Is it raining or sunny?");
}
}
else if (string.Equals(C, input, StringComparison.CurrentCultureIgnoreCase))
{
string input2;
Console.WriteLine("You have chosen to drive the Honda." + Environment.NewLine + "Please pick a route: ");
List<Route> Routes = new List<Route>();
Routes.Add(new CandyLane());
Routes.Add(new BostonAvenue());
Routes.Add(new DenhamVale());
foreach (Route Route in Routes)
{
Route.Intro();
Route.Distance();
Route.SurfaceType();
}
input2 = Console.ReadLine();
if (string.Equals(D, input2, StringComparison.CurrentCultureIgnoreCase))
{
Console.WriteLine("You have chosen: Candy Lane" + Environment.NewLine + "Is it raining or sunny?");
}
}
}
}
}
}
【问题讨论】:
-
@Pikoh 对此很抱歉哈哈,我还没有尝试过任何东西,因为我不知道该放什么,我最后的希望是在用户输入晴天或下雨后进行计算,但无论如何我可以从他们的类中提取值并以这种方式计算它们吗?
-
嗯..首先,您的类中应该有一些属性,用于计算所需的参数。例如,Route 抽象类应该有一个距离属性,例如
public abstract int RouteDistance { get; }并且在您的路线中您需要这样:private int _distance = 84; public override int RouteDistance { get { return this._distance; } }这样,您可以使用CandyLane.RouteDistance访问此参数并将其用于计算
标签: c# visual-studio visual-studio-2010 console-application