版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中國(guó)地質(zhì)大學(xué)c語(yǔ)言課程設(shè)計(jì) 題目編號(hào)和名稱(chēng) 16 簡(jiǎn)單的行編輯器 教師姓名 學(xué)生姓名 學(xué)生學(xué)號(hào) 學(xué)生班級(jí) 所在院系 日期 2010 年 7 月 16 日簡(jiǎn)單的行編輯器目錄1.題目要求2.需求分析.3.總體設(shè)計(jì)4.詳細(xì)設(shè)計(jì)5.總結(jié). 1.【題目要求】設(shè)計(jì)一個(gè)簡(jiǎn)單的行編輯器 【要求】 (1) 設(shè)置一個(gè)簡(jiǎn)單的行編輯器,每行以回車(chē)結(jié)束 (2) 數(shù)據(jù)以文件形式存儲(chǔ) (3) 編輯器具有查找、替換、修改數(shù)據(jù)的功能2.【需求分析】根據(jù)題目要求,行編輯器的數(shù)據(jù)以文本文件存放在文件中,故需要提供文件的輸入、輸出等操作;在程序運(yùn)行過(guò)程中要實(shí)現(xiàn)查找、替換、修改數(shù)據(jù)的功能應(yīng)提供查找、替換、修改數(shù)據(jù)等操作;另外還應(yīng)提供鍵
2、盤(pán)式選擇菜單功能選擇。3.【總體設(shè)計(jì)】根據(jù)上面的需求分析,可以將這一系統(tǒng)的設(shè)計(jì)分為輸入、查找、替換修改數(shù)據(jù)、退出等四個(gè)模塊(系統(tǒng)功能模塊如圖1所示)簡(jiǎn)單的行編輯器輸入數(shù)據(jù)修改替換數(shù)據(jù)替換 替換圖換打印數(shù)據(jù)查找退出刪除 圖1 行編輯器功能模塊圖 4.【詳細(xì)設(shè)計(jì)】1. 主函數(shù)主函數(shù)的設(shè)計(jì)一般較簡(jiǎn)單,一般只提供輸入、功能處理和輸出部分的函數(shù)調(diào)用其中各功能模塊用菜單方式選擇。主函數(shù)流程圖如圖1-1 程序如下void main()開(kāi)始顯示一系列功能選項(xiàng)coutttt 簡(jiǎn)單行編輯.n;str s1;輸入n的值str s2; str ss;根據(jù)n的值調(diào)用各功能模塊函數(shù)str ss1;str ss2;結(jié)束in
3、t n;s1.input_str();int choice=-1;while(choice!=0) 圖1-1 行編輯器主函數(shù)流程/system(cls);coutttt *簡(jiǎn)單行編輯*n;coutttt *n;coutttt 1: 打印字符串.n; coutttt 2: 插入字符串.n; coutttt 3: 刪除字符串.n;coutttt 4: 復(fù)制整個(gè)字符串.n; coutttt 5: 替換字符串.n; coutttt 6: 查找一個(gè)字符串的位置.n;coutttt 7: 繼續(xù)輸入. n;coutttt 0: 退出.n;coutttt *n;coutchoice;switch(choice
4、)case 1: coutttt1: 打印出字符串.n; s1.print_str(s1);break; case 2: coutttt2: 插入字符串.n; s1.insert_str(s1,s2,ss);break; case 3: coutttt3: 刪除字符串.n; s1.delete_str(s1,s2);break;case 4: coutttt4: 復(fù)制整個(gè)字符串.n; s1.copy_str(s1,s2);break; /*case 5: coutttt5: 替換字符串.n; s1.instead_str(s1,s2,ss1,ss2,n);break;*/ case 6: co
5、utttt6: 查找一個(gè)字符串的位置.n; s1.find_position(s1,ss,n);break;case 7: coutttt7: 繼續(xù)輸入.n; s1.go_on_input(s1);break; case 0: coutttt0: 退出.n;break;default:coutttterror.n; break;2各功能模塊的設(shè)計(jì)(1)輸入、打印模塊該程序需要輸入一段字符串作為其待處理數(shù)據(jù),所以通過(guò)鍵盤(pán)輸入字符串作為待處理數(shù)據(jù),以回車(chē)進(jìn)入主函數(shù)界面。選擇菜單1打印出該段字符串。其程序如下,程序運(yùn)行截圖如圖2-1 2-2void str:input_str() coutchk,c
6、hk!=# ) k+;chk=#;len=k;/下面的程序?yàn)椋猴@示整個(gè)字符串。void str:print_str(str &s1)coutnttt整個(gè)字符串為:;for(int k=0;s1.chk!=#;k+)coutchk;coutnn; 圖2-1 圖2-2(2)數(shù)據(jù)修改模塊該功能可通過(guò)數(shù)據(jù)插入與數(shù)據(jù)修改兩部分完成對(duì)數(shù)據(jù)的修改。1】插入 完成插入操作時(shí) 須先輸入要插入的位置,然后輸入所要插入的字符串,以#結(jié)束,回車(chē)完成插入其程序如下,運(yùn)行截圖如圖2-3void str:insert_str(str &s,str s2,str ss) couti;i-;if(is.len) coutttt
7、 插入位置不存在.n;else coutss.chr,ss.chr!=# ) r+; ss.chr=#; ss.len=r; if(ss.lenmaxsize| ( s.len +ss.len )maxsize) coutttt插入字符串大于最大值無(wú)法插入.n; else int p=0; for (int k=0; k=i; k+) s2.chp=s.chk;p+; for(k=0;kss.len;k+) s2.chp=ss.chk; p+; for(k=i+1;ks.len;k+) s2.chp=s.chk; p+; s2.len=p; coutttt 新字符串的長(zhǎng)度為s2.len; s2
8、.chp=#; for(int q=0; s2.chq!=#; q+) s.chq=s2.chq; s.chq=#; s.len=s2.len ; cout 插入成功.n; print_str(s); 圖2-32】刪除 刪除操作是作為修改模塊的一部分,同插入操作共同完成修改數(shù)據(jù)的功能。進(jìn)行刪除操作時(shí),輸入想從字符串上開(kāi)始刪除的位置,再輸入刪除的字符串長(zhǎng)度?;剀?chē)即可完成刪除。其程序如下,運(yùn)行截圖如圖2-4void str:delete_str(str &s1,str s) couti; if(is1.len) coutttt 太大無(wú)法刪除.n;else coutj; if(i+js1.len)
9、coutttt 刪除的太長(zhǎng)無(wú)法刪除.n; else int p=0; for (int k=0;ki;k+) s.chp=s1.chk; p+; for (k=i+j;ks1.len;k+) s.chp=s1.chk; p+; s.len=p+1; s.chp+1=#; for(int q=0; s.chq!=#; q+) s1.chq=s.chq; s1.chq-1=#; s1.len=s.len-1; coutttt 刪除成功.n; s1.print_str(s1); 圖2-4(3)查找模塊在字符串內(nèi)尋找你想要的一段字符串,顯示找到的位置。選擇查找功能的菜單,通過(guò)鍵盤(pán)輸入所要查找字符串,回
10、車(chē)即可找出其所在位置。程序如下,運(yùn)行截圖如圖2-5void str:find_position(str &s,str &ss,int &n)coutttt 輸入字符串:; ss.input_str(); int y=0; for(int i=0;is.len;i+) for(int j=i,k=0; s.chj=ss.chk; j+,k+) if(k=ss.len-1) coutttt 位置是 i+1 .n; positiony=i+1; y+;if(!y) coutttt 沒(méi)有找到要字符n; positiony=-1; n=y; /n 圖2-5(4)替換模塊在字符串內(nèi),把某些小段字符串替換為
11、你想要的字符串。先輸入你要改變的小段字符串,程序先找到這些字符串,再輸入想要替換成的/字符串,程序完成替換功能。其程序如下void str:instead_str(str &s1,str s2,str ss1,str ss2,int n)s1.find_position(s1,ss1,n);if(n!=0) coutttt 輸入你想替代的字符.n; ss2.input_str(); coutttt 替換成功n; couts1.len=s1.lenn; coutss1.len=ss1.lenn; coutss2.len=ss2.lenn; coutn=nmaxsize) cout太長(zhǎng).n; el
12、se int p=0; positionn=s1.len+1; for(int i=0;iposition0-1;i+) s2.chp=s1.chi; p+; for(int nn=0;nnn;nn+) for(int j=0;j4;j+) s2.chp=ss2.chj; p+; for(int kk=(positionnn-1+ss1.len);kkpositionnn+1-1;kk+) s2.chp=s1.chkk; p+; s2.chp=#; s2.len=p; for(int qq=0; s2.chqq!=#; qq+) s1.chqq=s2.chqq; s1.chqq=#; s1.len=s2.len ; (5)退出當(dāng)所要運(yùn)行操作完成時(shí),可通過(guò)主函數(shù)選擇退出菜單,實(shí)現(xiàn)程序的退出。程序運(yùn)行截圖如圖2-6 圖2-6 5.【總結(jié)】通過(guò)為期一周的課程設(shè)計(jì),我們對(duì)c語(yǔ)言這門(mén)課程有了更深一步的了解。它是計(jì)算機(jī)程序設(shè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源車(chē)輛技術(shù)研發(fā)與制造合同3篇
- 2024幼兒園教職工聘任與管理綜合服務(wù)合同范本3篇
- 2024年簡(jiǎn)易鋼材配送合同
- 會(huì)計(jì)法規(guī)培訓(xùn)模板
- 雙十一營(yíng)銷(xiāo)策略分析模板
- 餐具廚具銷(xiāo)售員工作總結(jié)
- 航空航天會(huì)計(jì)工作總結(jié)
- 金融行業(yè)分析師培訓(xùn)總結(jié)
- 湘中幼兒師范高等專(zhuān)科學(xué)?!督逃?jīng)典名著選讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 財(cái)務(wù)工作年終績(jī)效總結(jié)
- 國(guó)有企業(yè)品牌建設(shè)策略方案
- 火災(zāi)應(yīng)急處理課件
- 家政培訓(xùn)講師課件
- 廣東省深圳市龍華區(qū)2023-2024學(xué)年八年級(jí)下學(xué)期期中數(shù)學(xué)試題
- 視頻監(jiān)控方案-高空瞭望解決方案
- 完整液壓系統(tǒng)課件
- GB/T 44561-2024石油天然氣工業(yè)常規(guī)陸上接收站液化天然氣裝卸臂的設(shè)計(jì)與測(cè)試
- 《城市綠地設(shè)計(jì)規(guī)范》2016-20210810154931
- 2024-2030年中國(guó)通信工程行業(yè)發(fā)展分析及發(fā)展前景與趨勢(shì)預(yù)測(cè)研究報(bào)告
- 2024年公司保密工作制度(四篇)
- 重慶市康德卷2025屆高一數(shù)學(xué)第一學(xué)期期末聯(lián)考試題含解析
評(píng)論
0/150
提交評(píng)論