编译原理龙书答案完整性高第二章2.2ExercisesforSection2.22.2.1Considerthecontext-freegrammar:S->SS+|SS*|aShowhowthestringaa+a*canbegeneratedbythisgrammar.Constructaparsetreeforthisstring.Whatlanguagedoesthisgrammargenerate?Justifyyouranswer.answerS->SS*->SS+S*->aS+S*->aa+S*->aa+a*L={Postfixexpressionconsistingofdigits,plusandmultiplesigns}2.2.2Whatlanguageisgeneratedbythefollowinggrammars?Ineachcasejustifyyouranswer.S->0S1|01S->+SS|-SS|aS->S(S)S|εS->aSbS|bSaS|ε⧗S->a|S+S|SS|S*|(S)answerL={0n1n|n>=1}L={Prefixexpressionconsistingofplusandminussigns}L={Matchedbracketsofarbitraryarrangementandnesting,includesε}L={Stringhasthesameamountofaandb,includesε}?2.2.3WhichofthegrammarsinExercise2.2.2areambiguousanswerNoNoYesYesYes2.2.4Constructunambiguouscontext-freegrammarsforeachofthefollowinglanguages.Ineachcaseshowthatyourgrammariscorrect.Arithmeticexpressionsinpostfixnotation.Left-associativelistsofidentifiersseparatedbycommas.Right-associativelistsofidentifiersseparatedbycommas.Arithmeticexpressionsofintegersandidentifierswiththefourbinaryoperators+,-,*,/.answer1.E->EEop|num2.list->list,id|id3.list->id,list|id4.expr->expr+term|expr-term|termterm->term*factor|term/factor|factorfactor->id|num|(expr)5.expr->expr+term|expr-term|termterm->term*unary|term/unary|unaryunary->+factor|-factorfactor->id|num|(expr)2.2.5Showthatallbinarystringsgeneratedbythefollowinggrammarhavevaluesdivisibleby3.Hint.Useinductiononthenumberofnodesinaparsetree.num->11|1001|num0|numnumDoesthegrammargenerateallbinarystringswithvaluesdivisibleby3?answerproveanystringderivedfromthegrammarcanbeconsideredtobeasequenceconsistingof11,1001and0,andnotprefixedwith0.thesumofthisstringis:sum=Σn(21+20)*2n+Σm(23+20)*2m=Σn3*2n+Σm9*2mItisobviouslycandivisibleby3.No.Considerstring"10101",itisdivisibleby3,butcannotderivedfromthegrammar.Question:anygeneralprove?2.2.6Constructacontext-freegrammarforromannumerals.Note:wejustconsiderasubsetofromannumeralswhichislessthan4k.answerwikipedia:Roman_numeralsviawikipedia,wecancategorizethesinglenomannumeralsinto4groups:I,II,III|IV|V,VI,VII,VIII|IXthengettheproduction:digit->smallDigit|IV|VsmallDigit|IXsmallDigit->I|II|III|εandwecanfindasimplewaytomapromantoarabicnumerals.Forexample:XII=>X,II=>10+2=>12CXCIX=>C,XC,IX=>100+90+9=>199MDCCCLXXX=>M,DCCC,LXXX=>1000+800+80=>1880viatheuppertworules,wecanderivetheproduction:romanNum->thousandhundredtendigitthousand->M|MM|MMM|εhundred->smallHundred|CD|DsmallHundred|CMsmallHundred->C|CC|CCC|εten->smallTen|XL|LsmallTen|XCsmallTen->X|XX|XXX|εdigit->smallDigit|IV|VsmallDigit|IXsmallDigit->I|II|III|ε2.3ExercisesforSection2.32.3.1Constructasyntax-directedtranslationschemethattrans­latesarithmeticexpressionsfrominfixnotationintoprefixnotationinwhichanoperatorappearsbeforeitsoperands;e.g.,-xyistheprefixnotationforx-y.Giveannotatedparsetreesfortheinputs9-5+2and9-5*2.。
answerproductions:expr->expr+term|expr-term|termterm->term*factor|term/factor|factorfactor->digit|(expr)translationschemes:expr->{print("+")}expr+term|{print("-")}expr-term|termterm->{print("*")}term*factor|{print("/")}term/factor|factorfactor->digit{print(digit)}|(expr)2.3.2Constructasyntax-directedtranslationschemethattrans­latesarithmeticexpressionsfrompostfixnotationintoinfixnotation.Giveannotatedparsetreesfortheinputs95-2*and952*-.answerproductions:expr->exprexpr+|exprexpr-|exprexpr*|exprexpr/|digittranslationschemes:expr->expr{print("+")}expr+|expr{print("-")}expr-|{print("(")}expr{print(")*(")}expr{print(")")}*|{print("(")}expr{print(")/(")}expr{print(")")}/|digit{print(digit)}AnotherreferenceanswerE->{print("(")}E{print(op)}E{print(")"}}op|digit{print(digit)}2.3.3Constructasyntax-directedtranslationschemethattrans­latesintegersintoromannumeralsanswerassistantfunction:repeat(sign,times)//repeat('a',2)='aa'translationschemes:num->thousandhundredtendigit{num.roman=thousand.roman||hundred.roman||ten.roman||digit.roman;print(num.roman)}thousand->low{thousand.roman=repeat('M',low.v)}hundred->low{hundred.roman=repeat('C',low.v)}|4{hundred.roman='CD'}|high{hundred.roman='D'||repeat('X',high.v-5)}|9{hundred.roman='CM'}ten->low{ten.roman=repeat('X',low.v)}|4{ten.roman='XL'}|high{ten.roman='L'||repeat('X',high.v-5)}|9{ten.roman='XC'}digit->low{digit.roman=repeat('I',low.v)}|4{digit.roman='IV'}|high{digit.roman='V'||repeat('I',high.v-5)}|9{digit.roman='IX'}low->0{low.v=0}|1{low.v=1}|2{low.v=2}|3{low.v=3}high->5{high.v=5}|6{high.v=6}|7{high.v=7}|8{high.v=8}2.3.4Constructasyntax-directedtranslationschemethattrans­latesromannumeralsintointegers.answerproductions:romanNum->thousandhundredtendigitthousand->M|MM|MMM|εhundred->smallHundred|CD|DsmallHundred|CMsmallHundred->C|CC|CCC|εten->smallTen|XL|LsmallTen|XCsmallTen->X|XX|XXX|εdigit->smallDigit|IV|VsmallDigit|IXsmallDigit->I|II|III|εtranslationschemes:romanNum->thousandhundredtendigit{romanNum.v=thousand.v||hundred.v||ten.v||digit.v;print(romanNun.v)}thousand->M{thousand.v=1}|MM{thousand.v=2}|MMM{thousand.v=3}|ε{thousand.v=0}hundred->smallHundred{hundred.v=smallHundred.v}|CD{hundred.v=smallHundred.v}|DsmallHundred{hundred.v=5+smallHundred.v}|CM{hundred.v=9}smallHundred->C{smallHundred.v=1}|CC{smallHundred.v=2}|CCC{smallHundred.v=3}|ε{hundred.v=0}ten->smallTen{ten.v=smallTen.v}|XL{ten.v=4}|LsmallTen{ten.v=5+smallTen.v}|XC{ten.v=9}smallTen->X{smallTen.v=1}|XX{smallTen.v=2}|XXX{smallTen.v=3}|ε{smallTen.v=0}digit->smallDigit{digit.v=smallDigit.v}|IV{digit.v=4}|VsmallDigit{digit.v=5+smallDigit.v}|IX{digit.v=9}smallDigit->I{smallDigit.v=1}|II{smallDigit.v=2}|III{smallDigit.v=3}|ε{smallDigit.v=0}2.3.5Constructasyntax-directedtranslationschemethattrans­latespostfixarithmeticexpressionsintoequivalentprefixarithmeticexpressions.answerproduction:expr->exprexprop|digittranslationscheme:expr->{print(op)}exprexprop|digit{print(digit)}ExercisesforSection2.42.4.1Constructrecursive-descentparsers,startingwiththefollow­inggrammars:S->+SS|-SS|aS->S(S)S|εS->0S1|01Answer1)S->+SS|-SS|avoidS(){switch(lookahead){case"+":match("+");S();S();break;case"-":match("-");S();S();break;case"a":match("a");break;default:thrownewSyntaxException();}}voidmatch(Terminalt){if(lookahead=t){lookahead=nextTerminal();}else{thrownewSyntaxException()}}2)S->S(S)S|εvoidS(){if(lookahead=="("){S();match("(");S();match(")");S();}}3)S->0S1|01voidS(){switch(lookahead){case"0":match("0");S();match("1");break;case"1"://match(epsilon);break;default:thrownewSyntaxException();}}ExercisesforSection2.62.6.1ExtendthelexicalanalyzerinSection2.6.5toremovecom­ments,definedasfollows:Acommentbeginswith//andincludesallcharactersuntiltheendofthatline.Acommentbeginswith/*andincludesallcharactersthroughthenextoccurrenceofthecharactersequence*/.2.6.2ExtendthelexicalanalyzerinSection2.6.5torecognizetherelationaloperators.2.6.3ExtendthelexicalanalyzerinSection2.6.5torecognizefloat­ingpointnumberssuchas2.,3.14,and.5.AnswerSourcecode:commit8dd1a9aCodesnippet(src/lexer/Lexer.java):publicTokenscan()throwsIOException,SyntaxException{for(;;peek=(char)stream.read()){if(peek==''||peek=='\t'){continue;}elseif(peek=='\n'){line=line+1;}else{break;}}//handlecommentif(peek=='/'){peek=(char)stream.read();if(peek=='/'){//singlelinecommentfor(;;peek=(char)stream.read()){if(peek=='\n'){break;}}}elseif(peek=='*'){//blockcommentcharprevPeek='';for(;;prevPeek=peek,peek=(char)stream.read()){if(prevPeek=='*'&&peek=='/'){break;}}}else{thrownewSyntaxException();}}//handlerelationsignif("".indexOf(peek)>-1){StringBufferb=newStringBuffer();b.append(peek);peek=(char)stream.read();if(peek=='='){b.append(peek);}returnnewRel(b.toString());}//handlenumber,notypesensitiveif(Character.isDigit(peek)||peek=='.'){BooleanisDotExist=false;StringBufferb=newStringBuffer();do{if(peek=='.'){isDotExist=true;}b.append(peek);peek=(char)stream.read();}while(isDotExist==true?Character.isDigit(peek):Character.isDigit(peek)||peek=='.');returnnewNum(newFloat(b.toString()));}//handlewordif(Character.isLetter(peek)){StringBufferb=newStringBuffer();do{b.append(peek);peek=(char)stream.read();}while(Character.isLetterOrDigit(peek));Strings=b.toString();Wordw=words.get(s);if(w==null){w=newWord(Tag.ID,s);words.put(s,w);}returnw;}Tokent=newToken(peek);peek='';returnt;}ExercisesforSection2.82.8.1For-statementsinCandJavahavetheform:for(exprl;expr2;expr3)stmtThefirstexpressionisexecutedbeforetheloop;itistypicallyusedforinitializ­ingtheloopindex.Thesecondexpressionisatestmadebeforeeachiterationoftheloop;theloopisexitediftheexpressionbecomesO.Theloopitselfcanbethoughtofasthestatement{stmtexpr3;}.Thethirdexpressionisexecutedattheendofeachiteration;itistypicallyusedtoincrementtheloopindex.Themeaningofthefor-statementissimilartoexpr1;while(expr2){stmtexpr3;}DefineaclassForforfor-statements,similartoclassIfinFig.2.43.AnswerclassForextendsStmt{ExprE1;ExprE2;ExprE3;StmtS;publicFor(Exprexpr1,Exprexpr2,Exprexpr3,Stmtstmt){E1=expr1;E2=expr2;E3=expr3;S=stmt;}publicvoidgen(){E1.gen();Labelstart=newLable();Lalelend=newLable();emit("ifFalse"+E2.rvalue().toString()+"goto"+end);S.gen();E3.gen();emit("goto"+start);emit(end+":")}}2.8.2TheprogramminglanguageCdoesnothaveabooleantype.ShowhowaCcompilermighttranslateanif-statementintothree-addresscode.AnswerReplaceemit("isFalse"+E.rvalue().toString()+"goto"+after);withemit("ifNotEqual"+E.rvalue().toString()+"0goto"+after);oremit("isNotEqualZero"+E.rvalue().toString()+"goto"+after);
2025/11/27 8:37:48 658KB 龙书答案 完整性高
1
最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料;
本资料仅用于学习。
【课程内容】第1周开课介绍python发展介绍第一个python程序变量字符编码与二进制字符编码的区别与介绍用户交互程序ifelse流程判断while循环while循环优化版本for循环及作业要求第2周本节鸡汤模块初识pyc是什么python数据类型bytes数据类型列表的使用元组与购物车程序练习购物车程序练习实例字符串常用操作字典的使用三级菜单实例本周作业-购物车优化第3周作业上节内容回顾集合及其运算文件读与写详解心灵鸡汤文件修改详解字符编码转换详解函数与函数式编程函数式编程之参数详解局部变量与全局变量作用域递归函数式编程与函数不同高阶函数第4周上节内容回顾心灵鸡汤装饰器详解装饰器应用详解装饰器之函数即变量装饰器之高阶函数装饰器之嵌套函数装饰器之案例剖析装饰器之高潮讲解迭代器与生成器迭代器与生成器并行内置方法详解Json与pickle数据序列化软件目录结构规范本周作业第5周心灵分享ATM存钱取钱案例剖析模块定义、导入、优化详解内置模块详解之time与datetime模块内置模块详解之Range模块内置模块详解之OS模块内置模块详解之Sys模块内置模块详解之Shelve模块内置模块详解之Xml模块内置模块详解之Configparser模块内置模块详解之Hashlib、Hmac模块正则表达式Re模块使用详解第6周本节小鸡汤(电影分享)面向对象介绍面向对象特性介绍实例演示opp编程好处实例变量与类变量类变量的作用及析构函数类的继承经典类与新式类的继承顺序继承实例讲解多态实例讲解本节作业之选课系统开发第7周心灵分享上节回顾静态方法、类方法、属性方法课堂扯淡深入讲解类的特殊成员方法__init__等深入讲解类的特殊成员方法__new__等反射详解异常处理TryExcept网络编程Socket介绍Socket通信案例消息发送与接收第8周上节回顾Socket实现简单的ssh客户端Socket实现简单的ssh服务端积极思考正能量Socket实现简单的ssh2Socket粘包Socket粘包深入编码SocketServerSocketServer多并发多用户在线Ftp程序第9周上节回顾paramiko模块详解ssh密钥讲解进程与线程多线程多线程案例主线程与子线程线程锁线程之信号量线程之Event队列Queue作业之主机批量管理第10周心灵分享上节回顾多进程多进程Queue多进程Pipes与Manager进程锁与进程池详解协程协程Gevent协程之爬虫协程之SocketIO多路复用IO模式Select解析Socket通信作业第11周鸡汤消息队列介绍RabbitMQ基本示例RabbitMQ消息分发轮询RabbitMQ消息持久化RabbitMQfanout广播模式RabbitMQdirect广播模式RabbitMQtopic细致的消息过滤广播模式Redisstring操作RabbitMQrpc实现Redishash操作Redis集合set和有序集合操作Redis集合操作补充Redis发布订阅及本节作业第12周上节回顾数据库介绍mysql基本使用mysql数据类型与创建表mysql增删改查mysql外键关联mysql连接查询mysql事务与索引mysqlpython交互sqlalchemyorm介绍sqlalchemy常用语法sqlalchemy外键关联sqlalchemy多外键关联sqlalchemy多对多关联作业之学员管理系统开发第13周堡垒机框架开发介绍堡垒机源码讲解堡垒机项目表结构设计与实现自动创建表对象权限分组与数据初始化第14周开课介绍前端技术概要今日内容概要Html本质以及在web程序中的作用html的head内标签html的body内标签之图标、换行及其他chrome查看html样式基本操作html的body内标签之input系列html的body内标签之多行文本及下来框html的body内标签之超链接html的body内标签之图片及表格html的body内标签之表格html的body内标签之fieldset标签和label标签上述内容总结css选择器css的存在形式及优先级css边框以及其他常用样式css之float样式css之float实现作业实例css之display样式css之内外边距本周作业以及思路第15周上节内容答疑上节内容回顾CSS内容补充之positionCSS内容补充之overflowCSS内容之hoverCSS内容之background初始javaScriptjavascript代码存在形式javascript基本预览javascript字符串操作以及跑马灯实例javascript数组和字典以及for循环javascript条件语句javascript函数的定义Dom直接选择器Dom间接选择器示例之模态对话框示例之全选和反选以及取消javascript必须加分号示例之后台管理左侧菜单今日内容梳理本周作业第16周上节作业问题答疑今日内容计划CSS内容补充以及后台管理页面布局后台管理页面布局JavaScript内容回顾JavaScript函数JavaScript序列化及转义开小差之自动登录抽屉并点赞eval以及时间操作JavaScript作用域JavaScript面向对象及原型Dom选择器以及内容文本操作Dom样式操作Dom属性及创建标签Dom提交表单及其他Dom事件操作Dom事件操作补充Dom绑定时间的另外一种方式JavaScript词法分析解析前端学习方法分享SublimeText工具使用介绍谢幕第17周今日内容概要jQuery和Dom关系及jQuery版本jQuery选择器实例多选反选取消删选器以及Tab菜单示例示例:模态编程框jQuery样式以及属性操作示例:TAB切换菜单jQuery内容操作点赞以及jQuerycss操作JQuery高度以及位置操作JQuery事件绑定的方式JQuery事件之组织事件的发生示例:表单验证JQuery事件之页面框架和加载后自动执行JQuery扩展以及自动执行函数的应用JQuery阻止事件发生JQuery扩展作业第18周内容概要JS正则详解JS正则详解之验证组件BootStrap、EasyUI、JQueryUI插件轮播Django_Web框架引入Django工程创建Django目录详解Django创建AppDjango的Model使用Django实现用户登录与前端交互Django路由介绍Django知识点整理作业第19周今日内容概要上课内容概要今日Django工程的创建Django获取多个数据以及文件上传Django的CBV和FBVDjango模板语言循环字典Django基于正则表达式的URLDjango对应的路由名称Django路由分发DjangoORM基本创建基本类型以及生成数据库结构DjangoORM使用mysql注意DjangoORM基本增删查该基于ORM实现用户登录基于ORM实现用户增加删除修改以及查看详细Django字段类型介绍DjangoORM字段参数介绍DjangoORM外键操作基于DjangoORM的外键实现增加用户(含select标签)作业第20周课程安排上课内容回顾Django一对多的创建创建一对多表结构获取单表单数据的三种方式一对多跨表操作一对多块表操作的的三种方式增加一对多数据示例初识AjaxAjax内容基本整理编辑一对多示例创建多对多以及增加示例本节内容梳理本周作业第21周今日知识点概要上节内容回顾以及URL的补充视图获取用户请求相关信息以及请求头模板之继承模板之导入上节作业情况自定义simple_tag自定义filter自定义分页Cookie是什么鬼基于Cookie实现用户登录基于cookie实现定制显示数据条数带签名的CookieCBV和FBV用户认证装饰器本周作业第22周上节回顾Django之url、ViewsDjango之Model操作Django之模版Django之SessionDjango之Session与CookieDjango之CSRF原理详解Django之中间件详解Django之缓存实例详解Django之信号Django之Form组件验证作业第23周主机管理项目需求分析主机管理项目架构设计主机管理项目初始构建主机管理项目编写插件基类主机管理项目命令分发器主机管理项目提取主机列表主机管理项目提取yaml配置文件_主机管理项目动态调用插件进行数据解析主机管理项目对模块中的参数进行解析第24周本节题纲上节内容回顾ModelForm操作及验证ajax操作-原生ajaxajax操作-JQuery的ajaxajax操作-伪ajax(iframe)ajax操作-时机选择文件上传(3种方式)-1文件上传-时机选择及预览-2图片验证码KindEditor基本使用和文件操作作业第25周今日内容概要博客系统示例预览组合搜索组件JSONP跨域请求jQuery方式JSONP跨域请求本质XSS过滤以及单例模式博客系统表结构讲解博客系统功能讲解CMDB介绍CMDB实现的三种方式CMDBAgent客户端示例第26周今日内容概要以及CMDB介绍前端插件定制之表头前端插件定制之表内容第27周前端插件定制之定制td内容以及属性CMDB插件示例演示算法介绍与列表查找冒泡选择插入排序快排堆排序第28周堆排序复习归并排序希尔排序算法练习栈和队列数据结构其他
2025/11/22 3:51:45 94B Python
1
mysql-5.7.7-rc.tag.gz64位,我亲自安装并实验过,没有问题,因此提供此资源供大家连接。
2025/8/22 7:42:07 45.56MB mysql577
1
graphql-tag.macro库的BabelMacro。
它能做什么它内联使用graphql-tag解析GraphQL查询的结果。
转换为:constquery=gql`query{hello{world}}`;对此:constquery={'kind':'Document','definitions':[{'kind':'OperationDefinition','operation':'query','variableDefinitions':[],'directives':[],'selectionSet':{'kind':'SelectionSet','selections':[{'kind':'Field','alias':null,'name':{
2025/6/23 20:27:25 168KB graphql babel graphql-tag babel-macros
1
<我的仓库>使用最低限度的自定义元素入门套件。
喜欢约?改用。
正在寻找工作示例?检查。
演示安装使用安装组件:$bowerinstallmy-repo--save或。
用法导入polyfill:<scriptsrc="bower_components/webcomponentsjs/webcomponents.min.js"></script>导入自定义元素:<linkrel="import"href="bower_components/my-repo/my-element.html">开始使用吧!<my></my>选项属性选项默认描述foo细绳barLoremipsumdolor。
方法方法参数退货描述un
2025/6/19 6:08:00 3KB
1

"wabacus4.3"是一个软件项目的版本标识,这通常指的是Wabacus的第4.3版。
Wabacus可能是一个计算或数据分析工具,尤其考虑到它带有“abacus”这个词,暗示它可能与数学计算或者数据处理有关。
"wabacus4.3源码"说明我们获取的是该软件的源代码,这是程序员可以阅读、修改和编译的原始编程语言文本。
源码对于开发者来说极其重要,因为它提供了深入理解软件工作原理的机会,并允许他们根据需要进行定制和扩展。
"wabacus"是该项目的关键词,它可能是软件的名称,也可能是特定功能或技术的代号。
这个标签有助于识别和搜索相关的资源和技术讨论。
【压缩包子文件的文件名称列表】1. `defaultconfig`:这通常包含软件的默认配置信息,定义了软件在安装或启动时的基本设置。
开发者可以通过修改这些配置来调整软件的行为。
2. `COPYING.LESSER` 和 `COPYING`:这两个文件通常包含软件的许可协议,表明该软件遵循 Lesser General Public License (LGPL) 或者其他开源许可,允许用户自由使用、修改和分发源代码,但可能需要满足特定条件,比如保持原有许可信息。
3. `wabacus.tld`:TLD是Tag Library Descriptor的缩写,是Java Servlet技术中的一个文件,用于定义自定义标签库。
在这个项目中,`wabacus.tld`可能定义了与Wabacus相关的自定义JSP标签,这些标签可以简化Web应用的开发。
4. `licence`:与`COPYING`类似,这个文件也包含软件的许可信息,可能与项目采用的特定许可协议相关。
5. `log4j.properties`:这是一个日志配置文件,使用Apache Log4j框架,用于控制应用程序的日志记录行为,如记录级别(错误、警告、信息等)、日志输出位置等。
6. `com`:这个目录名通常是Java编程语言中的顶级包名,用于组织源代码。
`com`下通常会有子包和类文件,具体结构取决于Wabacus项目的设计,这些类文件实现了Wabacus的功能。
综合以上信息,我们可以推测"Wabacus4.3"是一个基于Java的开源软件项目,主要涉及数据处理或计算功能。
它使用了Log4j进行日志记录,自定义了JSP标签,并提供了一套默认配置供用户参考。
开发者可以根据源代码进行二次开发,以适应特定的需求。
项目的许可协议保证了代码的开放性和可共享性。
2025/6/15 22:15:34 1.02MB
1
这是我设计的一个外国项目中老外要求的设计规范,包括Tag的定义规则,画面的定义等,可以参考一下,重要的是学习里面的设计规范,提高水平,本文档仅供学习与参考。
2025/5/25 3:01:54 81KB Intouch Ifix 组态软件 设计规范
1
数据结构算法演示(Windows版)使用手册一、功能简介本课件是一个动态演示数据结构算法执行过程的辅助教学软件,它可适应读者对算法的输入数据和过程执行的控制方式的不同需求,在计算机的屏幕上显示算法执行过程中数据的逻辑结构或存储结构的变化状况或递归算法执行过程中栈的变化状况。
整个系统使用菜单驱动方式,每个菜单包括若干菜单项。
每个菜单项对应一个动作或一个子菜单。
系统一直处于选择菜单项或执行动作状态,直到选择了退出动作为止。
二、系统内容本系统内含84个算法,分属13部分内容,由主菜单显示,与《数据结构》教科书中自第2章至第11章中相对应。
各部分演示算法如下:1.顺序表(1)在顺序表中插入一个数据元素(ins_sqlist)(2)删除顺序表中一个数据元素(del_sqlist)(3)合并两个有序顺序表(merge_sqlist)2.链表(1)创建一个单链表(Crt_LinkList)(2)在单链表中插入一个结点(Ins_LinkList)(3)删除单链表中的一个结点(Del_LinkList)(4)两个有序链表求并(Union)(5)归并两个有序链表(MergeList_L)(6)两个有序链表求交(ListIntersection_L)(7)两个有序链表求差(SubList_L)3.栈和队列(1)计算阿克曼函数(AckMan)(2)栈的输出序列(Gen、Perform)(3)递归算法的演示汉诺塔的算法(Hanoi)解皇后问题的算法(Queen)解迷宫的算法(Maze)解背包问题的算法(Knap)(4)模拟银行(BankSimulation)(5)表达式求值(Exp_reduced)4.串的模式匹配(1)古典算法(Index_BF)(2)求Next函数值(Get_next)和按Next函数值进行匹配(Index_KMP(next))(3)求Next修正值(Get_nextval)和按Next修正值进行匹配(Index_KMP(nextval))5.稀疏矩阵(1)矩阵转置(Trans_Sparmat)(2)快速矩阵转置(Fast_Transpos)(3)矩阵乘法(Multiply_Sparmat)6.广义表(1)求广义表的深度(Ls_Depth)(2)复制广义表(Ls_Copy)(3)创建广义表的存储结构(Crt_Lists)7.二叉树(1)遍历二叉树二叉树的线索化先序遍历(Pre_order)中序遍历(In_order)后序遍历(Post_order)(2)按先序建二叉树(CrtBT_PreOdr)(3)线索二叉树二叉树的线索化生成先序线索(前驱或后继)(Pre_thre)中序线索(前驱或后继)(In_thre)后序线索(前驱或后继)(Post_thre)遍历中序线索二叉树(Inorder_thlinked)中序线索树的插入(ins_lchild_inthr)和删除(del_lchild_inthr)结点(4)建赫夫曼树和求赫夫曼编码(HuffmanCoding)(5)森林转化成二叉树(Forest2BT)(6)二叉树转化成森林(BT2Forest)(7)按表达式建树(ExpTree)并求值(CalExpTreeByPostOrderTrav)8.图(1)图的遍历深度优先搜索(Travel_DFS)广度优先搜索(Travel_BFS)(2)求有向图的强连通分量(Strong_comp)(3)有向无环图的两个算法拓扑排序(Toposort)关键路径(Critical_path)(4)求最小生成树普里姆算法(Prim)克鲁斯卡尔算法(Kruscal)(5)求关节点和重连通分量(Get_artical)(6)求最短路径弗洛伊德算法(shortpath_Floyd)迪杰斯特拉算法(shortpath_DIJ)9.存储管理(1)边界标识法(Boundary_tag_method)(2)伙伴系统(Buddy_system)(3)紧缩无用单元(Storage_compaction)10.静态查找(1)顺序查找(Search_Seq)(2)折半查找(Serch_Bin)(3)插值查找(Search_Ins)(4)斐波那契查找(Searc
2025/4/23 10:46:30 3.17MB 数据结构 演示 软件 c
1
DSpeech是一个集成了ASR(自动语音识别)功能的TTS(文本到语音)程序。
它能够大声朗读书面文本,并根据用户的声音回答选择要发音的句子。
它专门设计用于快速高效地帮助您。
同时,侵入性和资源消耗最小。
(DSpeech不会自行安装,很轻,它在一秒钟内启动,不会向注册表写入任何内容)。
DSpeech的一些显着特点是:1.允许您将输出保存为.WAV,.MP3,AAC,WMA或OGG文件。
2.允许您快速选择不同的声音,甚至可以将它们合并,或者将它们并列以便在不同声音之间创建对话。
3.DSpeech集成了一个声音识别系统,允许您与用户创建交互对话。
4.允许您以独立的方式配置声音。
5.由于使用了标准TAG,它可以让您在播放过程中(速度,音量和频率)动态地改变声音的特征,插入暂停,强调特定的单词,甚至拼出它们。
6.允许您捕捉和复制ClipBoard的内容。
7.DSpeech兼容所有声音引擎(兼容SAPI4-5)。
8.AI对话系统。
不是很有用,但有趣。
它不适用于每种语言。
9.它能够复制电影;此功能可将阅读字幕(标准SRT格式)与电影播放同步。
支持的播放器有MediaPlayerClassic和更高版本,以及VideoLANVLCPlayer。
2025/4/6 0:08:23 3.14MB 文本到语音
1
介绍SVN各个目录使用规范Svn目录使用规范TortoiseSVN客户端工具选择创建SVN目录结构的选项(生成trunk、branches、tags目录),如下图:1、trunk是主分支,是日常开发进行的地方。
2、branches是分支。
一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。
3、tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。
注:在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copy到branches上,这样二期开发的代码就对一期的代码没有影响,如新增的模块就不会部署到生产环境上。
而branches上的稳定的版本就是发布到生产环境上的代码,如果用户使用的过程中发现有bug,则只要在branches上修改该bug,修改完bug后再编译branches上最新的代码发布到生产环境即可。
tags的作用是将在branches上修改的bug的代码合并到trunk上时创建个版本标识Trunk目录:Doc(文档库,放项目相关文档类)、sourcecede(代码库)Doc目录下按项目存放文档,以下以proj1为例做说明Proj1----项目名1、Controlled------组织级scm建一个名为controlled的目录,当项目某文档通过评审后,组织级scm从项目目录下找到那文档,复制到controlled目录下。
(一般用不到)2、Develop---开发文档2.1、Design----设计文档2.1.1、DbDesign---数据库设计文档2.1.2、HLD---概要设计2.1.3、InterfaceDesign---接口设计2.1.4、ServiceDesign---服务设计2.2、REQ---需求文档2.3、SRS---软件需求规格说明2.4、Test---测试文档2.4.1、Review---可空2.4.2、TestCese---测试用例2.4.3、TestDoc---测试文档2.4.4、TestEnv---测试环境说明2.4.5、TestReport---测试报告3、Document---项目文档4、Management---管理文档4.1、Meetings--会议纪要4.2、PIM---4.3、Plan---计划4.3.1、review4.3.2、SDP---软件开发策划文档4.3.3、SPP---软件项目策划文档4.4、report---报告4.4.1、Milestonereport---版本报告4.4.2、ProjectTrackReport---项目跟踪报告4..4.3、SCM---软件配置管理文档 4.4.4、SQA---软件质量保证计划4.4.5、项目周报4.5、Sow---工作说明书4.6、Summarize---总结4.7、Template---模板4.8、Trainning---培训文档打标签/分支有两种方式:1、选中项目,就是trunk下的本地项目,右击,选中Branch/Tag,出现如下对话框。
下图中的配置完成了之后,点击OK即可完成“打标签/分支”。
2、直接在SVN上在对应的标签/分支目录下创建对应的版本文件夹,将trunk下稳定版本的代码直接copy到对应的文件目录下即可。
2025/2/25 9:09:55 394KB SVN
1
共 65 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡