第17周项目6-学生成绩统计3(2、奖学金获得者)
来源:互联网 发布:dota1深渊领主技能数据 编辑:程序博客网 时间:2024/05/01 02:19
/* *copyright (c)2014,烟台大学计算机学院 *All rights reserved *文件名称:123.cpp *作者:孙春红 *完成日期:2014年12月23日 *版本号:v1.0 * * 问题描述:读取文件中的数据,对数据进行排序;有30名同学可以获得奖学金,规则是总得分高者优先,有挂科这不能的奖学金如果输出最后一名同学的成绩重复,则相同分的都得奖。*输入描述:略。*程序输出:略。*/#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[N],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(); 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;system("PAUSE"); i=0,j=1; int g; while (j<=30) { if (stu[i].cpp>=60&&stu[i].math>=60&&stu[i].english>=60) { cout<<j<<'\t'<<stu[i].name<<'\t'<<stu[i].grade<<endl; g=stu[i].grade; j++; } i++; } while(g==stu[i].grade)//和刚才输出的最后一个总分相同的同学都有机会获得奖学金 { if (stu[i].cpp>=60&&stu[i].math>=60&&stu[i].english>=60) { cout<<j<<'\t'<<stu[i].name<<'\t'<<stu[i].grade<<endl; j++; } i++; } return 0;}
运行结果:
知识点总结:
学会结合文件的操作进行结构体类型定义变量。
0 0
- 第17周项目6-学生成绩统计3(2、奖学金获得者)
- 第17周 项目6-学生成绩统计(3)
- 第17周 项目6-学生成绩统计(2)
- 第17周项目6-学生成绩统计(2)
- 第17周项目6-学生成绩统计(2)
- 第17周项目6(3)-学生成绩统计
- 第17周项目6(2)-学生成绩统计
- 第17周项目6—学生成绩统计2
- 第17周【项目 6-学生成绩统计】(4)
- 第17周【项目 6-学生成绩统计】(5)
- 第17周项目6学生成绩统计(4)
- 第17周项目6-学生成绩统计(1)
- 第17周项目6-学生成绩统计(1)
- 第17周项目6-学生成绩统计(4)
- 第17周项目6-学生成绩统计-(1,2,3)
- 第17周【项目 6-学生成绩统计】(1)-(3)
- 第17周项目6学生成绩统计(1)-(3)
- 第17周项目6-学生成绩统计3(1)
- android之BaseColumns类说明
- 中文乱码,后台取到的数据为????
- Android获取TextView的长度
- 第十七周 OJ 重复字符串
- 【好程序员特训营】Java类与对象
- 第17周项目6-学生成绩统计3(2、奖学金获得者)
- IOS调试技巧:当程序崩溃的时候怎么办 iphone IOS
- 第十七周项目5(部分) 该年第几秒
- Unity布料
- 第十六周项目2.1连续字符串 用数组名做参数
- Mac 下SVN 的配置(Xcode6.1下)
- Min Stack
- android R
- ScheduledExecutorService定时周期执行指定的任务