数据文件处理.docx
- 文档编号:9657582
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:13
- 大小:84.04KB
数据文件处理.docx
《数据文件处理.docx》由会员分享,可在线阅读,更多相关《数据文件处理.docx(13页珍藏版)》请在冰豆网上搜索。
数据文件处理
沈阳航空工业学院
课程设计
学号200704021028
班级7402101
姓名吴广大
指导教师吴杰宏
2008年9月13日
沈阳航空工业学院
课程设计任务书
院系:
电子信息工程专业:
电子信息工程班级:
7402101
学号:
200704021028题目:
数据文件处理
一、课程设计时间
2008~09第1学期第2周,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成以下任务:
先向一个文件中写入20个整型数据,然后把这些数据读入到数组中,按照由小到大的顺序排列后,再写入到另外一个文件sort.dat中。
三、课程设计要求
1.程序质量:
✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“显示原文件数据”、“生成新文件”、“显示新文件数据”、“退出”4项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2.课程设计说明书:
课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、说明书成绩
六、教师评语
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段4
四、课设总结9
五、参考文献9
六、源程序10
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个模块,其中每一个模块对应一个函数,它们的功能分别是:
1存入数据函数,2读出数据函数,3排序函数,4菜单函数。
前三个函数实现对数据的处理,从而实现本软件功能,第四个函数为辅助对前三个函数的操作。
1、存入数据函数主要实现程序对数据的存入文件的功能。
2、读出数据函数实现的功能是打开相应的文件,读出文件中的数据。
3、排序函数按照题目的具体要求实现不同的数据从小到大排列。
4、菜单函数辅助软件操作,方便操作者实现软件的各个功能。
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
软件的操作对象主要是数据,因此定义了一个数组a[20],用来存放最初输入的数据。
为了程序的简洁因此我们还定义了一个全局变量a1[20],使书数据能连续的传递。
二、程序流程图.
1程序总体结构N-S流程图
2、具体功能框图
(1)存入数据函数cun_pan()N-S流程图
(2)读出数据函数read()N-S流程图
(3)排序函数pai_xu()N-S流程图
三、核心技术的实现说明及相应程序段
本程序主要由四个自定义函数和一个主函数组成,其中主函数在程序开始运行的时候建立num.dat文件,向文件输入20个整型数据。
然后以菜单的形式调用其它函数来实现要求的所有功能。
在这些函数当中,读出数据函数,排序函数和存盘函数是程序中较为核心的部分,下面分别进行说明。
1、存入数据函数
具体的程序段如下:
intcun_pan(charfilename[])/*存盘函数*/
{
intn;
FILE*fpp;
fpp=fopen(filename,"w");/*新建文件*/
for(n=0;n<20;n++)
putw(a1[n],fpp);/*将数组存到文件中*/
fclose(fpp);/*关闭文件*/
returna1[20];
printf("数据已经存盘。
\n");
}
2、读出数据函数
该函数的核心内容是读出文件中的数据,该函数运行时,首先是以只读的放式打开文件,然后用for循环依次从文件中读出数据,并且将数据存放到数组a1[20]中,打印到屏幕。
具体的程序段如下:
intread(charfilename[])/*读取函数*/
{
intm;
FILE*p;
p=fopen(filename,"r");/*以只读的方式打开文件*/
for(m=0;m<20;m++)
a1[m]=getw(p);/*读出数据*/
fclose(p);
for(m=0;m<20;m++)
printf("%d",a1[m]);
printf("\n");
printf("数据读出完毕。
\n");
returna1[20];
}
3、排序函数
对于数据的排序采用的排序算法是冒泡法排序,这部分程序调用了reads函数读出的数据,整个排序过程在数组a1中实现,由于排序算法涉及到两个数组元素的信息交换,因此还需要定义一个中间变量来协助。
排序函数使整型数据的排列顺序发生了变化,排序后将数据输出到屏幕上;
具体的程序段如下:
intpai_xu(intb1[],intn)/*排序函数*/
{
inti,j,t;
for(i=0;i<19;i++)
for(j=0;j<19-i;j++)
if(b1[j]>b1[j+1])
{
t=b1[j];
b1[j]=b1[j+1];
b1[j+1]=t;
}
for(i=0;i a1[i]=b1[i]; printf("数据已经存入中文件sort.dat中。 \n"); returna1[n]; } 4、菜单函数 本函数主要功能时辅助操作者方便操作。 具体程序如下 voidmenu() {printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"); printf("1输入数据(数据存入num.dat中)\n"); printf("2读出文件num.dat中的数据\n"); printf("3排序后将数据存如sort.dat中\n"); printf("4读出sort.dat中的数据\n"); printf("5退出程序\n"); printf("请选择操作: \n"); } 四、课设总结 在这次课设中,我学会了许多东西,最重要的是要把知识学得牢固才会在实际中运用自如,不至于毫无头绪,忙乱之极,另外让我懂得做事情要谨慎、细心、要动脑,不要慌张,要平静得对待发生的事情,例如,编出来的程序却总是运行不了,这时就要冷静慢慢的调试,检查错误发生的原因。 虽然这次C语言程序设计的时间很短,只有五天的时间,却让我们体会到了酸甜苦辣,从沮丧到欢喜的转变,另外这次课设让我的编成能力也有所提高,知道从何下手,这次课设我收获很大。 五、参考文献 1谭浩强.C程序设计.北京: 清华大学出版社,2007 六、源程序 #include"stdio.h" #include"stdlib.h" inta1[20]; intcun_pan(charfilename[])/*存盘函数*/ { intn; FILE*fpp; fpp=fopen(filename,"w"); for(n=0;n<20;n++) putw(a1[n],fpp); fclose(fpp); returna1[20]; printf("数据已经存盘。 \n"); } intread(charfilename[])/*读取函数*/ { intm; FILE*p; p=fopen(filename,"r"); for(m=0;m<20;m++) a1[m]=getw(p); fclose(p); for(m=0;m<20;m++) printf("%d",a1[m]); printf("\n"); printf("数据读出完毕。 \n"); returna1[20]; } intpai_xu(intb1[],intn)/*排序函数*/ { inti,j,t; for(i=0;i<19;i++) for(j=0;j<19-i;j++) if(b1[j]>b1[j+1]) { t=b1[j]; b1[j]=b1[j+1]; b1[j+1]=t; } for(i=0;i a1[i]=b1[i]; printf("数据已经存入中文件sort.dat中。 \n"); returna1[n]; } voidmenu() {printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"); printf("1输入数据(数据存入num.dat中)\n"); printf("2读出文件num.dat中的数据\n"); printf("3排序后将数据存如sort.dat中\n"); printf("4读出sort.dat中的数据\n"); printf("5退出程序\n"); printf("请选择操作: \n"); } voidmain() { inta[20]; inti,p; printf("*****************************欢迎进入此系统! *******************************\n"); FILE*fp; fp=fopen("d: \\num.dat","w"); while (1) { menu(); scanf("%d",&p); switch(p) { case1: printf("#######################请输入20个整型数据: (以空格键隔开)#######################\n"); for(i=0;i<20;i++) scanf("%d",&a[i]);/*从键盘读取数据*/ for(i=0;i<20;i++) putw(a[i],fp); fclose(fp); printf("\n"); printf("数据已经存入文件num.dat中\n"); break; case2: read("d: \\num.dat");break; case3: pai_xu(a1,20);cun_pan("d: \\sort.dat");break; case4: read("d: \\sort.dat");break; case5: printf("程序已经结束,按任意键退出\n"); exit(0);break; default: printf("输入错误,请重新输入! \n"); } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据文件 处理