资源简介
代码是基于VC++开发的,结构清晰,简单易懂,能够根据自己的需求更改代码,且程序的实现较为简单,执行较快。
代码片段和文件信息
#include
#include
#include
#include
#include
#include“cfg_pda.h“
#include“pda_cfg.h“
#include“store.h“
void cfg_pda();
void pda_cfg();
int length(char temp[]);
void digui(int tempchar s[]int num);
Store st1st3;
void main()
{
int choice=0;
cout<<“******CFG与PDA之间的相互转换******“< cout<<“请选择相应的操作:“< cout<<“1.cfg转换为pda“< cout<<“2.pda转换为cfg“< cout<<“0:退出操作!“< cin>>choice;
switch(choice)
{
case 1:
cfg_pda();
break;
case 2:
pda_cfg();
break;
case 0:
break;
default:
cout<<“输入错误!“< break;
}
}
int length(char temp[])
{
int i=0;
while(temp[i]!=‘\0‘)
i++;
return i;
}
void cfg_pda()
{
Cfg cfg;
Elem q;
int num=0i=0;
int VlengthPronum;
cout<<“***************************************“< cout<<“操作1:-----cfg转换为pda------“< cout<<“G=(VTPS)请按顺序输入VTPS:“< cout<<“Variable:“;
cin>>cfg.Various;
cout<<“Terminal:“;
cin>>cfg.Terminal;
cout<<“Production:“< Vlength=length(cfg.Various);
while(Vlength!=0)
{
cfg.grammar[num].nextelem1=(Elem)malloc(sizeof(elem));
q=cfg.grammar[num].nextelem1;
cout<<“请输入第“< cin>>q->leftelem>>Pronum;
q->nextelem=NULL;
while(Pronum!=0)
{
Elem p=(Elem)malloc(sizeof(elem));
cin>>p->leftelem;
p->nextelem=NULL;
q->nextelem=p;
q=q->nextelem;
Pronum--;
}
num++;
Vlength--;
}
cout<<“Start_symble:“;
cin>>cfg.Start_symbol;
for(int j=0;j if(cfg.Terminal[j]==‘$‘)
cfg.Terminal[j]=‘\0‘;
cout<<“***********************“< cout<<“cfg---->pda的输出结果:“< cout<<“其中δ转移函数为:“< for(j=0;j {
q=cfg.grammar[j].nextelem1;
while(q->nextelem!=NULL)
{
q=q->nextelem;
cout<<“δ(q$“<leftelem<<“)“< }
}
for(j=0;j cout<<“δ(q“< cout<<“***********************“< }
void pda_cfg()
{
dailta dail;
stacksymbol=‘Z‘;
int sumnum=0k=0i=0;
int dailnum=0j=0;
int m=0n1=0n2=0n3=0n4=0n5=0;
int num=0size=0mnum=0;
cout<<“***************************************“< cout<<“操作2:-----pda转换为cfg------“< cout<<“P=(QΣΓδqZ)请按顺序输入QΣΓδqZ:“< cout<<“Q:“;
cin>>Q;
cout<<“Σ:“;
cin>>T;
cout<<“Γ:“;
cin>>V;
cout<<“δ的数目:“;
cin>>sumnum;
while(sumnum!=0)
{
cout<<“输入第“< cin>>dail[k].cha>>dail[k].chb>>dail[k].chc>>dail[k].chd>>dail[k].che;
k++;
sumnum--;
dailnum++;
}
cout<<“q:“;
cin>>startstate;
num=strlen(V)-1;
for(i=0;i<200;i++)
for(j=0;j<200;j++)
{
st1[i].str[j]=‘\0‘;
st3[i].str[j]=‘\0‘;
}
for(i=0;i {
st1[i].str[0]=Q[i];
size++;
}
digui(numQsize);
i=strlen(Q);
mnum=pow(inum);
cout<<“***********************“< cout<<“pda 属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5958 2013-10-30 15:33 Translate\cfg_pda.cpp
文件 327 2013-10-30 15:33 Translate\cfg_pda.h
文件 26605 2013-10-30 15:34 Translate\Debug\cfg_pda.obj
文件 254043 2013-10-30 15:34 Translate\Debug\Translate.exe
文件 287420 2013-10-30 15:34 Translate\Debug\Translate.ilk
文件 297680 2013-10-30 15:34 Translate\Debug\Translate.pch
文件 566272 2013-10-30 15:34 Translate\Debug\Translate.pdb
文件 74752 2013-10-30 15:34 Translate\Debug\vc60.idb
文件 69632 2013-10-30 15:34 Translate\Debug\vc60.pdb
文件 225 2013-10-30 15:33 Translate\pda_cfg.h
文件 54 2013-10-30 15:33 Translate\store.h
文件 4496 2013-10-30 15:33 Translate\Translate.dsp
文件 526 2013-10-30 15:33 Translate\Translate.dsw
文件 50176 2013-10-30 15:49 Translate\Translate.ncb
文件 48640 2013-10-30 15:49 Translate\Translate.opt
文件 1011 2013-10-30 15:34 Translate\Translate.plg
目录 0 2013-10-30 15:34 Translate\Debug
目录 0 2013-10-30 15:49 Translate
----------- --------- ---------- ----- ----
1687817 18
相关资源
- 将图片转换为C语言数组的程序
- Hex文件转bin文件
- C++Builder XE7 update1 和谐文件亲测可用
- 使用 IBM Rational Systems Developer 和 Rati
- pcm转换成wav
- 通达信day格式文件转换含港股和基金
- C语言版经纬度与高斯投影相互转换函
- UNIX/LINUX下C语言中文短信UCS2编码和解
- VC++阳历(公历)到阴历(农历)转换
- WGS84 北京54 西安80 CGCS2000 布尔沙七参
- 经纬度坐标转换为平面坐标的matlab实
- C语言实现51单片机和ADC0809芯片的AD模
- 圆的扫描转换,中点bresenham画圆算法
- 段页式存储管理地址转换
- DICOM图片转换BMP的C++代码
- Visual C++ 2015 build tools update 3
- 大地坐标与三维坐标转换
- 多边形扫描转换算法
- Delphi2Cppdelphi代码转换为C++代码
- Float与IEEE754格式相互转换源代码原创
- C# To C++ Converter 17.10.2 (最新破解版
- 正规式到NFA的转换
- HLS:C语言转换FPGA教程ug871
- 将MATLAB程序代码转换成C++程序代码
- VC++实现的软件自动更新模块Updater源码
- C++ MFC实现的字符点阵转换工具
- 多边形的扫描转换算法实现
- 可以将DLL文件转换成源码
- 图形学实验 多边形的扫描转换 扫面线
- Bmp2jpeg图片格式转换
川公网安备 51152502000135号
评论
共有 条评论