数据结构课程设计-数制转换问题

数据结构课程设计-数制转换问题

ID:6789321

大小:189.50 KB

页数:8页

时间:2018-01-25

数据结构课程设计-数制转换问题_第1页
数据结构课程设计-数制转换问题_第2页
数据结构课程设计-数制转换问题_第3页
数据结构课程设计-数制转换问题_第4页
数据结构课程设计-数制转换问题_第5页
资源描述:

《数据结构课程设计-数制转换问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、安徽省巢湖学院计算机与信息工程学院课程设计报告课程名称《数据结构》课题名称数制转换问题专业计算机科学与技术班级10计本2班学号姓名联系方式指导教师2011年12月28日目录1、数据结构课程设计任务书11.1、题目11.2、要求12、总体设计12.1、功能模块设计12.2、所有功能模块的流程图23、详细设计23.1、程序中所采用的数据结构及存储结构的说明23.2、算法的设计思想24、调试与测试:34.1、调试方法与步骤:34.2、测试结果的分析与讨论:34.3、测试过程中遇到的主要问题及采取的解决措施:35、时间复杂度的分析:36、源程序清单和执行结果37、C程序设计总结68、致谢69、参考文

2、献61、数据结构课程设计任务书1.1、题目数制转换问题1.2、要求任意给定一个M进制的数x,请实现如下要求:1)求出此数x的10进制值(用MD表示)2)实现对x向任意的一个非M进制的数的转换。3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。2、总体设计在数组和栈实现时,利用for()循环和while()循环以及调用进制间的转换函数和输出函数,使M进制先转换成十进制再转换成非M进制。2.1、功能模块设计根据课程设计题目的功能要求,各个功能模块的组成框图如下:需要转换M进制数模块建立串实现模块栈实现模块10进制值输出模块10进制值输出模块非M进制转换模块1非M进

3、制转换模块2注:重点模块功能描述:1.串实现模块:把M进制数x存入串中。2.栈实现模块:把M进制数x存入栈中。3.非M进制转换模块1:运用串实现转换。4.非M进制转换模块2:运用栈实现转换。第6页2.2、所有功能模块的流程图开始串栈输入需要转换的进制和数输入要转换到的进制N10进制值输出转换后输出3、详细设计模块功能说明:如函数功能、入口及出口参数说明,函数调用关系描述等;3.1、程序中所采用的数据结构及存储结构的说明本程序运用串和栈实现数组之间的转换。把M进制的数x的各位分别存入串和链栈中,运用数组的读入读出和栈的出栈和入栈算法,让程序更加人性化的实现任意数制之间的转换,在运用函数调用模块

4、的连接,输出转换成10进制的值和非M进制的值。3.2、算法的设计思想1、用串实现该问题:⑴ m,n,x是定义的全局变量;⑵ Loop循环是实现M进制数转换为10进制;⑶ trans()是实现10进制数转换为n进制数的函数;(4) voidmain()是主函数,功能是给出测试的数据,并在特定条件下调用trans()函数。2、用栈实现该问题: ⑴ SeqStack定义栈,top为栈顶指针;⑵intInitStack(SqStack&S)到voidClearStack(SqStack&S)六大模块分别表示构造一个空栈、判断栈是否为空、判断栈是否为满、进栈、出栈、摧毁栈;⑶ SeqStackS是指定

5、义栈S;⑷ for()循环和while()循环的功能是将M进制数转换成10进制数;⑸ do...while实现输入转换合理的进制,第二个while()是把之前转换的10进制值压入栈,第三个while()循环是转换后的出栈输出;⑹voidmain()是主函数。其功能是输入需要测试的数据以及需要转换的进制,实现M进制数向任意非M进制数的转换。第6页4、调试与测试:4.1、调试方法与步骤:第一步:用串实现的测试;第二步:用栈实现的测试。4.2、测试结果的分析与讨论:串转换:栈转换:4.3、测试过程中遇到的主要问题及采取的解决措施:遇到的问题:通常是2、4、8、10、16进制之间的转换。任意进制之间

6、的转换在串和栈的处理时遇到了大于10的数的处理难题,同时在栈的处理时如何处理把M进制准换成10进制在转换成N进制时简单方法时,特别是数字的长度处理上,也遇到了一定的难题。问题的解决:运用网络解决了串的中数组大于10的处理方法,同时利用数组自行解决数字长度的求解并压入栈,实现向10进制的转换,并以10进制值为中间点顺利利用栈向非M进制的转换。5、时间复杂度的分析:串转换:任一数转换为十进制时间复杂度为O(n)十进制转换为其他进制时间复杂度为O(n*n)栈转换:任一数转换为十进制时间复杂度为O(n)十进制转换为其他进制时间复杂度为O(n)6、源程序清单和执行结果串转换:#include

7、o.h>#include//输入十进制数N和转化的进制数Mvoidtrans(intn,intm)第6页{charstr[100];inti;for(i=0;n>0;i++){if(n%m<10){str[i]=n%m+'0';}else{str[i]=n%m-10+'A';}n=n/m;}for(n=i;n>0;n--){printf("%c",str[n-1]);}}voidmain(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。