1、 课程设计说明书 学学 院 、 系院 、 系 : 软件学院 专专 业业: 软件工程 学学 生生 姓姓 名:名: 学学 号:号: 设设 计计 题题 目目: 大整数的四则运算 起起 迄迄 日日 期期: 2013 年 10 月 11 日2013 年 11 月 16 日 指指 导导 教教 师师: 日期: 2013 年 11 月 16 日 1 1 设计目的设计目的 本课程设计是采用 C 语言,在 VC 平台下实现大整数的四则运算,该系统运行在 MS-DOS 命令行模式下。本课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的 理论知识和实际有机的结合起来, 锻炼学生的分析解决实际问题的能力。
2、 提高学生适应实际, 实践编程的能力。 1)进一步巩固和复习 C 程序设计的基础知识; 2)培养学生结构化程序、模块化程序设计的方法和能力; 3)了解软件的编制过程及各环节的具体内容; 4)提高学生程序调试技巧、软件设计能力和代码规范化等素质; 提高学生分析问题、解决问题以及实际运用能力。 2 2 任务概述任务概述 完成大整数的四则运算任务,假定整数不超过五十位要求: 1) 在屏幕上能够手动输入待求的两个大整数; 2) 输入完成后通过选择可以完成大整数的加、减、乘、除运算; 3)将结果分别显示在屏幕上。 4) 验收时程序能够演示,自己单独做。 3 3 模块划分模块划分 1) 定义 c_to_d
3、(char strN, char dN)函数,实现把 str 的各位转变成对应整数, 右对齐存入 d, start 为最高位下标 2)定义 d_to_c(char dN, char strN, int start)函数, 实现把 d 中数字 dstart.N-1转变为字符左对齐存入 str 3)定义加法函数 4)定义减法函数 5)定义乘法函数 6)定义除法函数 7)定义输出格式函数 8)运用主函数计算 4 4 主要函数说明及其主要函数说明及其 N N- -S S 图图 1)主函数说明 定义变量 输入要进行运算代码数字 输入数字 调用函数进行运算 2)其他函数说明 min 函数,比较两数大小 c
4、_to_d(char strN, char dN)函数,实现把 str 的各位转变成对应整数, 右对齐存入 d, start 为最高位下标 d_to_c(char dN, char strN, int start) 函数 , 实现 把 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 内存的是要进行
5、比 较的大整数 mul(char str_aN, char str_bN, char str_cN),乘法函数 divd(char str_aN, char str_bN, char str_cN),除法函数 主要函数的 N-S 图: 图 1:函数 c_to_d(char strN,char dN) N-S 图 图 2:函数 d_to_c(char dN,char strN,int start) N-S 图 定义变量 x,y,strN,dN,startI,j,len int len,start,i,j for(i=0,j=start;ilen2) T F 定义变量 str1N, str2N,l
6、en1,len2 len2=strlen(str2) if(len1=start_b;j-) 图 6:乘法运算函数的 N-S 图 for(j=N-1;j=start_b;j-) memset(c,0,sizeof(c),) carry=0; for(i=N-1,k=j;i=start_a;i-,k-) dk=ai*bj; carry=dk/10; dk=dk%10; if(carry0) 如果有进位 T F dk=carry; k-; start_d=k+1; 把 d 累加到 c 中 memset(c,0,sizeof(c),) carry=0 for(i=N-1;i=start_d;i-) ci=ci+di+carry; carry=ci/10; ci=c