大整数的四则运算-课程设计说明书(共17页).doc





《大整数的四则运算-课程设计说明书(共17页).doc》由会员分享,可在线阅读,更多相关《大整数的四则运算-课程设计说明书(共17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 中 北 大 学课程设计说明书学 院、系:软件学院专 业:软件工程学 生 姓 名:宋雨琪学 号:设 计 题 目:大整数的四则运算 起 迄 日 期: 2013年10月11日2013年11月16日指 导 教 师:薛海丽日期: 2013年11月16日1 设计目的 本课程设计是采用C语言,在VC平台下实现大整数的四则运算,该系统运行在MS-DOS命令行模式下。本课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。 1)进一步巩固和复习C程序设计的基础知识; 2)培养学
2、生结构化程序、模块化程序设计的方法和能力; 3)了解软件的编制过程及各环节的具体内容; 4)提高学生程序调试技巧、软件设计能力和代码规范化等素质;提高学生分析问题、解决问题以及实际运用能力。2 任务概述 完成大整数的四则运算任务,假定整数不超过五十位要求: 1) 在屏幕上能够手动输入待求的两个大整数; 2) 输入完成后通过选择可以完成大整数的加、减、乘、除运算; 3)将结果分别显示在屏幕上。 4) 验收时程序能够演示,自己单独做。3 模块划分 1) 定义c_to_d(char strN, char dN)函数,实现把str的各位转变成对应整数,右对齐存入d, start为最高位下标 2)定义d
3、_to_c(char dN, char strN, int start)函数,实现把d中数字dstart.N-1转变为字符左对齐存入str 3)定义加法函数 4)定义减法函数 5)定义乘法函数 6)定义除法函数7)定义输出格式函数 8)运用主函数计算4 主要函数说明及其N-S图 1)主函数说明 定义变量 输入要进行运算代码数字 输入数字 调用函数进行运算 2)其他函数说明 min函数,比较两数大小 c_to_d(char strN, char dN)函数,实现把str的各位转变成对应整数,右对齐存入d, start为最高位下标 d_to_c(char dN, char strN, int st
4、art)函数,实现把d中数字dstart.N-1转变为字符左对齐存入str add(char str_aN, char str_bN, char str_cN),加法函数 sub(char str_aN, char str_bN, char str_cN),减法函数 compare(char str1N, char str2N) ,实现str1,str2内存的是要进行比较的大整数 mul(char str_aN, char str_bN, char str_cN),乘法函数 divd(char str_aN, char str_bN, char str_cN),除法函数主要函数的N-S图:fo
5、r(i=0,j=start;ilen;i+,j+)dj=stri-0)定义变量x,y,strN,dN,I,j,lenint len,start,i,jfor(i=0;iN;i+)di=0 len=strlen(str)start=N-lenreturn start图1:函数c_to_d(char strN,char dN) N-S图定义变量x,y,strN,dN,startI,j,lenint len,start,i,j for(i=0,j=start;i=start_c)定义变量 str_aN, str_bN, str_cN aN, bN,cN,i, start_a,start_b,star
6、t_c,carry,aN, bN,cNi=N-1;carry=0;调用函数c_to_d()start_c=min(start_a,start_b);start_c-;cstart_c=carry;调用函数d_to_c()图3:加法运算函数add()的N-S图调用函数d_to_c()调用函数c_to_d()定义变量 str_aN, str_bN, str_cN aN, bN,cN,i, start_a,start_b,start_c,borrow while(i=start_a)ci=ai-bi-borrow如果有借位T Fborrow=1;ci+=10borrow=1;i-i+图4:减法运算函
7、数sub()的N-S图len1=strlen(str1)if(len1len2)T F定义变量 str1N, str2N,len1,len2len2=strlen(str2)if(len1=start_b;j-)len1=strlen(str_a); len2=strlen(str_b)定义变量str_aN, str_bN, str_cN,len1, len2,i,j,k,carry,aN, bN, cN, dN,start_a, start_b, start_c, start_dfor(j=N-1;j=start_b;j-)memset(c,0,sizeof(c),)carry=0;for(
8、i=N-1,k=j;i=start_a;i-,k-)dk=ai*bj;carry=dk/10;dk=dk%10;if(carry0) 如果有进位T Fdk=carry;k-;start_d=k+1; 把d累加到c中memset(c,0,sizeof(c),)carry=0for(i=N-1;i=start_d;i-)ci=ci+di+carry;carry=ci/10;ci=ci%10;if(carry0)T Fci=carry; i-;start_c=i+1;调用函数d_to_c(c,str_c,start_c)图6:乘法运算函数的N-S图 定义变量str_aN, str_bN,str_cN
9、 ,cN,rmdN;tempN; i,k,len_rmd, len1,len2,cur;len1=strlen(str_a); len2=strlen(str_b)strcpy(rmd, str_a)rmdlen2=0;cur=len2-1 cur记下当前商对应的a中的下标if(compare(rmd, str_b)=0)sub(rmd, str_b, temp);ck+;strcpy(rmd, temp);cur+len_rmd=strlen(rmd)rmdlen_rmd=str_acurrmdlen_rmd+1=0for(i=0;i4|x0)输出(输入错误,请重新输入) 再次输入一个数字
10、输出(”请输入需要的两个数”)输入一个数再输入一个数switch()case 1:运行加法运算case 2:运行减法运算case 3:运行乘法运算case 4:运行除法运算输出结果图8:运行四则运算的主函数的N-S图5 程序运行数据及其结果1) 测试加法输入1再输入和87图一 加法运算结果2) 测试减法输入2再输入2和 图二 减法运算结果3) 测试乘法输入3再输入和图三 乘法运算结果4) 测试除法输入4再输入和图四 除法运算结果5) 退出输入0图五 退出程序6 课程设计心得 这次我的课程设计是大整数的四则运算,由于平常使用的32位操作系统上,整形数的长度是32位,即四个字节,对于一般的应用,这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整数 四则运算 课程设计 说明书 17

限制150内