13处理简单的数据文件.docx
- 文档编号:26469691
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:12
- 大小:50.90KB
13处理简单的数据文件.docx
《13处理简单的数据文件.docx》由会员分享,可在线阅读,更多相关《13处理简单的数据文件.docx(12页珍藏版)》请在冰豆网上搜索。
13处理简单的数据文件
沈阳航空工业学院
课程设计
学号200604021113
班级6402104
姓名赵玉菲
指导教师刘成
2007年9月16日
沈阳航空工业学院
课程设计任务书
院系:
电子专业:
电子信息工程班级:
6402104
学号:
200604021113题目:
处理简单的数据文件
一、课程设计时间
2007年9月10日至2007年9月14日,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成以下任务:
已知一个文件(file08.dat,由指导教师提供)中有10个整型数据(每个整型数据为2个字节),请把这些数据读入到数组中,按照由小到大的顺序排列后,再写入到另外一个文件myfile.dat中.
三、课程设计要求:
1.程序质量:
✧贯彻结构化程序设计思想。
✧用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
✧用户界面中的菜单至少应包括“显示file08dat数据”、“生成myfile.dat文件”、“显示myfile.dat数据”、“退出”4项
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2、课程说设计说明书
课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字
指导教师:
学生签名:
五、成绩:
六、教师评语:
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段.................5
四、个人总结6
五、参考文献7
六、源程序7
一、需求分析
本题多处运用到了指针和文件。
先调用指定文件file08.dat中的数据,然后用起泡法对数据排序,最后把排列好的数据写入到新建文件myfile.dat中。
经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个模块,其中每一个模块对应一个函数,他们的功能分别是:
调用、读入、生成、排序、写入、显示
1、调用调用file08.dat的数据
2、读入将file08.dat的数据读入到数组中
3、生成生成myfile.dat文件
4、排序将file08.dat中的数据按由小到大的顺序排序
5、写入将排好顺序的数据写入到文件myfile.dat中
6、显示显示myfile.dat文件的数据
二、程序流程图
1、程序总体结构图
图1程序总体结构图
2、具体功能函数流程图
(1).voidinput1()
Inti=0、*fp
fp=fopen("c:
\\file08.dat","rb")
当i<10;
输出FILE08数据
fclose(fp)
图2显示数据
(2).voidchang1()
图3起泡法排序
(3).voidoutput3()
Inti、*fp
fp=fopen("myfile.dat","rb+")
当i<10输出数据到
myfile.dat
printf("%d\n",num[i].n)
fclose(fp)
图4新建、写入、显示数据
三、核心技术的实现说明及相应程序段
本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。
三个自定义函数分别用来完成三个任务:
打开文件file08.dat并显示其中的数据;将file08.dat中的数据用起泡法按由小到大的顺序排序;新建文件myfile.dat,并将排列好的数据写入文件中,显示数据。
1、打开文件file08.dat并显示其中的数据
voidinput1()
{
inti;
FILE*fp;
fp=fopen("c:
\\file08.dat","rb");
for(i=0;i<10;i++)
fread(&num[i],2,1,fp);
for(i=0;i<10;i++)
printf("%d\n",num[i].n);
fclose(fp);
}
2、将file08.dat中的数据用起泡法按由小到大的顺序排列
voidchang1()
{
inti=0,t,j;
for(j=1;j<10;j++)
for(i=0;i<10-j;i++)
if(num[i].n>num[i+1].n)
{
t=num[i].n;
num[i].n=num[i+1].n;
num[i+1].n=t;
}
}
3、新建myfile.dat文件并将排列好的数据写入文件中,显示数据
voidoutput3()
{
inti;
FILE*fp;
fp=fopen("myfile.dat","rb+");
for(i=0;i<10;i++)
fwrite(&num[i],2,1,fp);
for(i=0;i<10;i++)
printf("%d\n",num[i].n);
fclose(fp);
}
四.个人总结
之前对C语言很不了解,总以为是我不能掌握的.经过上学期的学习,我觉得并不是不能掌握,通过这一段时间的认真研究,我了解到C语言真的很深奥,要很好的掌握真的不好似件容易的事.
这次课程设计考察了多方面的知识,比如文件和指针。
在刚看这道题时,不知怎么办。
经过对题目的分析,也渐渐有了思路。
由于对文件那一章的知识学得不太牢固,此程序又要用到文件的打开,读写数据,我又翻开课本,看得还不是太明白,又请教了别的同学,最终顺利完成了课程设计。
这次课程任务设计,使我熟练掌握知识的同时还增强了我的实际动手的能力,检验了我将所学知识应用于实践的能力,使我受益匪浅。
五、参考文献
1谭浩强.C程序设计.北京:
清华大学出版社,2005
2刘成等.C语言程序设计实验指导与习题集.北京:
中国铁道出版社,200
六、源程序
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
structnumber
{intn;
}
num[10];
voidinput1()
{
inti;
FILE*fp;
fp=fopen("c:
\\file08.dat","rb");
for(i=0;i<10;i++)
fread(&num[i],2,1,fp);
for(i=0;i<10;i++)
printf("%d\n",num[i].n);
fclose(fp);
}
voidchang1()
{
inti=0,t,j;
for(j=1;j<10;j++)
for(i=0;i<10-j;i++)
if(num[i].n>num[i+1].n)
{
t=num[i].n;
num[i].n=num[i+1].n;
num[i+1].n=t;
}
}
voidoutput3()
{
inti;
FILE*fp;
fp=fopen("myfile.dat","rb+");
for(i=0;i<10;i++)
fwrite(&num[i],2,1,fp);
for(i=0;i<10;i++)
printf("%d\n",num[i].n);;
fclose(fp);
}
voidmain()
{
intx;
while
(1)
{
printf("1xianshifile08.datshuju\n");
printf("2shengchengmyfile.datwenjian\n");
printf("3xianshimyfile.datwenjian\n");
printf("4tuichu\n");
printf("shuruxiangyaodeshuzi\n");
scanf("%d",&x);
switch(x)
{
case1:
input1();break;
case2:
chang1();break;
case3:
output3();break;
case4:
exit(0);
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 处理 简单 数据文件