大数据结构课程设计——进制转换

合集下载

《进制转换》教案

《进制转换》教案

《进制转换》教案一、教学目标1. 让学生理解不同进制数的概念,包括二进制、八进制、十进制和十六进制。

2. 培养学生掌握不同进制数之间的转换方法。

3. 提高学生运用进制转换解决实际问题的能力。

二、教学内容1. 不同进制数的概念及表示方法。

2. 不同进制数之间的转换方法。

3. 进制转换在实际应用中的例子。

三、教学重点与难点1. 教学重点:不同进制数的概念,进制转换方法。

2. 教学难点:进制转换的算法,不同进制数之间的转换。

四、教学方法1. 采用讲授法,讲解不同进制数的概念和转换方法。

2. 采用案例分析法,分析进制转换在实际应用中的例子。

3. 采用互动教学法,引导学生积极参与讨论和练习。

五、教学过程1. 导入:通过讲解计算机内部数据的表示方法,引出不同进制数的概念。

2. 讲解:讲解不同进制数的表示方法,举例说明。

3. 转换方法:引导学生掌握不同进制数之间的转换方法,进行练习。

4. 应用实例:分析进制转换在实际应用中的例子,如计算机内存的表示。

6. 作业布置:布置相关练习题,巩固所学知识。

六、教学评估1. 课堂问答:通过提问方式检查学生对不同进制数的理解和转换方法的掌握。

2. 练习题:布置针对性练习题,检查学生对进制转换的掌握程度。

3. 小组讨论:组织学生进行小组讨论,分享进制转换在实际应用中的例子。

七、教学拓展1. 讲解其他进制数:如二十四进制、三十六进制等,拓展学生知识面。

2. 进制转换与编码:介绍进制转换在数据编码和加密领域的应用。

八、教学资源1. PPT课件:制作精美PPT课件,辅助讲解和展示不同进制数及转换方法。

2. 练习题库:整理一份进制转换的练习题库,方便课堂练习和课后巩固。

九、教学反馈1. 学生反馈:收集学生对教学内容的反馈,了解学生的学习情况。

2. 教学反思:教师根据学生反馈和课堂表现,反思教学方法和策略,不断优化教学。

十、教学计划1. 下一节课内容:讲解二进制数的运算规则及应用。

2. 教学进度安排:根据学生掌握情况,合理安排后续教学内容和进度。

c语言课程设计进制转换

c语言课程设计进制转换

c语言课程设计进制转换一、教学目标本章节的教学目标是使学生掌握C语言中的进制转换,包括二进制、八进制和十进制的相互转换。

具体目标如下:1.了解不同进制的表示方法和转换规则。

2.掌握C语言中进制转换的函数和用法。

3.能够手动进行不同进制之间的转换。

4.能够使用C语言编写程序实现进制转换。

情感态度价值观目标:1.培养学生的逻辑思维和解决问题的能力。

2.培养学生对计算机科学的兴趣和热情。

二、教学内容本章节的教学内容主要包括以下几个方面:1.进制转换的基本概念和规则。

2.C语言中进制转换的函数和用法。

3.手动进行进制转换的练习。

4.使用C语言编写程序实现进制转换的练习。

三、教学方法为了达到本章节的教学目标,将采用以下教学方法:1.讲授法:讲解进制转换的基本概念和规则,以及C语言中进制转换的函数和用法。

2.案例分析法:通过分析实际案例,引导学生理解和掌握进制转换的原理和方法。

3.实验法:让学生通过编写C语言程序,手动进行进制转换的练习,加深对进制转换的理解和掌握。

四、教学资源为了支持本章节的教学内容和教学方法的实施,将准备以下教学资源:1.教材:C语言编程教程。

2.参考书:C语言参考手册。

3.多媒体资料:PPT课件,进制转换的动画演示。

4.实验设备:计算机,编程环境。

五、教学评估为了全面、客观、公正地评估学生在进制转换方面的学习成果,将采用以下评估方式:1.平时表现:通过学生在课堂上的参与度、提问回答和讨论表现来评估其对进制转换的理解和掌握程度。

2.作业:布置相关的进制转换练习题,要求学生在规定时间内完成,并根据其作业的正确性和提交情况给予评分。

3.考试:在课程结束后,安排一次进制转换的考试,包括选择题、填空题和编程题,以检验学生对进制转换知识的掌握和应用能力。

六、教学安排本章节的教学安排如下:1.教学进度:按照教材的章节安排,合理安排每个课时的教学内容,确保覆盖进制转换的各个方面。

2.教学时间:每个课时为45分钟,合理安排讲解、练习和讨论的时间。

进制转换c课程设计

进制转换c课程设计

进制转换c课程设计一、课程目标知识目标:1. 学生能理解进制转换的基本概念,掌握二进制、十进制、八进制、十六进制之间的转换方法。

2. 学生能够运用所学知识解决实际问题,如计算机内存单位之间的换算。

3. 学生了解进制转换在计算机科学中的应用和重要性。

技能目标:1. 学生能够熟练运用进制转换方法,进行不同进制间的转换操作。

2. 学生能够运用进制知识,解决计算机存储、数据传输等相关问题。

3. 学生通过小组合作,提高沟通协作能力,培养解决问题的能力。

情感态度价值观目标:1. 学生培养对计算机科学的兴趣,认识到进制转换在科技发展中的重要作用。

2. 学生在学习过程中,养成积极思考、主动探索的良好习惯。

3. 学生通过学习进制转换,增强对数学和计算机科学的认同感,提高自信心。

课程性质:本课程为计算机科学基础课程,旨在帮助学生掌握进制转换的基本知识,提高实际操作能力。

学生特点:六年级学生具备一定的数学基础和逻辑思维能力,对计算机科学有一定的好奇心,但需引导培养学习兴趣。

教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,激发学生的学习兴趣和主动性。

通过小组合作,培养学生团队协作能力,提高解决问题的能力。

在教学过程中,关注学生的情感态度价值观的培养,使其形成正确的价值观。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 引言:介绍进制转换的概念,以及在计算机科学中的重要性。

2. 知识讲解:a. 二进制:讲解二进制的概念、表示方法及其在计算机中的应用。

b. 十进制:回顾十进制的基本概念,及其与二进制的相互转换方法。

c. 八进制与十六进制:介绍八进制与十六进制的概念,以及它们与二进制、十进制的转换方法。

3. 实例演示:a. 二进制与十进制的相互转换实例。

b. 八进制与十六进制与二进制的相互转换实例。

c. 计算机内存单位换算实例。

4. 练习与讨论:a. 学生独立完成进制转换练习题。

b. 小组讨论进制转换在实际应用中的问题及解决方法。

进制转换c课程设计

进制转换c课程设计

进制转换c 课程设计一、课程目标知识目标:1. 理解进制转换的基本概念,掌握二进制、八进制、十进制和十六进制之间的转换方法;2. 学会使用数学原理和逻辑推理进行不同进制间的转换;3. 掌握在实际问题中运用进制转换解决计算和存储等相关问题。

技能目标:1. 能够准确、迅速地进行不同进制间的转换,提高计算和逻辑思维能力;2. 能够运用所学进制转换知识解决实际生活中的问题,培养学以致用的能力;3. 通过小组合作和讨论,提高团队协作和沟通能力。

情感态度价值观目标:1. 培养学生对计算机科学的兴趣,激发学习积极性;2. 培养学生勇于探索、敢于创新的精神,增强解决问题的信心;3. 增强学生对科技发展对社会进步的作用的认识,提高社会责任感。

本课程针对的学生特点是具备一定的数学基础和逻辑思维能力,对计算机科学感兴趣。

通过本课程的学习,旨在让学生掌握进制转换的知识和技能,培养他们在实际问题中运用所学知识解决问题的能力,同时提高他们的团队协作和沟通能力,激发对科学技术的热爱和探索精神。

在教学过程中,注重理论与实践相结合,关注学生的个体差异,因材施教,确保课程目标的实现。

二、教学内容1. 引入进制概念:介绍不同进制的定义和特点,如二进制、八进制、十进制和十六进制;相关教材章节:第一章 计算机基础知识 第3节 进制与编码2. 进制转换方法:a. 二进制与十进制的转换;b. 八进制与十进制的转换;c. 十六进制与十进制的转换;d. 不同进制间的转换方法。

相关教材章节:第一章 计算机基础知识 第4节 进制转换3. 实际问题中的应用:a. 计算机存储单位与进制转换的关系;b. 网络地址进制转换的实际应用;c. 编程中进制转换的应用。

相关教材章节:第一章 计算机基础知识 第5节 进制转换的应用4. 教学大纲:第一课时:进制概念及二进制与十进制的转换;第二课时:八进制与十进制、十六进制与十进制的转换;第三课时:不同进制间的转换方法及实际问题中的应用。

课程设计进制转化

课程设计进制转化

课程设计进制转化一、教学目标本课程的教学目标是使学生掌握进制转化的基本知识和方法,能够熟练地进行不同进制间的转换。

具体包括:1.知识目标:使学生了解不同进制的定义、特点和转换方法,理解二进制、八进制、十进制和十六进制之间的相互关系。

2.技能目标:培养学生能够运用进制转换方法,解决实际问题,如电子计算机中的数据表示和存储、计算机网络中的数据传输等。

3.情感态度价值观目标:培养学生对计算机科学和信息技术领域的兴趣和好奇心,提高学生分析和解决问题的能力,培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括:1.进制的基本概念:介绍二进制、八进制、十进制和十六进制的定义、特点和表示方法。

2.进制转换方法:讲解不同进制间的转换方法,包括手动转换和编程转换。

3.进制转换在实际应用中的例子:通过实际案例,使学生了解进制转换在电子计算机、计算机网络等领域的应用。

三、教学方法为了达到本课程的教学目标,将采用以下教学方法:1.讲授法:通过讲解进制的基本概念和转换方法,使学生掌握进制转化的理论知识。

2.讨论法:学生进行小组讨论,分享不同进制转换的方法和技巧,培养学生的团队合作和沟通能力。

3.案例分析法:通过分析实际案例,使学生了解进制转换在实际应用中的重要性,提高学生解决问题的能力。

4.实验法:安排实验课程,使学生亲手进行不同进制的转换,培养学生的实践能力和创新精神。

四、教学资源为了支持本课程的教学内容和教学方法的实施,将准备以下教学资源:1.教材:选择一本适合学生水平的进制转化教材,作为学生学习的主要参考资料。

2.参考书:提供一些进制转化的参考书籍,供学生深入学习。

3.多媒体资料:制作多媒体课件,通过动画、图表等形式,生动形象地展示进制转化的概念和方法。

4.实验设备:准备计算机、编程环境等实验设备,供学生进行实验和实践。

五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。

《进制转换》教案

《进制转换》教案

《进制转换》教案一、教学目标:1. 让学生理解不同进制的概念及其表示方法。

2. 培养学生掌握不同进制之间的转换方法。

3. 提高学生运用进制转换解决实际问题的能力。

二、教学内容:1. 不同进制的概念及表示方法。

2. 十进制与二进制的相互转换。

3. 十进制与八进制、十六进制的相互转换。

4. 二进制、八进制、十六进制之间的相互转换。

5. 进制转换在实际应用中的例子。

三、教学重点与难点:1. 教学重点:不同进制的概念及其表示方法,十进制与二进制、八进制、十六进制之间的转换方法。

2. 教学难点:二进制、八进制、十六进制之间的相互转换。

四、教学方法:1. 采用讲授法,讲解不同进制的概念、表示方法及转换方法。

2. 利用案例分析法,分析进制转换在实际应用中的例子。

3. 组织学生进行小组讨论,分享学习心得和解决问题的方法。

4. 利用练习题巩固所学知识,提高学生的实际操作能力。

五、教学过程:1. 引入:讲解不同进制的概念及其表示方法,让学生了解进制转换的重要性。

2. 讲解:讲解十进制与二进制、八进制、十六进制之间的转换方法,以及二进制、八进制、十六进制之间的相互转换。

3. 案例分析:分析进制转换在实际应用中的例子,让学生了解进制转换在解决问题中的作用。

4. 小组讨论:组织学生进行小组讨论,分享学习心得和解决问题的方法。

5. 练习:布置练习题,让学生巩固所学知识,提高实际操作能力。

6. 总结:对本节课的内容进行总结,强调重点知识点。

7. 作业布置:布置作业,巩固所学知识。

六、教学评价:1. 课堂表现:观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习状态。

2. 练习题:批改学生提交的练习题,了解学生对知识的掌握程度。

3. 小组讨论:评价学生在小组讨论中的表现,了解学生的合作能力和解决问题的能力。

七、教学资源:1. 教案、PPT、教材等教学资料。

2. 计算机、投影仪等教学设备。

3. 练习题、案例分析等教学素材。

《进制转换》教案

《进制转换》教案

《进制转换》教案一、教学目标1. 让学生理解进制转换的概念和意义。

2. 培养学生掌握不同进制之间的转换方法。

3. 提高学生解决实际问题的能力,如计算机数据存储和显示等。

二、教学内容1. 进制转换的基本概念介绍什么是进制,以及常见的进制系统(如二进制、八进制、十进制、十六进制等)。

2. 十进制与二进制的转换讲解十进制转二进制的方法(“除2取余法”),以及二进制转十进制的方法(“按权展开法”)。

3. 二进制与八进制的转换解释二进制与八进制之间的相互转换方法。

4. 八进制与十进制的转换介绍八进制转十进制和十进制转八进制的方法。

5. 十六进制与十进制的转换讲解十六进制数的基础知识,以及十六进制与十进制之间的转换方法。

三、教学方法1. 采用讲授法,讲解进制转换的基本概念和转换方法。

2. 利用案例分析法,让学生通过具体案例理解进制转换的实际应用。

3. 开展小组讨论,让学生互相交流进制转换的心得体会。

四、教学准备1. 教案、PPT及相关教学资料。

2. 计算器、电脑等辅助教学设备。

3. 练习题及答案。

五、教学进程1. 导入新课:通过生活中的实例引入进制转换的概念。

2. 讲解进制转换的基本概念和转换方法。

3. 案例分析:分析实际应用场景中的进制转换问题。

4. 小组讨论:让学生互相交流心得,巩固所学知识。

5. 练习巩固:布置练习题,让学生独立完成,检查学习效果。

6. 总结与拓展:总结本节课的主要内容,布置课后作业,引导学生拓展学习。

六、教学评价1. 课堂问答:通过提问方式检查学生对进制转换概念和方法的理解程度。

2. 练习题:布置课后练习题,评估学生对知识的掌握情况。

3. 小组讨论:观察学生在小组讨论中的表现,了解他们的合作能力和问题解决能力。

七、课后作业1. 完成练习题,巩固所学知识。

2. 搜集有关进制转换在实际应用中的例子,下节课分享。

八、教学反思课后对教学过程进行反思,分析教学方法的适用性,学生的反馈,以及是否达到了教学目标。

课程设计进制转化过程

课程设计进制转化过程

课程设计进制转化过程一、教学目标本课程的教学目标是使学生掌握进制转换的基本概念和方法,能够运用所学的知识进行不同进制之间的转换。

具体目标如下:1.了解不同进制(如二进制、八进制、十进制、十六进制等)的基本概念和表示方法。

2.掌握不同进制之间的转换规则和方法。

3.理解进制转换在计算机科学和信息技术中的应用。

4.能够手动进行不同进制之间的转换。

5.能够使用计算机程序或工具进行进制转换。

6.能够解决实际问题中涉及的进制转换。

情感态度价值观目标:1.培养学生的逻辑思维能力和解决问题的能力。

2.培养学生对计算机科学和信息技术领域的兴趣和好奇心。

3.培养学生的团队合作意识和沟通能力。

二、教学内容本课程的教学内容主要包括以下几个方面:1.进制转换的基本概念:介绍不同进制的基本概念和表示方法,如二进制、八进制、十进制、十六进制等。

2.进制转换的方法:讲解不同进制之间的转换规则和方法,包括手动转换和计算机程序或工具的使用。

3.进制转换的应用:介绍进制转换在计算机科学和信息技术领域中的应用,如数字电子电路、计算机网络协议等。

具体的教学大纲如下:第1课时:进制转换的基本概念•介绍不同进制的基本概念和表示方法。

•讲解二进制、八进制、十进制、十六进制之间的转换关系。

第2课时:进制转换的方法•讲解不同进制之间的转换规则和方法。

•介绍手动转换和计算机程序或工具的使用。

第3课时:进制转换的应用•介绍进制转换在计算机科学和信息技术领域中的应用。

•分析实际问题中涉及的进制转换案例。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。

1.讲授法:教师通过讲解进制转换的基本概念、转换规则和方法,以及应用案例,引导学生掌握知识。

2.讨论法:学生进行小组讨论,让学生分享自己的理解和经验,互相学习和交流。

3.案例分析法:通过分析实际问题中涉及的进制转换案例,让学生学会将理论知识应用于实际问题的解决中。

4.实验法:安排实验课,让学生亲自动手进行不同进制之间的转换,增强实践操作能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构课程设计设计说明书进制转换的实现学生JUGG学号¥#··班级Dota all star——成绩优秀指导教师Puckdota科学与技术天灾元年 3 月 14 日Dota all star课程设计任务书天灾元年—近卫戊年第二学期专业:ganker 学号:sadofaiofo :课程设计名称:数据结构课程设计设计题目:进制转换的实现完成期限:自天灾元年年 3 月 1 日至近卫戊年年 3 月14 日共 2 周设计依据、要求及主要容(可另加附页):进制数制是人们利用符号进行计数的科学方法。

数制有很多种,在计算机中常用的数制有:十进制,二进制、八进制和十六进制。

十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数0~15),十六进制数运算规律是逢十六进一,例如:十六进制数4AC8可写成(4AC8)16,或写成4AC8H。

要求:(1)输入一个十进制数N,将它转换成R进制数输出,并可以进行逆转换。

(2)输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16,R<>10)。

(3)为每个测试实例输出转换后的数,每个输出占一行。

如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。

(4)界面友好。

指导教师(签字):教研室主任(签字):批准日期:年月日摘要由于数制计算和不同数制之间转换的需要,设计了一个10进制转换其它进制(36进制以)及逆转换的软件,该软件具有简单的将10进制数转换成2、8、16进制数以及较复杂的高进制数的转换和逆转功能。

本软件采用C语言编写以VC++作为软件开发环境,采用顺序栈存储方式来存储运算中的数位,借助栈后进先出的特点,易于结果输出。

操作简单,界面清晰,易于为用户所接受。

关键词:进制转换;顺序栈;逆转换目录1 课题描述 (1)2 问题分析和任务定义 (2)4 详细设计 (7)5 程序编码 (8)6 程序调试与测试 (13)7 结果分析 (15)8 总结 (16)参考文献 (17)1 课题描述数制有很多种,在计算机中常用的数制有:十进制,二进制、八进制和十六进制。

十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数0~15),十六进制数运算规律是逢十六进一,例如:十六进制数4AC8可写成(4AC8)16,或写成4AC8H。

更大一些的数制则扩展十六进制未用的其他大写字母。

顺序栈是顺序存储结构的栈,是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。

同时附设栈顶指针top和栈基指针base,来方便栈数据元素的存取和栈的扩充。

2 问题分析和任务定义问题分析:编写进制转换及其逆转,其算法过程恰好是结果的逆序,因此建立一个顺序栈将计算过程中得到的数位顺序进栈,则按出栈顺序就会输出对应的转换结果。

逆转程序借助字符数组按顺序将每个数位转换成十进制数后求和,得到逆转结果例如:11转换成二进制数11%2=1; 11/2=5;1入栈;5%2=1; 5/2=2;1入栈;2%2=0; 2/2=0;0入栈;被除数不为0;按顺序出栈,得到结果为110;任务定义:1)画出流程图;2)任意建立一个容量为20个栈元素的空栈;3)将十进制数与要转进制先求余,将余数顺序入栈;4)阐明测试方法,写出完整的运行结果;5)撰写课程设计说明书。

3 逻辑设计(1)ADT Stack{数据对象:D={ai | ai ∈ElemSet,i=1,2,…,n, n≥0 }数据关系:R1={ <ai-1,ai >| ai-1,ai∈D,i=2,…,n}基本操作:Inistack(&S)操作结果:构造一个空栈S。

stackEmpty(&S)初始条件:栈S已存在。

操作结果:判断栈S是否为空,若为空,则返回1;否则返回0.push(&S,x)初始条件:栈S已存在。

操作结果:插入元素x为新的栈顶元素。

Pop(&S。

&e)初始条件:栈S已存在且非空。

操作结果:删除S的栈顶元素,并用y返回其值。

}ADT Stack(2)主函数流程图如图3.2所示图3.1 创建主函数流程图(3)十进制转换其他进制数流程图如图3.3所示图3.2十进制转换其他进制数算法流程图(4)其他进制数转换十进制数流程图如图3.4所示图3.3倒序输出算法流程图4 详细设计本程序主要有三个算法:一、十进制整数转换其他进制数,其主要思路为:例如:11转换成二进制数11%2=1;11/2=5;5%2=1;5/2=2;2%2=0;2/2=0;被除数不为0;转换结果为110;二、十进制小数转换其他进制数,其主要思路为:例如:0.125转换成二进制小数0.125*2=0.25;取结果的整数为0;0.25*2=0.5;取结果的整数为0;0.5*2=1.0;取结果的整数为1;小数部分不为0;转换结果为0.001;三、其他数制转换十进制数,其主要思路为:例如:二进制数10.1转换成十进制数1*21=2;0*20=1;1*21 =0.5;逆转数字存储在数组中,最后的结束符’\0’,为标志。

转换结果为2+1+0.5=3.5;5 程序编码#include<stdio.h>#include<math.h>#include<stdlib.h>#define STACK_INIT_SIZE 20#define STACKINCREMENT 10typedef int SElemType;typedef struct{SElemType *base,*top;int stacksize;}SqStack;int InitStack(SqStack &S){S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base)exit(0);S.top=S.base;S.stacksize=STACK_INIT_SIZE;return 1;}int Push(SqStack &S,SElemType e){if(S.top-S.base>=S.stacksize){S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));if(!S.base)exit(0);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;return 1;}int Pop(SqStack &S,SElemType &e){if(S.top==S.base)return 0;e=*--S.top;return 1;}int StackEmty(SqStack S){if(S.top==S.base)return 1;else return 0;}void XSZZ(double n,int T){int i=0;double a;if(n==0.0)printf("00000");while(n!=0.0){a=T*n;n=a-(int)a;if(a>=10){printf("%c",((int)a-10+'A'));i++;}else{printf("%d",((int)a>0?(int)a:0));i++;}if(i==5)break;}}int NZ(){int i=0,j,T,k=0;double sum=0;char a[20],X;getchar();printf("输入转换数");while((a[i]=getchar())!='\n'){if((a[i]<='9'&&a[i]>='0')||(a[i]<='Z'&&a[i]>='A')||a[i]=='.');else {break;}if(a[i]=='.')k=i;i++;}k=k?k:i;if(a[i]!='\n'){while(getchar()!='\n');printf("输入有误");return 0;}a[i]='\0';a[k]='\0';printf("输入转换数的进制");scanf("%d%c",&T,&X);if((!(T>1&&T<36))||X!='\n'){while(getchar()!='\n');printf("输入有误");printf("sdf %c",X);return 0;}for(j=0;j<k;j++){if(((a[j]-'0'>=T)&&(a[j]<='9'))||((a[j]-'A'+10>=T)&&(a[j]>'9'))){printf("输入有误!");return 1;}if(a[j]>='A')sum+=((a[j]-'A'+10)*pow(T,k-j-1));elsesum+=((a[j]-'0')*pow(T,k-j-1));}for(j=k+1;j<i;j++){if(((a[j]-'0'>=T)&&(a[j]<='9'))||((a[j]-'A'+10>=T)&&(a[j]>'9'))){printf("输入有误!");return 1;}if(a[j]>='A')sum+=((a[j]-'A'+10)*pow(T,k-j));elsesum+=((a[j]-'0')*pow(T,k-j));}if(!(((a[j]-'0'>=T)&&(a[j]<='9'))||((a[j]-'A'+10>=T)&&(a[j]>'9'))))printf("结果为%f",sum);return 1;}int ZZ(){int N,T,i=0,a;double Z,M;char X[10];SElemType e;SqStack S;InitStack(S);printf("输入转换数:");scanf("%lf%c",&Z,&X[0]);if(X[0]!='\n'){ while(X[i]!='\n'){i++;printf("输入有误!");return 1;}printf("输入转换进制:");scanf("%d%c",&T,&X[0]);if(T<36&&T>1&&X[0]=='\n'){printf("%c",X[0]);N=(int)Z;M=Z-N;while(N){if(T>10){a=N%T;if(a>=10){a=a-10+'A';Push(S,a);}else Push(S,N%T);}else Push(S,N%T);N=N/T;}printf("结果为:");if(StackEmty(S))printf("0");while(!StackEmty(S)){Pop(S,e);if(e>=10) printf("%c",e);else printf("%d",e);}printf(".");XSZZ(M,T);}else{printf("输入有误\n");i=0;while(X[i]!='\n'){i++;scanf("%c",&X[i]);}}}main(){int choice;char X;do{printf("Press1:十进制转换其他进制数\nPress2:其他进制数转换十进制数\n");scanf("%d",&choice);switch(choice){case 1: ZZ();break;case 2:NZ();break;default:printf("输入有误!");}printf("\n continue ? y/n\n");scanf("\t%c",&X);while(X!='n'&&X!='y'){printf("输入有误!\n请重新输入:");scanf("\t%c",&X);}}while(X=='y');return 0;}6 程序调试与测试(1)输入十进制14.25转换成十六进制数为E.4.图6.1十进制转换其他进制数运行图(2)输入二进制1.1转换为十进制1.5图6.2其他进制转换十进制数运行图(3)输入数字字符混合体(非法字符)程序返回错误提示图6.3程序健壮性测试(4)程序调试过程修改:在不同进制数的互转换过程中小数部分尤为不好处理,例如:三进制数2.1整数部分2无需转换,小数0.1转换结果为1/3纯循环小数。

相关文档
最新文档