您的位置:首页 > 编程语言 > C语言/C++

2013c++ 第二周任务-用结构体数组做计算

2013-03-13 11:22 435 查看
/*       
* 程序的版权和版本声明部分       
* Copyright (c)2013, 烟台大学计算机学院学生       
* All rightsreserved.       
* 文件名称:read .cpp                                  
* 作    者:王鍇英                                  
* 完成日期:2013年03月13日       
* 版本号: v1.0             
* 输入描述:略
* 输出描述: 输出的奖学金的名单      
* 问题描述:  略   
*/   
#include<fstream>
#include<iostream>
using namespace std;
struct Student
{
	char num[13]; 
	char name[14];
	int cpp;
	int math;
	int english;
	int score;
}student[300];
void reward(Student [],int );
void sort(Student [],int );
int main()
{    
	int i,stuNum=0;
	
	ifstream infile("score.txt",ios::in);
	if(!infile)
	{
		cerr<<"open error!"<<endl;
		exit(1);
	}
	while(!infile.eof())
	{
		infile>>student[stuNum].num>>student[stuNum].name>>student[stuNum].cpp>>student[stuNum].math>>student[stuNum].english;
		++stuNum;
	}
	infile.close();
	for(i=0;i<stuNum;i++)
	{
		student[i].score=student[i].cpp+student[i].math+student[i].english;
	}
	cout<<"按总分排名后,获得奖学金学生的名单为:"<<endl;
	reward(student,stuNum);
	cout<<endl;
	return 0;
}
void sort(Student [],int stuNum)
{
	int i,j;
	Student t;
	for(j=1;j<stuNum;j++)
		for(i=0;i<=stuNum-j-1;i++)
            if(student[i].score<student[i+1].score)
			{
				t=student[i];
			student[i]=student[i+1];
				student[i+1]=t;

		}	
			return;
}
void reward(Student [],int stuNum)
{
int i,j;
sort(student,stuNum);
for(i=0;i<stuNum;i++)
{
	if(student[i].cpp>=60&&student[i].math>=60&&student[i].english>=60)
		j++;
}
for(j=0;j<=30;j++)
{
cout<<student[j].name<<"     "<<endl;
}
return;
}


运行结果:



心得体会:

结构体程序的编写在上学期就已经接触了,这个学期感觉轻松了许多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: