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

时间:2013-11-13 15:01:45

标签: c++ arrays sorting search

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

我已经完成了读取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

2 个答案:

答案 0 :(得分:1)

  1. 思考并定义一个代表单class Item的{​​{1}},其中包含有关单个学生的数据(代码,名称......)
  2. 创建一个空的item结构,用于保存您的“项目”
  3. 打开文件进行阅读
  4. 逐行阅读文件(使用std::vector获取WHOLE行,而不仅仅是std::getlinefilestream.getline运算符
    1. (对于您阅读的每一行)
    2. 将该行视为file >> var,就像std::string想要
    3. 一样
    4. 创建std::getline以保存下一组数据
    5. 分析该行并将学生的代码剪切/复制到Item
    6. 分析该行并将学生的姓名剪切/复制到myItem.code
    7. 分析该行并将XXXXXXXXXXXXXX剪切/复制到myItem.name
    8. 将刚刚阅读过的myItem.whateverelse附加到您之前准备的myItem
  5. 阅读所有行后关闭文件
  6. 现在你有一个'vector'来保存所有数据,很好地存储为“items”,每个都有代码,名称和其他数据。您现在可以循环/搜索该向量,以查找是否有任何名称或代码匹配。

答案 1 :(得分:0)

看起来您需要创建自己的数据结构来存储值。您可以定义自己的结构

struct Student{
 string name
 string iD
 ....
};

并在本例中使用类型数组Student

Student data_base[100];

这是一个非常基本的方法,但它应该让你去...