首页 > 其他 > 详细

自考新教材-p322

时间:2020-02-05 16:30:05      阅读:60      评论:0      收藏:0      [点我收藏+]

源程序:

#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;
}

运行结果:

技术分享图片

 

自考新教材-p322

原文:https://www.cnblogs.com/duanqibo/p/12263815.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!