IDE为VS2010

1.

编写程序,从键盘输入若干实数(以特殊数值-1结束),分别写到一个文本文件中。要求:数据写入文件时,各数据独自占一行。
输入示例:

输出示例:

#include "stdio.h"
#include "stdlib.h"int main()
{FILE *fp;float num = 0;fp = fopen("f1.txt", "w+");while(scanf("%f", &num), num != -1){fprintf(fp,"%f",num);}fclose(fp);return 0;
}

2.

从键盘输入以下5个学生的学号、姓名,以及数学、语文和英语成绩,写到文本文件f2.txt中,再从文件中取出数据,计算每个学生的总成绩和平均分,并将结果显示在屏幕上。
提示:在文件读写的整个过程中,每一次成功的操作都将改变文件指针的位置。当多次打开文件,并需要将读写位置指针定位在文件的首地址时,可使用重定位文件首函数rewind()。调用格式为:
rewind(FIFL *fp);
建议:可将学生信息定义变量如下形式:

输入输出示例:

#include "stdio.h"
#include "stdlib.h"typedef struct {int stu_ID;char stu_Name[10];int stu_math , stu_chi , stu_eng;int score_all , score_ave;
}STU;void Data_In(STU *temp)//结构体变量数据读入
{scanf("%d", &(temp ->stu_ID));scanf("%s", temp ->stu_Name);scanf("%d%d%d", &(temp ->stu_math), &(temp ->stu_chi), &(temp ->stu_eng));
}int main()
{FILE *fp;STU obj;int index = 0;fp = fopen("f2.txt", "w+");for(index = 0; index < 5; index ++){Data_In(&obj);fprintf(fp, "%d %s   %d  %d  %d\n",obj.stu_ID, obj.stu_Name, obj.stu_math, obj.stu_chi, obj.stu_eng);//3050801 陈刚    81      75      82}rewind(fp);printf("\n\n********************\n");for(index = 0; index < 5; index ++){fscanf(fp, "%d %s  %d  %d  %d",&obj.stu_ID, obj.stu_Name, &obj.stu_math, &obj.stu_chi, &obj.stu_eng);obj.score_all = obj.stu_chi + obj.stu_eng + obj.stu_math; obj.score_ave = obj.score_all / 3;printf("%d %s   %d  %d  %d  %d  %d\n",obj.stu_ID, obj.stu_Name, obj.stu_math, obj.stu_chi, obj.stu_eng,obj.score_all, obj.score_ave);}fclose(fp);return 0;
}

3.

在第2题的基础上,改进要求:从键盘输入学生信息的个数不做限制,当对应学号信息输入为“-1”时,结束学生信息录入。

#include "stdio.h"
#include "stdlib.h"typedef struct {int stu_ID;char stu_Name[10];int stu_math , stu_chi , stu_eng;int score_all , score_ave;
}STU;void Data_In(STU *temp)//结构体变量数据读入
{scanf("%d", &(temp ->stu_ID));if(temp ->stu_ID == -1)return ;scanf("%s", temp ->stu_Name);scanf("%d%d%d", &(temp ->stu_math), &(temp ->stu_chi), &(temp ->stu_eng));
}int main()
{FILE *fp;STU obj;int index = 0,count = 0;fp = fopen("f2.txt", "w+");while(Data_In(&obj),obj.stu_ID != -1){fprintf(fp, "%d %s %d  %d  %d\n",obj.stu_ID, obj.stu_Name, obj.stu_math, obj.stu_chi, obj.stu_eng);count ++;//3050801 陈刚    81      75      82}rewind(fp);printf("\n\n********************\n");for(index = 0; index < count; index ++){fscanf(fp, "%d %s   %d  %d  %d",&obj.stu_ID, obj.stu_Name, &obj.stu_math, &obj.stu_chi, &obj.stu_eng);obj.score_all = obj.stu_chi + obj.stu_eng + obj.stu_math; obj.score_ave = obj.score_all / 3;printf("%d %s   %d  %d  %d  %d  %d\n",obj.stu_ID, obj.stu_Name, obj.stu_math, obj.stu_chi, obj.stu_eng,obj.score_all, obj.score_ave);}fclose(fp);return 0;
}


![在这里插入图片描述](https://img-blog.csdnimg.cn/20190330180523626.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ0NDk4OQ==,size_16,color_FFFFFF,

4、

【拓展题目】假定有个数据文件“cet4.dat”,存储了若干学生的英语四级成绩。每个学生的基本信息结构包括:学号(12位),姓名(不含空格且不超过20位),专业(不超过30位)和英语四级成绩。编写程序,从文件中读取数据,完成下列要求,并将筛选结果输出到屏幕。
(1)按学号序输出:“电科”专业CET-4成绩“优秀”(550分以上)的学生信息,每个学生的信息占一行;
输入输出示例:
由于二进制文件读写对数据格式严苛的要求,此代码仅做示范作用(不一定输出结果如图所示需要看文件的格式是否符合),主要在于掌握二进制读写仅存在于fread和fwrite的函数操作中

#include "stdio.h"
#include "stdlib.h"
#include "string.h"typedef struct {char stu_ID[12];char stu_Name[3];char stu_Major[10];int  stu_Score;
}STU;void sort(STU temp[], int n)
{int i = 0,j = 0;STU tem;for(i = 0; i < n; i ++){for(j = i + 1; j < n; j ++){if(temp[i].stu_ID > temp[j].stu_ID){tem = temp[i];temp[i] = temp[j];temp[j] = tem;}}}
}int main()
{FILE *fp;STU obj[101];int index = 1, n, i = 0;int temp;if(fp = fopen("cet-4.dat", "rb+"),fp == NULL){printf("File open error!\n");}else{while(!feof(fp)){fread(&obj,sizeof(STU),1,fp);if(obj[0].stu_Score > 550){obj[index] = obj[0];index ++;}}n = index - 1;sort(obj, n);printf("电科 专业CET-4成绩 优秀:\n");for(index = 1; index <= n; index ++){printf("%s %s %s %d\n",obj[index].stu_ID,    obj[index].stu_Name,    obj[index].stu_Major,   obj[index].stu_Score);}
}if(fclose(fp) == EOF){printf("File close error!\n");}return 0;
}}

(2)按学号序输出:“软件工程”专业CET-4未通过(425分以下)的学生信息,每个学生的信息占一行。

#include "stdio.h"
#include "stdlib.h"
#include "string.h"typedef struct {char stu_ID[12];char stu_Name[3];char stu_Major[10];int  stu_Score;
}STU;void sort(STU temp[], int n)
{int i = 0,j = 0;STU tem;for(i = 0; i < n; i ++){for(j = i + 1; j < n; j ++){if(temp[i].stu_ID > temp[j].stu_ID){tem = temp[i];temp[i] = temp[j];temp[j] = tem;}}}
}int main()
{FILE *fp;STU obj[101];int index = 1, n, i = 0;int temp;if(fp = fopen("cet-4.dat", "rb+"),fp == NULL){printf("File open error!\n");}else{while(!feof(fp)){fread(&obj,sizeof(STU),1,fp);if(obj[0].stu_Score < 425){obj[index] = obj[0];index ++;}}n = index - 1;sort(obj, n);printf("软件工程 专业CET-4未通过:\n");for(index = 1; index <= n; index ++){printf("%s %s %s %d\n",obj[index].stu_ID,    obj[index].stu_Name,    obj[index].stu_Major,   obj[index].stu_Score);}
}if(fclose(fp) == EOF){printf("File close error!\n");}return 0;
}

【C语言】文件程序设计实践相关推荐

  1. 法雷序列的c语言程序,程序设计实践(一).PDF

    程序设计实践(一) 程序设计实践(一): 风格.设计和实现 王新宇 2004.10.16 Outline 风格 原则 示例 设计和实践 马尔可夫链(Markov Chain) C, JAVA, C++ ...

  2. C语言课间程序设计实践报告

    <贪吃蛇>简介      玩家使用方向键操控一条长长的蛇不断吞下豆子,同时蛇身随着吞下的豆子不断变长,当蛇头撞到蛇身或障壁时游戏结束.贪吃蛇最初为人们所知的是诺基亚手机附带的一个小游戏,它 ...

  3. C语言及程序设计 实践参考——个人所得税计算器switch语句版

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 返回:贺 ...

  4. C语言及程序设计 实践参考——定期存款利息计算器

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 返回:贺 ...

  5. C语言及程序设计 实践参考——个人所得税计算器if语句版

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 返回:贺 ...

  6. python语言程序设计实践教程答案实验六_Python程序设计实践教程

    书名:Python程序设计实践教程 定价:29.8 ISBN:9787115532602 作者:储岳中 薛希玲 版次:*1版 出版时间:2020-04 内容提要: 本书是Python语言程序设计的配套 ...

  7. c语言程序设计实践教程课,C语言程序设计实践训练教程

    计算机实践训练课程是程序设计课程中必不可少的一个环节.目的是训练读者综合运用该课程的知识与技巧的能力,达到理论联系实际.学以致用. 本书是与<C语言程序设计教程>和<C语言程序设计实 ...

  8. c语言编程项目实践报告快递管理系统,学生成绩管理系统C语言程序设计实践报告.doc...

    学生成绩管理系统C语言程序设计实践报告 (此文档为word格式,下载后您可任意编辑修改!) 中南大学 C语言程序设计实践报告 题 目 学 生 成 绩 管 理 系 统 学生姓名 木雕小象 指导教师 × ...

  9. 《C语言程序设计与实践(第2版)》——第1章 C语言与程序设计概述 1.1初见C语言程序...

    本节书摘来自华章出版社<C语言程序设计与实践(第2版)>一书中的第1章,第1.1节,作者:凌云等著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第1章 C语言 ...

最新文章

  1. Hibernate+Spring-orm的基本方法总结
  2. amazeui学习笔记--css(基本样式)--样式统一Normalize
  3. phpexcel用法(转)
  4. 在xcode4中使用cocos2d 2.x很顺利的
  5. 【Jmeter篇】Linux环境下安装部署运行Jmeter
  6. linux创建sftp服务器,Linux Centos 6.6搭建SFTP服务器
  7. [置顶] 火车票余票接口API使用方法
  8. win10如何解决浏览器出现“正在解析主机”的问题,很大原因是虚拟机,虚拟网卡,小米随身wifi导致的,DNS优选下载,
  9. FlashFXP中文破解 指南
  10. 如何将域名转换为ip
  11. Flume Agent 组件如何协同工作
  12. word页码不连续怎么办
  13. 邮件营销整体解决方案
  14. 关于SES2000找管线定位问题的实验
  15. 基于java的网上鲜花销售系统,基于JAVA的鲜花销售管理系统MVC开发,免费分享
  16. 什么是正态分布?二八法则又是什么?
  17. 走入Vue 2.0-姜威-专题视频课程
  18. Vmware centos7 linux 安装scala
  19. 华为手机WIFI无线ADB教程
  20. NISP模拟试题----2020大学生网络安全竞赛决赛

热门文章

  1. drupal php filter,Drupal A-Z and number filter
  2. SpringBoot项目集成Mybatis Plus(五)条件构造器
  3. 10分钟解决Redis安装和Springboot整合
  4. linux下java连接mysql_LinuxJava连接MySQL数据库
  5. 开源项目选择许可证License
  6. xlwt设置excel字体、对齐方式、边框、颜色、背景色
  7. flutter 动画展开菜单_Flutter ExpansionPanel 超级实用展开控件
  8. iconfont使用
  9. Python的Request请求跳过认证及禁用警告
  10. HDOJ 1896 Stones