您的位置:首页 > 移动开发 > IOS开发

十七周任务二

2012-02-26 11:52 218 查看
17周任务

作者:董宝文

时间: 2011-12-16

 

#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>
using namespace std;
struct student
{
char num[12];
string name;
int grade[3];
int sum;
};
int main()
{
void open_file(student *p);
void select_score(student *p);
void show_score(student *p);
void school_reward(student *p);
student student[180],score,*p;
p=student;
open_file(p);
select_score(p);
cout<<"学号"<<setw(24)<<"姓名"<<setw(9)<<"c++"<<setw(9)<<"高数"<<setw(8)<<"英语"<<setw(8)<<"总成绩"<<endl;
show_score(p);
cout<<"获得奖学金的同学名单为:"<<endl;
school_reward(p);
return 0;
}
//定义输入数据函数
void open_file(student *p)
{
int j;
ifstream infile("score.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(j=0;j<180;j++)
{
infile>>(p+j)->num>>(p+j)->name>>(p+j)->grade[0]>>(p+j)->grade[1]>>(p+j)->grade[2];
(p+j)->sum=((p+j)->grade[0]+(p+j)->grade[1]+(p+j)->grade[2]);
}
infile.close();
}
//定义顺序处理函数
void select_score(student *p)
{
int i,j,t;

for(j=0;j<179;j++)
for(i=0;i<179-j;i++)
if( (p+i)->sum <(p+i+1)->sum )
{
t=(p+i)->sum;
(p+i)->sum=(p+i+1)->sum;
(p+i+1)->sum=t;
}
}
//定义输出函数
void show_score(student *p)
{
int i;
for(i=0;i<180;i++)
{
cout<<(p+i)->num<<setw(16)<<(p+i)->name<<setw(8)<<(p+i)->grade[0]<<setw(8)<<(p+i)->grade[1]<<setw(8)<<(p+i)->grade[2]<<setw(8)<<(p+i)->sum<<endl;
}
}
//定义奖学金函数
void school_reward(student *p)
{
int i=0,n=0;

while (n<30)
{
if((p+i)->grade[0] >= 60 && (p+i)->grade[1] >= 60 && (p+i)->grade[2] >= 60)
{
n++;
cout<<(p+i)->num<<(p+i)->name<<endl;
}
i++;
}
}


运行结果:

 




经验积累:

1.明白上课讲的结构体应用

2.这我是看的学佳姐的,声明一下。。。。。。

3.原来打开文件是这样。。。。。。

4.有的地方还不是很明白,会尝试用其他方法做这个任务的

 

 

上级感言:革命尚未成功,同学我仍需努力。。。。。。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  任务 file string ios c