第17周报告2
实验目的:学会用结构体编程序的操作
上机感言:是在同学的帮助下完成的。
实验目的:学会用结构体编程序的操作
实验内容:从文件中读入数据,排序。
/* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 苗影
* 完成日期: 2011 年 12 月 19 日
* 版本号:
* 对任务及求解方法的描述部分
* 输入描述:文件score.txt
* 问题描述:从文件score.txt中读入180名学生的分数,将排序后的结果在屏幕上输出。
* 程序输出:score.txt
*/
#include <fstream>
#include <iostream>
using namespace std;
struct subject
{
double c;
double math;
double english;
};
struct student
{
char num[12];
char name[180];
subject grade;
double score;
struct student *next;
}stu[180];
int main ()
{
int i;
double s=0,avg=0.0;
student *head=NULL,*p,*q;
ifstream infile("score.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<180;i++)
{
p=new student;
infile>>p->num>>p->name>>p->grade.c>>p->grade.math>>p->grade.english;
p->score=p->grade.c+p->grade.math+p->grade.english;
p->next=NULL;
s=s+p->score;
if(i==0)
head=p;
else
q->next=p;
q=p;
}
infile.close();
avg=s/180;
cout<<" 总分高于平均分且没有挂科的同学名单"<<endl;
cout<<endl;
cout<<" 学号 姓名 总分"<<endl;
p=head;
while(p!=NULL)
{
if(p->score>avg)
{
if (p->grade.c>=60&&p->grade.math>=60&&p->grade.english>60)
{
cout<<" "<<p->num<<'\t'<<p->score<<endl;
}
}
p=p->next;
}
cout<< endl;
cout<<" ";
return 0;
}
经验积累:
1.和上个任务不同之处是开辟的空间
上机感言:是在同学的帮助下完成的。