- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?
?
?
课程设计(论文)
题 目 名 称 数据转换程序设计
课 程 名 称 C语言程序课程设计
学 生 姓 名 袁利文
学 号 1141301067
系 、专 业 信息工程系、电子信息工程
指 导 教 师 李仲生
2012年6月3日
目 录
前言 0
2需求分析 1
2.1要求 1
2.2任务 1
2.3运行环境 1
2.4开发工具 1
3概要设计 1
3.1系统流程图 2
3.2排序函数流程图 2
4详细设计 7
4.1分析和设计 7
4.3 运行程序 12
5课程设计的总结与体会 13
参考文献 13
致谢 13
数制转换问题
一、问题描述任意给定一个M进制的数x
二、基本要求求出此数x的10进制值(用MD表示)实现对x向任意的一个非M进制的数的转换至少用两种方法实现上述要求(用栈解决,用数组解决,其它方法解决)。
测试数据算法思想模块划分,j,y,n,s,m,r,reminder,x是定义的全局变量,初始值都为0;
⑵ D2M(int g,int h)是实现十进制数转换为M进制数的函数;
⑶ M2D()是实现M(仅指二进制数和八进制数)进制数转换为十进制数的函数,并在其中调用D2M(int g,int h)实现向非M进制数的转换;
⑷ H2D(int f)是实现十六进制数转换为十进制数的函数,并在其中调用D2M(int g,int h)实现向非十六进制数的转换;
⑸ void main()是主函数,功能是给出测试的数据,并在特定条件下调用D2M()函数和M2D()函数。
2、用栈实现该问题:
⑴ SqStack定义栈,说明base为栈底指针,top为栈顶指针,stacksize为栈容量;
⑵ int InitStack(SqStack S)到int DestroyStack(SqStack S)六大模块分别表示构造一个空栈、用e表示栈元素、插入元素、删除元素、判断栈是否为空以及摧毁栈;
⑶ SqStack S是指定义栈S;
⑷ D2M(int a,int b)的功能是将十进制数转换成M进制的函数;
⑸ M2D()的功能是M进制转换为十进制的函数;
⑹ void main()是主函数。其功能是输入需要测试的数据以及需要转换的进制,并在特定情形下调用D2M()函数和M2D()函数,而且实现M进制数向任意非M进制数的转换。
六、数据结构int a[N],int b[N], int c[N]。
2、用栈实现该问题:
数据类型定义如下:
typedef struct{
int *base;
int *top;
int stacksize;
}SqStack;
七、源程序#includestdio.h
#includemath.h
#define N 1000
int i,j,y,n,s;
int m,r,reminder;
int x; //全局变量默认初始化为0,不必再赋0了
D2M(int g,int h) //十进制数转换为其他进制数
{
int c[N];
i=0;
reminder=g%h;
g=g/h;
if(reminder9)
{
c[i]=reminder+55;
i++;
}
else
{
c[i]=reminder;
i++;
}
if(g0)
D2M(g,h);
for(j=i-1;j=0;j--)
if(c[j]=65)
printf(%c,c[j]);
else
printf(%d,c[j]);
return 0;
}
M2D(int e) //二进制和八进制数转换为十进制数,并这转换为其他进制数
{
int a[N];
printf(请输入%d进制位数:,m);
scanf(%d,n);
printf(请输入%d进制的每位并使每位用空格隔开:,m);
for(i=0;in;i++)
scanf(%d,a[i]);
for(i=n-1;i=0;i--)
{
y+=(int)pow(e,j)*a[i]; //强制类型转换,以免造成数据丢失
j++;
}
printf(请输出所得的10进制的
您可能关注的文档
- 关于 Acronis True Image 2013 激活方法的说明介绍.doc
- 关于CAD图纸的字体修改介绍.doc
- 关于EEPROM的应用总结介绍.doc
- 关于HTML制作网页的论文 2介绍.doc
- 关于IBM_X3650_M4机型安装windows2003的方法课件.docx
- 关于java和web项目中的相对路径问题介绍.doc
- 关于keil4ARM 通过Jlink在线调试的问题介绍.doc
- 关于Labwindows的多线程技术课件.docx
- 关于matlab安装问题集中解决 文档安装不上以及打不开课件.docx
- 关于watch point使用课件.docx
- GB/T 45498.2-2025中华人民共和国社会保障卡一卡通规范 第2部分:应用规范.pdf
- GB/T 37507-2025项目、项目群和项目组合管理项目管理指南.pdf
- 《GB/T 45498.3-2025中华人民共和国社会保障卡一卡通规范 第3部分:安全规范》.pdf
- 中国国家标准 GB/T 37507-2025项目、项目群和项目组合管理项目管理指南.pdf
- 中国国家标准 GB/T 20236-2025非金属材料的聚光加速户外暴露试验方法.pdf
- 《GB/T 20236-2025非金属材料的聚光加速户外暴露试验方法》.pdf
- 《GB/T 9065.2-2025液压传动连接 软管接头 第2部分:24°锥形》.pdf
- 中国国家标准 GB/T 33523.600-2025产品几何技术规范(GPS) 表面结构:区域法 第600部分:区域形貌测量方法的计量特性.pdf
- 《GB/T 33523.600-2025产品几何技术规范(GPS) 表面结构:区域法 第600部分:区域形貌测量方法的计量特性》.pdf
- GB/T 33523.600-2025产品几何技术规范(GPS) 表面结构:区域法 第600部分:区域形貌测量方法的计量特性.pdf
文档评论(0)