- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 PAGE 27 页
第 PAGE 1 页
上海应用技术学院课程设计报告
课程名称 《数据结构课程设计》
设计题目 数据结构课程设计
院系 计算机科学与信息工程学院 专业游戏软件制作与开发 班级
姓名 学号 指导教师 日期 2016-1-14
目的与要求
巩固和加深对常见数据结构的理解和掌握
掌握基于数据结构进行算法设计的基本方法
掌握用高级语言实现算法的基本技能
掌握书写程序设计说明文档的能力
提高运用数据结构知识及高级语言解决非数值实际问题的能力
课程设计内容说明
项目一
对设计任务内容的概述
实现十进制数N和二进制数之间的转换。
需求分析或功能描述
输入相应的各式正确的数值(可以是混合小数的形式),程序按照设定的算法执行后,给出相对应的进制数数值,对于输入数据的合法性可以不做检查。
采用栈。
概要设计或程序流程图
?内容:利用栈实现十进制和其他任意进制数的任意转换输出问题?
进制转换原理:N?=?(N?div?d)?*d?+?N?mod?d(其中:div?为整除运算,mod?为求余运算)?
步骤:?1??定义栈数据类型,采用链式存储结构实现??????
2??链栈基本操作函数原型声明??????
3??初始化栈??????
4??输入栈?
5??输出栈?
6??判空栈?
7??自定义实现进制转换函数?
8??数据调试?
9??程序结束?
开始
创建栈
数制转换函数
输出结果
详细设计或源代码说明
#define STACK_INIT_SIZE 100 //存储空间初始分配量
#define STACKINCREMENT 10 //存储空间分配增量
#define ERROR 0
#define OVERFLOW -2
#include stdio.h
#includestring.h
#include stdlib.h
#includemalloc.h
#includeprocess.h
#includemath.h
typedef int SElemType;
typedef struct {
SElemType *base;// 在栈构造之前和销毁之后,base 的值为NULL
SElemType *top;// 栈顶指针
int StackSize; //当前已分配的存储空间,以元素为单位
}SqStack1;
void InitStack(SqStack1 *s) //初始化栈
{ s-base =(SElemType*)malloc (STACK_INIT_SIZE * sizeof(SElemType));
if(!s-base) exit(OVERFLOW);
s-top=s-base;
s-StackSize= STACK_INIT_SIZE; }
void Push(SqStack1 *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(OVERFLOW); //若内存中没有s-StackSize+STACKINCREMENT个连续空间则分配失败
s-top=s-base+s-StackSize;
s-StackSize+=STACKINCREMENT; }
*s-top++ =e; }
int Pop(SqStack1 *s,SElemType *e) //输出栈
{ if (s-top==s-base)
return ERROR;
s-top=s-top-1;
*e = *s-top; }
int StackEmpty(SqStack1 s) //判空栈
{ if (s.top ==s.base)
return 1;
else
return 0; }
void Conversion(int N,int m)
{ SElemType e;
SqStack1 s;
文档评论(0)