我是一名新程序员,试图自学 C++ 和 OOP。现在我正在从事一个具有多个状态的项目,这是我第一次尝试更大的编程任务/挑战。现在我正在尝试处理一个简单的菜单状态类,但我不确定如何设计它来做我想要的。具体来说,我是一名初级程序员,我不确定要使用哪些数据类型或模板。
以下是我想要制作的菜单屏幕类型的简要说明:
我正在尝试制作一个简单的菜单屏幕,其中列出了多个“菜单元素” 。每个“菜单元素”都包含一个字符串(用于显示元素或项目的名称)和一个函数(用于更改状态、屏幕、执行任务等)。- 我想要的菜单系统的另一个“功能”是选择环绕的能力。例如,如果菜单有 3 个项目,我希望用户能够按上下键来切换当前选择的元素,如果用户在最后一个元素(#3)上并再次按下,他们会回滚围绕元素#1。(反之亦然..)
现在,我〜认为〜这将需要我创建一个名为“MenuElement”的新类,以及一个名为“MenuState”的类,它包含并允许用户在特定元素之间切换和选择。
作为一名新的、自学成才的 C++ 程序员,我对一些更高级的容器的经验有限,而且我对简单的 c 样式数组更加熟悉。我对向量有一点经验,对链表、映射和树也有一点了解,但我不确定在这种情况下使用哪种容器类型。我以前见过使用指针创建循环链表的例子,但是这个例子是用 C 语言编写的,看起来有点笨拙。是否有最适合我的问题的特定类型的包含?还是我想多了,我应该选择一个并运行它?
我想我最终可以使用带有一系列条件语句的 MenuElements 数组来启动并运行这个系统。但是,我真的很想学习如何改进我的编程和设计,不仅让我的代码运行得更快,而且让我的代码干净且逻辑结构合理。