求助 类中一个函数的调用问题
sfyxfenxi.rar
(518.54 KB)
// sfyxfenxi.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "sfyxfenxi.h"
#include "Identify1.h"
#include <iostream>
//#include"PredictiveParser.cpp"
void main()
{
int n;
char c;
do
{
cout<<"1----分析字符串是否为该文法的句子 0----退出"<<endl<<"命令值:";
cin>>n;
if(n!=1) break;
else sfyxfenxi();
//c=Identify.xiaoyuguanxi(char RightPart[], int i);
cout<<c;
}
while(1);
}
// sfyxfenxi.h://#include "stdafx.h"
//****************************************
//编制时间:2009年11月4日17:35 **
//作者:方法 *
//录入时间:2009年11月4日17:35
//主要功能:算符优先分析技术求优先矩阵
//****************************************
#include <iostream>
using namespace std;
#define MaxRightPartLength 10
#define MaxRuleNum 10
class Identify//定义规则的Identify类
{
public:
char LeftPart;//规则左部
char RightPart[MaxRightPartLength+1];//规则右部
int MaxRightPartL;//规则右部最长规则的长度
int MaxRuleN;//输入规则的个数
public:
char xiaoyuguanxi(char RightPart[],int i)//firstteam+
{//步骤1
while(1){
if(RightPart[0]>='a'&& RightPart[0]<='z'||
!(RightPart[i]>='a'&& RightPart[i]<='z')
&&(RightPart[i+1]>='a'&& RightPart[i+1]<='z'))
return RightPart[0]||RightPart[i+1];}
//步骤2
};
void OutPutRightPart(void);//取右部符号
void RightPartconvert(void);//右部符号反序,以便入栈
void Cloze();//填表
};
void Input(void)
{
int i=0;
int MaxRuleN=0; //输入规则的个数
int MaxRightPartL=0;//规则右部最长规则的长度
}
void suanfuyouxian(void)
{
int i=0;
int MaxRuleN=0; //输入规则的个数
int MaxRightPartL=0;//规则右部最长规则的长度
Identify Rule[MaxRuleNum+1]; //定义Rule结构数组
////提示信息//////////////////////////////
cout<<"输入文法规则"<<endl;
cout<<"文法规则个数:\n"
<<"请依次输入规则:\n"
<<"规则左部:\n"//显示提示
<<"规则右部:\n"
<<"规则右部长度:\n"
<<endl;
cout<<MaxRuleN<<endl;
for(i=0;i<MaxRuleNum+1;i++)
{
cout<<Rule[i].LeftPart
<<Rule[i].RightPart
<<Rule[i].MaxRightPartL<<endl;
}
void Input();
void Output();
}
void Output(void) //////////////依次输出个人信息////////////
{
int i=0;
int MaxRuleN=0; //输入规则的个数
int MaxRightPartL=0;//规则右部最长规则的长度
Identify Rule[MaxRuleNum+1]; //定义Rule结构数组
cout<<MaxRuleN<<endl;
for(i=0;i<MaxRuleNum+1;i++)
{
cout<<Rule[i].LeftPart
<<Rule[i].RightPart
<<Rule[i].MaxRightPartL<<endl;
}
}