资源描述:
《自动售货机--编译原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、自动售货机简述:有一台自动售货机,只能接受1分钱和2分钱,出售3分钱一块的硬糖。顾客每次向机器投放大于等于3分的硬币,便可得到一块硬糖。(只给一块糖并且不找零)SBAZ211212正规式的最简DFAS->b(a
2、b)
3、a(a(a
4、b)
5、b)【a:1分钱,b:2分钱】正规的文法:G[s’]:S’—SS—aA
6、bBA—aB
7、bB—a
8、b0)S’—S---------------------1001)S—aA--------------------1012)S—bB-----------------
9、---1023)A—aB--------------------1034)A—b----------------------1045)B—a----------------------1056)B—b----------------------106所有的项目:1)S’—・S2)S’—S・3)S—・aA4)S—a・A5)S—aA・6)S—・bB7)S—b・B8)S—bB・9)A—・aB10)A—a・B11)A—aB・12)A—・b13)A—b・14)B—・a15)B—a
10、・16)B—・b17)B—b・根据LR(0)分析表,使用vc++的mfc来开发我们的工程.首先,使用mfc来的画图工具来编辑工程界面,如图所示:接着是编写我们的重要的函数,使用按钮的触发来调用应该的函数。下面是关键的action矩阵:/************************ACTION矩阵***********************/staticintaction[11][6]=/*0*/{{2,3,-1,-1,-1,1},/*1*/{-1,-1,ACC,-1,-1,-1},/*2*/{4,
11、5,-1,8,-1,-1},/*3*/{6,7,-1,-1,9,-1},/*4*/{6,7,-1,-1,10,-1},/*5*/{104,104,104,-1,-1,-1},/*6*/{105,105,105,-1,-1,-1},/*7*/{106,106,106,-1,-1,-1},/*8*/{101,101,101,-1,-1,-1},/*9*/{102,102,102,-1,-1,-1},/*10*/{103,103,103,-1,-1,-1}};/**************************
12、*************************/实验结果(1)程序界面:(2)正确输入:111(3)正确输入:12(4)正确输入:21(5)正确输入:22(6)输入不足够3分钱的情况:(7)输入了大于3分钱不符合要求的情况:谢谢