五进制加减法

2019-01-10 14:10

编号:17

河北工业大学计算机软件技术基础(VC)课程设计报告

一、题目:

17五进制加减法

二、设计思路

1、总体设计

(1)由用户输入两个五进制无符号整数,计算得到它们的和、差并输出 (2)程序运行时,提示用户输入两个五进制整数 (3)程序计算后,输出运算结果 2、各功能模块的设计

1) 单个字符与数字的转换

在字符转数字时,'0'~'4'只需减去'0'即可;同样的,数字转字符时,只需加上'0'。 2) 求两个数据(字符数组中)的和

从低位向高位逐位相加,每位数字相加时,实际是三个数字相加:两个加数的当前位

数字和低位向当前位的进位。要将两个加数的数组元素(字符型)转换成相应的数字再相加,相加后转换为字符存入存放和的字符数组中。最后对存放和的字符数组求逆序,使得高位存放在下标为0的元素中。

3) 当输入大于4的数时 程序显示错误,退出循环,当输入小于4的数时程序正常运行,

主要用循环模式来实现,如果与条件不相符,就退出循环。

4) 求两个数据(字符数组中)的差

从低位向高位逐位相减,每位数字相减时,实际是三个数字相减,要将两个加减数的

数组元素(字符型)转换成相应的数字再相减,相加后转换为字符存入存放和的字符数组中。最后对存放和的字符数组求逆序,使得高位存放在下标为0的元素中。

3、设计中的主要困难及解决方案 1)困难1

相减时高位的零无法去掉 不影响运行结果 2)困难2

乘法没有编出来

4、你所设计的程序最终完成的功能

1) 说明你编制的程序能完成的功能

由用户输入两个五进制无符号整数,计算得到它们的和、差并输出。 2)准备的测试数据及运行结果 准备测试数据

34210234 243102 运行结果

第1页/共7 页

三、程序清单

本程序清单: #include char s1[100],s2[100],s3[100],s4[100],t;

int i=0,k=0,max,min,c=0,h,N,M,x,d=0;

void math(int a,char s[]); void main() {

cout<<\ cin.getline(s1,100); cout<<\ cin.getline(s2,100); while(s1[i]!='\\0') //计算字符长度 { i++;

N=i;

}

math(N,s1); //排逆序

while(s2[k]!='\\0') //计算字符长度 {

k++; M=k; }

math(M,s2); //排逆序 if(M>N) { min=N;max=M;

}

else if(M

max=N;min=M; } else { max=N;

min=N;

编号:17

第2页/共7 页

编号:17

}

for(int f=0;f'4') { cout<<\ cout<

break;

}

else if(s2[f]>'4') {

cout<<\ cout<

break;

}

for(int u=N;u>=0;u--)

cout<

for(int e=M;e>=0;e--)

cout<

for(int j=0;j=5) { h-=5;

c=1;

} else

c=0;

s3[j]=h+'0'; //数字转字符

}

if(M>N) { for(int j=min;j=5) { h-=5;

c=1;

}

else

第3页/共7 页

c=0; s3[j]=h+'0';

}

} else if(M=5) { h-=5; c=1;

}

else c=0; s3[j]=h+'0';

}

}

if(c==0)

{ math(max,s3); //排逆序 for(int p=0;p

cout<

}

else if(c==1) { s3[max]='1';

math(max+1,s3); //排逆序 for(int p=0;p

cout<

}

for(int o=N;o>=0;o--) cout<

for(int q=M;q>=0;q--) cout<

if(M

h=s1[z]-'0'-(s2[z]-'0')-d; //字符转数字编号:17

第4页/共7 页

cout<

编号:17

if(h<0) { }

h+=5; d=1;

else

d=0;

s4[z]=h+'0'; //数字转字符

}

for(int b=min;b

h=s1[b]-'0'-d; if(h<0) { h+=5; d=1;

} else d=0; s4[b]=h+'0';

}

math(max,s4); //排逆序 for(x=0;x

cout<

else if(M>N) { for(int z=0;z

}

else c=0; s4[z]=h+'0';

} for(int b=min;b

{

h=s2[b]-'0'-d;

if(h<0)

{

第5页/共7 页


五进制加减法.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:纺纱学习题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: