C语言课程设计-进制转换.doc_第1页
C语言课程设计-进制转换.doc_第2页
C语言课程设计-进制转换.doc_第3页
C语言课程设计-进制转换.doc_第4页
C语言课程设计-进制转换.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

沈阳航空航天大学 课课 程程 设设 计计 报报 告告 课程设计名称 C 语言课程设计语言课程设计 课程设计题目 二 八 十 进制转换 程序 院 系 计算机学院 专 业 计算机科学与技术 物联网方向 班 级 34010105 学 号 姓 名 指导教师 完成日期 2014年3月7日 沈阳航空航天大学课程设计报告 I 目目 录录 第第 1 章章 需求设计需求设计 1 1 1 课程设计任务 1 1 2 设计环境与开发语言 1 第第 2 章章 程序设计程序设计 2 2 1 概要设计 2 2 1 1 总体模块图 2 2 1 2 函数 2 2 2 详细设计 2 第第 3 章章 程序调试分析程序调试分析 4 3 1 出现的错误 4 3 2 运行的结果 4 第第 4 章章 用户手册用户手册 5 4 1 程序功能 5 4 2 存在的缺陷 5 参考文献参考文献 6 附附 录 程序清单 录 程序清单 7 沈阳航空航天大学课程设计报告 第 1 章 需求设计 1 第 1 章 需求设计 1 1 课程设计任务课程设计任务 设计一个简单的程序 可以实现以下各进制之间的转换 1 因为要进行进制间的 6 次转换所以要采用 switch 语句有选择的进行进制转 换程序 2 二进制到八进制 直接将二进制转化为八进制需要三位一截取不足三位补 零 较为麻烦所以采用先将二进制转化为十进制再转化为八进制的方法解决问题 二进制转化为十进制将输入的二进制数存入字符数组中 存入多少位数 求出相 应位数 2 的幂次再乘以 1 或 0 将每一位对应得到的十进制数累加 即可得到相应 的十进制数 将十进制数转化为八进制数 将 0 到 7 存到一个字符数组中判断输 入的数是否大于 7 若大于 7 则将该数除 8 再次进行判断 直到输入的数小于 等于 7 输出该数对 8 取余数对应的一维数组中的字符 即可得到八进制数 3 二进制到十进制 二进制转化为十进制将输入的二进制数存入字符数组中 存入多少位数 求出相应位数 2 的幂次再乘以 1 或 0 将每一位对应得到的十进制 数累加 即为十进制数 4 二进制到十六进制 与二进制转化为八进制类似 先将二进制转化为十进 制 再将十进制数转化为十六进制数 将 0 到 9 A 到 F 存到一个字符数组中判 断输入的数是否大于 15 若大于 15 则将该数除 16 再次进行判断 直到输入的 数小于等于 15 输出该数对 16 取余数对应的一维数组中的字符 即可得到十六 进制数 5 八进制到十进制 八进制转化为十进制将输入的八进制数存入字符数组中 存入多少位数 求出相应位数 8 的幂次再乘以该位数上的数 再将每一位对应得 到的十进制数累加 即为十进制数 6 十六进制到十进制 十六进制转化为十进制将输入的十六进制数存入字符 数组中 存入多少位数 求出相应位数 16 的幂次再乘以该位数上的数 再将每 一位对应得到的十进制数累加 即为十进制数 因为输入十六进制数会有 A 到 F 沈阳航空航天大学课程设计报告 第 1 章 需求设计 2 大小写之分 所以要分情况用到 if 语句的嵌套 要注意 A 到 F 字符减掉 A 后 要加 10 再乘以 16 的对应次幂 7 十进制到二进制 采用递归语句和 if 嵌套语句 当输入的数大于 1 时除以 2 再次进行判断 直到输入的数小于等于 1 输出该数对 2 取余的值 因为运用 递归 所以会不断输出 1 或 0 即可得到二进制数 要求 1 使用 C 语言完成编码和调试 通过检查 2 使程序在 VC 6 0 下运行 1 2 设计语言与开发环境设计语言与开发环境 设计环境 1 WINDOWS 7 系统 2 VisualC 开发环境 开发语言 C 语言 沈阳航空航天大学课程设计报告 第 2 章 程序设计 3 第 2 章 程序设计 2 1 概要设计概要设计 2 1 1 总体模块图总体模块图 进制转换 二 进 制 到 十 六 进 制 十 进 制 到 二 进 制 八 进 制 到 十 进 制 二 进 制 到 八 进 制 十 六 进 制 到 十 进 制 二 进 制 到 十 进 制 2 1 2 函数函数 主函数 main 的功能是调用 menu 函数 实现各函数的运行 二进制到八进制函数 TwotoE 的功能是将二进制转换到八进制 二进制到十进制函数 hs 的功能是将二进制转化到十进制 二进制到十六进制函数 TwotoS 的功能是将二进制转化到十六进制 十进制到二进制函数 showbit 的功能是将十进制转化为二进制 八进制转化成十进制函数 EtoT 的功能是将八进制转化成十进制 十六进制转化成十进制函数 StoTen 的功能是将十六进制转化成十进制 沈阳航空航天大学课程设计报告 第 2 章 程序设计 4 2 2 详细设计详细设计 主函数 控制整个程序的运行 控制菜单操作 通过主函数分别调用各个模块 实现 各项功能 如下图 2 1 所示 g 1 g 2 g 3 g 4 g 5 g 6 g 其他数 图 2 1主函数流程图 注释 1 先定义整型变量 g 2 用 switch case 语句选择操作 调用函数 3 g 等于 1 则调用EtoT函数 4 g 等于 2 则调用StoTen函数 显示 退出 开始 输入 1 6 或其他数字选择 操作 g 调用函 数 EtoT 调用函 数 StoTen 调用函 数 showbi t 调用函 数 hs 调用函 数 TwotoE 调用函 数 Twoto S 结束 沈阳航空航天大学课程设计报告 第 2 章 程序设计 5 5 g 等于 3 则调用 showbit 函数 6 g 等于 4 则调用 hs 函数 7 g 等于 5 则调用 TwotoE 函数 8 g 等于 6 则调用 TwotoS 函数 9 g 等于其他数字 显示退出程序 EtoT 函数 将八进制转化为十进制 如下图 2 2 所示 否 是 是 否 开始 定义输入的字符个数为 l s 等于 l 输入的字符串保存在 ch 中 n 为 8 的 s l 次幂 每个字符转换为十进制的 大小保存在 num 中 num num ch 0 n 判断 l 是否大于等于 0 判断字符是否介于 0 和 7 之间 输入八进制存到 字符串中 沈阳航空航天大学课程设计报告 第 2 章 程序设计 6 图 2 2 EtoT 函数流程图 StoTen 函数 将十六进制转化到十进制 如下图 2 3 所示 I 减一 输出十进制数 num 结束 开始 定义输入的字符个数为 l s 等于 l 输入十六进制数存 在字符串中 沈阳航空航天大学课程设计报告 第 2 章 程序设计 7 否 是 否 是 否 是 否 是 i 减一 判断字符 是否介 于 0 和 7 之间 输入的字符串保存在 ch 中 n pow 16 s l 判断 l 是否大 于等于 0 num num ch 0 n 判断字符 是否介于 a 和 f 之间 判断字符是 否介于 A 和 F 之间 num num ch 0 10 n num num ch 0 10 n 沈阳航空航天大学课程设计报告 第 2 章 程序设计 8 图 2 3StoTen 函数流程图 Showbit 函数 将十进制转化为二进制 如下图 2 4 所示 否 是 图 2 4showbit 函数流程图 输出 num 结束 开始 n 是否大于 1 Showbit n 2 输出 n 对 2 取余数 输入的数为 n 结束 沈阳航空航天大学课程设计报告 第 2 章 程序设计 9 hs 函数 将二进制转化为十进制 如下图 2 5 所示 否 是 图 2 2 5hs 函数流程图 开始 i 为输入的字符数 p 1 s 为输入的字符数组 二进制每一位转化的十进制存在 x 中 x x s i 1 0 p i 减一 输出 x i 是否大于 0 结束 输入二进制字符串 沈阳航空航天大学课程设计报告 第 2 章 程序设计 10 TwotoE 函数 将二进制转化为八进制 如下图 2 6 所示 否 是 开始 S l l 为字符串个数 l 减一 定义字符数组 a ch a l n pow 2 s l num num ch 0 n l 是否大于等于 0 l 是大于等于 0 输入二进制数 沈阳航空航天大学课程设计报告 第 2 章 程序设计 11 否 是 图 2 6TwotoE 函数流程图 TwotoS 函数 将二进制转化为十六进制 如下图 2 7 所示 n 是否大于 7 n 8 输出 a n 8 结束 沈阳航空航天大学课程设计报告 第 2 章 程序设计 12 否 是 否 是 图 2 7TwotoS 函数流程图 开始 输入二进制数 l 是否大于等于 0 S l l 为字符串个数 ch a l n pow 2 s l num num ch 0 n l 减一 定义字符数组 a n 是否大于 15 输出 a n 16 n 16 结束 沈阳航空航天大学课程设计报告 第 3 章 程序调试分析 13 第 3 章 程序调试分析 3 1 出现的错误出现的错误 1 菜单中调用的函数在编译后显示出 unidentify 的错误 在主函数前 面定义了调用的函数 就解决了问题 2 在进行进制转换时每次转换完都要重新运行 通过增加一个死循环 可以一 直进行进制转换 当输入不在定义中的数时显示退出程序 3 char ch int l s num 0 n l strlen a 1 s l for l 0 l ch a l n pow 8 s l 当输入二进制数位数很多时 n 定义为整型数输出 将 n 定义为 double 时就会将得数完整输出 3 2 运行的结果运行的结果 程序运行后显示出菜单 输入 1 6 选择操作 先选择 1 将八进制转化为十 进制 然后输入八进制数 按 enter 得到十进制数 在主菜单中选择 2 将十六进制转化为十进制 然后输入十六进制数 按 enter 键得到十进制数 在主菜单中选择 3 将十进制转化为二进制 然后输入十进制数 按 enter 沈阳航空航天大学课程设计报告 第 3 章 程序调试分析 14 键得到二进制数 在主菜单中选择 4 将二进制转化为十进制 然后输入二进制数 按 enter 键得到十进数 在主菜单中选择 5 将二进制转化为八进制 输入二进制数 按 enter 键显 示八进制数 在主菜单中选择 6 将二进制转化为十六进制 输入二进制数 输入 enter 键显示相对应的十六进制数 沈阳航空航天大学课程设计报告 第 4 章 课程设计总结 15 第 4 章 课程设计总结 4 1 程序的功能程序的功能 实现 1 二进制转化为八进制 2 二进制转化为十进制 3 二进制转化为十六进制 4 八进制转化为十进制 5 十六进制转化为十进制 6 十进制转化为二进制 的功能 4 2 存在的缺陷存在的缺陷 无法进行二 八 十 十六进制间有关小数 负数的转换 二进制转换能输入的数的位数有限 不能进行很多位的二进制转换 沈阳航空航天大学课程设计报告 参考文献 16 参考文献 1 张长海 C 语言程序设计 M 北京 高等教育出版社 2006 2 吴启武 C 语言课程设计案例精编 北京 清华大学出版社 2011 3 郭翠英 C 语言课程设计案例精编 北京 中国水利水电出版社 2004 4 姜灵芝 余键 C 语言课程设计案例精编 北京 清华大学出版社 2008 5 黄明 梁旭 万洪莉 C 语言课程设计 北京 电子工业出版社 2006 沈阳航空航天大学课程设计报告 附 录 17 附 录 程序清单 include include include include define MAX 8 define N 100 void EtoT char a void StoTen char a void showbit int n void hs char s MAX void TwotoS char a void To sixteen int n void TwotoE char a void To eight int n void EtoT char a char ch int l s num 0 double n l strlen a 1 s l for l 0 l ch a l n pow 8 s l if ch 0 l ch a l n pow 16 s l if ch 0 printf printf d n 2 void hs char s MAX char x 0 int l p 1 for i strlen s i 0 i x x s i 1 0 p p 2 printf 得到的十进制数是 d n x 沈阳航空航天大学课程设计报告 附 录 19 void TwotoE char a char ch int l s num 0 double n l strlen a 1 s l for l 0 l ch a l n pow 2 s l num ch 0 n To eight num printf n void To eight int n char a 0 1 2 3 4 5 6 7 if n 7 To eight n 8 printf c a n 8 void TwotoS char a char ch int l s num 0 double n l strlen a 1 s l for l 0 l ch a l n pow 2 s l num ch 0 n To sixteen num printf n 沈阳航空航天大学课程设计报告 附 录 20 void To sixteen int n char a 0 1 2 3 4 5 6 7 8 9 A B C D E F if n 15 To sixteen n 16 printf c a n 16 void main int c g char a N b N e N f N d N for printf 将八进制转换为十进制输入 1 n 将十六进制转化为十进制输入 2 n 将十进制转化为二进制输入 3 n 将二进制转化为十进制输入 4 n 将二进制转化为 八进制输入 5 n 将二进制转化为十六进制输入 6 n 退出系统输入其他数 n scanf d if g 0 scanf s a EtoT a break case 2 printf 请输入一个十六进制数 scanf s b StoTen b 十六进制转换为十进制 break case 3 printf 请输入一个十进制数 scanf d 沈阳航空航天大学课

温馨提示

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

评论

0/150

提交评论