C语言课程设计报告--文件存取练习

上传人:汽*** 文档编号:497406391 上传时间:2023-05-14 格式:DOC 页数:13 大小:131.50KB
返回 下载 相关 举报
C语言课程设计报告--文件存取练习_第1页
第1页 / 共13页
C语言课程设计报告--文件存取练习_第2页
第2页 / 共13页
C语言课程设计报告--文件存取练习_第3页
第3页 / 共13页
C语言课程设计报告--文件存取练习_第4页
第4页 / 共13页
C语言课程设计报告--文件存取练习_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《C语言课程设计报告--文件存取练习》由会员分享,可在线阅读,更多相关《C语言课程设计报告--文件存取练习(13页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计 报 告学院、系:专业名称:课程设计科目C语言程序课程设计所在班级:学生学号:学生姓名:指导教师:完成时间:题目 文件存取练习一、设计任务与目标设计任务及类似已有的问题和功能:对文件中的数据读取及存放的熟悉,应用于各行各业,如银行对用户的资金数据存放与读取的业务就应用到该功能。目标:我进行本设计需到达的目标是能熟练的运用C语言对各种数据进行存贮和读取使用,数据的比照,随机数的生成和运用,数据的排序二、 方案设计与论证 使用函数rand随机生成1000个数,利用fopen语句中w指令将其写入指定文件,而下一个函数input那么利用fopen语句中r指令,利用指针指向指定文件,读入到

2、a数组,用while语句统计数组a中0-9的个数,并存入b0-b9数组中,判断素数如果n不能被所有小于等于它的平方根的整数整除,那么n为素数,论证:假设某个数n不是素数,那么一定可以分解成x*y形式。由此可得,n不是素数,那么一定可以被某个小于n的数整除。而对于n来说,最小公因数最大只能为n的平方根,因为假设存在一个大于n平方根的公因数x,那么一定存在另一个公因数y=n/x,yx。从而得上述定理,而最大素数的开方+1后必定比j=2的循环变量小,从而得出最大素数,接着利用冒泡排序法,建立一个“擂台,用“擂台上的数的前一个数与之比拟,小的那个数放到最后,从而使数据按降序排列,利用绝对值,使相邻两数

3、不断循环相减,得出最大差值和最小差值,根据ASCII值且用fgetc函数读入指定文件的字符,并使其输出。三、 程序框图或流程图,程序清单与调用关系int i,j;Indi=randjii+ini+fclose(fp)j+Rand1000(int d,int n)FILE*fp;Int i,k=0;如果filename文件为空,那么输出errorreturn 0;当(!feof(fp)时,读入文件数据并放入数组ak当中;输出读入数据总数;Return k-1;NYNYNYint i,k; 准备数组bi,k=ai,while(k!=0)时,bk%10+且k=k/10digitcount(int a

4、,int n,int b10)input(char filename30,int a)输出数组bi输出数据输出文字在文件输出中数据int maxprime(int *p,int n)int i,j,k;in让整数n被从2到n的平方根之间的数一一整除假设n能被其中某一个数整除,那么不是素数,跳出循环返回0最大素数的开方+1后必定比j=2的循环变量小返回最大素数返回零sort(int d,int total)int I,k,temp;i=0dktempdk+1=dk;dk+1=tempbreakk-k0d0=tempi+i=0itotali+输出数据输出文字NYNYNYNYNYmaxandmin(

5、int *p,int n)int max=p0-p1,min=p0-p1,dif; int i,k;imaxmax=difdifminMin=difi+i=0in-1max=fabs(pi-pi+1)min=fabs(pi-pi+1)输出相邻两数最大差值数出相邻两数最小差值i+结束NYNYNYNYNYNYMyinput(char *fn,int *p)FILE *fp;char a10;int k,temp,i=0;fp=fopen(fn,r);!feof(fp)k=0;temp=fgetc(fp);temp=32 |temp=13| temp=10temp=fgetc(fp);temp!=3

6、2 & !feof(fp)ak=temp;k+;temp=fgetc(fp);ak=0;pi=atoi(a);i+;输出总数目k=0;ki-1输出独立转换字符k+输出文字开始Rand1000inputDigitcountmaxprimesortmaxandminMyinput结束四、全部源程序清单#include#include#include#include/1int Rand1000(int d,int n)/ 随机生成n个随机数序列,n=999 int i,j; FILE *fp;srand(unsigned)time(NULL); /以时间作种子for(i=0;in;i+) di=ra

7、nd(); for(j=0;ji;j+) /*if(dj=di) j=0; di=rand(); */去掉重复数据 printf(%d ,di); printf(n_生成完毕_n);fp=fopen(file1.dat,w);/翻开文本,将数据写入到文本“file1.datfor(i=0;in;i+)fprintf(fp,%d ,di);fclose(fp);/关闭文本 /2读数据文件int input(char filename30,int a) FILE *fp; int i,k=0; printf(n_读取上述数据且放入数组a中_n); if(fp=fopen(filename,r)=N

8、ULL) printf(Read File Error); return 0; while(!feof(fp) fscanf(fp,%d,&ak); k=k+1; printf(n 读取数据结束总计=%dn,k); return k-1;/参数/3digitcount(int a,int n,int b10) /统计数字个数int i,k;printf(n_开始统计每位数字出现的次数,0-9_n);for(i=0;i10;i+) bi=0;for(i=0;in;i+)k=ai;while(k!=0)bk%10+;k=k/10;for(i=0;i10;i+) printf(%d ,bi);pri

9、ntf(n_结束统计每位数字出现的次数_n) ;/4int maxprime(int *p,int n)/确定最大的素数int i,k,j;for(i=0;in;i+) k=pi; for(j=2;jsqrt(k)+1) return i; /pi是最大素数 return 0; /不包含素数sort(int d,int total)/为数据排序int i,k,temp; printf(n_开始排序_n); for(i=1;i=0;k-) if(dktemp) dk+1=dk; else dk+1=temp; break; if(k0) d0=temp; for(i=0;itotal;i+) p

10、rintf(%d ,di); printf(n_排序完毕_n); /两数之差最大、最小maxandmin(int *p,int n)/maxandmin=最大和最小int max=p0-p1,min=p0-p1,dif;/dif=differenceint i,k;for(i=0;imax) max=dif; if(difmin) min=dif;for(i=0;in-1;i+)if(max=fabs(pi-pi+1) printf(Max dif: d%d-d%d=%dn,i,i+1,(int)fabs(pi-pi+1); if(min=fabs(pi-pi+1) printf(Min di

11、f: d%d-d%d=%dn,i,i+1,(int)fabs(pi-pi+1);/*字符数据转换*/ void Myinput(char *fn,int *p) FILE *fp;char a10;int k,temp,i=0;fp=fopen(fn,r);printf(n_开始转换字符_n);while(!feof(fp)k=0;temp=fgetc(fp); /ASCII32:空格 13:回车 10:换行while( temp=32 |temp=13 | temp=10) temp=fgetc(fp);while(temp!=32 & !feof(fp) /32是空格的ASCIIak=temp; k+; temp=fgetc(f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号