首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学生成绩管理系统在C++中,表达式必须具有指向对象类型的指针

学生成绩管理系统在C++中,表达式必须具有指向对象类型的指针
EN

Stack Overflow用户
提问于 2017-01-20 02:21:50
回答 1查看 108关注 0票数 0

我想知道是否有人能帮我解决这个问题。我希望在C++的一个学生管理结果分析项目中获得最低分。我得到一个“表达式必须有指向对象类型的指针”错误。我不知道该怎么解决这个问题

代码语言:javascript
复制
struct candidate
{
    int candidates;
    char forename[20], surname[20];
    int area[5];
    double avg;
    public:
    void getdata();
    string calculateGrade();
    void showdata() const;
};

//Prints out the lowest mark

void lowestmark(double avg[])
{
    candidate st;
    ifstream inFile;
    inFile.open("student.dat", ios::binary);
    if (!inFile)
    {
        cout << "File could not be open! Press any Key...";
        cin.ignore();
        cin.get();
        return;
    }

    while (inFile.read(reinterpret_cast<char *> (&st), sizeof(candidate)))
    {
        double smallest = st.avg;

        // Loop to determine lowest score
        for (int i = 0; i < sizeof(candidate); i++)
        {
            if (smallest > st.avg[i])
            {
                smallest = st.avg[i];
                smallest = i;
            }
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-01-20 02:58:29

你不需要数组就能找到最小的平均分数:

代码语言:javascript
复制
double smallest_average = 100000.0;
candidate st;
while (infile.read((unsigned char *) &st, sizeof(st)))
{
  const double average_read = st.avg;
  if (average_read < smallest_average)
  {
    smallest_average = average_read;
  }
}

搜索不需要存储到内存中的所有项目;只需要从文件中读取当前项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41748999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档