第十七周作业

编程入门 行业动态 更新时间:2024-10-22 20:23:54

第十七周<a href=https://www.elefans.com/category/jswz/34/1771149.html style=作业"/>

第十七周作业

【任务1】学生成绩处理:保存为二进制文件ASCII 文件score.dat 中保存的是100 名学生的姓名和C++课、高数和英语成绩。
(1)定义学生类,其中包含姓名、C++课、高数和英语成绩及总分、均分数据成员,成员函数根据需要确定。
(2)读入学生的成绩,并求出总分,用对象数组进行存储。
(3)将所有数据保存到一个二进制文件binary_score.dat 中,最后在文件中写入你自己的各科成绩(咱不谦虚,也求个好运,全100分)。
(4)为验证输出文件正确,再将binary_score.dat 中的记录逐一读出到学生对象中并输出查看。

#include<iostream>
#include <fstream>
#include <string>
using namespace std;
class Student
{
public:Student(void);Student(string n,double c,double m,double e,double s,double a);string get_name(){return name;}double get_c_score(){return c_score;}double get_math_score(){return math_score;}double get_eng_score(){return eng_score;}double get_sum_score(){return sum_score;}double get_aver_score(){return aver_score;}void set_name(string n){name =  n;}void set_c_score(double c){c_score = c;}void set_math_score(double m){math_score = m;}void set_eng_score(double e){eng_score = e;}void set_sum_score(double s){sum_score = s;}void set_aver_score(double a){aver_score = a;}friend void input_score(Student stud[]);friend void sum_score(Student stud[]);friend void aver_score(Student stud[]);friend void output_score(Student stud[]);private:string name;double c_score;double math_score;double eng_score;double sum_score;double aver_score;
};
Student::Student(void)
{name = '\0';c_score = 0;math_score = 0;eng_score = 0;sum_score = 0;aver_score = 0;
}Student::Student(string n,double c,double m,double e,double s,double a)
{name = n;c_score = c;math_score = m;eng_score = e;sum_score = s;aver_score = a;
}int main( )
{	Student stud[101];input_score(stud);sum_score(stud);aver_score(stud);output_score(stud);system("PAUSE");return 0;
}void input_score(Student stud[])
{string name;double c_score;double math_score;double eng_score;ifstream infile("score.dat",ios::in);  if(!infile){	cerr<<"open error!"<<endl;exit(1);}for (int i = 0; i < 101; i++ ){infile >> name >> c_score >> math_score >> eng_score ;stud[i].set_name(name);stud[i].set_c_score(c_score);stud[i].set_math_score(math_score);stud[i].set_eng_score(eng_score);}infile.close();
}void sum_score(Student  stud[])   
{  double grade;  for(int i=0;i<101;++i)  {  grade=stud[i].get_c_score()+stud[i].get_math_score()+stud[i].get_eng_score();  stud[i].set_sum_score(grade);  }  }  
void aver_score(Student  stud[])   
{  double average;  for(int i=0;i<101;++i)  {  average=double(stud[i].get_c_score()+stud[i].get_math_score()+stud[i].get_eng_score())/3;  stud[i].set_aver_score (average);  }  
}  void output_score(Student stud[])
{ofstream outfile("binary_score.dat",ios::binary);if(!outfile){cerr<<"open error!"<<endl;exit(1);}cout <<  "姓名" <<"  "<< "C++" <<"  "<<  "高数" <<"  "<<  "英语" <<"  "<<"总分"  <<"  "<< "平均分" << endl;for(int i = 0; i < 101; i++){outfile.write((char *)&stud[i],sizeof(stud[i]));cout<<stud[i].get_name()<<"   "<<stud[i].get_c_score()<<"   "<<stud[i].get_math_score()<<"   "<<stud[i].get_eng_score()<<"    "<<stud[i].get_sum_score()<<"   "<<stud[i].get_aver_score() << endl;  }outfile.close();
}

要坚持交程序。。!

 

 

更多推荐

第十七周作业

本文发布于:2024-02-11 15:31:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1681751.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:作业

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!