c语言程序设计报告超大数据的运算.doc
《c语言程序设计报告超大数据的运算.doc》由会员分享,可在线阅读,更多相关《c语言程序设计报告超大数据的运算.doc(21页珍藏版)》请在咨信网上搜索。
1、 C语言程序设计报告超大数据运算 tax C语言课程设计报告题目: #1 超大数据的运算 学 院: 班 级: 学 生: tax 学 号: 提交日期: 目录一、 需求分析.3 1.题目要求.3 2.限制条件及具体目标.3二、 总体设计.3 1.完成过程.3 2.问题与解决方法.3 3.程序设计思想.4三、 详细设计.5 1.函数列表.5 2.函数关系调用图.5四、 程序运行结果测试与分析.5五、 结论与心得.9附源代码.9一、 需求分析1.题目要求 对超大型数据(考虑负数和小数)进行存储、运算和输出打印。运算具体要求如下:1) 进行四则运算;2) 整数型超大数据的阶乘;3) 超大型数据某范围内孪
2、生质数的判断输出;4) 超大型数据文件的存储和读取。2.限制条件及具体目标1) 将数据要求为超大型且考虑负数与小数,即各种数据类型都要考虑,并处理超出各种数据类型所能表示范围的数据;2) 运算要求包括四则运算、阶乘、孪生质数的判断;3) 程序要求支持文件的存储和读取。二、总体设计1.完成过程 本程序的目标是完成超大数据(以下简称大数)的运算,考虑负数和小数意味着数据类型要带符号并且包括浮点数据,所谓超大,即超出数据类型所能保存的范围,会发生溢出的情况,其次是大数的正常显示也无法通过一般数据类型实现,主要思想是利用字符串对大数进行保存,然后分析各种要求的四则运算,阶乘运算,孪生质数判断的过程,接
3、下来模拟运算过程编写算法即可。在各个算法的编写过程中插入文件的创建打开与写入,从而实现文件的存储和读取。至此本程序的功能基本编写完成。2.问题与解决方法 运算过程分析与模拟算法的编写本身比较复杂。因为考虑负数的要求,就必须有判断符号的过程,体现在加减法的运算中,就要求程序要能根据符号的正负来选择运算方式,从而得出正确的结果,体现在乘除法的运算中,则判断是否异号进而决定计算结果的符号,并且在余数的计算中还有更复杂的进位分析,再加上考虑小数的要求,问题的复杂度就又提高一层,在乘除运算中,可以通过将浮点大数转换为整数,记录两数小数位数,计算得到的基础上再加上相应小数点即可。在加减法中小数点位置不会改
4、变,将小数点对齐后再进行运算即可。阶乘运算在分析清算法后较容易实现,即实现循环的乘法。孪生质数则通过接受要求范围后循环进行素数判断(利用根号)至循环结束即可。3. 程序设计思想三、详细设计1.函数列表void jianfa(int a,int b,int f)void jiafa(int a,int b,int f)void chengfa( int a, int b)void chufa(char *beichu, char *chu, char *shang, char *yu)void si_ze()void jie_cheng()void luansheng_zhishu()int m
5、ain()2. 函数的调用关系图四、 程序运行结果测试与分析 经大量具代表性的数据测试,本程序已能实现预期功能,符合课程题目要求,能实现超大数据的四则运算、阶乘运算以及范围内孪生质数的判断输出,并将数据存储到指定文件中,程序演示效果如下:表格 1 四则运算演示表格 2 阶乘计算演示表格 3 孪生质数演示表格 4 数据文件存储演示五、结论与心得 我主要负责阶乘运算的实现,并和小组成员一起实现其他运算功能 1、刚开始考虑进位问题过于简单,导致测试数据时多次出错;2、分析运算方式并将其编写为算法的过程中花费了很大的功夫理解和编写,发现自己的编程思维还有待提升;3、开始写程序时源程序没有严格按单元模块
6、结构编写,可读性较差。4、由于初次进行大规模的程序设计,层次结构划分不太合理,应在以后的设计中强化此思维,逐渐与高效简练的程序设计接轨。附源代码如下#include #include #include #include #include#define MAX 101#define N 1000#define M 250000/*函数功能:利用字符串实现超长数加减法运算 */void jianfa(int a,int b,int f); int lena,lenb,da=1,db=1; /* 把lena,lenb设为全局变量,lena纪录第一个超长型数组的位数,lenb纪录第二个超长型数组的位数
7、*/char b1MAX, b2MAX; /*纪录需要计算的两个超长型数据 */void input(int a1,int a2) /*函数input为输入函数,用来纪录两个待计算的超型数据,以数组首地址为参数.以实现返回两个超长型数据*/FILE *fp1;if(fp1=fopen(xxx.txt,a+)=NULL) printf(n cannot creat!);exit(0); int i,fa=1,fb=1; printf(请输入第一个数:n); scanf ( %s, b1); fputs(b1,fp1);fputs( , ,fp1);printf(请输入第二个数:n); /*输入两
8、个超长型数据*/ scanf(%s,b2);fputs(b2,fp1);lena = strlen( b1 ); /*lena纪录b1的位数*/ lenb = strlen( b2 ); /*lenb纪录b2的位数*/ if(b10=-) lena-; da=-1;fa=0; /*判断数组的符号*/ if(b20=-) lenb-; db=-1;fb=0; for (i=0; ilena; i+,fa+) a1i=b1lena-fa-0; /*把字符形数据b1转为整数形数据,同样用数组纪录*/ for (i=0; i0|f) if(lenalenb) s=lena; else s=lenb;
9、/*用s纪录结果的最大位数*/ for(i=0;is;i+) ci=ai+bi+ci; ci+1=(int)ci/10; /*ci+1代表进位*/ ci=(int)ci%10; /*超长数加法运算过程*/ if(cs) s+; /*判断最后结果的位数*/ fputs(n两者之和:n,fp1);if(da0&f|da=0;i-) printf(%d,ci); fprintf(fp1,%d,ci); /*输出结果*/ else jianfa(a,b,1); void jianfa(int a,int b,int f) /*超长数减法运算*/ FILE *fp1; int i,u=0,cMAX+1=
10、0,s;if(fp1=fopen(xxx.txt,a+)=NULL) printf(n cannot creat!);exit(0);fputs(n两者之差:n,fp1); if(da*db0|f) if(lenalenb) s=lena; else /*用s纪录结果的最大位数*/ s=lenb; for(i=s;ai=0;i-) if(aibi) u=1; /*u纪录结果符号*/ if(!u) /*超长数减法运算过程*/ for(i=0;is;i+) if(aibi) ai+1-; ai+=10; ci=ai-bi; else /*当ab时的处理*/ for(i=0;is;i+) if(bi
11、1) s-; /*判断最后结果的位数*/ if(f&(da0&u|da0&(db0&u|u&!f) printf(-);fputc(-,fp1); if(da0&db=0;i-) printf(%d,ci);fprintf(fp1,%d,ci); else jiafa(a,b,1); /*超长型数据乘除法运算 */void chengfa( int a, int b) /*超长数乘法运算*/FILE *fp1; int i, j, c2*MAX = 0,s; s = lena + lenb - 1; /*用s纪录结果的最大位数*/if(fp1=fopen(xxx.txt,a+)=NULL) p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 报告 超大 数据 运算
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。