assignment1ms文档格式.docx
- 文档编号:21513067
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:8
- 大小:388.06KB
assignment1ms文档格式.docx
《assignment1ms文档格式.docx》由会员分享,可在线阅读,更多相关《assignment1ms文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
1.2.4TestData3
1.3DataRepresentation4
1.4ProcessingAlgorithm6
1.5YourAssignment7
1.5.1ProgrammingAssignment7
1.5.2UnderstandingCheck7
1.6ModificationoftheExistingDataRepresentation7
1.7ModificationofFunctionalityoftheExistingSystem8
1.8Questions9
1.1Introduction
1.1.1DefinitionoftheProblem
TheKeyWordInContext(KWIC)problemisdefinedasfollows:
TheKWICindexsystemacceptsanorderedsetoflines;
eachlineisanorderedsetofwords,andeachwordisanorderedsetofcharacters.Anylinemaybecircularlyshiftedbyrepeatedlyremovingthefirstwordandappendingitattheendoftheline.TheKWICindexsystemoutputsalistingofallcircularshiftsofalllinesinalphabeticalorder.
1.1.2Example
Considerthefollowingsetoflines:
∙StarWars(2种)
∙TheEmpireStrikesBack(4种)
∙TheReturnoftheJedi(5种)
TheKWICindexsystemproducesthefollowingoutput(comparisoniscase-sensitive,thatiscapitallettersaregreaterthansmallletters):
(大写字母比小写字母优先级高)
∙BackTheEmpireStrikes
∙EmpireStrikesBackThe
∙JediTheReturnofthe
∙ReturnoftheJediThe
∙StarWars
∙StrikesBackTheEmpire
∙TheEmpireStrikesBack
∙TheReturnoftheJedi
∙WarsStar
∙oftheJediTheReturn
∙theJediTheReturnof
1.1.3Assignment1
ToaccomplishtheAssignment1,youneedfirsttogetacquaintedwiththeexistingKWICsystem.Afterthatyouneedtoextendthefunctionalityoftheexistingsystemtomeetthefollowingrequirements.Finally,youneedtoanswertothesethreequestions.
1.2TheExistingSystem
1.2.1Architecture
Thesolutionwithmain/subroutine(子程序)architecturalstylewithshareddatadecomposes(分解)thesystemaccordingtothefourbasicfunctionesperformed:
input,shift,alphabetize(以字母顺序排列)andoutput.Thesefunctionesarecoordinatedassubroutinesbyamainprogram,thatsequencesthroughthem.
1.2.2PropertiesoftheExistingKWICSystem
TheexistingKWICsystemischaracterized(以…为特点)through:
∙DataRepresentation数据表示法
∙ProcessingAlgorithm处理算法
1.2.3SourceCodeandDocumentation
HereisthesourcecodeinJavafortheexistingKWICsystem,andtheautomaticallygeneratedjavadocdocumentationforthesystem.
1.2.4TestData
HereisasampleinputfilefortheKWICsystem.Please,savethefileonyourlocaldrive.SpecifythenameofthefileatthecommandlineasanargumenttotheKWICprogram.
1.3DataRepresentation
ThecurrentKWICsystemrepresentsitsdatainthefollowingformat:
∙Charactersfromtheinputfilearestoredinacharacterarraynamedchars_.Wordsaredelimitedbyasinglespacecharacter.
∙line_index_isanintegerarray,whichkeepsindicesofcharactersfromthecharacterarray.Eachindexkeptinthelineindexarrayistheindexofthefirstcharacterofaparticularline.
∙Twodimensionalintegerarray(matrix)namedcircular_shifts_representsthesetofallcircularshiftsofalloriginallines.Aparticularcircularshiftisrepresentedasapairofindices.Thefirstvalueinsuchapairisanindexoftheoriginallinefromthelineindexarray.Thesecondvalueinthepairisanindexofacharacterfromthecharacterarray.Thecharacterpointedbythisindexisthefirstcharacterofaparticularcircularshift.(因为1个line有多种shift,所以这样可以标识一个唯一的shift)
∙Twodimensionalintegerarray(matrix)namedalphabetized_representsthesortedlines.Thisarrayhasthesameformatasthecircularshiftsarray.Thedifferenceisthatinthealphabetizedarraylinescomeinadifferentorder,i.e.,theyaresortedalphabetically.
1.4ProcessingAlgorithm
ThemainfunctioncontrolstheexecutionoftheKWICprogram:
∙Theinputfunctioniscalledtoreadandparsethelinesfromaninputfile.Thisfunctionreadsandprocessesalllinesatonceandrepresentsitbymeansof(用,依靠)thecharacter(chars_)andlineindex(line_index_)array,asdescribedbefore.
∙ThemainfunctioncallsthecircularShiftfunction,whichproducescircularshiftsofeachparticularlineandstoresitinthecircularshiftsarray(circular_shifts_),asdiscussedbefore.
∙Afterthecircularshiftshavebeenproduced,themainfunctioncallsthealphabetizefunction,whichsortscircularshiftsalphabetically(对移位后的单词进行排序).Theresultisstoredinthealphabetizedarray(alphabetized_),asdescribedbefore.
∙Finally,themainfunctioncallstheoutputfunction,whichprintsthesortedlines.
1.5YourAssignment
1.5.1ProgrammingAssignment
Youneedtomodifytheexistingsysteminthefollowingway:
∙Modificationofdatarepresentation
∙Modificationoffunctionality
1.5.2UnderstandingCheck
Finally,youneedtoanswertothesethreequestions.
1.6ModificationoftheExistingDataRepresentation
YouneedtomodifythewayhowcircularshiftsandsortedcircularshiftsarerepresentedbytheKWICsystem.Inthenewversion,circularshiftsshouldbenowrepresentedinthesamewayastheoriginallines,thatis:
∙Allcharactersfromallcircularshiftsshouldbestoredinanewcharacterarray.Forinstance,considerthefollowingoriginalline:
"
AkteX"
.Thislinehastwocircularshifts(thefirstcircularshiftisequaltotheoriginalline):
"
XAkte"
.Allcharactersfrombothcircularshiftsshouldbestoredcompletelyinthenewcharacterarrayoneafteranother,asshowninthefollowingfigure.
∙改成一维数组来保存移位后的字符串
∙Shiftindexisanintegerarray,whichkeepsindicesofthefirstcharactersofcircularshiftsstoredinthenewcharacterarray.
∙将每个line的首字母位置index放入shift_index_array数组中
∙Thesortedshiftsarerepresentedinthesamewayandwiththeexactlysamearraysasthecircularshifts.Ofcourse,theindicesintheshiftindexarrayarearrangeddifferently,i.e.,theyaresortedalphabetically.
∙排序后的首字母index放在shift_index_array数组中
1.7ModificationofFunctionalityoftheExistingSystem
YouneedtoprovidetheexistingKWICsystemwithadditionalfunctionality.ThenewKWICsystemshouldbeabletofilteroutsomeofthecircularshiftsthatareproduced.Allcircularshiftsthatstartwithanumber,i.e.,allshiftswherethefirstcharacterisacharacterbetween'
0'
and'
9'
shouldberemovedfromtheshiftsarraybeforethesortingstarts.(在对移位后的字符串排序前,将首字母为数字的移位结果在shift_chars_array中过滤掉)
Hint:
(增加一个过滤模块)Addanewmodule,i.e.,anewfunctiontotheexistingsytem.Thenameofthenewmodulecanbefilter,anditshouldberesponsibleforiteratingthrough(循环访问)theproducedshiftsandremovingalltheshiftsthatstartswithanumber.ThemainfunctionshouldcallthefilterfunctionrightafterthecircularShiftfunctionandjustbeforethecallofthealphabetizingfunction.
Thus,thearchitectureofthenewsystemlooksasshowninthefollowingpicture.Note,thatthemodificationindatarepresentationisalreadyvisibleinthefigure.
1.8Questions
Please,answerthefollowingquestions:
1.WhichmodulesfromtheoriginalKWICsystemdidyouneedtomodifytoimplementthenewdatarepresentationofcircularshifts?
Whatconclusioncanyoudrawhere?
HowdoestheKWICsystemimplementedbymeansofmain/subroutinearchitecturewithshareddatawithstand(抵挡)designchangesindatarepresentation?
2.WhichmodulesfromtheoriginalKWICsystemdidyouneedtomodifytoaddfilteringfunctiontothesystem?
Wasitdifficulttoaddanewprocessingcomponent(filterfunction)accessingtheshareddata?
CanweconcludeherethattheKWICsystemwithmain/subroutinearchitecturewithshareddataisrobust(强健的)todesigningchangesinsystem'
sfunction(assumingthatnewfunctionsaccesstheshareddata)?
3.WoulditbedifficulttoreusemodulesfromtheexistingKWICsysteminothersystems?
Forexample,supposethatinanothersoftwaresystemweneedtosortanumberoflines.SupposealsothatinthissystemlinesarerepresenteddifferentlythanintheexistingKWICsystem.Couldwereusetheexistingalphabetizingfunctionasitis,ordoweneedtomakesomemodificationtotheexisitingcodetobeabletoreuseit?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- assignment1ms