вопрос
мне нужна помощь в файле program.cs, так как я не могу выполнить ту часть, где программа читает файл расстояния, соответствующего цене в CSV-файле, и получите цену:
[QUESTION]
Приложение FareCalculation (расширенное)
< старый
[*]Создайте новый проект консольного приложения Snnnnnnnn_FareCalculatorApp в Visual Studio (где Snnnnnnnn — номер вашего студента).
[*]Реализовать классы, показанные ниже. Не забудьте включить конструкторы!
Класс BusStop
BusStop
-distance:double
-code:string
-road:string
-description:string
+ToString():string
Класс тарифа
Fare
-upToDistance:double
-amount:int
+ToString():string
Как и в практическом занятии 2, расчет тарифа на основе расстояния доступен в Предоставлен файл «distance-based-fare.csv».
На основе сведений о маршруте автобуса 174, доступных в предоставленном файле «bus_174.csv», напишите объектно-ориентированный файл программа для сделать следующее:
- отображает детали маршрута,
- предлагает пользователю войти на остановку посадки и высадки автобуса ,
- рассчитать и отобразить пройденное расстояние и соответствующий тариф.
---------------------- -------------------------------------------------- -------------------------------------------------- ----
Код: Выделить всё
using busfarefolder
// File path for the CSV file
string filePath = "bus_174.csv";
string[] distance_fare = File.ReadAllLines("distance-based-fare.csv");
// Check if the file exists
if (File.Exists(filePath))
{
string[] busDetails = File.ReadAllLines(filePath);
// Check if there are any lines in the file
if (busDetails.Length > 0)
{
string[] header = busDetails[0].Split(',');
Console.WriteLine("{0,-15} {1,-15} {2,-25} {3,-20}", header[0], header[1], header[2], header[3]);
// Process each bus stop entry starting from index 1 to skip header
for (int i = 1; i < busDetails.Length; i++)
{
string[] data = busDetails[i].Split(',');
// Store the data into variables
double distance = double.Parse(data[0]);
string code = data[1];
string road = data[2];
string description = data[3];
// Create a new BusStop object
BusStop busStop = new BusStop(distance, code, road, description);
// Print the bus stop details
Console.WriteLine("{0,-15} {1,-15} {2,-25} {3,-20}", busStop.Distance, busStop.Code, busStop.Road, busStop.Description);
}
}
else
{
Console.WriteLine("No data found in the file.");
}
}
else
{
Console.WriteLine("File not found: " + filePath);
}
Console.WriteLine("Enter boarding bus stop 42159: ");
string boardingBustop = Console.ReadLine();
Console.WriteLine("Enter alighting bus stop 10499: ");
string alightingBustop = Console.ReadLine();
// Initialize variables to hold distances for boarding and alighting stops
double boardingDistance = -1;
double alightingDistance = -1;
// Find the distances for boarding and alighting stops by iterating over bus_174.csv lines
for (int i = 1; i < filePath.Length; i++)
{
string[] columns = filePath.Split(',');
if (columns[1].Trim() == boardingBustop)
{
boardingDistance = double.Parse(columns[0]);
}
if (columns[1].Trim() == alightingBustop)
{
alightingDistance = double.Parse(columns[0]);
}
}
double distanceTraveled = alightingDistance - boardingDistance;
Console.WriteLine("distance: ");
Console.WriteLine(distanceTraveled.ToString());
Подробнее здесь: https://stackoverflow.com/questions/791 ... tance-fare
Мобильная версия