电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

8页
  • 卖家[上传人]:汽***
  • 文档编号:507365879
  • 上传时间:2023-04-15
  • 文档格式:DOC
  • 文档大小:212KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、安徽省巢湖学院计算机与信息工程学院课程设计报告课程名称 数据结构 课题名称 数制转换问题 专业 计算机科学与技术 班级 10计本2班 学号 10012100 姓名 联系方式 指导教师2011年12月28日目 录1、数据结构课程设计任务书1.1、题目1.2、要求2、总体设计2.1、功能模块设计2.2、所有功能模块的流程图3、详细设计3.1、程序中所采用的数据结构及存储结构的说明3.2、算法的设计思想4、调试与测试:4.1、调试方法与步骤:4.2、测试结果的分析与讨论:4.3、测试过程中遇到的主要问题及采取的解决措施:5、时间复杂度的分析:6、源程序清单和执行结果7、C程序设计总结68、致谢69、参考文献61、数据结构课程设计任务书1.1、题目数制转换问题1.2、要求任意给定一个M进制的数x ,请实现如下要求:1) 求出此数x的10进制值(用MD表示)2) 实现对x向任意的一个非M进制的数的转换。3) 至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。2、总体设计在数组和栈实现时,利用for()循环和while()循环以及调用进制间的转换函数和输出函数,使M进制

      2、先转换成十进制再转换成非M进制。2.1、功能模块设计根据课程设计题目的功能要求,各个功能模块的组成框图如下:需要转换M进制数模块建立串实现模块栈实现模块10进制值输出模块10进制值输出模块非M进制转换模块1非M进制转换模块2注:重点模块功能描述:1.串实现模块:把M进制数x存入串中。 2.栈实现模块:把M进制数x存入栈中。3.非M进制转换模块1:运用串实现转换。 4.非M进制转换模块2:运用栈实现转换。2.2、所有功能模块的流程图开始串栈输入需要转换的进制和数输入要转换到的进制N10进制值输出转换后输出3、详细设计模块功能说明:如函数功能、入口及出口参数说明,函数调用关系描述等;3.1、程序中所采用的数据结构及存储结构的说明本程序运用串和栈实现数组之间的转换。把M进制的数x的各位分别存入串和链栈中,运用数组的读入读出和栈的出栈和入栈算法,让程序更加人性化的实现任意数制之间的转换,在运用函数调用模块的连接,输出转换成10进制的值和非M进制的值。3.2、算法的设计思想、用串实现该问题:m,n,x是定义的全局变量;Loop循环是实现M进制数转换为10进制;trans()是实现10进制数转换为

      3、n进制数的函数;(4)void main()是主函数,功能是给出测试的数据,并在特定条件下调用trans()函数。、用栈实现该问题: SeqStack定义栈, top为栈顶指针; int InitStack(SqStack &S)到void ClearStack(SqStack &S)六大模块分别表示构造一个空栈、判断栈是否为空、判断栈是否为满、进栈、出栈、摧毁栈;SeqStack S是指定义栈S;for()循环和while()循环的功能是将M进制数转换成10进制数;do.while实现输入转换合理的进制,第二个while()是把之前转换的10进制值压入栈,第三个while()循环是转换后的出栈输出; void main()是主函数。其功能是输入需要测试的数据以及需要转换的进制,实现M进制数向任意非M进制数的转换。4、调试与测试:4.1、调试方法与步骤:第一步:用串实现的测试;第二步:用栈实现的测试。4.2、测试结果的分析与讨论:串转换:栈转换:4.3、测试过程中遇到的主要问题及采取的解决措施:遇到的问题:通常是2、4、8、10、16进制之间的转换。任意进制之间的转换在串和栈的处理时遇

      4、到了大于10的数的处理难题,同时在栈的处理时如何处理把M进制准换成10进制在转换成N进制时简单方法时,特别是数字的长度处理上,也遇到了一定的难题。问题的解决:运用网络解决了串的中数组大于10的处理方法,同时利用数组自行解决数字长度的求解并压入栈,实现向10进制的转换,并以10进制值为中间点顺利利用栈向非M进制的转换。5、时间复杂度的分析:串转换:任一数转换为十进制时间复杂度为O(n)十进制转换为其他进制时间复杂度为O(n*n)栈转换:任一数转换为十进制时间复杂度为O(n)十进制转换为其他进制时间复杂度为O(n)6、源程序清单和执行结果串转换:#include #include /输入十进制数N和转化的进制数Mvoid trans(int n,int m) char str100; int i;for(i=0;n0;i+) if (n%m0;n-)printf(%c,strn-1); void main() int m,n,x; char ch; printf(gei ding jing zhi M:); scanf(%d,&m); loop:printf(gei ding yi ge

      5、%d jin zhi de shu X:,m); fflush(stdin); /一个M进制的数X转10进制 for(x=0;) ch=getchar(); if(ch=0 & ch=a & ch=A & ch=m)goto loop; x=x*m+n; printf(zhuan hua cheng 10 jin zhi de shu wei:%dn,x); printf(gei ding yao zhuan hua cheng de jin zhi N:); scanf(%d,&m); printf(zhuan hua cheng %d jin zhi hou de jie guo:,m); trans(x,m); printf(n); 栈转换:#include #include #define Stack_Size 20typedef int ElemType;/顺序栈存储类型typedef structElemType elemStack_Size;int top; SeqStack;/初始化:为未初始化的顺序栈S设置栈顶指针void InitStack(SeqStack *S)

      6、S-top=-1; printf( kong zhan S=( )n);/判空栈:判断栈S是否为空栈int IsEmpty(SeqStack *S)if(S-top=-1) return 1;else return 0;/判栈满:判断栈S是否为满栈int IsFull(SeqStack *S)if(S-top=Stack_Size-1) return 1;else return 0;/进栈:向S栈顶压入一个数据元素int Push(SeqStack *S,ElemType x)if(IsFull(S) return 0;S-top+;S-elemS-top=x;return 1;/出栈:弹出S的栈顶元素,并用x返回int Pop(SeqStack *S,ElemType *x) if(IsEmpty(S) return 0; *x=S-elemS-top;S-top-; return 1;/销毁栈Svoid ClearStack(SeqStack *S)free(S);printf(zhan xiao hui n);void main()char x20;int Mx;int M; i

      7、nt m;int X=0;int t;int i,length; SeqStack *S=(SeqStack *)malloc(sizeof(SeqStack); InitStack(S); printf(qing shu ru jin zhi he shu : ); scanf(%d,%s,&Mx,x); t=1; length=strlen(x); for(i=0;i=a&xi=z) Push(S,xi-a+10); else Push(S,xi-0); while(!IsEmpty(S) /求十进制数 Pop(S,&m);X+=m*t;t*=Mx; printf(shi jin zhi shu=%dn,X); doprintf(zhuan huan de jin zhi : ); scanf(%d,&M);while(M16|M=Mx); while(X!=0) /用上步求的十进制数来转换成其他进制数 m=X%M;Push(S,m);X=X/M; printf(%d jinzhi zhuan huan cheng %d zhi de zhi : ,Mx,M); while(!IsEmpty(S) Pop(S,&m); if(m=10)printf(%c,a+m-10); else printf(%d,m); printf(n);ClearStack(S);7、C程序设计总结本程序在刚开始调试时有许多错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时可根据提示进行相关操作,能正确输出结果。在刚开始的几次调试中曾经出现过不能运行、不能产生产生真确结果的问题。在这次设计过程中,不仅复习课本上所学知识,还通过查资料、问同学学到了课本上没有的知识。从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起来应用,力争写出完美的程序。除此之外,我还得到了一些有用的教训:写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意。在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误。8、致谢谢谢所有对

      《数据结构课程设计-数制转换问题.doc》由会员汽***分享,可在线阅读,更多相关《数据结构课程设计-数制转换问题.doc》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.