文档详情

十进制与进制整数转换.doc

发布:2017-03-29约2.47千字共4页下载文档
文本预览下载声明
河北工业大学计算机软件技术基础(VC)课程设计报告 学院 班级 姓名 学号 ___ 成绩 一、题目: 十进制与六进制整数的转换(18题) 二、设计思路 1、总体设计 1)分析程序的功能 就是实现十进制与六进制整数间的转换。即根据用户输入的进制和数据,转换得到对应的整数。 2)系统总体结构:设计程序的组成模块,简述各模块功能。 包括主函数,头文件,十进制转六进制的函数,倒序函数,六进制转十进制的函数, 检验输入数据是否合法函数。 2、各功能模块的设计: a.主函数:定义所有变量并运行程序; b.十进转六进制函数:将十进制数转换成六种进制数据(字符数组中); c.倒序函数:将字符数组中的内容求逆序,即得到转换数据; d. 六进制转十进制的函数:按位权进行多项式展开相加,得到对应的十进制数; e. 检验输入数据是否合法函数:检验输入数据是否合法。 3、设计中的主要困难及解决方案 1)在采用除留余数法求六进制数时,循环控制不好。 2)在编译主函数时经常少掉好多可能的情况。 4、你所设计的程序最终完成的功能 1)就是实现十进制与六进制整数间的转换。即根据用户输入的进制和数据,转换得到对应的整数。 2)准备的测试数据及运行结果 请输入进制:6 请输入数据:12345 6进制数据12345转化成10进制数据为:1865 是否要继续?(y为继续)y 请输入进制:10 请输入数据:988965461 10进制数据988965461转换成6进制的数据为:242044543445 是否要继续?(y为继续)y 请输入进制:6 请输入数据:564126123 输入错误,请重新输入: 是否要继续?(y为继续) 三、程序清单 1、void main文件清单 #includeiostream.h #includetou.h void main()//主函数 { int t,i,p,m; char s[200],pd; do { cout请输入进制:; cinm; for(;m!=6m!=10;) { cout输入错误,请重新输入:; cinm; } if(m==10) { cout请输入数据:; cint; tensix(s,t);//调用十进制转六进制函数进行转换 cout10进制数据t转换成6进制的数据为:sendl; } if(m==6) { cout请输入数据:; cins; for(i=0;s[i]!=\0;i++)//对是否为六进制数进行判断 { p=s[i]-0; if(p5) { cout输入错误,请重新输入:endl; break; } } if(p=5) { t=sixten(s);//调用六进制转十进制函数进行转换 cout6进制数据s转化成10进制数据为:tendl; } } cout是否要继续?(y为继续); cinpd;//判断程序是否还需要进行 }while(pd==y||pd==Y); } 2、tou.h文件清单 void tensix(char s[], long int t);//定义十进制转换为六进制函数 long int sixten(char s[]);//定义六进制转换为十进制的函数 void dx(char s[]);//对数组进行倒叙的函数 3、tensix.cpp文件清单 #includetou.h void tensix(char s[],long int t)//十进制转换六进制的函数的具体编译 { int x,i,e; e=t; i=0; for (;t!=0;)//采用除留余数法求六进制数 { x=t%6; s[i]=x+0; t=t/6; i++; } s[i]=\0; if(e==0) { s[i]=e+0; s[i+1]=\0; } dx(s);//调用倒序函数,将字符数组中的内容求逆序,即得到转换数据 } 4、dx.cpp文件清单 #includestring.h void dx(char s[] )//倒序函数的具体编译 { int j,len; char c; len=strlen(s); for (j=0;jlen/2;j++) { c=s[j]; s[j]=s[len-1-j]; s[len-1-j]=c; } } 5、sixten.cpp文件清单 #includestring.h #includ
显示全部
相似文档