【问题标题】:I need help in designing my C++ Console application我在设计 C++ 控制台应用程序时需要帮助
【发布时间】:2018-11-04 06:53:59
【问题描述】:

我有一个任务要完成。

有两种类型的 csv 文件4000+ 都相互关联。
2 种是:
1. Country2.csv
2. Security_Name.csv

Country2.csv的内容:
Company Name;Security Name;;;;Final NOS;Final FFR

Security_Name.csv的内容:
Date;Close Price;Volume

有多个国家,每个国家有多个安全文件

现在我需要 READ 他们做一些 CALCULATION,然后 WRITE 将输出写入另一个文件

  1. 阅读

    读取 Country 2.csv 和 Security.csv 文件并从中提取所有数据。

    例如:

    读取法国2.csv,提取Security_Name, Final NOS, Final FFR

    然后读取 Security.csv(与 Security_Name 匹配)并提取
    Date, Close Price, Volume

  2. 计算

    计算基本上是找到提取值的中位数,这非常简单。

    例如:

    月交易价值中位数 证券的每日交易价值...等等

  3. 根据月份,我需要使用以下格式对两个不同文件中的输出进行排序:

    如果月份 % 3 = 0

    将其另存为 MONTH_NAME.csv,格式如下:
    Security name; 12-month indicator; 3-month indicator; FOT

    其他

    将其另存为 MONTH_NAME.csv,格式如下:
    Security Name; Monthly Median Traded Value Ratio; Number of days Volume > 0

我的问题是如何设计我的应用程序,使其可维护并且整个执行过程中的数据流是无缝的?

【问题讨论】:

  • 所以……你真的不应该问最后一个问题。那是你可以谷歌的东西。您没有告诉我们关于计算输出。也许您在设计输入数据/流程方面需要一些帮助?一个人几乎可以尝试回答/帮助(在高水平上),这可以被认为是一个问题。我会重写你的问题更具体,然后添加C++标签,如果这是你计划使用的语言。
  • @zzxyz 我已经编辑了这个问题,你能看看现在是否更有意义吗?
  • 当然……确实如此。对于 StackOverflow 来说,它仍然过于宽泛,但我至少可以帮助您入门。
  • 好的,谢谢@zzxyz

标签: c++ oop design-patterns application-design


【解决方案1】:

所以第一件事。根据您要生成的数据类型,如果可能的话,我可能会考虑将这些数据移动到 SQL 数据库中。这是“一个 SQL 查询”之类的东西。而且比从 CSV 文件生成 CSV 文件的 C++ 更易于维护。

除此之外,我可能会考虑使用datamash 和/或perl。在 Windows 平台上,您可以通过 Cygwin 或 WSL 执行此操作。可能不太容易维护,但要容易得多,这不是什么大问题。

也就是说,如果您正在寻找可适度维护的东西,C++ 可以工作。我要做的第一件事是设计我的输入类。以数据为中心,但它可以工作。听起来你可以有一个Country 类、一个Security 类和一个SecurityClose 类......或者类似的东西。您可以考虑一个安全类是否应该包含SecurityClosees(数据)的集合,或者数据是否应该只是“松散的”并引用它所属的Security。与 Country->Security 关系相同。

一旦你决定了这一切的外观,你就想要一些可以tokenize CSV 行的东西(可能是一个函数)。所以"1,2,3" 变成了vector<string>,内容为"1""2""3"。然后,您的每个输入类都应该有一个构造函数或初始化程序,它接受 vector<string> 并自行填充。您可能还需要传递更高级别的数据。如果您希望安全数据知道它属于哪个安全性,就像文件名一样。

这基本上是那里的大部分战斗。一旦您将数据提取到合理组织的类中,其余的应该会更容易。如果您遇到困难,希望您可以从那里提出具体的设计或实施问题。

【讨论】:

  • 将数据放入数据库对我来说不是一个选项,但您的解释确实帮助我选择了我的数据类以及如何关联这些类。谢谢。
  • @ThePashupatee 我很高兴它至少帮了一点忙!
猜你喜欢
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多