Forpersonaluseonlyinstudyandresearch;mercialuse膆青岛理工大学芄课程实验报告葿课程名称蝿数据结构芈班级莂软件112膃实验日期蒀2018年4月15号肅姓名蚄何金荣薂学号芀201807225肆实验成绩袃羁实验名称蚆栈的应用------进制转换膈膅实莁验蒇目羅的芃及袀要膇求肆莂通过进制转换的表示和计算,熟练掌握栈的基本操作,以及用顺序栈表示栈的存储结构操作的实现。芀使学生掌握栈的最基本和最主要的操作:插入和删除,出栈和进栈等操作。羈熟悉C++的基本编程方法,掌握集成编译环境的调试方法。肈学习各个进制数之间的转换,掌握其方法。螄学习使用栈来解决实际问题的能力。虿蚈实袅验袃环莂境蒈羇硬件平台:普通个人PC机芅软件平台:Windows732位操作系统螂编程环境:VisualC++,将其转换成十六进制,八进制数,二进制数,或转换成相应的N进制数。蒂实现进制转换的内容如下:蚀(1>建立一个栈的结构体,实现栈的出栈,入栈等九个基本操作。虿(2>通过conversion(>函数,任意输入一个十进制数,将其转换成十六进制数。袇(3>通过conversion1(>函数,任意输入一个十进制数,将其转换成八进制数。膈(4>通过conversion2(>函数,任意输入一个十进制数,将其转换成二进制数。莄(5>通过conversion3(>函数,任意输入要转换的进制数N,将任意数转换成相应的进制数。蚄(6>通过output(>函数打印输出相应的结果。羈芇算螃法蒄描罿述虿及蒇实袁验肁步螇骤袆蚁测试主函数流程:袈袆开始莅任意输入一个十进制数m(m>=0>莁通过conversion(>函数将其转换成十六进制数袀通过conversion1(>函数将其转换成八进制数芈螅通过conversion2(>函数将其转换成二进制数膂羁莆输入相应的进制数N,由conversion3(>函数。膄袂打印输出相应的进制数螈算法描述:虿/************************************************************/蚃/*定义数据结构*/薂/************************************************************/螀typedefstructSqStack袇{芇SElemType*base。/*在栈构造之前和销毁之后,base的值为NULL*/莃SElemType*top。/*栈顶指针*/袁intstacksize。/*当前已分配的存储空间,以元素为单位*/羆}SqStack。/*顺序栈*/螆/************************************************************/肃/*十进制转换十六进制*/蚈/************************************************************/芈voidconversion(>膆{/*对于输入的任意一个非负10进制整数,打印输出与其等值的16进制数*/袄SqStacks。螀unsignedn。/*非负整数*/蒆SElemTypee。薅InitStack(&s>。/*初始化栈*/薄printf("将10进制整数n转换为16进制数,请输入:n(>=0>=">。螁scanf("%u",&n>。/*输入非负十进制整数n*/蝿while(n>/*当n不等于0*/肄{莄Push(&s,n%16>。/*入栈n除以16的余数(16进制的低位>*/蕿n=n/16。袇}蒄while(!StackEmpty(s>>/*当栈不空*/螁{蚀Pop(&s,&e>。/*弹出栈顶元素且赋值给e*/肅if(e<=9>袃printf("%d",e>。薁else蚁printf("%c",e+55>。/*大于9的余数,输出相应的字符*/莈}薇printf("\n">。芁}葿/************************************************************/蒆/*十进制转换八进制*/羆/************************************************************/肂voidconversion1(>薀{衿 SqStacks。蒅 unsignedn。螂 SElemTypee。薁 InitStack(&s>。羇 printf("将10进制整数n转换为8进制数,请输入:n(>=0>=">。袅 scanf("%u",&n>。/*输入非负十进制整数n*/薃while(n>/*当n不等于0*/荿{荿Push(&s,n%8>。/*入栈n除以
实验进制转换 来自淘豆网m.daumloan.com转载请标明出处.