数据文件处理.docx

上传人:b****8 文档编号:9657582 上传时间:2023-02-05 格式:DOCX 页数:13 大小:84.04KB
下载 相关 举报
数据文件处理.docx_第1页
第1页 / 共13页
数据文件处理.docx_第2页
第2页 / 共13页
数据文件处理.docx_第3页
第3页 / 共13页
数据文件处理.docx_第4页
第4页 / 共13页
数据文件处理.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据文件处理.docx

《数据文件处理.docx》由会员分享,可在线阅读,更多相关《数据文件处理.docx(13页珍藏版)》请在冰豆网上搜索。

数据文件处理.docx

数据文件处理

沈阳航空工业学院

课程设计

学号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");

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1