第四十三讲项目三 成绩统计

1.任务和代码

(1)

/*   
copyright\c)2017,csdn学院   
*All cights reserved    
*文件名称:a.c     
*作者:王琦    
*完成日期:2017年5月6日    
*版本号:6.0   
*问题描述:统计一个文本文件中数字、空格、字母出现的次数,以及文件的字节数,并将结果输出,文本文件名在程序中输入
*程序输出:文本文件中数字、空格、字母出现的次数
*/      
#include <stdio.h>     
#include<stdlib.h>
int main( )      
{  
     int score;   
    int excelent=0, fail=0,count=0; 
    double sum=0,ave;  
    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<60)  
            fail++;  
    }  
    fclose(fp);     
    ave=sum/count;  
    printf("总人数为:%d\n", count);  
    printf("平均成绩为:%.2f\n", ave);  
    printf("优秀人数:%d\n", excelent);  
    printf("不及格人数:%d\n", fail);
}
(2)
/*   
copyright\c)2017,csdn学院   
*All cights reserved    
*文件名称:a.c     
*作者:王琦    
*完成日期:2017年5月6日    
*版本号:6.0   
*问题描述:统计一个文本文件中数字、空格、字母出现的次数,以及文件的字节数,并将结果输出,文本文件名在程序中输入
*程序输出:文本文件中数字、空格、字母出现的次数
*/      
#include <stdio.h>     
#include<stdlib.h>
int main( )      
{  
     int score;   
    int excelent=0, fail=0,count=0; 
    double sum=0,ave;  
    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<60)  
            fail++;  
    }  
    fclose(fp);     
    ave=sum/count;  
    printf("总人数为:%d\n", count);  
    printf("平均成绩为:%.2f\n", ave);  
    printf("优秀人数:%d\n", excelent);  
    printf("不及格人数:%d\n", fail);
	fp=fopen("statictic.dat","w");
    fprintf(fp, "总人数为:%d\n", count);  
    fprintf(fp, "平均成绩为:%.2f\n", ave);  
    fprintf(fp, "优秀人数:%d\n", excelent);  
    fprintf(fp, "不及格人数:%d\n", fail);  
}
(3)
/*   
copyright\c)2017,csdn学院   
*All cights reserved    
*文件名称:a.c     
*作者:王琦    
*完成日期:2017年5月6日    
*版本号:6.0   
*问题描述:统计一个文本文件中数字、空格、字母出现的次数,以及文件的字节数,并将结果输出,文本文件名在程序中输入
*程序输出:文本文件中数字、空格、字母出现的次数
*/      
#include <stdio.h>     
#include<stdlib.h>
int main( )      
{  
     int score;   
    int excelent=0, fail=0,count=0,medium=0,passing=0,good=0,i,l,max; 
    double sum=0,ave;  
    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)
			passing++;
		else
            fail++; 
    }  
    fclose(fp);     
    ave=sum/count;  
    printf("平均成绩为:%.2f\n", ave);    
    max=excelent;  
    if(max<good) max=good;  
    if(max<medium) max=medium;  
    if(max<passing) max=passing;  
    if(max<fail) max=fail;     
    printf("优秀 "); 
    l=((double)excelent)/max*50;    
    for(i=0; i<l; ++i)  
        printf("#");  
    printf("  %d\n", excelent);  
    printf("良好 ");  
    l=((double)good)/max*50;  
    for(i=0; i<l; ++i)  
        printf("#");  
    printf("  %d\n", good);  
    printf("中等 ");  
    l=((double)medium)/max*50;  
    for(i=0; i<l; ++i)  
        printf("#");  
    printf("  %d\n", medium);  
    printf("及格 ");  
    l=((double)passing)/max*50;  
    for(i=0; i<l; ++i)  
        printf("#");  
    printf("  %d\n", passing);  
    printf("挂科 ");  
    l=((double)fail)/max*50;  
    for(i=0; i<l; ++i)  
        printf("#");  
    printf("  %d\n", fail);   
}

2.运行结果

(1)


(2)


(3)


3.知识点总结

(1)先建立文件,然后对文件中的数据进行处理

(2)运用fprintf将处理的数据写入另一个文件夹

(3)运用循环和嵌套对数据进行处理

4.心得体会

在不断地练习中逐渐掌握学到的东西

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值