数据结构课程设计-数制转换问题.doc_第1页
数据结构课程设计-数制转换问题.doc_第2页
数据结构课程设计-数制转换问题.doc_第3页
数据结构课程设计-数制转换问题.doc_第4页
数据结构课程设计-数制转换问题.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安文理学院软件学院课程设计报告设计名称: 数据结构课程设计 设计题目: 数制转换问题 学生学号: 专业班级: 学生姓名: 学生成绩: 指导教师(职称): 课题工作时间: 2014.6.16 至 2014.6.27 说明:1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个学生。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩由指导教师实施。4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设计的情况另行规定。5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按不及格处理。软件学院课程设计任务书学生姓名学号专业班级设计题目在表达式123456789中插入适当的+、-使算式等于100内容概要: 我们经常会看到数学趣味设计题,例如1234=10插入符号使等式成立,但此类问题是用手算难以完全记录所有的等式结果,为此我们我们可以用电脑进行各种计算并记录结果。本选题根据此需求,利用数据结构的知识实现了:在表达式123456789中插入适当的+、-使算式等于100。 使用C+语言编写数制转换的程序,其中包含有三种方法:字符的结构,递归的结构和数组的结构。在wint-c的环境下运行,实现了123456789中插入适当的+、-使算式等于100并且记录的功能文献资料:1陈维兴,林小茶.C+面向对象程序设计教程(第三版)M清华大学出版社, 2009 2严蔚敏,吴伟民. 数据结构(C语言版). 清华大学出版社,20103 王晓东.计算机算法设计与分析.电子工业出版社,2007设计要求: 设计的基本功能要求是在表达式“123456789=100”中的左边的适当位置插入运算符“+”或“-”,以使等式成立。例如123+45-67+8-9=100.工作期限:设计工作自2014年6月16日至2014年6月27日止。指导教师: 院长: 日 期:2014年6月16日软件学院课程设计进度安排表学生姓名: 学号: 专业: 班级: 起止日期内 容备注6月16日 6月 17日下任务书;收集、阅读、整理相关参考文献,并进行归纳和概括总结,完成项目/任务背景介绍部分文字内容。6月18日11月20日系统功能设计和模块设计、系统体系结构构建。6月21日6月24日各功能模块编码实现,系统各功能模块调试与维护。6月25日6月26日系统功能集成、系统调试与测试,按照模板要求撰写课程设计/项目设计报告。6月27日课程设计/项目设计分组答辩,提交课程设计/项目设计报告以及相关文档,进行成绩评定。指导教师签名: 2014年6月16日成绩评定表学生姓名: 学号: 专业: 班级: 类别合计分值各项分值评分标准实际得分合计得分平时表现1010按时参加设计指导,无违反纪律情况。完成情况3020按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。10能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。报告质量3510报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。5课题背景介绍清楚,综述分析充分。5设计方案合理、可行,论证严谨,逻辑性强,具有说服力。5符号统一;图表完备、符合规范要求。5能对整个设计过程进行全面的总结,得出有价值的结论或结果。5参考文献数量在2篇以上,格式符合要求,在正文中正确引用。答辩情况2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。总评成绩: 分 指导教师: (签字) 日期:2014 年6月 27 日西安文理学院软件学院 课程设计报告第 7 页 共 28 页目录第一章 课题背景21.1 引言21.1.1 课程设计目的2第二章 设计简介及设计方案论述32.1 选题分析32.1.1字符的结构32.1.2递归的结构3第三章 详细设计43.1 算法说明43.1.1 字符的算法43.1.2 递归的算法43.2 变量设计53.3 函数功能设计5第四章 设计结果及分析64.1 运行与调试说明及分析6总结8参考文献9第 7 页 共 28 页摘 要摘要:我们经常会看到数学趣味设计题,例如1234=10插入符号使等式成立,但此类问题是用手算难以完全记录所有的等式结果,为此我们我们可以用电脑进行各种计算并记录结果。本选题根据此需求,利用数据结构的知识实现了:在表达式123456789中插入适当的+、-使算式等于100。 使用C+语言编写数制转换的程序,其中包含有三种方法:字符的结构,递归的结构和数组的结构。在wint-c的环境下运行,实现了123456789中插入适当的+、-使算式等于100并且记录的功能系统开发平台为Windows7,程序运行平台为wint-c。关键词: 程序设计;数制转换;C+语言;数据结构第一章 课题背景1.1 引言1.1.1 课程设计目的我们经常会看到数学趣味设计题,例如1234=10插入符号使等式成立,但此类问题是用手算难以完全记录所有的等式结果,为此我们我们可以用电脑进行各种计算并记录结果。本选题根据此需求,利用数据结构的知识实现了:在表达式123456789中插入适当的+、-使算式等于100。 使用C+语言编写数制转换的程序,其中包含有三种方法:字符的结构,递归的结构和数组的结构。在wint-c的环境下运行,实现了123456789中插入适当的+、-使算式等于100并且记录的功能。加强对数据结构知识的运用与理解,熟练运用学习过的知识。本程序要利用递归。递归出口即满足表达式的运算结果为100并且完成了一遍从1到9的过程,满足条件则输出结果,并且记录满足的记录个数。否则,对三种可能情况写对应的三个递归函数,一直到满足条件为止。第二章 设计简介及设计方案论述2.1 选题分析 选择这个问题,基础是数学中对于大量计算及记录的应用.2.1.1字符的结构 为了处理方便, 把数字边累加计算边转换成字符串,方便最后的输出。 因此应该定义一个函数实现把int变量转化为string型。(用string类是为了便于表达,即可直接用cout,+等。 。2.1.2递归的结构递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。在这个程序中,递归不需要自己定义存储空间,大量的减少了需要定义变量所需要的存储空间。第三章 详细设计3.1 算法说明在此程序的算法设计中,我采用了字符串,递归的算法。3.1.1 字符的算法使用numberTOstring函数的功能是把数字边累加计算边转换成字符串,方便最后的输出。将数字变换成字符使其最后为字符串形式输出 3.1.2 递归的算法 利用递归。递归出口即满足表达式的运算结果为100并且完成了一遍从1到9的过程,满足条件则输出结果,并且记录满足的记录个数。否则,对三种可能情况写对应的三个递归函数,一直到满足条件为止。result ; curResult=100且cur=10搜索到9并且进行加减插入运算n函数结束y3.2 变量设计string 用于字符串的表示 。int total; 用于表示计算结果的顺序。int n; 要将输入数字记录并准备转换为字符串。int cur; 输入的字符数据有多长。注:其他变量在程序中均有说明。3.3 函数功能设计在程序中经常用到的函数如表3-1:表3-1 程序中的函数函数功能recurrence;将函数通过递归调用找到满足的函数numberTOstring;将数字编成字符串形式print;输出符合条件的表达式第四章 设计结果及分析4.1 运行与调试说明及分析程序开始运行时显示的前一部分结果图4-1 运行结果的前一部分程序开始运行时显示的中间部分结果图4-2 运行结果的中间部分程序开始运行时显示的后面部分结果图4-3 运行的最后一部分结果总结数据结构是一门纯属于设计的科目,它需用把理论变为上机调试。在学习科目的第一节课起,老师就为我们阐述了它的重要性。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。刚开始学的时候确实有很多地方我很不理解,每次上课时老师都会给我们出不同的设计题目,对于我们一个初学者来说,无疑是一个具大的挑战,撞了几次壁之后,我决定静下心来,仔细去写程序。老师会给我们需要编程的内容一些讲解,顺着老师的思路,来完成自己的设计,我们可以开始运行自己的程序,可是好多处的错误让人看的可怕,还看不出到底是哪里出现了错误,但是程序还是得继续下去,我多次请教了老师和同学,逐渐能自己找出错误,并加以改正。Wint-c里检查错误有时候真是让你难以找到为什么错。经过了这次课程设计,现在已经可以了解很多错误的原因,这对我来说是一个突破性的进步,眼看着一个个错误通过自己的努力在我眼前消失,觉得很是开心。在这一段努力学习的过程中,我的编程设计有了明显的提高。虽然程序中不是很完美,但是对于我来说已经不错了,今后还需继续努力。参考文献1陈维兴,林小茶.C+面向对象程序设计教程(第三版)M清华大学出版社, 2009 2严蔚敏,吴伟民. 数据结构(C语言版). 清华大学出版社,20103 王晓东.计算机算法设计与分析.电子工业出版社,2007附录1:源程序清单/程序名称:课程设计.c+/程序功能:分别采用字符串、递归实现进制间的转换/程序作者: /最后修改日期:2014-6-24#include #include using namespace std; int total=1; void print(string str) couttotal+: ; int i=0,length=str.length(); while(ilength&stri!=1) i+;/去掉前面无用字符for(;ilength;i+) coutstri; cout=1000) str+=char(0+n/N);/将n按位取出,转化为字符型n=n%N; N=N/10; return str; void recurrence(int cur,int pre,string str,int result) if(result=100&cur10)/搜索到最后一个数是9print(str);/符合条件输出的表达式else if(cur10) return;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论