【问题标题】:How to Calculate the distance passed by a car for a day, and for entire month如何计算汽车一天和整个月经过的距离
【发布时间】:2014-12-23 12:24:28
【问题描述】:

所以我有三个类,例如:

internal class Checkpoint
{
    public int Id { get; set; }
    public string Coordinates { get; set; }
}

internal class Log
{
    public DateTime TimeStamp { get; set; }
    public int CheckpointId { get; set; }

}

internal class User
{
    public int Id { get; set; }
    public string Coordinate { get; set; }
    public string Name { get; set; }

}

我想根据注册点计算汽车每天行驶的距离。如果用户只在A点注册,我得到他家的坐标,并计算他家、检查点A和回到他家的距离。 如果他在 A 点和 B 点注册,我将坐标从 Home 带到 A 到 B,然后返回 Home。

所以我的程序如下:

static void Main(string[] args)
    {


        var listOfUsers = new List<User>(); //get users from db
        var listOfCheckpoints = new List<Checkpoint>(); //get checkpoints from db
        StringBuilder sb = new StringBuilder();
        foreach (var user in listOfUsers)
        {
            string address = user.Coordinate;

            DateTime currentDate = new DateTime(2014, 8, 1);
            var dictionary = new Dictionary<string, double>();

            while (currentDate <= DateTime.Now)
            {
                double dayUserDistance = 0.00;
                var listOfUserLogs = new List<Log>(); //Get logs where day == currentDate from db
                var previousCoordinate = address;
                foreach (var log in listOfUserLogs)
                {

                    Checkpoint checkpoint = listOfCheckpoints.FirstOrDefault(x => x.Id == log.CheckpointId);


                    dayUserDistance += DistanceCalculator.GetDistance(previousCoordinate, checkpoint.Coordinates);
                    previousCoordinate = checkpoint.Coordinates;

                }
                dayUserDistance += DistanceCalculator.GetDistance(previousCoordinate, address);

                dictionary.Add(currentDate.ToString("yyyy-MM-dd"), dayUserDistance);

                currentDate = currentDate.AddDays(1);
            }

            sb.Append(user.Name + " ; ");
            foreach (KeyValuePair<string, double> keyValuePair in dictionary)
            {
                sb.Append(keyValuePair.Value + ";");
            }
            sb.AppendLine();
        }
        Console.WriteLine();
        Console.ReadLine();
    }
}

但是当我运行它时,我没有在控制台中打印任何内容。控制台是空白的。

你能告诉我我错过了什么吗?我已将数据库连接到控制台应用程序,因为我拥有数据库中所需的所有数据。

【问题讨论】:

  • 有隐藏代码吗?此时://从数据库中获取用户??否则你必须添加实际代码来做到这一点
  • 也许你应该在控制台上写一些东西。 Console.WriteLine(sb.ToString()); 怎么样
  • 您没有看到任何内容,因为您没有向控制台写入内容。 Console.WriteLine() 只是打印一个换行符。也许你想做Console.WriteLine(sb.ToString())
  • 好像有很多代码丢失或者从来没有写过。用户列表、检查点列表、日志列表、DistanceCalculator.GetDistance。如果您问为什么我的代码不起作用,请提供与您的问题相关的所有代码
  • 这就是我的全部代码。我添加了 Console.WriteLine(sb.ToString()) 我什么也没得到。 @史蒂夫你是什么意思?我不太擅长这个,你能解释一下我应该添加什么吗??

标签: c# sql-server console-application distance


【解决方案1】:

像这样写一行

 var listOfUsers = new List<User>(); //get users from db

你只有一个空列表。没有从数据库中读取数据。 您必须添加一些从数据库中读取记录并填充您的 listOfUsers 的代码。

等等……

【讨论】:

    【解决方案2】:

    你没有在屏幕上写任何东西。您的代码正在到达 Console.WriteLine 并写入一个空行,然后在 ReadLine 上等待文本输入。

    Console.WriteLine(//what you want printed here);
    

    【讨论】:

      猜你喜欢
      • 2017-09-11
      • 2017-07-29
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多