第17周项目6-学生成绩统计3(1)
2014-12-23 18:05
225 查看
/* *copyright (c)2014,烟台大学计算机学院 *All rights reserved *文件名称:123.cpp *作者:孙春红 *完成日期:2014年12月23日 *版本号:v1.0 * * 问题描述:score.txt中是一些同学的学号、姓名、C++、高数、英语成绩,利用前面定义的 结构体数组,读取文件score.txt中的数据,输出成绩单,输出排序后的成绩单。 *输入描述:略。 *程序输出:略。 */ #include <iostream> #include <fstream> #include <cstdlib> //在codeblocks下,exit(1)需要这个头文件 using namespace std; struct Student { char num[13]; char name[10]; int cpp; int math; int english; int grade; }; const int N=200; int main( ) { int i, j, k, stuNum=0; //定义结构体数组 Student stu , t_stu; //(1)从文件中读出数据,存放到你定义的结构体数组中; ifstream infile("score.txt",ios::in); //以输入的方式打开文件 if(!infile) //测试是否成功打开 { cerr<<"open error!"<<endl; exit(1); } i=0; while(infile>>stu[i].num>>stu[i].name>>stu[i].cpp>>stu[i].math>>stu[i].english) { stu[i].grade=stu[i].cpp+stu[i].math+stu[i].english; ++stuNum; ++i; } infile.close(); cout<<"成绩单是:"<<endl; for(i=0; i<stuNum; ++i) { cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].cpp<<"\t"<<stu[i].math<<"\t"<<stu[i].english<<"\t"<<stu[i].grade<<endl; } cout<<endl; system("PAUSE"); for(i=0; i<stuNum-1; i++) //按总分排序(降序),用了选择排序 { k=i; for(j=i+1; j<stuNum; j++) if(stu[j].grade>stu[k].grade) k=j; t_stu=stu[k]; //交换结构体数组元素 stu[k]=stu[i]; stu[i]=t_stu; } cout<<"排序后的成绩单"<<endl; for(i=0; i<stuNum; ++i) //输出排序后的成绩单; { cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].cpp<<"\t"<<stu[i].math<<"\t"<<stu[i].english<<"\t"<<stu[i].grade<<endl; } cout<<endl; return 0; }
运行结果:
知识点总结:
学会在定义结构体变量的同时将文件的操作。
相关文章推荐
- 第17周项目6--学生成绩统计
- 第17周项目6—学生成绩统计2
- 第17周项目6(1)-学生成绩统计
- 第17周 项目6-2 学生成绩统计及筛选
- 第17周 项目6-1 统计学生成绩
- 第17周项目6-学生成绩统计
- 第17周项目6-学生成绩统计简单版
- 第17周项目6--学生成绩统计
- 第17周项目6-学生成绩各种统计排序筛选
- 第17周项目6-学生成绩统计3(2、奖学金获得者)
- 2014秋C++第17周 项目6参考 学生成绩统计
- 第二周项目1-学生成绩统计
- 项目2-学生成绩统计
- 项目一学生成绩统计
- 第二周上机实践项目——学生成绩统计
- 第十七周项目六 学生成绩统计
- 第二周项目一学生成绩统计
- 第二周 项目1 学生的成绩统计--结构体
- 第十七周项目6——学生成绩统计
- 第十七周项目6-学生成绩统计1