原则,是在编程技巧、编程语言、设计模式、工具之下的最底层的东西,它是人们在几十年的软件开发过程中不断经历、提炼出来的重要经验,体系了软件设计、开发过程中的设计哲学。
随着技术和时代的发展,这些原则可能不断演化和发展的。
但几十年之后回头看,软件开发的重要原则是很稳定的,很多思想穿过时间的隧道,依然指导着今天的软件开发。
2025/11/27 20:19:43 11.38MB 201个原则 201个准则
1
FireDAC是一套独特的通用数据访问组件,用于为Delphi和C++Builder开发多设备数据库应用程序。
凭借其强大的通用架构,FireDAC支持从Delphi到InterBase,SQLite,MySQL,SQLServer,Oracle,PostgreSQL,IBMDB2,SQLAnywhere,Access,Firebird,Informix等的本地高速直接访问。
基于10年为数据库后端编写本地驱动程序的经验,FireDAC被构建为一个强大的访问层,支持构建真实世界高负载应用程序所需的所有功能。
FireDAC为访问不同的数据库后端提供了一个通用的API,而不会放弃对特定数据库特定功能的访问,也不会影响性能。
它使开发人员能够专注于开发应用程序,而不是关注数据库交互的复杂性。
它提供了一组现代功能丰富的组件来解决所有主要的RDBMS环境。
它使用一组组件来解决所有支持的RDBMS类型。
它通过提供以下方面来降低总体拥有成本:与单独的昂贵库相比,初始成本更低。
学习和熟悉独特的强大图书馆所需的时间更少。
针对不同数据库时的直接应用设计和开发。
2025/11/27 16:38:10 66.6MB FireDAC delphi
1
编译原理龙书答案完整性高第二章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
完整dom4j-1.6.1.zip在/lib和/lib/endorsed下包含以下依赖包dom4j-1.6.1.jarjaxen-1.1-beta-6.jarjaxme-api-0.3.jarjsr173_1.0_api.jarmsv-20030807.jarpull-parser-2.1.10.jarrelaxngDatatype-20030807.jarxml-apis-2.0.2.jarxpp3-1.1.3.3.jarxsdlib-20030807.jar
2025/11/27 3:55:15 11.15MB dom4j
1
非常详细的实际案例解读,快速了解ISO9001-2015新增加内容,提高转版通过率1so9001:2015新版质量管理体系详解与前言刖言中国已经成为so9001证书发行量最多的国家,文件多但写了不做、应付各种审核已经成为中国相当一部分企业s○体系的通病。
lSO不是用来改善管理、改变人做事习惯的工具,反而成为我们的负担新版本S○最大的特点是删除了质量手册与程序文件,而之前很多企业就是停留在质量手册与程序文件这种表面形式上,不去落实同时新版要求在做质量体系策划时要进行风险识别,根据风险来策划质量管理体系。
这些要求与广东中欧企业管理研究所策划的质量管理体系不谋而合。
中欧硏究所根据企业推行so存在的问题,摸索出套既能应付认证、应对二方审核,同时又能帮助企业提升品质、提升效率、降低成本的模式,得到所有服务过的企业的认可。
我们只做6个程序文件,其他根据前期风险识别找到的失控点策划要做的控制卡,通过推行控制卡,狠抓执行,让每一个失控点得到控制,产生立竿见影的效果。
3/3031SO9001:2015新版质量管理体系详解与前言同时,新版SO对质量目标要求形成目标方案,这也与我们的攻关方案不谋而合。
我们针对瓶颈和老大难问题,定出分段目标,循序渐进,制订出具体的动作,明确责任人、完成时间、资源要求,并定期检讨,有效地帮助企业解决多年的痼疾,即所谓的行业难题。
lso9001是有用的,关键是我们怎么用。
我们编写的这一套|so系列丛书,一定会帮助越来越多的企业—不管是几十人的小企业,还是上万人的大企业—找到改善的方向,厘清解决问题的思路。
关键是量身定做、见招拆招,不要去生搬硬套,给SO—个什么固定的模式,能帮助企业成长、发展的模式就是好模式。
2015版sO9001更关注服务行业发展,语言描述更贴近服务行业,这是so9001的一大进步,未来10年,更多服务行业推行sO9001将成为趋势。
谭洪华4/3031So9001:2015新版质量管理体系详解与一为什么要改版为什么要改版根据ls。
Tc176sC2,改版的战略意图和目标是:(1)反映当今质量管理体系在实践和技术方面的变化,为未来10年或更长时间规定核心要求质量管理近10年,风险管理、项目管理、过程方法管理、日本精益生产模式发展迅速,并得到全世界管理界人士的认可,S◎9001也必须吸收新鲜血液,才能与时俱进,才能注入新的生命。
(2)确保本标准反映组织在运作过程中日益加剧的复杂、动态的环境变化从1987年s9001第一版推出,国际形势与环境发生了翻天覆地的变化,第三世界迅速崛起,中国从农业国变为制造业大国并逐步转型升级,向制造业强回迈进。
同时,SO9001在各国的推行过程中也暴露出很多问题,如文件过多、运行成本高、文件停留在形式等,so9001改版势在必行。
5/3031S9001:2015新版质量管理体系详解与为什么要改版(3)确保制定的要求能促进组织的有效实施及有效的第一方、第二方和第三方符合性评估So9001的标准能为任何一方的审核提供依据或标准,不管是客户还是认证机构,或者其他相关质量管理体系,都是以S9001为基础(4)确保本标准是充分的,以提供对满足要求的组织信任这里的要求指法律法规要求及相关方要求,如客户。
通过lso9001的推行与认证,提供给社会一个质量保证与改善的信任。
lso9001标准一般5~8年改版一次,最长8年必须改版。
6/3031so9001:2015新版质量管理体系详解与(一)1个目的二改版的主要内容概述据美通社北京2015年9月24日电,2015年9月23日,万众瞩目的lso9001:2015重磅发布,这标志着全球质量管理一个新的开始已经到来。
负责标准修订工作的SO/TC176工作委员会主席Dr.Nigel表示:lso9001新版为未来25年的质量管理标准做好了准备。
这次修改体现在以下方面(一)1个目的新版so901更加聚焦于一个核心目的,那就是‘质量管理体系(QMs)的预期结果”。
关键是产品和服务是否符合了要求?顾客满意度是否增强了?最终是否朝着实现组织战略的方向在迈进?这才是评价质量管理体系(QMs)有效性的终极标准。
7/303so9001:2015新版质量管理体系详解与(二)2个模型(二)2个模型新版标准更新了两个模型,即过程模型(如图2-1所示)和质量管理体系(QMs)结构模型(如图2-2所示)4.ContextoftheOrganization组织环境10.Improv5.1eadershivement改进领导力ActPlanPAS99IntegratedManayementFramework9.PerformanceEvaluation6.planning績效评价策划Check7.S8.Operation支持运行图2-1过程模型8/3031so9001:2015新版质量管理体系详解与(三)3大支柱1.Scope导列好3:管理体系标准的新结构和格式范围明确∫O际标准未来发展柱架及方向国际标准化组织对管理体系标准在结构、格式、通用短(2.NormativeReference3.TermsandDefinitions语和定义方面进行了统一。
这(规范性引用文件术语和定义将确保今后编制或修订管理体系标准的持续性、整合性和简4ContextoftheOrganizations.Leadership单化,这也将使标准更易读、(组织环境领导力易懂所有管理体系标准将遵循1Oi6.Planning7.Support8.OperationapplementAnnexSI的要求,(策划支持运行以便整合其他标准文件中的不同主题和要求,统一定义,如:组织、相关方、(9.PerformanceEvaluation(10.Improvement方针、日标、能力、符合性绩效评价改进统一的表述,如:最高管理者应确保组织内的职责、权限得到规定和沟通ISO27001S20000SO22301图22质量管理体系(QMS)结构模型(三)3大支柱新版标准从MSS高阶结构、基于风险的思维、领导力三个方面,从实体结构和思维结构的不同方向,为面向未来的s9001构造了三大支柱,对质量管理体系(QMS)具有全局性的影响。
(1)Mss(管理体系标准)高阶结构与so9001:2008相比,2015版是由表21中的10个条款构成的表21S09001:2015与s09001:2008条款之比较9/303so9001:2015新版质量管理体系详解与(三)3大支柱条款1s09001:2015S0900l:2008范围范围1234567规范性引用文件规范性引用文件术语和定义术语和定义组织环境质量管理体系领导力管理职责策划支持资源管理续表条款IS09OI:2015IsO900l:20088运行产品实现绩效评价测量、分析和改进10改进(2)领导力So9001在改版过程中有一个很重要的思想,就是要强化最高管理者在QMs内的作用,决定赋予最高管理者一个更积极的角色。
毋庸置疑,最高管理者的参与和支持对于QMS实现预期结果、达成QMs有效性至关重要,而现实的矛盾在于最高管理者的参与程度实际上有所下降。
因此,新版标准在多个方面试图强化领导力在QMs中的作用。
10/303
2025/11/26 17:09:32 20.16MB ISO 9001 2015
1
老吴用Delphi开发的Websocket服务端控件源代码,包含控件源程序,测试控件的Demo演示源程序以及可执行程序。
控件已实现功能:1、接收客户端文本消息2、发送客户端文本消息3、接收客户端二进制流消息4、发送客户端二进制流消息5、ping功能6、全部断开客户端功能7、广播消息功能8、获取当前在线客户端列表功能9、获取当前在线客户端数量功能10、记录各个客户端发送和接收消息数量功能尚未实现的功能:wss
2025/11/26 12:27:51 951KB WebSocket delphi WebSocket WebSocket
1
此工具是根据网上的HP使用U盘制作DOS启动盘软件,外加自己安装完整版MSDOS77.10版本的程序.此版本程序中已经可以自动补全路径和程序名,同时也启动了HIMEM.SYS高内存.
2025/11/25 17:12:34 2.32MB USB MS DOS 710
1
ieee新英格兰10机39节点系统,适用于psasp6.28,包括单线图,可做潮流计算,暂态稳定计算等等
2025/11/25 15:46:46 891KB ieee 10机39 节点系统
1
C语言词法分析器#include#include#includechar*key0[]={"","auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if","int","long","register","return","short","signed","sizeof","static","struct","switch","typedef","_Complex","_Imaginary","union","unsigned","void","volatile","while"};/*保留字表*/char*key1[]={"","(",")","[","]","{","}",",",";","'"};/*分隔符表*/char*key2[]={"","+","-","*","/","%","","==",">=","","~","|","^","&","=","?:","->","++","--",".","+=","-=","*=","/="};/*运算符表*/intxx0[35],xx1[10],xx2[31];.......
2025/11/25 7:08:42 19KB C语言词法分析器
1
win10下prolificusb-to-serialcomport(PL2303芯片)经常不能正常驱动。
可以使用这个版本的驱动。
2步:1、先安装windows7_10_32_64,看是否成功,若不成功继续第二步;
2、进入YH-340,先安装CH341SER.EXE,不行再安装HL-340.EXE。
2025/11/25 2:21:32 2.41MB PL2303 prolific
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡