第十七周实验报告

来源:互联网 发布:z舰队的覆灭 知乎 编辑:程序博客网 时间:2024/05/16 05:13

实验目的:

文件score.dat中保存的是100名学生的姓名和C++课、高数和英语成绩。

(1)定义学生类,其中包含姓名、C++课、高数和英语成绩及总分、均分数据成员,成员函数根据需要确定。

(2)读入这名学生的成绩,用对象数组进行存储。

(3)将所有数据保存到文件binary_score.dat中。最后写入你自己的各科成绩

(4)为验证输出文件正确,将binary_score.dat中的记录注意读出到学生对象中输出查看

实验代码:

#include <iostream>   #include <string>   #include <fstream>      using namespace std;  class Student  {  private:      string name;      float C;      float math;      float english;      float addition;      float average;  public:      Student();      Student(string na, float c,float m, float e, float add, float a);      friend void readfile(Student s[]);      friend void writefile(Student s[]);      friend void showfile(Student s[]);  };    Student::Student()  {      name = " ";      C = 0;      math = 0;      english = 0;      addition = 0;      average = 0;  }  Student::Student(string na, float c,float m, float e, float add, float a)  {      name = na;      C = c;      math = m;      english = e;      addition = add;      average = a;  }  void readfile(Student s[])  {      ifstream file("score.dat", ios::in);      if(! file)      {          cerr << "open error!" << endl;          exit(1);      }      for(int i = 0; i < 100; i++)      {  file >> s[i].name >> s[i].C >> s[i].math >> s[i].english;  s[i].addition = s[i].C + s[i].math + s[i].english;  s[i].average = s[i].addition / 3;      }      file.close();  }    void writefile(Student s[])  {      ofstream file("binary_score.dat", ios::out|ios::binary);      if(! file)      {          cerr << "open error!" << endl;          exit(1);      }      file << "姓名" << '\t' << "C++" << '\t' << "高数"<< '\t' << "英语" << '\t' << "总成绩" << '\t' << "平均成绩" << endl;      for(int i = 0; i < 100; i++)      {  file << s[i].name << '\t' << s[i].C << '\t' << s[i].math << '\t' << s[i].english << '\t' << s[i].addition << '\t' << s[i].average << endl;      }      file << "徐嘉健" << '\t' << "100" << '\t' << "100" << '\t' << "100" << '\t' << "300" << '\t' << "100" << endl;      file.close();  }    void showfile(Student s[])  {      cout << "姓名" << '\t' << "C++" << '\t' << "高数" << '\t' << "英语" << '\t' << "总成绩" << '\t' << "平均成绩" << endl;      for(int i = 0; i < 100; i++)      {  cout << s[i].name << '\t' << s[i].C << '\t' << s[i].math << '\t' << s[i].english << '\t' << s[i].addition << '\t' << s[i].average << endl;      }      cout << "徐嘉健" << '\t' << "100" << '\t' << "100" << '\t' << "100" << '\t' << "300" << '\t' << "100" << endl;        }    int main()  {      Student st[100];      readfile(st);      writefile(st);      showfile(st);      system("PAUSE");      return 0;  }  


实验结果:

姓名    C++     高数    英语    总成绩  平均成绩刘得意  60      98      75      233     77.6667王锐    63      90      96      249     83何煜中  90      73      82      245     81.6667王磊    87      86      92      265     88.3333冯松    89      98      83      270     90裴培    75      82      91      248     82.6667马骁    62      67      90      219     73马婧    98      84      87      269     89.6667周俊升  57      68      96      221     73.6667贺祺    61      96      72      229     76.3333李桐    93      83      86      262     87.3333高路    63      74      98      235     78.3333冯佳媛  61      79      81      221     73.6667张迪    99      88      80      267     89张里响  85      65      96      246     82王瑞麒  89      83      91      263     87.6667徐金竹  75      89      73      237     79赵媛媛  77      75      66      218     72.6667宋宗杰  94      100     92      286     95.3333张佳玮  61      98      96      255     85王姝    70      91      90      251     83.6667宋媛媛  61      94      92      247     82.3333于莉    55      66      78      199     66.3333于浩    78      84      72      234     78王竞    90      87      67      244     81.3333崔赞    91      67      93      251     83.6667宋静    69      85      73      227     75.6667王磊    71      78      77      226     75.3333方圆    70      79      76      225     75李朋    90      82      97      269     89.6667马佳    60      90      100     250     83.3333张龙    62      100     78      240     80马里    73      95      73      241     80.3333韩明    83      97      88      268     89.3333马立    73      90      83      246     82吴清正  89      97      85      271     90.3333印虹    92      68      75      235     78.3333田苗苗  75      91      71      237     79卫青    66      73      77      216     72冷云    89      88      71      248     82.6667葛志伟  100     79      71      250     83.3333范振光  98      87      89      274     91.3333王芳    71      97      99      267     89杨超    67      73      82      222     74杨梦婕  89      99      67      255     85梁雅宁  55      88      100     243     81王琦    98      95      98      291     97吴玮    69      76      68      213     71杨阔    90      91      98      279     93贾伟林  63      90      86      239     79.6667刘亚新  77      81      95      253     84.3333金昕    92      67      69      228     76董一伟  93      88      80      261     87汤娜    68      85      71      224     74.6667周恒    87      82      69      238     79.3333张笑    86      88      76      250     83.3333文静    93      88      85      266     88.6667杨华鑫  81      81      68      230     76.6667苏明霞  59      79      94      232     77.3333黄京    62      75      96      233     77.6667佟欣    60      79      98      237     79张雯    69      70      93      232     77.3333刘京西  67      78      78      223     74.3333徐嘉琦  90      75      87      252     84魏佳    100     94      80      274     91.3333高举    81      99      91      271     90.3333边里    56      94      87      237     79何佳成  70      75      78      223     74.3333赵旭洋  87      91      94      272     90.6667孙大伟  65      69      98      232     77.3333鲁继森  84      79      75      238     79.3333白涛    57      82      75      214     71.3333蔺剑飞  88      75      79      242     80.6667兰天    83      66      74      223     74.3333王悦    79      82      70      231     77陈世勃  70      92      65      227     75.6667张昊    94      83      96      273     91高清    76      83      84      243     81王欣欣  71      83      78      232     77.3333王欢欢  57      33      66      156     52叶丹    87      80      96      263     87.6667李悦    63      79      97      239     79.6667郭倩    69      94      69      232     77.3333刘盈    99      72      93      264     88杨洁    96      79      87      262     87.3333徐一菡  85      45      62      192     64王蒙    67      97      89      253     84.3333张敏    85      75      89      249     83桂佳    60      73      65      198     66林倩    67      77      80      224     74.6667任盛达  57      86      88      231     77吴佳林  96      65      82      243     81黄金龙  85      90      78      253     84.3333陈美珠  82      72      83      237     79冼丹    100     89      89      278     92.6667唐楠    68      97      77      242     80.6667张扬    77      65      93      235     78.3333宋航彬  80      71      91      242     80.6667薛淇文  89      71      75      235     78.3333刘紫亮  72      98      84      254     84.6667徐嘉健  100     100     100     300     100请按任意键继续. . .

实验心得:

好吧,我无语了,本来不想抱怨的,可是实在是憋不住了,代码方面倒是还好,主要的任务上一周都已经实现了,只是读取的文件类型不同而已,看好课本足以做出来,可是我们宿舍的网速是让我太无语了,从昨天下午一直到熄灯,连个首页都刷不出来,本以为宿舍停电之后一切都会好转,可是我错了,一直到12点,怎么都进不了csdn的首页,能的我想哭,拜托各位先生小姐,行行好吧,让我交完作业行不行啊!!!!!!!!!!!