欢迎来到天天文库
浏览记录
ID:57681843
大小:311.00 KB
页数:29页
时间:2020-08-31
《课程设计报告 重言式的判别.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、合肥学院计算机科学与技术系课程设计报告2011~2012学年第2学期课程数据结构与算法课程设计名称重言式的判别学生姓名学号*专业班级10网络工程(1)指导教师2012年6月目录1、题目……………………………………………………………………………………32、问题分析和任务定义…………………………………………………………………43、数据结构的选择和概要设计…………………………………………………………54、详细设计和编码………………………………………………………………………85、上机调试过程…………………………………………………………………………176、测试结果及其分析……………………
2、………………………………………………197、用户使用说明…………………………………………………………………………208、参考文献………………………………………………………………………………209、附录(完整程序代码)…………………………………………………………………21【为方便学弟们,本报告后面附录完整代码,目录附两张浏览图,使用时,请删除本括号中的内容和浏览图】浏览图1-1浏览图1-2第一章题目“数据结构与算法课程设计”是计算机科学与技术专业学生的集中实践性环节之一,是学习“数据结构与算法”理论和实验课程后进行的一次全面的综合练习。其目的是要达到理论与实际应用相结合,提高学生
3、组织数据及编写程序的能力,使学生能够根据问题要求和数据对象的特性,学会数据组织的方法,把现实世界中的实际问题在计算机内部表示出来并用软件解决问题,培养良好的程序设计技能。内容:【问题描述】一个逻辑表达式如果对于其变元的任一种取值都为真,则称为重言式;反之,如果对于其变元的任一种取值都为假,则称为矛盾式;然而,更多的情况下,既非重言式,也非矛盾式。试写一个程序,通过真值表判别一个逻辑表达式属于上述哪一类。【基本要求】(1)逻辑表达式从终端输入,长度不超过一行。逻辑运算符包括"
4、","&"和"~",分别表示或、与和非,运算优先程度递增,但可由括号改变,即括号内的运算优先。逻辑变元为
5、大写字母。表达式中任何地方都可以含有多个空格符。(2)若是重言式或矛盾式,可以只显示"Trueforever",或"Falseforever",否则显示"Satisfactible"以及变量名序列,与用户交互。若用户对表达式中变元取定一组值,程序就求出并显示逻辑表达式的值。【测试数据】(1)(A
6、~A)&(B
7、~B)(2)(A&~A)&C(3)A
8、B
9、C
10、D
11、E
12、~A(4)A&B&C&~B(5)(A
13、B)&(A
14、~B)(6)A&~B
15、~A&B第二章问题分析和任务定义 1、一个逻辑表达式如果对于其变元的任一种取值均为真,则称为重言式;反之,如果对于其变元的任一种取值都为假,则称为
16、矛盾式,然而,更多的情况下,既非重言式,也非矛盾式,写一个程序通过真值表判别一个逻辑表达式属于上述哪一类。基本要求如下:2、逻辑表达式从终端输入,长度不超过一行。逻辑运算符包括“
17、”、“&”、“~”,分别表示或、与、非,运算优先程度递增,但可有括号改变,即括号内的运算优先。逻辑变元为大写字母。表达式中任何地方都可以含有多个空格符。3、若是重言式或矛盾式,可以只显示“TrueForever”或“FalseForever”,否则显示运算中每种赋值和与其相对应的表达式的值。4、本程序先使用栈将逻辑表达式的变量进行存储,然后将栈中的元素作为二叉树的结点结构,然后根据优先级读取表达式建立
18、二叉树,并通过逐个判断实现对重言式的判别。5、程序执行的命令:输入逻辑表达式。判断表达式是重言式还是矛盾式。退出程序。6、细节设置为实现用户更好的操作,程序应允许在表达式中插入多个空格,对大小写没有特殊要求,并含有较多的提示信息,一方便用户操作。第三章数据结构的选择和概要设计流程图开始mainmeun输入表达式1.计算机2.用户3.3.返回建树建树计算机穷举用户输入变量值输出结果继续结束213NY本章主要介绍1、数据结构的设计//根据表达式建立的二叉树的结点定义,由于表达式的求值类似二叉树的中序遍历,故我们可以ijiang表达式构造为一个二叉树;typedefstructbtd
19、node{}*bitree;//识别表达式使用的堆栈定义,它存放的都是树的结构,鉴于逻辑符号的优先不同,我们需要用到堆栈;typedefstructlnode_optr{}sqstack;2、算法的设计本设计从总体上划分可分为四个模块,第一个模块为树与堆栈的创建。voidcreate(bitree&zigen,bitreel,bitreer){};voidcreatstack(sqstack&st){};voidcreattree(chars[],bitree&tree){};第二个模块为对
此文档下载收益归作者所有