• 自考新教材-p322


    源程序:

    #include <iostream>
    #include <fstream>
    using namespace std;

    class CStudent
    {
    public:
    char id[11]; //学号
    char name[21]; //姓名
    int score; //成绩
    };
    int main()
    {
    CStudent stu;
    int count = 0, maxScore, minScore, maxNo, minNo;
    maxScore = INT_MIN; //C++整型数的最小值
    minScore = INT_MAX; //C++整型数的最大值
    maxNo = minNo = 0;
    ifstream inFile("c:\tmp\students.dat", ios::in | ios::binary); //以二进制读方式打开
    if (!inFile) //条件成立,则说明文件打开出错
    {
    cout << "创建文件失败" << endl;
    return 0;
    }
    while (inFile.read((char*)&stu, sizeof(CStudent))) //顺序读取文件中的记录
    {
    if (stu.score > maxScore) //查找最高分学生
    {
    maxScore = stu.score; //记录当前最高分
    maxNo = count; //maxNo记录当前最高分记录号
    }
    else if (stu.score < minScore) //查找最低分学生
    {
    minScore = stu.score; //记录当前最高分
    minNo = count; //minNo记录当前最低分记录号
    }
    count++; //记录数+1
    }
    inFile.clear(); //将流恢复为正常状态
    inFile.seekg(sizeof(CStudent)*maxNo, ios::beg);//文件指针移动到最高分记录
    inFile.read((char*)&stu, sizeof(CStudent)); //读入最高分记录
    cout << "最高分记录:"
    << maxNo << ";" << stu.id << "," << stu.name << "," << stu.score << endl;
    inFile.seekg(sizeof(CStudent)*minNo, ios::beg); //文件指针移动到最低分记录
    inFile.read((char*)&stu, sizeof(CStudent)); //读入最低分记录
    cout << "最低分记录:"
    << minNo << ";" << stu.id << "," << stu.name << "," << stu.score << endl;
    inFile.close();
    system("pause");
    return 0;
    }

    运行结果:

  • 相关阅读:
    204. 计数质数
    236. 二叉树的最近公共祖先
    优先队列和哈夫曼树
    185. 部门工资前三高的所有员工(求组内前几的值)
    部门工资最高的员工(求组内最大值)
    回调函数的案例
    单链表
    动态数组
    一致性哈希算法的基本原理
    只用2GB内存在20亿个整数中找到出现次数最多的数
  • 原文地址:https://www.cnblogs.com/duanqibo/p/12263815.html
Copyright © 2020-2023  润新知