[cpp]
*/
* 程序的版權和版本聲明部分
*Copyright (c)2013, 煙台大學計算機學院學生
* All rightsreserved.
*文件名稱: array.cpp
* 作 者:楊紹寧
* 完成日期: 2012 年3 月13 日
* 版本號: v1.0
*
* 輸入描述:已經在程序初始化中
*問題描述:將學生成績信息存儲在結構體數組中,對結構體並輸出排序
*輸出:按C++降序和按學號升序排列後的學生成績單
*/
#include <fstream> //操作文件必寫
#include <iostream>
using namespace std;
struct Student
{
char num[300];
char name[300];
int cpp;
int math;
int english;
int score;
};
int main()
{
struct Student student[300];
int num=0,i,j;
Student t[1];
ifstream infile("score.txt",ios::in);
if(!infile){
cout<<"open error"<<endl;
exit(1);
}
while(!infile.eof())//當文件沒有達到結尾的時候,繼續讀入。
{
infile>>student[num].num>>student[num].name>>student[num].cpp>>student[num].math>>student[num].english;
++num;
}
infile.close();
for(i=0;i<num;i++){
student[i].score=student[i].cpp+student[i].math+student[i].english;
}
for(i=0;i<num;i++){
for(j=0;j<num-i;j++)
if(student[j].score<student[j+1].score){
t[0]=student[j];
student[j]=student[j+1];
student[j+1]=t[0];
}
}
int n;
for(i=0;i<num;i++){
if(student[i].cpp>=60&&student[i].math>=60&&student[i].english>=60){
++n;
}
}
for(n=0;n<=30;n++)
cout<<student[n].name<<" ";
return 0;
}
結果: