武汉理工大学理学院数学系课程实验报告
课 程 名 称: 数据结构
班级
信计0803
日 期
2010.11.15
成绩评定
姓名
赵威
实验室
理学院-----108
老师签名
实验名称
用栈和队列实现魔王语言
所用软件
VC++
实验目的
及
内
容
主要功能:
魔王总是使用自己的一种非常精练而抽象的语言讲话,没人能听懂,但他的语言是可逐步解释成人能听懂的语言,因为他的语言是由以下两种形式的规则由人的语言逐步抽象上去的:
-----------------------------------------------------------
1)a---> (B1)(B2)....(Bm)
2)[(op1)(p2)...(pn)]---->[o(pn)][o(p(n-1))].....[o(p1)o]
-----------------------------------------------------------
在这两种形式中,从左到右均
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示解释.试写一个魔王语言的解释系统,把他的话解释成人能听得懂的话.
基本要求:
用下述两条具体规则和上述规则形式(2)实现.设大写字母表示魔王语言的词汇;小写字母表示人的语言的词汇;希腊字母表示可以用大写字母或小写字母代换的变量.魔王语言可含人的词汇.
1) B --> tAdA
2) A --> sae
实
验
原
理
步
骤
、
程序清单如下:
魔王.cpp
/*-----------------------定义头文件---------------------------*/
#include
#include
#include
/*-----------------------定义全局变量-------------------------*/
int top=0;
int find=0;
//top=0;
char transl[200];
char leag[200];
char link[100];
int rear=1;
//rear=1;
/*-------------------MAIN()主
函数
excel方差函数excelsd函数已知函数 2 f x m x mx m 2 1 4 2拉格朗日函数pdf函数公式下载
---------------------------*/
int main()
{
char pop(); //定义出栈函数
char ml[2][200]; //定义两个规则,把它们存放到ml中
cout<β1β2β3β4... ** "<θβ3θβ2θβ1θ ** "<β1β2β3β4...
// ②(θβ1β2β3)θβ3θβ2θβ1θ
//下面只输入2个第一种形式的规则,且后输入的可以嵌套已输入的规则
//
/*开始输入规则A和B,A比B先输入,再输入B,这样B就可以嵌套A*/
cout<<"以下请开始翻译:"<";
cin>>ml[0];
cout<<"B->";
cin>>ml[1];
cout<>leag;
char temp[100]; //定义一个缓冲区,存放B的翻译
int sizeA=0; //定义A的长度
sizeA=strlen(ml[0]);
int wh=0; //定义缓冲区中的位置变量
for(int i=0;ml[1][i]!='\0';i++) //开始翻译B
{
if(ml[1][i]=='A') //如果嵌套了A
{
//cout<<"here is doing!!";
for(int n=0;n>wc;
return 0;
}
char pop() //出栈函数的实现
{
return leag[top++];
}
实
验
结
果
及
分
析
调试过程中的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
及系统测试情况
输入输出:
*输入注意:先输入的规则可以被后输入的规则嵌套,后输入的可以嵌套先输入的,但是注意先输入的不可以嵌套后输入的。
输入魔王语言时,人类语言(小写字符)要用括号括起来,魔王字符(大写字符)只能是以上规则提到的字符。
输入例子:
A->zhaowei回车
B->zhaoAweiA回车
魔王语言:AB
输出结果:
翻译输出:
结果正确。
(写不完时,可另附稿纸。)
备注:不交此报告者,本次实验为“不合格”。