1、甘肃政法学院本科生实验报告(二)姓名:王云山学院:计算机学院专业:计算机科学与技术 班级:计算机科学与技术本科班实验课程名称:多媒体技术实验日期: 2012 年 10 月 4 日指导教师及职称:陆军 实验成绩: 第六周开课时间:2012-2013 学年 一学期甘肃政法学院实验管理中心印制实验题目 用栈实现数制之间的转换 小组合作无姓名 王云山 班级 计算机科学与技术本科班学 号201181110134一、实验目的更加了解栈的使用,栈的各项操作,熟悉 C 语言的编程。二实验环境1.Visual C+6.0 编程软件操作环境以及 Windows 操作环境。2.实验室环境。三、实验内容与步骤1. 创
2、建一个工程名为 wys 的 Win32 Console Application 的工程。2. 通过对栈的各项操作实现十进制数转换为二进制数。四、实验过程与分析1. 启动 VisualC+6.0,在工程中常见一个名为 wys 存储地址为C:wyswys1 的 win32 console Appliocation 的应用程序。其界面如图 1.12. 在窗口选择“hello World”类型。如图 1.2. 图 1.1 图 1.23. 在操作面版输入如下代码。/*利用栈实现数制转换*/#include “stdafx.h“/*利用栈实现数制转换*/#include “stdio.h“#include
3、 “malloc.h“#define ERROR 0#define OK 1#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int SElemType; typedef struct stackSElemType *top;SElemType *bottom;int stacksize;SqStack;int InitStack(SqStack *S)S-bottom=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType);if(!S-bottom) return ERRO
4、R;S-top=S-bottom;S-stacksize=STACK_INIT_SIZE;return OK;int Push(SqStack *S,SElemType e)if(S-top-S-bottom=S-stacksize-1)S-bottom=(SElemType*)realloc(S-bottom,(S-stacksize+STACKINCREMENT)*sizeof(SElemType);if(!S-bottom) return ERROR;S-top=S-bottom+S-stacksize;*S-top+=e;return OK;int Pop(SqStack *S,SEl
5、emType *e)if(S-top=S-bottom)return ERROR;*e=*-S-top;return OK;int StackEmpty(SqStack S)if(S.top=S.bottom) return 1;else return 0;void main()SqStack myStack;int N,e;InitStack(printf(“请输入 N:“);scanf(“%d“,while(N)Push(N=N/8;while(!StackEmpty(myStack)Pop(printf(“%d“,e);printf(“n“);进行编译运行操作其结果如下图 1.3 所示。图 1-3五、实验总结1在编程的时候应该注意大小写,变量的定义。对于细节还是应该注意,往往一个小小的出错就可以造成程序运行不了的后果。2.通过实验对于栈的基本使用方法有了了解。每种结构都有其优缺点,在以后的学习中我想应该总结各个结构的优缺点,合理的把它们用在编程。3.更加了解栈的各项操作,熟悉 C 语言的编程。