📄 unit1.cpp
字号:
Form1->StringGrid1->Cells[1][x]="无 \"}\" 字";
Form1->StringGrid1->Cells[0][x]=x;
if(ssj==0)
fprintf(fp2,"%10d, error, error, error, error,%10c\n",x,ch);
x++;
return p;
}
else
{
Form1->Edit6->Text=ch;
Form1->StringGrid1->Cells[5][x]=ch;
Form1->StringGrid1->Cells[4][x]="10010001";
Form1->StringGrid1->Cells[3][x]="界符";
Form1->StringGrid1->Cells[2][x]="";
Form1->StringGrid1->Cells[1][x]='0';
Form1->StringGrid1->Cells[0][x]=x;
Form1->Edit6->Text=ch;
if(ssj==0)
fprintf(fp2,"%10d, 0, , 界符, 10010010,%10c\n",x,ch);
x++;
break;
}
}
if(ch=='}')
{
if(find4(p)==0) //检验" }"是否匹配
{
Form1->StringGrid1->Cells[5][x]="}";
Form1->StringGrid1->Cells[4][x]="error";
Form1->StringGrid1->Cells[3][x]="字符串匹配";
Form1->StringGrid1->Cells[2][x]="符串与 \"}\"";
Form1->StringGrid1->Cells[1][x]="无\"{\" 字";
Form1->StringGrid1->Cells[0][x]=x;
if(ssj==0)
fprintf(fp2,"%10d, error, error, error, error,%10c\n",x,ch);
x++;
return p;
}
else
{
Form1->StringGrid1->Cells[5][x]=ch;
Form1->StringGrid1->Cells[4][x]=10010011;
Form1->StringGrid1->Cells[3][x]="界符";
Form1->StringGrid1->Cells[2][x]="";
Form1->StringGrid1->Cells[1][x]='0';
Form1->StringGrid1->Cells[0][x]=x;
Form1->Edit6->Text=ch;
if(ssj==0)
fprintf(fp2,"%10d, 0, , 界符, 10010011,%10c\n",x,ch);
x++;
break;
}
}
if(ch==';') //界符符号处理
{
c[0]='\0';c[1]='\0';c[2]='\0';c[3]='\0';c[4]='\0';
Form1->StringGrid1->Cells[5][x]=ch;
Form1->StringGrid1->Cells[4][x]=10010100;
Form1->StringGrid1->Cells[3][x]="界符";
Form1->StringGrid1->Cells[2][x]="";
Form1->StringGrid1->Cells[1][x]='0';
Form1->StringGrid1->Cells[0][x]=x;
Form1->Edit6->Text=ch;
if(ssj==0)
fprintf(fp2,"%10d, 0, , 界符, 10010100,%10c\n",x,ch);
x++;
break;
}
if(ch==',') //界符符号处理
{
Form1->StringGrid1->Cells[5][x]=ch;
Form1->StringGrid1->Cells[4][x]=10010101;
Form1->StringGrid1->Cells[3][x]="界符";
Form1->StringGrid1->Cells[2][x]="";
Form1->StringGrid1->Cells[1][x]='0';
Form1->StringGrid1->Cells[0][x]=x;
Form1->Edit6->Text=ch;
if(ssj==0)
fprintf(fp2,"%10d, 0, , 界符, 10010101,%10c\n",x,ch);
x++;
break;
}
if(ch==';'||ch==',') //界符符号处理
{
Form1->StringGrid1->Cells[5][x]=ch;
Form1->StringGrid1->Cells[4][x]="0000";
Form1->StringGrid1->Cells[3][x]="界符";
Form1->StringGrid1->Cells[2][x]="";
Form1->StringGrid1->Cells[1][x]='0';
Form1->StringGrid1->Cells[0][x]=x;
Form1->Edit6->Text=ch;
if(ssj==0)
fprintf(fp2,"%10d, 0, , 界符, 000000,%10c\n",x,ch);
x++;
break;
}
if(ch==32||ch=='\0') //当CH为空格或结束标记时退出
return p;
if(ch=='\n') //当CH为换行时处理
{
if(ssj==1)
x=x-1;
return p;
}
for(m=0;m<12;m++) //若CH非以上出现符号,匹配标识符符号表
{
if(ch==str4[m].a)
break;
}
Form1->StringGrid1->Cells[5][x]=ch;
Form1->StringGrid1->Cells[4][x]=str2[m].b;
Form1->StringGrid1->Cells[3][x]="标识符";
Form1->StringGrid1->Cells[2][x]="";
Form1->StringGrid1->Cells[1][x]='0';
Form1->StringGrid1->Cells[0][x]=x;
Form1->Edit6->Text=ch;
if(ssj==0)
fprintf(fp2,"%10d, 0, , 标识符,%10s,%10c\n",x,str2[m].b,ch);
x++;
return p;
l: for(m=0;m<15;m++) //匹配运算符符号表
{
if(ch==str2[m].a)
break;
}
Form1->StringGrid1->Cells[5][x]=ch;
Form1->StringGrid1->Cells[4][x]=str2[m].b;
Form1->StringGrid1->Cells[3][x]="运算符";
Form1->StringGrid1->Cells[2][x]="";
Form1->StringGrid1->Cells[1][x]='0';
Form1->StringGrid1->Cells[0][x]=x;
if(ssj==0)
fprintf(fp2,"%10d, 0, , 运算符,%10s,%10c\n",x,str2[m].b,ch);
x++;
}
return p;
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
char ch;
int ok(char ch,int i);
if(ssj1==1) //当有动画过程时的输入处理
{
if(s[z]!='\0')
{
ch=s[z]; //将S数组中字符依次单个存入CH
z=ok(ch,z); //调用主函数处理
z++;
if(s[z]=='\0') //当数据全部处理后,进行结束处理
{
z=ok('\0',z);
Form1->Edit4->Text="\0";Form1->Edit5->Text="\0";Form1->Edit6->Text="\0";
Form1->StringGrid1->Cells[5][x]="\0";
Form1->StringGrid1->Cells[4][x]="\0";
Form1->StringGrid1->Cells[3][x]="\0";
Form1->StringGrid1->Cells[2][x]="\0";
Form1->StringGrid1->Cells[1][x]="\0";
Form1->StringGrid1->Cells[0][x]="\0";
while(y<=x)
{
if(Form1->StringGrid1->Cells[4][y]=="error") //统计出错数量
count++;
y++;
}
Edit1->Text=count;
if(count==0)
{
Form1->Animate11->Visible=false;
}
else
{
Form1->Animate11->Visible=false;
Form1->Button7->Click();
}
}
}
}
else //当无动画过程时的输入处理
{
while(s[z]!='\0') //当输入数据非空即处理下一字符
{
ch=s[z];
z=ok(ch,z);
z++;
if(s[z]=='\0')
{
z=ok('\0',z);
Form1->Edit4->Text="\0";Form1->Edit5->Text="\0";Form1->Edit6->Text="\0";
Form1->StringGrid1->Cells[5][x]="\0";
Form1->StringGrid1->Cells[4][x]="\0";
Form1->StringGrid1->Cells[3][x]="\0";
Form1->StringGrid1->Cells[2][x]="\0";
Form1->StringGrid1->Cells[1][x]="\0";
Form1->StringGrid1->Cells[0][x]="\0";
while(y<=x)
{
if(Form1->StringGrid1->Cells[4][y]=="error") //出错统计
count++;
y++;
}
Edit1->Text=count;
if(count==0)
{
Form1->Animate11->Visible=false;
}
else
{
Form1->Animate11->Visible=false;
Form1->Button7->Click();
}
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Button3->Click();
Animate1->FileName="粉色Y.avi";
Animate2->FileName="橙色Y.avi";
Animate3->FileName="绿色Y.avi";
Animate4->FileName="大陆台湾.avi";
Animate4->Active=true;
Animate5->FileName="吹尾巴.avi";
Animate5->Active=true;
Animate6->FileName="谁怕谁.avi";
Animate6->Active=true;
Animate7->FileName="猫游泳.avi";
Animate7->Active=true;
Animate8->FileName="龟跳舞.avi";
Animate8->Active=true;
Animate9->FileName="猪尾巴.avi";
Animate9->Active=true;
Animate10->FileName="starwind.avi";
Animate10->Active=true;
Animate11->FileName="原始人.avi";
Animate12->FileName="原子弹.avi";
Animate13->FileName="小新.avi";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
STARTUPINFO si; //开机画面调用
PROCESS_INFORMATION pi;
ZeroMemory(&si,sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi,sizeof(pi));
CreateProcess("真正做好了.exe",NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
if(haha==1)
MediaPlayer1->Play();
haha++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{Close();
Button6->Click();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
STARTUPINFO si; //关机画面调用
PROCESS_INFORMATION pi;
ZeroMemory(&si,sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi,sizeof(pi));
CreateProcess("完.exe",NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
Animate12->Visible=true;
Animate12->Play(1,27,1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
Animate12->Visible=false;
Animate13->Visible=true;
Animate13->Play(1,38,2);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
Animate13->Visible=false;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -