第十七周任务一(用二进制形式处理文件之学生分数)
来源:互联网 发布:毕向东java教程百度云 编辑:程序博客网 时间:2024/05/27 16:42
/** 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:学生成绩处理 * 作 者:冯珍珍 * 完成日期:2011 年 6 月 11 日 * 版 本号:x1.0 * 对任务及求解方法的描述部分 * 输入描述:文件score.dat * 问题描述:保存为二进制文件ASCII 文件score.dat 中保存的是100 名学生的姓名和C++课、高数和英语成绩。(1)定义学生类,其中包含姓名、C++课、高数和英语成绩及总分、均分数据成员,成员函数根据需要确定。(2)读入学生的成绩,并求出总分,用对象数组进行存储。(3)将所有数据保存到一个二进制文件binary_score.dat 中,最后在文件中写入你自己的各科成绩(咱不谦虚,也求个好运,全100分)。(4)为验证输出文件正确,再将binary_score.dat 中的记录逐一读出到学生对象中并输出查看。* 程序输出:binary_score.dat * 程序头部的注释结束*/#include <fstream>#include<iostream>#include<string>#include<iomanip>using namespace std;//定义学生类class Student{public:Student(){};Student(string nam, double c, double m, double e):name(nam),cpp(c),math(m),english(e){total=c+m+e;}void set_value(string nam, double c, double m, double e);string get_name(){return name;}double get_cpp(){return cpp;}double get_math(){return math;}double get_english(){return english;}double get_total(){return total;}void set_cpp(double c){cpp=c;}void set_math(double m){math=m;}void set_english(double e){english=e;}void set_total(double t){total=t;}private:string name;double cpp;double math;double english;double total;};void Student::set_value(string nam, double c, double m, double e){name=nam;cpp=c;math=m;english=e;total=c+m+e;}int main( ){Student stud[102],t; //stud[100]为保存数据的对象数组string sname;double scpp, smath, senglish;int i;//将score.dat文件中的数据读入到对象数组中ifstream infile("score.dat",ios::in | ios::binary); //以输入的方式打开文件并定义为二进制文件if(!infile) //测试是否成功打开{cerr<<"open error!"<<endl;abort();//退出程序,与exit函数的作用相同}for(i=0;i<101;i++) { infile>>sname>>scpp>>smath>>senglish; stud[i].set_value(sname, scpp, smath, senglish); } infile.close();cout<<"请到文件binary_score.dat中查看学生求总分后的成绩结果"<<endl<<endl;、 //以输出方式打开binary_score.dat文件,并定义为二进制类型的文件ofstream outfile("binary_score.dat",ios::binary);if(!outfile) //判断文件是否打开{cerr<<"open error!"<<endl;exit(1);}stud[101].set_value("冯珍珍",100,100,100);//调用函数输入我的信息for(i=0;i<102;i++){outfile.write((char*)&stud[i],sizeof(stud[i])); //用write函数以二进制形式将信息读入文件}outfile.close();//将binary_score.dat文件中的数据读入到对象数组中ifstream onfile("binary_score.dat", ios::in|ios::binary); //以输入的方式打开文件if(!onfile) //测试是否成功打开{cerr<<"open error!"<<endl;abort(); //退出程序,与exit函数的作用相同}cout << setiosflags(ios::left) << setw(12) << "姓名" << setw(8) << "C++" << setw(8) << "高数" << setw(8) << "英语" << setw(8) <<"总分" << setw(8) << endl; for(int i=0;i<102;i++){onfile.read((char*)&stud[i],sizeof(stud[i])); //用read函数以二进制形式将信息从文件中读出来cout<<setiosflags(ios::left)<<setw(12)<<stud[i].get_name()<<setw(8)<<stud[i].get_cpp()<<setw(8)<<stud[i].get_math()<<setw(8)<<stud[i].get_english()<<setw(8)<<stud[i].get_total()<<setw(8)<<endl; //在屏幕上显示分数信息} onfile.close();system("pause");return 0;}
- 第十七周任务一(用二进制形式处理文件之学生分数)
- 第十六周任务二(学生分数文件处理)
- C++第十七周【任务一】 学生成绩处理
- 第十七周项目一----学生成绩文件
- 十七周任务一学生文件处理,保存为二进制文件
- 第十七周 任务一
- 第十七周任务一
- 第十七周任务一
- 第十七周实验报告(任务一)
- 第十七周实验--任务1--学生成绩处理:保存为二进制文件
- 《第十七周实验报告任务1——学生成绩处理:保存为二进制文件》
- 第十七周项目6-学生成绩统计(一)
- 十七周任务一:二进制读文件
- 第十七周实验报告--学生成绩处理
- 第十七周C++【报告一】学生成绩处理:保存为二进制文件
- 第十七周实验报告(任务一)【二进制文件】
- 用二进制处理学生成绩
- 15第十五周项目一——用二进制处理学生成绩
- 图像镜像翻转
- 写在最前面
- Notepad++ 列操作
- 音、视频文件格式
- R @ Debian
- 第十七周任务一(用二进制形式处理文件之学生分数)
- DOM、JDOM、DOM4J的区别
- hibernate级联(cascade和inverse)
- 图像灰度化
- java高并发-静态页面生成方案(3)
- lea实现加法
- 如何使用Linux工作队列workqueue
- The search path when DLL is loading on Windows
- eclipse开发Android程序时一些常见问题与错误提示