编号: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
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 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 c=1; } else c=0; s3[j]=h+'0'; //数字转字符 } if(M>N) { for(int j=min;j c=1; } else 第3页/共7 页 c=0; s3[j]=h+'0'; } } else if(M } 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 页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库五进制加减法在线全文阅读。
相关推荐: