




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 数据结构 课 程 设 计 报 告 书 题 目 数制转换 系 别 计算机科学与应用系 学 号 学生姓名 指导教师 完成日期 2013 6 1 2 数制转换数制转换 1 需求分析需求分析 任意给定一个 M 进制的数 x 实现如下要求 1 求出此数 x 的 10 进制值 用 MD 表示 2 实现对 x 向任意的一个非 M 进制的数的转换 3 至少用两种或两种以上的方法实现上述要求 用栈解决 用数组解决 其它方法解决 2 概要设计概要设计 程序流程可以用以下流程图来刻画 A 用数组实现用数组实现 B 用栈实现用栈实现 3 详细设计详细设计 A 用数组实现该问题 用数组实现该问题 D2M 函数和函数和 M2D 函数是实现该问题的主要函数 函数是实现该问题的主要函数 D2M 函数是实现十进制转换为函数是实现十进制转换为 其他进制的函数 它是将输入的十进制数其他进制的函数 它是将输入的十进制数 x 首先对需要转换的进制首先对需要转换的进制 M 取余 然后在对其取取余 然后在对其取 整 接着通过递归调用整 接着通过递归调用 D2M 函数一次将得到的整数部分一次先取余后取整 并将所得的函数一次将得到的整数部分一次先取余后取整 并将所得的 余数依次存入下一数组 然后逆向去除数组中的元素 即得到转换后的结果 而余数依次存入下一数组 然后逆向去除数组中的元素 即得到转换后的结果 而 M2D 函函 数是实现其他进制数是实现其他进制 M 转换为十进制 并将其转换为非转换为十进制 并将其转换为非 M 进制 进制 M 进制转十进制则是从该进制转十进制则是从该 开始 构造数组 数制转换函 数 输出结果 开始 创建栈 数制转换函 数 输出结果 3 M 进制数的最后一位开始运算 依次列为第进制数的最后一位开始运算 依次列为第 0 1 2 N 位并分别乘以位并分别乘以 M 的的 0 1 2 N 次方 将得到的次方相加便得到对应的十进制数 再调用次方 将得到的次方相加便得到对应的十进制数 再调用 D2M 函数将其函数将其 转换为非转换为非 M 进制的数 进制的数 B 用栈实现用栈实现 栈具有后进先出的性质 具体实现方法和数组的方法有很大联系 不再过多解释 栈具有后进先出的性质 具体实现方法和数组的方法有很大联系 不再过多解释 4 调试分析调试分析 1 构造栈的方法通过查阅书籍知道了 2 数组的递归调用查阅相关书籍了解了 3 为了让界面表达更清晰 多次调试完善了界面 5 测试结果测试结果 下面是我的测试函数及运行结果 A 数组测试结果 4 5 B 栈实现测试结果 6 7 6 总结总结 通过 数据结构 课程设计 我了解到数据结构是计算机科学中一门综合性的专业基 础课 这次的课程设计使我对数组及栈有了初步的认识 虽然课程设计的不完善 但是在 设计过程中我受益匪浅 通过查资料 网上搜索例子 让我学到了很多以前不知道的东西 提高我的分析和解决问题的能力 进一部掌握了应用系统设计的方法和不步骤 也让我意 识到自己所掌握的实在是太少了 只靠课本知识是不够的 应该多多上机调试 这样才能 提高自己 7 附源程序附源程序 A 数组实现数组实现 include include define N 1000 int i j y n s int m r reminder int x 全局变量默认初始化为全局变量默认初始化为 0 不必再赋 不必再赋 0 了了 8 D2M int g int h 十进制数转换为其他进制数十进制数转换为其他进制数 int c N i 0 reminder g h g g h if reminder 9 c i reminder 55 i else c i reminder i if g 0 D2M g h for j i 1 j 0 j if c j 65 printf c c j else 9 printf d c j return 0 M2D int e 二进制和八进制数转换为十进制数二进制和八进制数转换为十进制数 并这转并这转 换为其他进制数换为其他进制数 int a N printf 请输入请输入 d 进制位数进制位数 m scanf d printf 请输入请输入 d 进制的每位并使每位用空格隔开进制的每位并使每位用空格隔开 m for i 0 i 0 i y int pow e j a i 强制类型转换 以免造成数据丢强制类型转换 以免造成数据丢 失失 j printf 请输出所得的请输出所得的 10 进制的结果进制的结果 printf d y printf n 需要转换的进制需要转换的进制 M scanf d 10 printf 请输出转换成请输出转换成 d 进制的结果进制的结果 s D2M y s return 0 H2D int f 十六进制数转换为十进制数 并转换为十六进制数转换为十进制数 并转换为 其他进制数其他进制数 int b N printf 请输入请输入 d 进制位数进制位数 m scanf d printf 请输入请输入 d 进制的每位并使每位用空格隔开进制的每位并使每位用空格隔开 m for i 0 i 0 i y int pow f j b i 强制类型转换 以免造成数据强制类型转换 以免造成数据 丢失丢失 j printf 请输出所得的请输出所得的 10 进制的结果进制的结果 printf d y printf n 需要转换的进制需要转换的进制 M 11 scanf d printf 请输出转换成请输出转换成 d 进制的结果进制的结果 s D2M y s return 0 void main printf 请给定一个需转换的进制请给定一个需转换的进制 M 2or8or10or16 scanf d if m 2 m 8 二进制和八进制转换成十进制二进制和八进制转换成十进制 M2D m else if m 16 十六进制转换成十进制十六进制转换成十进制 H2D m else if m 10 十进制转换成其它进制十进制转换成其它进制 printf 请输入一个请输入一个 d 进制数进制数 m scanf d printf 请输入需要转换成的进制请输入需要转换成的进制 M 2or8or16 scanf d printf 请输出转换成请输出转换成 d 进制的结果进制的结果 r D2M x r 12 printf n B 栈实现栈实现 include stdio h include string h include math h include limits h include stdlib h include malloc h define TRUE 1 define OK 1 define FALSE 0 define ERROR 0 define INFEASIBLE 1 typedef int Status typedef int SElement define STACK INIT SIZE 10 define STACKINCREMENT 2 typedef struct SqStack SElement base SElement top int stacksize 13 SqStack int InitStack SqStack S S base SElement malloc STACK INIT SIZE sizeof SElement if S base exit OVERFLOW S top S base S stacksize STACK INIT SIZE return OK int DestroyStack SqStack S free S base S base NULL S top NULL S stacksize 0 return OK int ClearStack SqStack S S top S base 14 return OK int StackEmpty SqStack S 判断判断 sqstack 是否为空是否为空 if S top S base return TRUE else return FALSE int StackLength SqStack S 返回返回 s 的元素个数的元素个数 即栈的长度即栈的长度 return S top S base int GetTop SqStack S int e 若栈不为空若栈不为空 用用 e 返回返回 s 的栈顶元的栈顶元 素素 返回返回 ok if S top S base e S top 1 return OK else return ERROR 15 int Push SqStack S int e 插入元素插入元素 e 为新的栈顶元素为新的栈顶元素 if S top S base S stacksize S base SElement realloc S base S stacksize STACKINCREMENT sizeof SElement if S base exit OVERFLOW S top S base S stacksize S stacksize STACKINCREMENT S top e S top return OK int Pop SqStack S int e 若栈不空若栈不空 则删除则删除 S 的栈顶元素的栈顶元素 用用 e 返回其值返回其值 并返回并返回 OK 否则返回否则返回 ERROR if S top S base return ERROR 16 e S top return OK int StackTraverse SqStack S int visit int while S top S base visit S base printf n return OK void conversion8 SqStack s unsigned n int e InitStack 初始化栈初始化栈 printf n 0 scanf u while n 当当 n 不为不为 0 Push n n 8 17 while StackEmpty s 当栈不为空当栈不为空 Pop printf d e printf n void conversion2 SqStack s unsigned n int e InitStack 初始化栈初始化栈 printf n 0 scanf u while n 当当 n 不为不为 0 Push n n 2 while StackEmpty s 当栈不为空当栈不为空 Pop 18 printf d e printf n void conversion16 SqStack s unsigned n char d int e InitStack 初始化栈初始化栈 printf n 0 scanf u while n 当当 n 不为不为 0 Push n n 2 while StackEmpty s 当栈不为空当栈不为空 Pop switch e case 0 e 0 printf d e break 19 case 1 e 1 printf d e break case 2 e 2 printf d e break case 3 e 3 printf d e break case 4 e 4 printf d e break case 5 e 5 printf d e break case 6 e 6 printf d e break case 7 e 7 printf d e break case 8 e 8 printf d e break case 9 e 9 printf d e break case 10 d a printf c d break case 11 d b printf c d break case 12 d c printf c d break case 13 d d printf c d break case 14 d e printf c d break case 15 d f printf c d break printf d e printf n 选择选择 int choose 20 int d printf 请选择你要进行的进制的转换 请选择你要进行的进制的转换 n printf 如果是十进制转换为八进制请选择如果是十进制转换为八进制请选择 1 n printf 如果是十进制转换为二进制请选择如果是十进制转换为二进制请选择 2 n printf 如果是十进制转换为十六进制请选择如果是十进制转换为十六进制请选择 3 n printf 如果您想全部转换请选择如果您想全部转换请选择 9 n printf 如果想退出请选择如果想退出请选择 0 n printf n scanf d return d void main
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理导管安全管理体系
- 医护人员职业素质课件
- 企业内部买车位协议书
- 集体土地联营协议书
- 餐厅责任经营协议书
- 车间物品保管协议书
- 门楼制作合同协议书
- 高空吊机转让协议书
- 邻居违约建房协议书
- 贷款签订产权协议书
- 多彩的非洲文化 - 人教版课件
- 2025年年中考物理综合复习(压轴特训100题55大考点)(原卷版+解析)
- -《经济法学》1234形考任务答案-国开2024年秋
- TCGIA0012017石墨烯材料的术语定义及代号
- 2025年江苏省南通市海门市海门中学高三最后一卷生物试卷含解析
- 钢结构与焊接作业指导书
- 吉林省长春市2025届高三下学期4月三模试题 英语 含解析
- 医院退休返聘协议书10篇
- 第五单元:含长方形和正方形的不规则或组合图形的面积专项练习-2023-2024学年三年级数学下册典型例题系列(解析版)人教版
- 残疾人健康管理
- 岗位就业协议书范本
评论
0/150
提交评论