C++在学生列表中搜索和排序

标签 c++ arrays sorting search

我想做的是做一个搜索引擎,用于在学生列表中搜索学生的成绩,包括学号和学生姓名。如果有多个学生匹配请求的姓名,系统将要求用户输入学号。

我已经完成读取txt文件,但是,我停止将txt更改为数组进行存储和搜索。我不知道如何将这些数据存储到数组中。

我有 20 名学生,这里有两个学生在每个科目中的评分示例:

SS6709 Peter VT001 C VT002 E VT003 D VT004 D VT009 A+ VY018 A++ VT024 B

SS9830 Amy VT001 D VT002 C VT003 C VT004 D VT009 D VT018 D VT023 B

最佳答案

  1. 考虑并定义一个 class Item,它将表示单个 item,该 item 将保存有关单个学生的数据(代码、姓名...)
  2. 创建一个空的 std::vector 那些将保存你的“项目”的结构
  3. 打开文件阅读
  4. 逐行读取文件(使用 std::getline 获取整行,而不仅仅是 filestream.getlinefile >> var运算符)
    1. (对于您阅读的每一行)
    2. 将行读作std::string,就像std::getline想要的那样
    3. 创建一个 Item 用于保存下一组数据
    4. 分析该行并将学生的代码剪切/复制到myItem.code
    5. 分析该行并将学生姓名剪切/复制到myItem.name
    6. 分析该行并将 XXXXXXXXXXXXXX 剪切/复制到 myItem.whateverelse
    7. 将您刚刚读取的myItem附加到您之前准备的vector
  5. 读完所有行后关闭文件

现在您有了一个包含所有数据的“vector ”,这些数据很好地存储为“项目”,每个项目都有一个代码、名称和其他数据。您现在可以循环/搜索该 vector 以查找是否有任何名称或代码匹配。

关于C++在学生列表中搜索和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19957075/

相关文章:

java - 如何在最快的时间内对接近排序的数组进行排序? ( java )

c++ - 模板子类指针问题

c++ - MP3 的 DirectShow 媒体子类型?

python - 二维列表仅按第一位排序

sorting - 如何在Kotlin的枚举类中自定义排序

c++ - 将 char 转换为字符串不能正常工作 C++

c++ - 如何评估任何给定的表达式

C++ 绘制 Mandelbrot 集,性能不佳

c++ - 填充字节发现以及对数组初始值设定项中多余元素的常见和特殊编译器行为

javascript - 在没有 .concat 的情况下基于索引合并 JavaScript 数组