1、c语言中进制转换数据结构实训报告进制之间转换数据结构程序设计报告专 业: 计算机网络技术 班 级: 姓 名: 学 号: 二一二 年 四 月 三十 日目 录1.需求分析 12.概要设计 23.采用的算法(流程图)24. 详细设计 25. 调试分析 36.用户使用说明37.测试结果38.附录 131、需求分析(1)输入的形式和输入值的范围: 不大于4位的十六进制数 不大于16位的二进制数 十进制数(2)输出的形式:同上(3)程序的功能:十六进制转化为十进制 十六进制转化为二进制 十六进制转化为八进制 十进制转化为二进制 十进制转化为八进制 二进制转化为十进制 二进制转化为十六进制(4)测试数据十六
2、进制转化为十进制、十六进制转化为二进制:十六进制转化为八进制、十进制转化为二进制、十进制转化为八进制、二进制转化为十进制:二进制转化为十六进制、输入输入出错:2、概要设计:一,进制之间的转换用到头文件包match.h、stdio.h、stdlib.h。问题要求根据输入的不同字符,执行不同的功能。转换过程中需要各个函数之间进行调用二,输入合适的数据得出转换的数据,其重要考虑到输入数据的范围。3.采用的算法(流程图)4.详细设计:5.调试分析:(1) 首先是乱码问题。由于使用中文所以出现了乱码,把中文改成英文就好了。(2) 如果选择0直接退出根本看不到goodbye所以加getch()可以停留在执
3、行屏幕(3) 在这次设计中,首先,我发现了很多问题,由于自己基本的语句掌握的不是十分熟练,所以在一开始不知道怎样把松散的函数调用紧凑地联系起来,经过仔细的看书以及向同学请教,终于将基本框架搭好,在调整细节时就相对轻松一些了,所以经过这次课程设计,我总结出了自己在学习数据结构中的不足,并且为其他类似语言打下了良好的基础,十分感谢老师以及同学的帮助,在此过程中还锻炼了我们与别人沟通的能力,使我们受益匪浅。6、用户使用说明:(1)运行程序选择自己要转换的形式(2)输入对应数据(3)输入0退出7、测试结果:输入1输入1A1输出417输入2输入1A1输出110100001B输入3输入1A1输出641Q输
4、入4输入12输出1100B输入5输入 12输出 14K输入6输入11011010输出218输入7输入101输出5H输入0退出8、附录(源代码):#include #include #includeint Hten() int i=0,j=0,m=0; char x10;char f=0; printf(Please enter no more than 4digit hexadecimal number sixteenn); while(f!=n) scanf(%c,&xi); f=xi; m+; i+; for(i=0;i=A&xi=0&xi=9) xi=xi-48; else printf
5、(Please input the correct formn); return 0; for(i=0;itop=-1; int Empty(seqstack *s) if(s-top=0) return 0;/*false*/ else return 1;/*ture*/ int Full(seqstack *s) if(s-top=maxsize-1) return 1; else return 0; seqstack *push(seqstack *s,int x,int N) int n; if(Full(s) printf(overfulln); return NULL; else
6、while(x!=0) n=x%N; x=x/N; s-top+; s-datas-top=n; return s; int pop(seqstack *s) int x; if(Empty(s) printf(emptyn);return 0; else x=s-datas-top; s-top-; return x; Htwo() seqstack *s; int k; s=(seqstack *)malloc(sizeof(seqstack); setnull(s); k=Hten(); if(k!=0) push(s,k,2); else return ; printf(Convert
7、ed to a binary outcome forn); while(!Empty(s) printf(%d,pop(s); printf(Bn);Height() int k; seqstack *s; s=(seqstack *)malloc(sizeof(seqstack); setnull(s); k=Hten(); if(k!=0) push(s,k,8); else return; printf(Converted to octal resultsn); while(!Empty(s) printf(%d,pop(s); printf(Qn);Tentwo() seqstack
8、*s; int k; s=(seqstack *)malloc(sizeof(seqstack); setnull(s); printf(Please enter a decimal numbern); scanf(%d,&k); push(s,k,2); printf(Converted to a binary outcome forn); while(!Empty(s) printf(%d,pop(s); printf(Bn);Teneight() seqstack *s; int k; s=(seqstack *)malloc(sizeof(seqstack); setnull(s);
9、printf(Please enter a decimal numbern); scanf(%d,&k); push(s,k,8); printf(Converted to octal resultsn); while(!Empty(s) printf(%d,pop(s); printf(Qn);int Twoten() int i=0,j=0,m=0; char x10;char f=0; printf(Please enter no more than 16 bits of the binary numbern); while(f!=n) scanf(%c,&xi); f=xi; m+;
10、i+; for(i=0;im-1;i+) if(xi=0|xi=1) xi=xi-48; else printf(Please input the correct form!n); return 0; for(i=0;im-1;i+) j=j+xi*pow(2,m-1-i-1); return j;Twoh() int k,y; seqstack *s; s=(seqstack *)malloc(sizeof(seqstack); setnull(s); k=Twoten(); if(k!=0) push(s,k,16); else return ; printf(Into sixteen d
11、ecimal resultsn); while(!Empty(s) y=pop(s); if(y10) printf(%d,y); else printf(%c,y+55); printf(Hn); main() int a,k; INDEX: printf(*n); printf(0:t exit n); printf(1:tSixteen hexadecimal conversion to decimaln); printf(2:tSixteen hexadecimal into binaryn); printf(3:tSixteen hexadecimal converted to oc
12、taln); printf(4:tDecimal to binaryn); printf(5:tDecimal to octaln); printf(6:tBinary to decimal conversionn); printf(7:tBinary conversion of sixteen hexadecimaln); printf( ttcopyright 2008-2018 n); printf(*n);SCANI: printf(What are you going to do?Please select a menun); scanf(%d,&a); getchar(); swi
13、tch(a) case 0: goto EXT; case 1: goto SET1; case 2: goto SET2; case 3: goto SET3; case 4: goto SET4; case 5: goto SET5; case 6: goto SET6; case 7:goto SET7; default: goto INDEX; SET1:k=Hten(); if(k!=0) printf(The result is converted to decimaln); printf(%dn,k); goto SCANI; SET2: Htwo(); goto SCANI; SET3: Height(); goto SCANI; SET4: Tentwo();goto SCANI; SET5: Teneight();goto SCANI; SET6:k=Twoten(); if(k!=0) printf(The result is converted to decimaln); printf(%dn,k); goto SCANI; SET7:Twoh();goto SCANI; EXT: printf( goodbye!n); getch();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1