C++输出文本文件些行的内容并进行计算统计

菜鸟一只~想用C++解决一个问题,问题是这样的:有一个文本文件,比如a.txt,里面有各个班学生的成绩,文件结构如下:班级1学号1数学成绩1英语成绩1语文成绩1学号2数学... 菜鸟一只~想用C++解决一个问题,问题是这样的:
有一个文本文件,比如a.txt,里面有各个班学生的成绩,文件结构如下:
班级1
学号1 数学成绩1 英语成绩1 语文成绩1
学号2 数学成绩2 英语成绩2 语文成绩2
学号3 数学成绩3 英语成绩3 语文成绩3
.....
班级2
学号1 数学成绩1 英语成绩1 语文成绩1
学号2 数学成绩2 英语成绩2 语文成绩2
学号3 数学成绩3 英语成绩3 语文成绩3
.....
班级n
学号1 数学成绩1 英语成绩1 语文成绩1
学号2 数学成绩2 英语成绩2 语文成绩2
学号3 数学成绩3 英语成绩3 语文成绩3
.....
问题1:比如我输入1,程序就把班级1的所有学生的成绩输出到屏幕上,并分别统计每科成绩的平均值,但如果有成绩=100的不纳入统计范围。
问题2:查询指定班级指定学生的成绩并输出到屏幕上。
展开
 我来答
沧海雄风2009
2012-04-01 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2827万
展开全部
很简单的

你能给我个 a.txt文件么

里面要有内容和成绩哦

还有 100分不纳入统计 ?

是说算平均分时 不计算在内么?
更多追问追答
追问
麻烦给个邮箱嘛,我发给你,是的,100分算平均分时不计算在内。
追答
1227812201  扣扣邮箱

写好了 你看下效果
我的a.txt内容如下:

班级1
1 44 55 66
2 77 88 100
3 66 33 88
班级2
1 54 75 86
2 47 78 99
3 86 63 78
班级3
1 87 65 76
2 87 45 67
3 42 66 56

//下面是运行结果

输入要查班级
1
1 44 55 66
2 77 88 100
3 66 33 88
班级1 aver:
62.3333 58.6667 77
Press any key to continue

//接下来是代码
#include
#include
#include
#include
using namespace std;

struct stud
{
int stdid;
int math;
int English;
int Chinese;
}st[100];

int main()
{
int mathsum=0,mathCT=0,englishCT=0,englishsum=0,chineseCT=0,chinesesum=0;
char num[5]="\0",sel[10]="班级",line[100]="\0";
ifstream myin("a.txt");
cout>num;
strcat(sel,num);
while (!myin.eof())
{
myin.getline(line,99);
if (strcmp(line,sel)==0)
{
int i=0;
while (1)
{
myin.getline(line,99);
if (strlen(line)>7)
{
sscanf(line,"%d %d %d %d",&st[i].stdid,&st[i].math,&st[i].English,&st[i].Chinese);
cout<<st[i].stdid<<"\t"<<st[i].math<<"\t"<<st[i].English<<"\t"<<st[i].Chinese<<endl;
if (st[i].math!=100)
{
mathsum+=st[i].math;
mathCT++;
}
if (st[i].English!=100)
{
englishsum+=st[i].English;
englishCT++;
}
if (st[i].Chinese!=100)
{
chinesesum+=st[i].Chinese;
chineseCT++;
}
i++;
}else
break;
}
cout<<sel<<" aver:\r\n\t"<<setw(2)<<(float)mathsum/mathCT<<"\t"<<setw(2)<<(float)englishsum/englishCT<<"\t"<<setw(2)<<(float)chinesesum/chineseCT<<endl;
break;
}
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式