ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:66.59KB ,
资源ID:23770785      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23770785.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(栈的实验报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

栈的实验报告.docx

1、栈的实验报告忻州师范学院计算机科学与技术系实 验 报 告(第六组)组长:梁启超组员:晋丹丹 张艳华马 军 刘雪梅孙钰林 刘 涛忻州师范学院计算机科学与技术系实验报告实验名称 栈的应用 专业班级 计本1504班 姓名 梁启超 学号 201508112036 指导教师 成绩 日期 2016/11/17 组员分工 晋丹丹(Initstack)张艳华(Push) 马军(Pop) 刘雪梅(Top)孙钰林(conversion) 刘涛(scan)一、实验目的本次课程设计的主要任务是完成对数制转换进行编程,要求用栈实现十进制到二进制、八进制、十六进制的转换,了解转换进制的原理,熟练对栈的基本操作,用栈的基本

2、操作实现程序的效率化。二、实验内容用栈建立线性表,并进行线性表相关操作。要求:要有良好的人机界面,有菜单形式实现,具备输入、判断转化类型、转化数据、输出结果等。三、实验要求1在问题分析的基础上选择合适的存储结构,进行算法设计,编制程序并上机调试成功。2按要求完成实验报告。3保存和打印出程序的运行结果,并结合程序进行分析。四、实验步骤一、本演示程序用C编写,完成栈的建立,及字符元素进栈与出栈操作 1、 输入的形式和输入值的范围:2、输出的形式:a进制数转换中会输出十进制转换成的二进制、八进制十六进制数。输入一段字符后将返回判断结果; 3、 程序所能达到的功能:完成栈的建成与元素进栈出栈的操作,输

3、出进制 数转换后的结果及回文判断的结果。 4、测试数据:十进制转换成二、八、十六进制数操作中依次输入任意一个十进制整数返回它所希望的结果。 二、为了实现上述程序功能,需要定义单链表的抽象数据类型:Initstack(sqstack &s)操作结果:构造一个空的栈S. Push(sqstack &s,selemtype e) 初始条件:栈S.已存在 操作结果:插入元素e为新的栈顶元素。 Pop(sqstack &s,selemtype &e) 初始条件:栈S.已存在 操作结果:删除S的栈顶元素并用e返回其值Top(sqstack &s,selemtype e)若栈不空,用e返回s的栈顶元素con

4、version(int N,int r)操作结果:进制转换各函数间关系如下:main( ) scan( )Initstack Push Pop Top conversion三、实现概要设计中定义的所有的数据类型,对每个操作给出伪码算法。对主程序和其他模块也都需要写出伪码算法。栈的定义typedef struct selemtype *base; selemtype *top; int stacksize;sqstack;栈的生成、插入、删除、运算等操作status Initstack(sqstack &s) s.base=(selemtype *)malloc(100*sizeof(selem

5、type); if(!s.base)exit(OVERFLOW); s.top=s.base; s.stacksize=100; return OK;status Push(sqstack &s,selemtype e) if(!s.base)exit(OVERFLOW); *s.top+ = e; return OK;status Pop(sqstack &s,selemtype &e) if(s.top=s.base)return ERROR; e = * -s.top; return e;status Top(sqstack &s,selemtype e) if(s.top=s.base

6、) return ERROR; e=*(s.top-1); return OK;void conversion(int N,int r) sqstack s; selemtype e; Initstack(s); while(N) Push(s,N%r); N=N/r; printf(转换后的结果是:);while(s.top!=s.base) Pop(s,e); printf(%d,e); printf(n);使用说明与测试结果程序名为TXL.exe,运行环境为DOS。程序执行后显示 (下图为参考截图例子。)第一次操作需选择1,2或3,并且只能选择一种。程序执行显示我们选择的操作是1,输入要

7、转换的十进制数是10,结果是1010。我们选择的是继续1,这次选的是2,十进制转换八进制,输入的是10,结果是12。 我们选择的是继续1,选的是3,十进制转换十六进制,输入10,输出10.五、实验总结(调试和运行程序过程中产生的问题及采取的措施;对算法的程序的讨论、分析,改进设想以及其它经验教训;对实验方式、组织、设备、题目的意见和建议等)附源程序清单: #include#include typedef int selemtype;typedef int status;#define OK 1#define OVERFLOW -1#define ERROR 0typedef struct se

8、lemtype *base; selemtype *top; int stacksize;sqstack;status Initstack(sqstack &s) s.base=(selemtype *)malloc(100*sizeof(selemtype); if(!s.base)exit(OVERFLOW); s.top=s.base; s.stacksize=100; return OK;status Push(sqstack &s,selemtype e) if(!s.base)exit(OVERFLOW); *s.top+ = e; return OK;status Pop(sqs

9、tack &s,selemtype &e) if(s.top=s.base)return ERROR; e = * -s.top; return e;status Top(sqstack &s,selemtype e) if(s.top=s.base) return ERROR; e=*(s.top-1); return OK;void conversion(int N,int r) sqstack s; selemtype e; Initstack(s); while(N) Push(s,N%r); N=N/r; printf(转换后的结果是:);while(s.top!=s.base) P

10、op(s,e); printf(%d,e); printf(n);int scan()int d ; printf( 栈的应用数制转换 n); printf( 第6小组 n);printf( n); printf( 数制转换 n);printf( 1.十进制转二进制 n); printf( 2.十进制转八进制 n);printf( 3.十进制转十六进制 n); printf( n);printf(-n); printf(请选择所要进行的操作:); scanf(%d,&d); return (d); void main() int n,i; switch(scan() case 1:printf

11、(输入转换的数:); scanf(%d,&n); conversion(n,2); break; case 2:printf(输入转换的数:); scanf(%d,&n); conversion(n,8); break; case 3:printf(输入转换的数:); scanf(%d,&n); conversion(n,16); break; printf(是否要继续?继续选择1,退出选择0!n); scanf(%d,&i); if(i=1) main(); else exit; 总结:虽然这个程序不难编程但是也让我们发现了自己在编程上的许多问题,以及对一些语法的还不够熟悉,让我们知道了自己的不足,以及自己今后需要加强的方面是什么,更让我们体会到了团队合作的精神,以及大家在一起互帮互助,共同解决问题的感觉。相信我们今后会更加默契,共同学习,共同进步。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1