您的位置:首页 > 其它

第43讲--项目三--成绩统计

2015-05-30 20:16 351 查看
任务和代码1

/*
*Copyright (c)2015,CSDN学院
*All rights reserved.
*文件名称:main.c
*作    者:胡先军
*完成日期:2015年5月30日
*版 本 号:v1.0
*
*问题描述:请编程从english.dat中读取数据,求出这次考试的平均
*成绩,并统计输出优秀人数和不及格人数。请在下面程序基础上填空完成:
*程序输出:统计结果
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
int score; //读入的成绩
int excelent=0, fail=0,count=0;//分别代表优秀、不及格人数、总人数
double sum=0,ave; //sum: 成绩和,ave: 平均分
//以输入的方式(ios::in)打开文件
FILE *fp;
fp=fopen("english.dat","r");
if(fp==NULL)
{
printf("open error!\n");
exit(1);
}
while(fscanf(fp,"%d",&score)!=EOF)   //当读取成功……
{
count++;
sum+=score;
if(score>80)
excelent++;
else if(score<60)
fail++;
}
fclose(fp);
//下面输出结果
ave=sum/count;
printf("总人数为:%d\n", count);
printf("平均成绩为:%.2f\n", ave);
printf("优秀人数:%d\n", excelent);
printf("不及格人数:%d\n", fail);
return 0;
}


运行结果



任务和代码2

/*
*Copyright (c)2015,CSDN学院
*All rights reserved.
*文件名称:main.c
*作    者:胡先军
*完成日期:2015年5月30日
*版 本 号:v1.0
*
*问题描述:扩充上面的程序,要求将统计结果保存到数据文件statictic.dat中(提示:要用fprintf写入文件了)
*程序输出:生成一个新文件
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
int score; //读入的成绩
int excelent=0, fail=0,count=0;//分别代表优秀、不及格人数、总人数
double sum=0,ave; //sum: 成绩和,ave: 平均分
//以输入的方式(ios::in)打开文件
FILE *fp,*fp1;
fp=fopen("english.dat","r");
if(fp==NULL)
{
printf("open error!\n");
exit(1);
}
while(fscanf(fp,"%d",&score)!=EOF)   //当读取成功……
{
count++;
sum+=score;
if(score>80)
excelent++;
else if(score<60)
fail++;
}
fclose(fp);
//下面输出结果
ave=sum/count;
fp1=fopen("staticitc.dat","w");

fprintf(fp1,"总人数为:%d\n",count);
fprintf(fp1,"平均成绩为:%.2f\n", ave);
fprintf(fp1,"优秀人数:%d\n", excelent);
fprintf(fp1,"不及格人数:%d\n", fail);
fclose(fp1);

printf("总人数为:%d\n", count);
printf("平均成绩为:%.2f\n", ave);
printf("优秀人数:%d\n", excelent);
printf("不及格人数:%d\n", fail);
return 0;
}


运行结果



任务和代码3

/*
*Copyright (c)2015,CSDN学院
*All rights reserved.
*文件名称:main.c
*作    者:胡先军
*完成日期:2015年5月30日
*版 本 号:v1.0
*
*问题描述:(用柱状图输出)编程序,求出这次考试的平均成绩,
*并统计各分数段的人数(优秀:≥90,良好:≥80,中等:≥70,及格:≥60,不及格:<60)。
*程序输出:统计结果
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
int score,i; //读入的成绩
int a;
int excelent=0, fail=0,count=0,good=0,medium=0,pass=0;//分别代表优秀、不及格人数、总人数、良好、中等、及格
double sum=0,ave; //sum: 成绩和,ave: 平均分
//以输入的方式(ios::in)打开文件
FILE *fp;
fp=fopen("english.dat","r");
if(fp==NULL)
{
printf("open error!\n");
exit(1);
}
while(fscanf(fp,"%d",&score)!=EOF)   //当读取成功……
{
count++;
sum+=score;
if(score>=90)
excelent++;
else if(score>=80)
good++;
else if(score>=70)
medium++;
else if(score>=60)
pass++;
else if(score<60)
fail++;
}
fclose(fp);
//下面输出结果
ave=sum/count;

printf("平均成绩为:%.2f\n", ave);

a=(float)excelent/(float)count*100+0.5;
printf("优秀人数:");
for(i=1;i<=a;i++)
{
printf("#");
}
printf("%d\n",excelent);

a=(float)good/(float)count*100+0.5;
printf("良好人数:");
for(i=1;i<=a;i++)
{
printf("#");
}
printf("%d\n",good);

a=(float)medium/(float)count*100+0.5;
printf("中等人数:");
for(i=1;i<=a;i++)
{
printf("#");
}
printf("%d\n",medium);

a=(float)pass/(float)count*100+0.5;
printf("及格人数:");
for(i=1;i<=a;i++)
{
printf("#");
}
printf("%d\n",pass);

a=(float)fail/(float)count*100+0.5;
printf("不及格人数:");
for(i=1;i<=a;i++)
{
printf("#");
}
printf("%d\n",fail);

return 0;
}


运行结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: