逻辑表达式课程设计报告(共9页).doc
《逻辑表达式课程设计报告(共9页).doc》由会员分享,可在线阅读,更多相关《逻辑表达式课程设计报告(共9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 中北大学课程设计报告 2016/2017 学年第 一 学期学 院: 信息与通信工程学院 专 业: 电子信息科学与技术 学 生 姓 名: 向 伟 学 号: 课程设计题目: 逻辑表达式的合理性判断 起 迄 日 期: 2016年 12 月 12 日2016 年12 月 30 日 课程设计地点: 科学楼五院106 指 导 教 师: 李建民 提交报告日期: 2016 年 月 日设计要求一、逻辑表达式的合理性判断 任务:(自己解析后的具体任务);u 编写键盘输入与文件读取表达式的程序;u 编写可以依次进行识别判断表达式的程序;u 整理表达式错误类型,并且编写分类进行错误原因分析
2、的提示程序;u 编写扫描表达式的程序;u 分类编写检测逻辑运算符,操作数以及括号是否合法的程序;u 编写删除所有空格操作的程序二、要求(自己程序能达到的指标)u 表达式既能手动输入,又能从文件中读取,并且能有多个表达式;u 可以输入任意表达式(含所有可输入的字符及符号),程序将进行自动 判别是否为逻辑表达式;u 能自动删除所有空格;u 程序可以分析输入的表达式的所有错误类型并输出到显示器上;u 程序优先对括号合法性进行判断,包含所有括号的组合情况;算法分析与程序详解一、 整体结构整个程序分为:表达式数据的读取,空格删除,括号(多重)的扫描判断与记录,运算符的扫描与检测,操作数的扫描与检测。二、
3、各个函数的详细说明:1. Deletespace函数,传入表达式字符数组,以及字符坐标,循环检测并删除空格,每次调用完该函数后继续检查当前坐标位置是否为空格,若仍然为空格将继续调用该函数,直至当前位置不再是空格,将继续循环检测下一个坐标。2. Getmount函数:为了解决scanf函数和gets函数同时使用时产生的bug(若使用了前者再使用或者,或者将会自动接收前者的一个换行符,导致后者第一个数据无法正常输入),使用该函数将输入的字符数字通过ASCII码转换成整型数字。3. Operator函数:在对表达式进行从头至尾的扫描过程中若匹配到含逻辑运算符的字符,则返回成功,否则返回失败,并输出错
4、误类型的提示信息,本次判断将就此结束。4. Bracket函数:从左至右扫描过程中,发现括号后检查括号是否合法,若合法,用一个二维数组记录检测到的合法括号的位置信息,并且返回此信息,若不合法,返回不合法类型,并且输出错误类型的提示信息,本次判断将就此结束。5. Repeat函数:主要检查是否含有重复的无用括号,例如“(xxx)”,具体方法是,设置该函数返回的缺省值是有重复,在循环检测的过程中,分别用两个数组记录连续的左右括号的位置,然后用两个for循环实现从左括号位置到右括号位置的交叉扫描,如果出现了括号,则修改缺省值为没有重复,并且立刻跳出内部for循环的扫描,进行外层for循环的下一次扫描
5、,如果某次内部扫描完毕后都没有出现括号,则缺省值不会被修改,将直接跳出外层循环,并且返回有重复,输出错误类型提示,结束本次判断。6. Scan函数:扫描运算符的函数,其扫描方式为根据Bracket函数和提供的位置进行扫描,如果匹配到运算符,并且检测到该运算符合法,将调用相关运算符检测函数,进行运算符的检测。7. Single函数:一元运算符及操作数检测函数,根据一元运算符的特征进行判断该运算符到附近的运算符或者前面左括号后面右括号之间的操作数是否合法,规定操作数为字母或字母组合为合法。若后面紧接着出现左括号则也认为操作数合法。8. Double函数:二元运算符及操作数检测函数,根据二元运算符的
6、特征进行判断该运算符到附近的运算符或者前面左括号后面右括号之间的操作数是否合法,规定操作数为字母或字母组合为合法。若后面紧接着出现左括号或者前面紧接着出现右括号则也认为操作数合法。三、 程序运行过程每个函数具体如何工作请参考第二部分对各个函数的详细说明。程序从主函数开始运行,首先进入数据来源方式的选择,用变量select表示,输入1或2分别进入文件读取数据和键盘输入数据的程序模块,在读取到数据后,进入删除空格函数Deletespace函数删除空格后返回新的数据,紧接着调用Operator函数,检测是否存在运算符,若没有则返回该错误类型,若有则进入Bracket函数对括号进行扫描,若有括号,括号
7、没有正常成对,则返回该错误类型,若没有括号,将直接从表达式开始到表达式结尾进行Scan函数扫描,若有括号,且成对,则调用Repeat函数进行多余重复括号检查,若存在多余括号,则返回该错误类型,若不存在,则返回Bracket函数生成的括号坐标位置信息,并根据该信息进行循环Scan函数扫描,如果匹配到运算符,并且检测到该运算符合法,根据运算符类型的不同选择调用Single函数(一元运算符)和Double函数(二元运算符),进行操作数检查,若不合法则返回相应错误类型,若合法,则返回正确。另外第五部分附有流程图四、 错误类型说明函数名返回值错误类型Operator-1表达式无运算符Repeat-2表达
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 逻辑 表达式 课程设计 报告
限制150内