




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
福建农林大学金山学院 课程设计报告 课程名称: 算法与数据结构课程设计 课程设计题目: 数制转换 姓 名: 陈华实 系: 信息与机电工程系 专 业: 计算机科学与技术 年 级: 2009 学 号: 092231044 指导教师: 陈小娥 职 称: 助教 2011 年 6 月 24 日 福建农林大学金山学院课程设计结果评定 评语: 序号 评定标准 分值 评定结果 1 课程设计报告符合规范,条理清晰,重点突出 20 2 程序实现设计方案,软件可靠性好 40 3 课程设计有自己的收获、体会、感受,等等 15 4 能够按照要求演示课程设计 15 5 有一定的创新性,难易程度 10 合计 成绩: 任务下达日期:2010 年 月 日指导教师签字: 评定日期: 3 目 录 1 设计任务1 2 设计要求1 3 设计方案 1 4 设计内容 1 5 实验结果 2 6 总结 3 7 附录 3 1 数制转换 1.设计任务 主要利用 c+语言设计开发一个数制转换器,至少具有如下功能:输入一种数 的数据及数制,输出这个数的其他数制表示,要求包括二、八、十和十六进制。 2.设计要求 1、培养学生应用面向对象程序设计设计方法及思想解决实际问题的能力。 2、培养学生掌握使用面向对象程序设计语言 C+和面向对象开发平台 Visual C+。 3、培养学生调查研究,查阅技术文献、资料、手册以及编写技术文献的能 力。 本课程设计要实现的主要功能如下: 、对给字一个 M 进制的数据 x,求出此数 x 的 10 进制值(用 MD 表示); 、实现对 x 向任意的一个非 M 进制的数的转换; 、至少用两种方法实现上述要求(用栈解决,用数组解决,其它方法解决)。 3.设计方案 算法思想: 利用 D2M()函数和 M2D()函数是实现该问题的主要函数。 D2M()函数是实现十进制转换为其它进制的函数,它是将输入的十进制数 取首先对需要转换的进制 M 取余,然后再对其取整,接着通过递归调用 D2M() 函数依次将得到的整数部分依次先取余后取整,并将所得的余数依次存入一个 数组中,然后逆向取出数组中的元素,即得到转换后的结果。而 M2D()函数则 是实现其他进制 M 转换为十进制,并将其转换为非 M 进制的数。M 进制转十进 制则是从该 M 进制数的最后一位开始算,依次列为第、位并分别 乘以 M 的、次方,将得到的次方相加便得到对应的十进制数,再 调用 D2M()函数将其转换为非 M 进制的数。 . 4.设计内容 模块分化 1、 SqStack 定义栈,说明 base 为栈底指针,top 为栈顶指针, stacksize 为栈容量; 2、 int InitStack(SqStack int *top; int stacksize; SqStack; 5.实验结果 十进制转换成二进制: 十进制转换成八进制: 十进制转换成十六进制: 3 二进制转换成十进制和八进制: 十六进制转换成十进制和八进制: 6.总结 通过这次课程设计,我对数据结构有了新的认识,我对 C+语言有了更深 刻的了解,增强了程序的编写能力,巩固了专业知识,虽然在调试程序遇到了 很多的困难,但是都一一去把它解决了。从中也让我知道了要学好这门课程, 仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就 是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东 西。 参考文献 1 马石安,魏文平编著, 面向对象程序:C+语言描述 ,北京:清华大学出版社,2007 2 李宽等编著,零基础学 C+,北京:机械工业出版社,2009.1 2 宁正元等编著,算法与数据结构,北京:清华大学出版社,2006.1 7.附录 #include #include #include #include #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 int e,m,x,s,t; int r,y,i,n; typedef struct int *base; int *top; int stacksize; SqStack; int InitStack(SqStack if(!S.base) exit(0); S.top=S.base; S.stacksize=STACK_INIT_SIZE; return 0; int GetTop(SqStack S, int e=*(S.top-1); return 0; int Push(SqStack if(!S.base) return 1 ; 5 S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; *S.top+=e; return 0; int Pop(SqStack e=*-S.top; return 0; int StackEmpty(SqStack S) if(S.top=S.base) return 1; return 0 ; int DestroyStack(SqStack S.top=NULL; S.base=S.top; return 0 ; SqStack S; D2M(int a,int b) while(a) r=a%b; if(r9) r=r+55; Push(S,r); a/=b; printf(“该数转换成%d 进制的结果:“,b); while(!StackEmpty(S) Pop(S,e); if(e=65) printf(“%c“,e); else printf(“%d“,e); return 0; M2D() char c1000; printf(“请输入需要转换的数的位数:“); scanf(“%d“, printf(“请输入需要转换的数的每位并用空格隔开:“); for(i=0;in;i+) scanf(“%x“, Push(S,ci); i=0; while(!StackEmpty(S) 7 Pop(S,e); y+=(int)pow(m,i)*e; i+; printf(“转换成 10 进制的结果是:“); printf(“%d“,y); return 0; void main() InitStack(S); printf(“请输入需要转换的进制:“); scanf(“%d“, if(m=10) printf(“请给定一个需要转换的 10 进制数:“); scanf(“%d“, printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园防疫知识培训会报道课件
- 技工安全知识培训资料课件
- 2025年财务分析与预算岗位招聘面试预测题详解
- 2025年公安民警岗位招考笔试专业题集锦
- 扶贫知识培训会新闻稿课件
- 扶贫政策知识大培训班课件
- 期中考试作文读圆明园的毁灭有感550字14篇
- 做一条自由游泳的鱼(13篇)
- 《呼啸山庄》课件
- 2025年航空装备行业需求分析及创新策略研究报告
- 土地使用权法律风险尽职调查指南
- 2025年8月16日贵州省黔东南州事业单位遴选笔试真题及答案解析(专业水平测试)
- 2025-2026秋季学年第一学期学生国旗下演讲稿(20周):第一周 新程启航礼润心田-开学典礼
- 2025年教师招聘小学语文真题及答案
- 2025年突发疾病应急演练方案(脚本)
- 幼儿园保安人员培训记录
- 2025年北京市中考语文真题(含答案)
- 2025年(完整版)十八项核心制度培训考核试题(含答案)
- 2025年低压电工理论考试1000题(附答案)
- KET教学课件新版
- 小学英语“教学评一体化”实施
评论
0/150
提交评论