0
点赞
收藏
分享

微信扫一扫

7-1 磁盘文件的读写

骨灰级搬砖工 2022-05-05 阅读 184
c++

编程构建一个Student类,并在main函数中创建5个对象(对象信息如输入样例所示),其中每个对象的数据包括学号num、姓名name、年龄age以及数学maths、英语english、语文chinese三门功课的分数,然后求出每个人的平均分数ave,将学号、姓名和平均分数输出到磁盘文件STUD.DAT中,最后从STUD.DAT文件中读出这些数据,并显示在屏幕上。

输入格式:

5个学生的数据(学号、姓名、年龄以及数学、英语、语文三门功课的分数)。

输出格式:

从STUD.DAT文件中读出学号、姓名和平均分数。

样例">样例">样例">输入样例:

在这里给出一组输入。例如:

Student stu1(1,'A',19,80,79,67);
Student stu2(2,'B',20,90,68,43);
Student stu3(3,'C',19,56,48,29);
Student stu4(4,'D',20,93,44,57);
Student stu5(5,'E',19,33,55,74);

输出样例:

在这里给出相应的输出。例如:

1 A 75.3333
2 B 67
3 C 44.3333
4 D 64.6667
5 E 54

我知道你们都是来自同一所学校,中国xx大学

废话少说直接上代码

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

class Student
{
public:
    int num;
    char name;
    int age;
    int maths;
    int english;
    int chinese;
    double ave;
public:
    Student(int Num,char N,int a,int m,int e,int c)
    {
        num=Num;
        name=N;
        age=a;
        maths=m;
        english=e;
        chinese=c;
        ave=(double)(maths+english+chinese)/3;
    }
    ~Student()
    { }
};

struct per
{
    int n;
    char na;
    double av;
};

per input(Student s)
{
    per p;
    p.n=s.num;
    p.na=s.name;
    p.av=s.ave;
    return p;
}

void output(per p)
{
    cout<<p.n<<" "<<p.na<<" "<<p.av<<endl;
}

int main()
{
    Student stu1(1,'A',19,80,79,67);
    Student stu2(2,'B',20,90,68,43);
    Student stu3(3,'C',19,56,48,29);
    Student stu4(4,'D',20,93,44,57);
    Student stu5(5,'E',19,33,55,74);
    ofstream out_file;
    out_file.open("STUD.DAT",ios::out|ios::binary);
    per p=input(stu1);
    out_file.write((char *)&p,sizeof(per));
    per p1=input(stu2);
    out_file.write((char *)&p1,sizeof(per));
    per p2=input(stu3);
    out_file.write((char *)&p2,sizeof(per));
    per p3=input(stu4);
    out_file.write((char *)&p3,sizeof(per));
    per p4=input(stu5);
    out_file.write((char *)&p4,sizeof(per));
    ifstream in_file;
    in_file.open("STUD.DAT",ios::in|ios::binary);
    in_file.read((char *)&p,sizeof(per));
    output(p);
    in_file.read((char *)&p1,sizeof(per));
    output(p1);
    in_file.read((char *)&p2,sizeof(per));
    output(p2);
    in_file.read((char *)&p3,sizeof(per));
    output(p3);
    in_file.read((char *)&p4,sizeof(per));
    output(p4);
}

这个题的输入,只能自己用类定义,才能输入进去,其实认真看看还是,cout,我相信你们已经被这道题折磨疯了,我叫xht,不用谢我

举报

相关推荐

7-1作业

7-1 懂的都懂

7-1 打印沙漏

7-1 时间换算 (10 分)

7-1 马兰过河卒(sdut)

7-1 念数字 (10 分)

7-1 计算组合数 (20 分)

7-1 检查宿舍卫生(20分)

0 条评论