c++ - 对于下面给出的任务,使用类还是多维数组更好?
问题描述
我是 C++ 的新手。我想知道我应该使用 class/es 还是使用多维数组来执行此操作?我真的需要一些关于如何实现这些目标的指示!
所以,我有以下任务:
制作一个程序,用作世界田径比赛的信息系统。程序应保留和修改有关运动员的信息,如每个运动员->(参加比赛的人数、姓名、纪律、职业生涯的最佳成绩、今年的最佳成绩、参加世界比赛的次数)。必须有 5 个不同的项目(200 米短跑、4x400 米、投掷矛、跳高、三级跳远)。每个项目将有6名运动员。
A. 程序中的功能使用菜单(我已经做了大部分,我相信)
B. 添加运动员 i. 在每个学科中增加一名运动员。ii. 添加运动员名单,写下 N 号,在其后写下每个学科的 N 名运动员。
C. 在屏幕上显示所有运动员
D. 举办比赛
一世。为每位运动员随机运行。运动员的得分不得低于其当年最佳成绩的 20%,不得超过其职业生涯最佳成绩的 10%。
ii. 每个运动员有 5% 的机会进行错误起步。
E. 奖牌表 - 每场比赛的运动员按国家分组在一个新的数组中(第一名 - 30p,scnd - 20p,等等)。数组按升序显示在屏幕上(还显示国家名称、积分、来自该国家的运动员名单、他们在比赛中的得分)
F. 显示一些额外信息:
一世。显示按年龄排序的屏幕运动员
ii. 播种按姓名排序的屏幕上的运动员
iii. 在屏幕上显示参加世界比赛最多的运动员
三、在屏幕上显示运动员最多的国家
G. 程序中的数据可以在程序的两次运行之间保存在一个文件中。
解决方案
...我应该使用 class/es 还是使用多维数组来做到这一点?
几乎所有复杂度略高于“hello world”的 C++ 程序都会使用类将相关信息收集到单个对象中。
在您的情况下,一个明显的类将是代表运动员的类。喜欢:
class athlete
{
string name;
uint32_t competition_number;
...
...
};
然后,您可能希望另一个班级使用矢量来容纳所有运动员。就像是:
class participants
{
vector<athlete> participants;
...
...
}
如果您从这两个课程开始,您将能够解决家庭作业的许多部分。
与比赛类似,使用某些类(可能是模板化的)来表示比赛可能是有意义的。此类的一个成员变量可以是该特定比赛的参与者的向量。成员函数可以是run()
.
关于数组:在许多情况下,数组在 C++ 中被向量所取代。如果您需要多维容器,可以创建多维向量,如下所示:
vector<vector<int> x;
推荐阅读
- ios - 在 SwiftUI 中设置 MKMap 的缩放级别 - Xcode 11
- c++ - 如何通过组合多个 char 数组来创建 char 数组?
- php - 如何使用 Amphp 捕获 php websocket 断开的 TCP 连接异常?
- verilog - 为什么时钟块不阻塞?
- spring - Spring上下文不会在单元测试中加载我的类
- java - 如何在 gridLayout 中移动精灵?
- automation - 在 UiPath 异常 HResult 代码中的 Orchestrator 中出现此错误:-2146233088
- google-apps-script - 谷歌脚本问题:有没有办法一次将文件副本创建到多个文件夹中?
- angular - 如何将 json 数据传递给 mde-popover angular2?
- java - 尽管在 Java 中没有错误,但在输入 Char 之前代码崩溃