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

2-4动态列表

[cpp] 
/* 
* 程序的版权和版本声明部分 
* Copyright (c)2013, 烟台大学计算机学院学生 
* All rightsreserved. 
* 文件名称:score.cpp                            
* 作    者:纪子龙                             
* 完成日期:2013  年3   月 8  日 
* 版本号: v1.0       
* 输入描述:无 
* 问题描述:无 
* 输出:无 
*/  
#include <iostream>  
#include <fstream>   //操作文件必写  
using namespace std;  
struct Score  
{  
    char num[14];  
    char nam[30];  
    int cpp;  
    int math;  
    int english;  
    int sumg;  
    struct Score *next;  
};  
void sort1(Score p[],int n);  
void output(Score p[],int n);  
int main()  
{  
    Score *head=NULL,*p,*q;  
    int i=0,j,m;  
    long asg[200];  
    Score score[200];  
    //以输入的方式(ios::in)打开文件,注意score.txt必须在文件夹中存在  
    ifstream infile("score.txt",ios::in);  
    //测试是否成功打开,打开失败时(如要读的数据文件不存在)退出  
    if(!infile)                   
    {  
        cerr<<"open error!"<<endl;  
        exit(1);  
    }  
    while(!infile.eof())  
    {     
        p=new Score;  
        infile>>p->num>>p->nam>>p->cpp>>p->math>>p->english;  
        p->sumg=p->cpp+p->math+p->english;  
        p->next=NULL;  
        if(i==0)  
            head=p;  
        else  
            q->next=p;  
        q=p;  
        i++;  
    }  
    infile.close();  
    p=head;  
    asg[0]=head->sumg;  
    for(j=1;j<i;j++)  
        asg[j]=asg[j-1]+score[j].sumg;  
    m=asg[j]/j;  
    cout<<"总分高于平均总分且没有挂科的同学及成绩单:"<<endl;  
    while(p!=NULL)  
    {  
        if((p->cpp)>59&&(p->math)>59&&(p->english)>59&&(p->sumg)>m)  
        {  
              
            cout<<p->nam<<" "<<p->cpp<<" "<<p->math<<" "<<p->english<<" "<<p->sumg<<endl;  
            p=p->next;  
        }  
        else  
            p=p->next;  
    }  
    return 0;  
}  
运行结果 :  
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,