我想做的是做一个搜索引擎,用于在学生列表中搜索学生的成绩,包括学号和学生姓名。如果有多个学生匹配请求的姓名,系统将要求用户输入学号。
我已经完成读取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
最佳答案
- 考虑并定义一个
class Item
,它将表示单个item
,该item
将保存有关单个学生的数据(代码、姓名...) - 创建一个空的
std::vector
那些将保存你的“项目”的结构 - 打开文件阅读
- 逐行读取文件(使用
std::getline
获取整行,而不仅仅是filestream.getline
或file >> var
运算符)- (对于您阅读的每一行)
- 将行读作
std::string
,就像std::getline
想要的那样 - 创建一个
Item
用于保存下一组数据 - 分析该行并将学生的代码剪切/复制到
myItem.code
- 分析该行并将学生姓名剪切/复制到
myItem.name
- 分析该行并将 XXXXXXXXXXXXXX 剪切/复制到
myItem.whateverelse
- 将您刚刚读取的
myItem
附加到您之前准备的vector
- 读完所有行后关闭文件
现在您有了一个包含所有数据的“vector ”,这些数据很好地存储为“项目”,每个项目都有一个代码、名称和其他数据。您现在可以循环/搜索该 vector 以查找是否有任何名称或代码匹配。
关于C++在学生列表中搜索和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19957075/