当前位置:编程学习 > C/C++ >>

结构体数组计算

[cpp]  
/* 
【项目3-用结构体数组作计算】接项目2, 
 
* Copyright (c)2013, 烟台大学计算机学院学生   
* All rightsreserved.   
* 文件名称:score.cpp                              
* 作    者:蛋蛋                               
* 完成日期:2013  年3  月13  日   
* 版本号: v1.0         
* 输入描述:   
* 问题描述:(1)从文件中读出数据,存放到你定义的结构体数组中,即项目2(1); 
(2)求出每名同学的总分(可以在读入过程中“顺便”计算); 
(3)按总分排序(降序);www.zzzyk.com 
(4)输出排序后的成绩单; 
(5)有30名同学可以获得奖学金,规则是总分高者优先,有挂科不能得奖学金。请输出可以得奖学金同学的名单。 
(6)选做:统计各门课及总分的平均成绩、最高和最低成绩、标准偏差,并输出。  
  建议做两个版本:(1)所有功能全在main()函数中;(2)用自定义函数实现各任务 
* 输出:读取后的的获得奖学金学生名单及成绩单   
* 操作感悟:还是读取失败,完全不懂呢,找不到.dat呢5555  
*/    
#include <iostream>  
#include <fstream>  
using namespace std;  
struct Student  
{  
    char num[12];   
    char name[12];   
    int cpp;  
    int math;  
    int english;  
    int score;  
};  
const int N=200;  
int main( )  
{  
    int i, stuNum=0;  
    Student stu[N];  
    ifstream infile("score.txt",ios::in);   //以输入的方式打开文件  
    if(!infile)                 //测试是否成功打开  
    {  
        cerr<<"open error!"<<endl;  
        exit(1);  
    }  
    i=0;  
    while(!infile.eof())  
    {  
        infile>>stu[i].num>>stu[i].name>>stu[i].cpp>>stu[i].math>>stu[i].english;  
        stu[i].score=stu[i].cpp+stu[i].math+stu[i].english;  
        ++stuNum;  
        ++i;  
    }  
    infile.close();  
    Student t;  
    for(i=0;i<stuNum-1;i++){  
        for(int j=0;j<stuNum-i-1;j++){  
            if(stu[j].score<stu[j+1].score){  
            t=stu[j];stu[j]=stu[j+1];stu[j+1]=t;  
            }  
    }}  
    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].score<<endl;  
    }  
    cout<<"获得奖学金的有以下同学"<<endl;  
    if(stu[i].cpp>=60&&stu[i].math>=60&&stu[i].english>=60){  
    int j=0;   www.zzzyk.com
        while(j<30){  
 cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].cpp<<"\t"<<stu[i].math<<"\t"<<stu[i].english<<"\t"<<stu[i].score<<endl;    
        j++;  
          
                    }  
i++;  
            }  
      
      
    return 0;  
      
}  
 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,