处理简单的数据文件.docx

上传人:b****6 文档编号:6884431 上传时间:2023-01-12 格式:DOCX 页数:11 大小:42.78KB
下载 相关 举报
处理简单的数据文件.docx_第1页
第1页 / 共11页
处理简单的数据文件.docx_第2页
第2页 / 共11页
处理简单的数据文件.docx_第3页
第3页 / 共11页
处理简单的数据文件.docx_第4页
第4页 / 共11页
处理简单的数据文件.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

处理简单的数据文件.docx

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

处理简单的数据文件.docx

处理简单的数据文件

沈阳航空工业学院

课程设计

 

学号

班级

姓名

指导教师

年月日

沈阳航空工业学院

课程设计任务书

 

一、课程设计题目:

处理简单的数据文件

二、课程设计工作时间:

三、课程设计内容:

用C语言编写软件完成以下任务:

已知一个文件(file08.dat,由指导教师提供)中有10个整型数据,请把这些数据读入到数组中,按照由小到大的顺序排列后,再写入到另外一个文件myfile.dat中。

四、课程设计要求:

◆贯彻结构化程序设计思想。

◆用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

◆用户界面中的菜单至少应包括“显示file08.dat数据”、“生成myfile.dat文件”、“显示myfile.dat数据”、“退出”4项。

◆代码应适当缩进,并给出必要的注释,以增强程序的可读性

程序质量:

五、课程设计说明书

课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:

◆封面

◆课程设计任务书

◆目录

◆需求分析(分析题目的要求)

◆程序流程图(总体流程图和主要功能模块流程图)

◆核心技术的实现说明及相应程序段

◆个人总结

◆参考资料

◆源程序及适当的注释

指导教师:

学生签名:

 

目录

一、需求分析1

二、程序流程图1

三、核心技术的实现说明及相应程序段1

四、个人总结1

五、参考文献1

六、源程序1

 

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分别是:

从内存中读取file08.dat数据,并显示出来(xiansfile08);从file08.dat里读出数据,按照从小到大的顺序排列,再存入myfile.dat文件中(shengcmyfile);从myfile.dat中读取排列好的数据,显示出来(xiansmyfile).

1、显示file08.dat数据:

主要实现程序从内存中读取指定的数据,并把这些数据显示出来.

2、生成myfile.dat文件:

先从file08文件中读取数据,再将这些数据按从小到大的顺序排列,再将排列好顺序的数据写到新生成的myfile文件中去.

3、显示myfile.dat数据:

从myfile文件中把数据显示出来。

除了上述三个函数外,在主函数中还有菜单程序,按1表示显示file08.dat数据,按2表示生成myfile.dat文件,按3表示显myfile.dat数据,按4表示结束程序.

二、程序流程图

1、程序总体结构图

(1)

 

输入n=1?

是否

显示

xiansshuju

输入n=2?

是否

生成

shengc

输入n=3?

是否

显示

xians

n=4

退出

 

图1程序总体结构图

定义10个整形数据结构体数组

inti;

FILE*fp

for(“F:

\\课设\\相关数据\\file08.dat”,“rb”)

是否

for(i=0;i<0;i++)

fread(&a[i],2,1,fp)

关闭指针fp指向的文件

2、具体功能框图

(1)显示file08.dat数据

图2显示file08.dat数据

(2)生成myfile.dat文件

inti=0,t,j;

FILE*fp

Fp=fopen(“F:

课设\\相关数据\\file08.dat”,”rb”)==NULL

是否

输出cannotopen

Exit(0)

for(I=0;i<10;i++)

fread(&a[i],2,1,fp)

关闭文件

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

a[i].n>a[i+1].n

是否

t=a[i].n

a[i].n=a[i+1].n

a[i+1].n=t

Fp=fopen(“myfile.dat”,”wb”)==NULL

是否

输出

Cannotopen

j=0;j<10

fwrite(&a[j],2,1,fp)

Exit(0)

关闭文件

图3生成myfile.dat文件

(3)显示myfile.dat数据

inti;

FILE*fP

fp=fopen("myfile.dat”,”rb”)==NULL

是否

i=0;i<10;

fwrite(&a[i],2,1,fp)

i=0;i<10;

输出a[i].n

关闭指针fp指向

图4显示myfile.dat数据

三、核心技术的实现说明及相应程序段

本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。

在这些函数当中,显示file08.dat数据,生成myfile.dat文件,显示myfile.dat数据,为核心的部分,下面分别进行说明。

1、显示file08.dat数据

{

inti;/*定义一个整型变量*/

FILE*fp;/*定义指针函数*/

fp=fopen("F:

\\课设\\相关数据文件\\file08.dat","rb");/*以二进制读的形式打开文件*/

for(i=0;i<10;i++)

fread(&a[i],2,1,fp);

for(i=0;i<10;i++)

printf("%d\n",a[i].n);

fclose(fp);/*关闭文件*/

}

2、生成myfile.dat文件

该函数的核心内容是采用冒泡法排序,具体程序如下:

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if(a[i].n>a[i+1].n)/*比较前后两个数*/

{

t=a[i].n;

a[i].n=a[i+1].n;

a[i+1].n=t;/*进行数据交换,小的放在前面*/

}

3、显示myfile.dat数据

{

inti;

FILE*fp;

fp=fopen("myfile.dat","rb+");{

for(i=0;i<10;i++)

fwrite(&a[i],2,1,fp);

for(i=0;i<10;i++)

printf("%d\n",a[i].n);;

fclose(fp);

}

四、个人总结

为期一周的课程设计很快就结束了,其实我们是在上学期期末就拿到自己的题目的,整个假期也没有什么头绪,只是又重新温习了一下C语言的内容,从看到题目就感觉原来C语言也可以这样应用而并不是简单的编程设计,它的每一步,每一个程序,甚至每一个函数都是变幻莫测的,而自己原来只是懂得一点皮毛而已,通过这次的课程设计使我加深了对C语言的了解,也提高了对C语言的应用能力。

我这次的课程设计内容,主要是应用文件的打开和数据的读取等多方面的知识,其中也运用到冒泡排序法,完成由小到大的排列,刚开始自己的思路还是不怎么清晰,在老师和同学的帮助下和自己看书查资料之后,终于完成了整个任务。

通过这次的课程设计我发现自己掌握的知识还是不扎实,一些的细小的方面平时没有注意,导致应用时出错,从而完成任务的同时也检验了我们将所学知识应用于实践的能力,增强了自己对克服困难的信心和坚持,使我收获颇多。

五、参考文献

1谭浩强.C程序设计.北京:

清华大学出版社,2005

2刘成等.C语言程序设计实验指导与习题集.北京:

中国铁道出版社,2006

六、源程序

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

structnumber

{intn;

}

a[10];

voidxiansshuju()

{

inti;

FILE*fp;

fp=fopen("F:

\\课设\\相关数据文件\\file08.dat","rb");

for(i=0;i<10;i++)

fread(&a[i],2,1,fp);

for(i=0;i<10;i++)

printf("%d\n",a[i].n);

fclose(fp);

}

voidshengc()

{

inti=0,t,j;

FILE*fp;

if((fp=fopen("F:

\\课设\\相关数据文件\\file08.dat","rb"))==NULL)

{

printf("can'topen\n");

exit(0);

}

for(i=0;i<10;i++)

fread(&a[i],2,1,fp);

fclose(fp);

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)/*运用冒泡排序法,完成从小到大的排序*/

if(a[i].n>a[i+1].n)

{

t=a[i].n;

a[i].n=a[i+1].n;

a[i+1].n=t;

}

if((fp=fopen("myfile.dat","wb"))==NULL)

{

printf("can'topen\n");

exit(0);

}

for(j=0;j<10;j++)

fwrite(&a[j],2,1,fp);

fclose(fp);

printf("shengcmyfile\n");

 

}

voidxians()

{

inti;

FILE*fp;

fp=fopen("myfile.dat","rb+");

for(i=0;i<10;i++)

fwrite(&a[i],2,1,fp);

for(i=0;i<10;i++)

printf("%d\n",a[i].n);;

fclose(fp);

}

voidmain()

{

intch;

while

(1)

{

printf("1-显示file08.dat数据\n");

printf("2-生成myfile.dat文件\n");

printf("3-显示数据\n");

printf("4-退出\n");

printf("enteranumber(1-4):

\n");

scanf("%d",&ch);

switch(ch)

{

case1:

xiansshuju();break;

case2:

shengc();break;

case3:

xians();break;

case4:

exit(0);

}

}

}

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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