【问题标题】:How can I implement this type of data structure?如何实现这种类型的数据结构?
【发布时间】:2021-09-01 19:41:06
【问题描述】:

我有这个任务来创建一个类 Car,它使用向量来保存 Car 对象,其中的数据包含 id (int)、make (string) 和 model (string)。我不明白的是这里的这些说明:

  • 组成 5 辆汽车并将它们保存到一个文件中:cars.data
  • 从文件中加载这些汽车的信息,初始化 5 个 Car 对象,将它们放入向量中
  • 如果用户添加了新车,则应在退出程序时将它们附加到 cars.data 文件中
  • 设计一个基于菜单的用户界面,允许以下操作: -- 按 id 搜索 -- 按品牌搜索 -- 按型号搜索 -- 添加一辆新车(新车ID不能与现有车相同) -- 按 id 删除现有汽车 -- 列出所有汽车 -- 退出程序

主要是如何创建一个.data文件并将其编码到我在main.cpp中使用该文件的位置。我的老师给我们举了一个例子;但是,我希望看到多种方法可以实现这一点,以更好地理解这个问题。

【问题讨论】:

  • 如果这是整个作业,那么看起来数据文件的结构取决于您。这为您提供了极大的灵活性,因为您可以根据决定读取文件的方式调整格式。 (通常会指定格式,这会使读取文件的代码比其他情况下更复杂。)
  • 此外,澄清令人困惑的任务的最佳资源通常是首先给你任务的人。

标签: c++ class vector data-structures computer-science


【解决方案1】:

您还可以使用共享内存的概念(您可能在主题操作系统中学习过)并使用它来实现您的项目。 它也以“生产者消费者问题”而闻名。

生产者进程在每次迭代中,从用户那里获取汽车的详细信息(名称、注册编号、部分、年龄等),并将这些数据作为项目放入共享缓冲区。 另一方面,消费者进程在其每次迭代中,从缓冲区中检索数据项并将其保存在磁盘上的 CSV 文件(或您的情况下为 cars.data)中,其中字段(id(int),数据项的make(字符串)和模型(字符串)等)以逗号分隔的格式存储(通常存储在CSV中)。

【讨论】:

  • 我真的不清楚将原始问题转化为生产者-消费者实现如何增加任何价值或清晰度。
  • 但它确实为项目增加了更多的价值,例如可以从生产者程序中添加数据,同时在其他终端中可以访问生产者文件中的菜单界面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多