第17周 项目6 读取学生成绩及筛选
2014-12-25 09:34
232 查看
问题及代码:
运行结果:
/*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:liu_feng_zi_ *完成日期:2014年12月25日 *版本号:v1.0 * 问题描述:文件读取学生成绩及筛选 *输入描述: *程序输出: */ #include <iostream> #include <fstream> #include <cstdlib> #include <cstring> using namespace std; struct Student { char num[13]; char name[10]; int cpp; int math; int english; int grade; }; void output(Student s[],int n); void sort1(Student s[],int n); void outputExcellent(Student s[],int n); int main() { int i,stuNum; Student stu[10000]; 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(); output(stu,stuNum); cout<<"按总分降序排序后得成绩单:"<<endl; sort1(stu,stuNum); output(stu,stuNum); cout<<"获得奖学金的名单:"<<endl; outputExcellent(stu,stuNum); return 0; } void output(Student s[],int n) { int i; cout<<"学号"<<'\t'<<'\t'<<"姓名"<<'\t'<<"CPP"<<'\t'<<"数学"<<'\t'<<"英语"<<'\t'<<"总分"<<endl; for(i=0;i<n;i++) { cout<<s[i].num<<'\t'<<s[i].name<<'\t'<<s[i].cpp<<'\t'; cout<<s[i].math<<'\t'<<s[i].english<<'\t'<<s[i].grade<<endl; } } void sort1(Student s[],int n) { int i,j; Student t; for(i=0; i<n-2; i++) for(j=0; j<n-i-1; j++) { if(s[j].grade<s[j+1].grade) { t=s[j]; s[j]=s[j+1]; s[j+1]=t; } } } void outputExcellent(Student s[],int n) { int i; for(i=0;i<30;i++) cout<<s[i].num<<'\t'<<s[i].name<<endl; for(i=30;i<n;i++) if(s[29].grade==s[i].grade) cout<<s[i].num<<'\t'<<s[i].name<<endl; }
运行结果:
相关文章推荐
- 第17周项目6-学生成绩各种统计排序筛选
- 第17周 项目6-2 学生成绩统计及筛选
- 第17周项目6-学生成绩统计简单版
- 第17周项目6--学生成绩统计
- 第17周项目6--学生成绩统计
- 第17周项目6-学生成绩统计3(2、奖学金获得者)
- 第17周项目6学生成绩(4)
- C++第17周项目1 - 二进制学生成绩文件
- 第17周项目6—学生成绩统计2
- 第17周 项目6-1 统计学生成绩
- 第17周项目6-学生成绩统计3(1)
- 第17周项目6-1-3结构体数组运用于学生成绩信息
- 第17周项目6-学生成绩统计
- 第17周项目6-文件读取成绩进行处理
- 2014秋C++第17周 项目6参考 学生成绩统计
- 第17周项目6(1)-学生成绩统计
- 第二周项目3(选做)-学生成绩管理系统
- C语言项目--教师信息/学生成绩管理系统
- 十四周上机实践项目(二)处理学生成绩
- 项目2-学生成绩统计