/*
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 作 者:王静
* 完成日期:2013 年 3 月 13 日
* 版 本 号:v1.0
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:
* 算法设计:略
*/
#include <fstream>
#include <iostream>
using namespace std;
struct Student
{
char num[12];
char name[14];
int cpp;
int english;
int math;
int score;
struct Student *next;
};
int main()
{
int i,stunum=0,Avg=0;
double Avgscore=0;
Student *head=NULL,*p,*q;
ifstream infile("score.txt",ios::in);
if(!infile)
{
cout<<"open error!"<<endl;
exit(1);
}
//以下建立动态链表
for(i=0;i<7;i++){
p=new Student;
infile>>p->num>>p->name>>p->cpp>>p->english>>p->math;
p->score=p->cpp+p->english+p->math;
p->next=NULL;
if(i==0)
head=p;
else
q->next=p;
q=p;
stunum++;
Avg+=p->score;
}
infile.close();
Avgscore=Avg/stunum;
cout<<"平均总分是:"<<Avgscore<<endl;
cout<<"总分高于平均总分且未挂科的同学是:"<<endl;
p=head;
while(p!=NULL)
{
if(p->score>Avgscore&&p->cpp>=60&&p->english>=60&&p->math>=60)
{
cout<<p->num<<" "<<p->name<<" "<<p->score<<endl;
}
p=p->next;
}
return;
}
运行结果:
(贴图)
心得体会: