IF-ELSE条件语句的翻译程序设计(递归下降法、简单优先法、LR方法、LL(1)法、输出四元式、输出三地址表示)
1
在CSDN上转悠经常看到有网友寻求PowerDesigner相关资料的帖子,Baidu,Google上找找还真很少;
同时也有不少网友发来Email询问相关PowerDesigner问题或索要相关资料的,故下定决心制作本文档。
折腾二十多天,终于输出了现在的文档,其中绝大部分内容都是依照PowerDesigner自带的帮助文档翻译过来,乐意啃英文的朋友最好还是看其”原汁”教程,同时本文档仅用于帮助分析设计人员更快熟悉掌握PowerDesigner的使用方法,不包含分析设计方面的理论,所以要作好系统的分析设计工作还是需要用户深厚的项目实践功底。
起初想尽量按照PowerDesigner自带帮助文档完整地进行,尝试了一上午的工作之后这种方案马上就被我否决,原因有二:1.内容太多,工作量太多。
2.原帮助文档特别周全,个人觉得可以在内容上作很大程度的压缩。
姑决定按原帮助文档写,同时加入自己目前正在做的技术论坛分析设计过程以便于理解。
对本文档内容的几点说明:1.本文档只包括PowerDesigner部分内容(RQM,Report,CDM,PDM),内容不够全面。
2.内容尽量简略,一些相同或类似操作过程尽量不再重复。
3.部分术语参考了飞思科技产品研发中心监制电子工业出版社的《PowerDesigner数据库系统分析设计与应用》。
4.暂时没有包含OOM,XML,BPM,ILM等模型内容,我将会在后期陆续更新。
版本说明:我使用的是PowerDesignerTrial11英文版,因此文档中一些菜单,按钮名称也用英文写出(因当心自己译出的名称和中文版上的名称不一致而造成理解不便),若是给使用中文版的朋友带来不便,我在这说声”抱歉”了!同时由于各版本不同部分操作可能会有所区别。
这里要感谢在我进行翻译工作期间给我发送Email关注的网友,感谢一直支持我的朋友们!由于第一次做翻译工作,限于水平有限,文档中肯定存在很多不足和错误之处,衷心欢迎各位网友指点迷津,期望得到您的指导!
2024/6/18 9:57:14 5.55MB PD 数据库
1
1本程序在vc++6.0编译通过并能正常运行。
2主界面程序已经尽量做到操作简便了,用户只需要根据提示一步步进行操作就行了。
六思考和总结:这个课程设计的各个基本操作大部分都在我的综合性实验中实现了,所以做这个主要攻克插入和删除这两个算法!其中插入在书本上已经有了,其中的右平衡算法虽然没有给出,但通过给出的左平衡算法很容易就可以写出右平衡算法。
所以最终的点就在于删除算法的实现!做的过程中对插入算法进行了非常非常多次的尝试!花了非常多的时间,这其中很多时候是在对程序进行单步调试,运用了VC6。
0的众多良好工具,也学到了很多它的许多好的调试手段。
其中删除算法中最难想到的一点是:在用叶子结点代替要删除的非叶子结点后,应该递归的运用删除算法去删除叶子结点!这就是整个算法的核心,其中很强烈得体会到的递归的强大,递归的最高境界(我暂时能看到的境界)!其它的都没什么了。
选做的那两个算法很容易实现的:1合并两棵平衡二叉排序树:只需遍历其中的一棵,将它的每一个元素插入到另一棵即可。
2拆分两棵平衡二叉排序树:只需以根结点为中心,左子树独立为一棵,右子树独立为一棵,最后将根插入到左子树或右子树即可。
BSTreeEmpty(BSTreeT)初始条件:平衡二叉排序树存在。
操作结果:若T为空平衡二叉排序树,则返回TRUE,否则FALSE.BSTreeDepth(BSTreeT)初始条件:平衡二叉排序树存在。
操作结果:返回T的深度。
LeafNum(BSTreeT)求叶子结点数,非递归中序遍历NodeNum(BSTreeT)求结点数,非递归中序遍历DestoryBSTree(BSTree*T)后序遍历销毁平衡二叉排序树TR_Rotate(BSTree*p)对以*p为根的平衡二叉排序树作右旋处理,处理之后p指向新的树根结点即旋转处理之前的左子树的根结点L_Rotate(BSTree*p)对以*p为根的平衡二叉排序树作左旋处理,处理之后p指向新的树根结点,即旋转处理之前的右子树的根结点LeftBalance(BSTree*T)对以指针T所指结点为根的平衡二叉排序树作左平衡旋转处理,本算法结束时,指针T指向新的根结点RightBalance(BSTree*T)对以指针T所指结点为根的平衡二叉排序树作右平衡旋转处理,本算法结束时,指针T指向新的根结点Insert_AVL(BSTree*T,TElemTypee,int*taller)若在平衡的二叉排序树T中不存在和e有相同的关键字的结点,则插入一个数据元素为e的新结点,并返回OK,否则返回ERROR.若因插入而使二叉排序树失去平衡,则作平衡旋转处理布尔变量taller反映T长高与否InOrderTraverse(BSTreeT)递归中序遍历输出平衡二叉排序树SearchBST(BSTreeT,TElemTypee,BSTree*f,BSTree*p)在根指针T所指的平衡二叉排序树中递归的查找其元素值等于e的数据元素,若查找成功,则指针p指向该数据元素结点,并返回TRUE,否则指针p指向查找路径上访问的最后一个结点并返回FALSE,指针f指向T的双亲,其初始调用值为NULLDelete_AVL(BSTree*T,TElemTypee,int*shorter)在平衡二叉排序树中删除元素值为e的结点,成功返回OK,失败返回ERRORPrintBSTree_GList(BSTreeT)以广义表形式打印出来PrintBSTree_AoList(BSTreeT,intlength)以凹入表形式打印,length初始值为0Combine_Two_AVL(BSTree*T1,BSTreeT2)合并两棵平衡二叉排序树Split_AVL(BSTreeT,BSTree*T1,BSTree*T2)拆分两棵平衡二叉树}(2)存储结构的定义:typedefstructBSTNode{ TElemTypedata; intbf;//结点的平衡因子 structBSTNode*lchild,*rchild;//左.右孩子指针}BSTNode,*BSTree;
1
(1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);
(2)系统能实现的操作和功能如下:①录入:可以录入航班情况,全部数据可以只放在内存中,最好存储在文件中;
②查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;
③承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;
若已满员或余票额少于订票额,则需重新询问客户要求。
若需要,可登记排队候补;
2024/6/18 0:18:50 27KB 航空订票系统
1
本源码包含语句注释主要工作原理是通过定时器产生38kHz的载波发送空调的红外命令帮助了解基于BLE协议栈下开发红外发射过程了解其他平台只要修改相应的定时器通道输出(比如51单片机没有定时器通道定向输出特定GPIO的说法那么可以在定时器里面是相应的GPIO做翻转即可产生载波)希望能给做这方面开发的一些帮助中国的大多数的程序猿不愿意分享自己的成果或由于公司保密哎">本源码包含语句注释主要工作原理是通过定时器产生38kHz的载波发送空调的红外命令帮助了解基于BLE协议栈下开发红外发射过程了解其他平台只要修改相应的定时器通道输出(比如51单片机没有定时器通道定向输出特定GP[更多]
1
利用STM32上的ADC、TIM2、DMA实现对多个通道的交流正弦信号的采样,并计算分别得其有效值,通道数目可以根据需要自行增加,另外保留了注入通道的使用。
为了减轻MCU的负担,利用STM32的DMA功能;
另外采用串口输出到PC机上(串口调试助手),以利于观察采样计算后得到的有效值。
2024/6/17 20:29:39 1.67MB STM32 ADC TIM DMA 中断,等间隔采样
1
386D音频功率放大器主要应用于低电压消费类产品。
为使外围元件最少,电压增益内置为20。
但是在1脚和8脚之间增加一只外接的电阻和电容,便可将电压增益调为任意值,直至200。
输入端以地为参考,同时输出端被自动偏置到电源电压的一半。
在6V电源电压下,它的静态功耗仅为24mW,使得386D特别适合于电池供电的场合。
386D的封装形式为DIP8特点:z静态功耗低,约为4mA,可用电池供电z电压增益由20~200可调z电源电压范围宽,Vcc=4~12Vz外围元件少z失真度低应用范围zAM/FM收音机音频放大器z线驱动器z便携式录音机音频功率放大器z超声波驱动器z免提电话机扬声系统z小型伺服驱动器z电视机音频系统z电源变换器
2024/6/17 11:29:01 1.73MB 386D 低压音频 功率放大器 PDF
1
本报告为全自动洗衣机的PLC控制,采用西门子公司的S7-200系列的PLC作为核心控制部件,利用其特点,对按钮、电磁阀、开关等其他一些输入/输出点进行控制,实现洗衣机洗衣过程的自动化。
首先需要对全自动洗衣机的控制系统进行分析,进行流程图和梯形图的设计,并进行程序编程。
为了能更直观的显示出整个自动控制过程,我们将运用实验箱建立一个全自动洗衣机的操作模型。
2024/6/16 20:05:58 1.31MB 洗衣机PLC
1
1.掌握自顶向下语义分析中语义子程序的添加过程;
2.掌握“拉链”、“回填”操作的原理及实现;
3.根据MiniC的上下文无关文法,对赋值语句、算术表达式、关系表达式、if-else语句、while语句、布尔表达式(选作内容)等语法结构添加语义子程序;
4.针对测试代码,输出四元式序列。
5.以文件流的形式读入要分析的C语言程序;
6.使用四元式类,将四元式对象放置在四元式线性表(如:ArrayList)中;
7.自行测试多组本次实习语法结构(赋值语句、普通表达式、关系表达式、if-else语句、while语句),将四元式序列输出到文件中。
2024/6/16 14:40:03 10KB 编译原理 javacc 语义分析
1
51单片机控制输出pwm信号控制舵机程序,简单的控制程序。
2024/6/16 8:50:29 34KB 51单片机 pwm信号 舵机程序
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡