文本器ahoi2006解題報告editor原題_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、文本編輯器(editor)這些日子,可可不和卡卡一起玩了,原來可可正廢寢忘食的想做一個簡單而高效的文本編輯器。你能幫助他嗎?為了明確任務(wù)目標,可可對“文本編輯器”做了一個抽象的定義:文本:由0個或多個字符構(gòu)成的序列。這些字符的ASCII碼在閉區(qū)間32, 126內(nèi),也就是說,這些字符均為可見字符或空格。光標:在一段文本中用于指示位置的標記,可以位于文本的第一個字符之前,文本的最后一個字符之后或文本的某兩個相鄰字符之間。文本編輯器:為一個可以對一段文本和該文本中的一個光標進行如下七條操作的程序。如果這段文本為空,我們就說這個文本編輯器是空的。操作名稱輸入文件中的格式功能MOVE(k)Move k將

2、光標移動到第k個字符之后,如果k=0,將光標移到文本第一個字符之前INSERT(n, s)Insert nS在光標后插入長度為n的字符串s,光標位置不變,n 1DELETE(n)Delete n刪除光標后的n個字符,光標位置不變,n 1ROTATE(n)Rotate n反轉(zhuǎn)光標后的n個字符,光標位置不變,n 1GET()Get輸出光標后的一個字符,光標位置不變PREV()Prev光標前移一個字符NEXT()Next光標后移一個字符比如從一個空的文本編輯器開始,依次執(zhí)行下表中操作,可以有對應(yīng)的結(jié)果:操作操作前的文本操作后的結(jié)果INSERT(13, “Balancedeert”)|(只有光標,文本

3、為空)|BalancedeertMOVE(2)|BalancedeertBa|lancedeertDELETE(5)Ba|lancedeertBa|deertNEXT()Ba|deertBad|eertINSERT(7, “editor”),Bad|eertBad|editoreertMOVE(0)Bad|editoreert|BadeditoreertGET()|Badeditoreert輸出“B”MOVE(11)|BadeditoreertBadeditor|eertROTATE(4)Badeditor|eertBadeditor|treeGET()Badeditor|tree輸出“t”上

4、表中,“|”表示光標,“”表示空格。任務(wù)編寫一個程序:建立一個空的文本編輯器。從輸入文件中讀入一些操作指令并執(zhí)行。對所有執(zhí)行過的GET操作,將指定的內(nèi)容寫入輸出文件。輸入格式輸入文件中第一行是指令條數(shù)N,以下是需要執(zhí)行的N個操作。除了回車符之外,輸入文件的所有字符的ASCII碼都在閉區(qū)間32, 126內(nèi)。且行尾沒有空格。輸出格式輸出文件editor.out的每行依次對應(yīng)輸入文件中每條GET指令的輸出,不得有任何多余的字符。輸入樣例10Insert 13Balanced eertMove 2Delete 5NextInsert 7 editorMove 0GetMove 11Rotate 4Get輸出樣例Bt數(shù)據(jù)約束和評分方法對輸入數(shù)據(jù)我們有如下假定:MOVE操作不超過50 000個,INSERT、DELETE和ROTATE操作作的總個數(shù)不超過6 000,GET操作不超過20 000個,PREV和NEXT操作的總個數(shù)不超過20 000。所有INSERT插入的字符數(shù)之和不超過2M(1M=1 024*1 024)。DELETE操作、ROTATE操作和GET操作執(zhí)行時光標后必然有足夠的字符。MOVE、PREV、NEXT操作不會把光標移動到非法位置。輸入文件沒有錯誤。對C+選手的提示:經(jīng)測試,對最大的測試數(shù)據(jù)使用fstream進行輸入有可能會

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論