版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蠹夹g(shù)課程設(shè)計(jì)題目:個(gè)人電腦資料管理系統(tǒng)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)學(xué)號(hào):姓名:扌旨導(dǎo)老師:完成日期:2016.5.28TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document 1前言1 HYPERLINK l bookmark4 o Current Document 2需求分析1 HYPERLINK l bookmark6 o Current Document 2.1要求1 HYPERLINK l bookmark8 o Current Document 2.2任務(wù)1 HYPERLINK l bookmark10 o Current Doc
2、ument 2.3運(yùn)行環(huán)境1 HYPERLINK l bookmark16 o Current Document 2.4開發(fā)工具1 HYPERLINK l bookmark18 o Current Document 3系統(tǒng)流程圖2如圖3所示。2 HYPERLINK l bookmark20 o Current Document 4編碼與實(shí)現(xiàn)24.1分析2 HYPERLINK l bookmark22 o Current Document 4.2具體代碼實(shí)現(xiàn)5 HYPERLINK l bookmark54 o Current Document 5課程設(shè)計(jì)總結(jié)23 HYPERLINK l book
3、mark56 o Current Document 參考文獻(xiàn)241前言該程序用來(lái)管理個(gè)人電腦資料。首先輸入用戶的身份:游客可以瀏覽、查詢資料;管理員可以對(duì)資料進(jìn)行添加、修改、刪除的操作,但是需要輸入正確的密碼才可以進(jìn)入管理員模式。瀏覽資料時(shí),文檔已經(jīng)按照類型整理好,并統(tǒng)計(jì)了大小及數(shù)量。2需求分析2.1要求(1)用C+語(yǔ)言實(shí)現(xiàn)程序設(shè)計(jì);(2)畫出程序流程圖;(3)編寫主函數(shù)大概流程;(4)編寫系統(tǒng)功能模塊;(5)完善界面,程序標(biāo)注釋。2.2任務(wù)(1)文檔按照類型(txt、ppt、pdf、doc、htmlxml、圖像、其他)的分類整理功能,增加文檔分類類別功能;(2)可以瀏覽和查詢資料;(3)添加
4、、刪除、修改資料的功能;(4)用戶的添加、刪除、權(quán)限設(shè)置;(5)用戶登陸、使用的權(quán)限設(shè)置功能;(6)統(tǒng)計(jì)各類文檔資料的功能,如數(shù)量、大小等2.3運(yùn)行環(huán)境(1)WINDOWS2000/XP系統(tǒng)(2)vs2010編譯環(huán)境2.4開發(fā)工具C+誥言 3系統(tǒng)流程圖如圖3.1所示。開始修改文件名刪除文件結(jié)束圖3.1系統(tǒng)流程圖4編碼與實(shí)現(xiàn)4.1分析在程序代碼中,采用了結(jié)構(gòu)化與面向?qū)ο髢煞N解決問(wèn)題方法。結(jié)構(gòu)化的思想主要應(yīng)用在劃分功能模塊上,而面向?qū)ο蟮乃枷胫饕獞?yīng)用在把所有的屬性和方法封裝起來(lái),以備各模塊的調(diào)用,這樣做的目的是為了讓整個(gè)程序的結(jié)構(gòu)清晰、體系完整,便于維護(hù)。C+提供的文件輸入輸出流的功能比較通用,所
5、以在這個(gè)文件管理系統(tǒng)下,需要將C+中所提供的輸入輸出流的功能進(jìn)行改造,隱藏掉一些不需要在這個(gè)文件管理系統(tǒng)中使用的功能,以適合這個(gè)文件管理系統(tǒng)的需要。BaseClass有兩個(gè)重載構(gòu)造函數(shù),這樣做的目的是為了區(qū)分是哪個(gè)派生類使用的,方便管理。而且所有的打開方式均為二進(jìn)制形式,目的是不破壞源文件。置標(biāo)志位目的是依據(jù)使用的構(gòu)造函數(shù)來(lái)進(jìn)行析構(gòu)。為了使程序的結(jié)構(gòu)層次清晰,將各種操作封裝到一個(gè)FunClass(操作類)中,方便main函數(shù)進(jìn)行調(diào)用。CreatFile函數(shù)是用來(lái)在操作目錄下創(chuàng)建一個(gè)新文件,可以自定類型。關(guān)鍵語(yǔ)句:FileOperatorOuta(k);if(a.ofile)returntrue
6、:returnfalse;用傳入的參數(shù)(string類的一個(gè)對(duì)象,用于存放需要?jiǎng)?chuàng)建的文件名)來(lái)構(gòu)造一個(gè)FileOperatorOut的對(duì)象(上面己經(jīng)介紹過(guò)FileOperatorOut類)。OpenFile函數(shù)是用來(lái)在操作目錄下獲取一個(gè)文件,并顯示其中的信息(一般用于查看txt、log等文件)。關(guān)鍵語(yǔ)句:FileOperatorlna(true,k);if(a.ifile)couta.readfile()endl;returntrue:elsereturnfalse:用傳入的參數(shù)(string類的一個(gè)對(duì)象,用于存放需要打開的文件名)來(lái)構(gòu)造一個(gè)FileOperatorln的對(duì)象如果構(gòu)造成功,則讀
7、取其中的內(nèi)容顯示到屏幕,否則返回falseoWritelnFile函數(shù)用來(lái)向操作目錄下的某個(gè)文件寫入信息。關(guān)鍵語(yǔ)句:stringt;FileOperatorOuta(k);cout,/請(qǐng)輸入需要寫入的內(nèi)容,endl;getline(cin,t);a.WriteFile(t);先用k來(lái)構(gòu)造一個(gè)FileOperatorOut的對(duì)象,用于先打開磁盤上相應(yīng)的文件(如果磁盤上沒(méi)有需要的文件則創(chuàng)建一個(gè)),然后用getline函數(shù)接受輸入的內(nèi)容,通過(guò)FileOperatorOut對(duì)象的WriteFile方法寫入到相應(yīng)的文件中去。ReName函數(shù)用于將操作目錄下的文件進(jìn)行重命需操作。關(guān)鍵語(yǔ)句:判斷打開是否成功
8、ifstreamin(kdata();if(in)in.close();if(!rename(kdata(),NewNamedata()調(diào)用rename函數(shù)(windows提供,用于函數(shù)的重命名)進(jìn)行重命名操作。在調(diào)用rename函數(shù)之前一定要先關(guān)閉打開的文件(即加上in.close()。4.2具體代碼實(shí)現(xiàn)iiicludeiiicludeiiiclude#includeiiicludeiiiclude#includeusingnamespacestd;/*單個(gè)文件的操作*/classBaseClass/基類,制定了創(chuàng)建文件與刪除文件的基本操作public:BaseClass(stimg&nam
9、e);BaseClass(boolastnng&name);virtualBaseClass();關(guān)閉文件ofstreamofile;lfstreamlfile;private:mtflag;BaseClass:BaseClass(stnng&name):flag(l)/構(gòu)造函數(shù)ofile.open(nanie.data()Jos_base:out|ios_base:binaiy);/JTJFXft4wj出BaseClass:BaseClass(boola,stung&name):flag(2)/構(gòu)造函數(shù)重載ifile.open(name.data04os_base:iii|ios_base:
10、binaiy);扌丁開文件輸入BaseClass:BaseClass()/析構(gòu)函數(shù)if(l=flag)oflle.closeQ;lfile.closeO;classFileOpeiatorIn:publicBaseClass/文件輸入類的公有繼承public:FileOperatoi!ii(boola,string&name):BaseClass(a,name)/打開一個(gè)文件inlinestungreadfileQ;/讀取TXT文件中的內(nèi)容-FileOperatoihi()private:stunglme;mlinestungFileOperatoiiii:readfile()/讀取函數(shù)定義g
11、etline(ifileJine/O,);ietuniline;classFileOpeiatorOut:publicBaseClass/文件輸出類公有繼承public:FileOperatoiOut(string&name):BaseClass(name);創(chuàng)建一個(gè)文件uilinevoidWriteFile(string&content);/將content寫入文件中-FileOpeiatorOut();mlinevoidFileOperatorOut:WriteFile(string&content)文件寫入函數(shù)定義ofile.wnte(content.data(),coiitent.le
12、ngtli();classFimClass/操作類public:voidMenu();inlineboolCreatFile(stiing&kjconst;/創(chuàng)建文件uilineboolOpeiiFile(stnng&k)const;/打開文件uilinevoidWiiteniFile(stnng&k)const;/寫入文件inlinevoidReName(stiing&k,stung&NewNnme)const;重命名inlinebooldeletefile(stnng&k)const;/刪除文件mtPasswoid()const;/密碼權(quán)限mtflle_scan()const;/分類mtf
13、ile_scanl()const;mtfile_scaii2()const;mtfile_scan3Qconst;mtfile_scan4()const;voidFunClass:Menu()菜單函數(shù)coutendl;coutendl;歡迎使用!請(qǐng)輸入您的身份!coutnendl;coutendl;coutendl;coutnyV”*yendlcoutnyv”*yendlcoutny*1游*endlcoutncoutncoutn*2.管理員 # *yendlcoutny*yendlcoutny*yendlcoutny*0.退*endlcoutncoutnmtFunClass:PasswoidQ
14、const/密碼函數(shù)定義coutupleasemputyourpassword:irendl;strmgsvspw=abc;定義密碼mtm=0;while(m3)rstrmglme;cin.cleaiO;cin.syncO;getlme(cinjiiie);/獲取用戶輸入密碼if(syspw!=line)coiitvv”密碼錯(cuò)誤,請(qǐng)重新輸入!Hendl;111+;敢m=3)coutH連續(xù)3次輸入錯(cuò)誤,退出!Hendl;exit(O);elsecout”密碼正確!”endl;break;ietimi0;mtFunClass:file_scanQconst/txt掃描函數(shù)coutntxt文件:He
15、ndl;constchar*to_search=E:c卄課程設(shè)計(jì)*.txtn;/定義指向文件的指針longhandle;/句柄mtcount=0;/計(jì)數(shù)stmct_fiiiddata_tfileinfo;/定義一個(gè)_flnddata_t的結(jié)構(gòu)體n(nH大小:nfilenifo.sizen字節(jié),n),endl; handle=_flndfirst(to_seafch,&filemfo);返回句柄if(-l=handle)ietum-1;(H大小:fllemfo.size”字節(jié))endl;COUllt+;while(!_findn
16、ext(handle,&fllemfb)count十十;,(”大小:fileinfo.size字節(jié)coutn共有McountH個(gè)yvendl;_fiiidclose(handle);ietum0;mtFunClass:file_scanl()const/ppt掃描函數(shù)cout1fppt文件:Hendl;constchar*to_search=ME:c+十課程設(shè)計(jì)*.pptn;longhandle;mtcount=0;stmct_fiiiddata_tfileinfo;liandle=_findfirst(to_seafch,&filemfb);if(-l=ha
17、ndle)ietum-1;COUllt+;while(!_findnext(handle,&fllemfb)count十十;,(”大小:fileinfo.size字節(jié),),endl;coutn共有Mcountn個(gè)Hendl;_fiiidclose(handle);retuni0;mtFunClass:file_scaii2()const/pdf掃描函數(shù)coutnpdf文件:endl;constchar*to_search=HE:c+課程設(shè)計(jì)W.pdf;longhandle;mtcount=0;stmct_fiiiddata_tfileinfo;liandle=
18、_findfirst(to_seafch,&filemfb);if(-l=handle)ietum-1;n(nH大小:nfilenifo.sizen字節(jié),n),endl;COUllt+;while(!_findnext(handle,&fllemfb)count十十;,(”大小:fileinfo.size字節(jié)coutn共有McountH個(gè)Hendl;_fiiidclose(handle);ietimi0;mtFunClass:file_scan3()const/doc掃描函數(shù)coutudoc文件:Mendl;constchar
19、*to_search=E:c+課程設(shè)計(jì)*.docu;longhandle;mtcount=0;stmct_fiiiddata_tfileinfo;liandle=_findfirst(to_seafch,&filemfb);if(-l=handle)ietum-1;(H大小:,filenifo.size字節(jié))endl;COUllt+;while(!_findnext(liandle,&filemfb)encll;encll; #count十十;coutn共有McountH個(gè)yvendl;_fi
20、iidclose(handle);retuni0;mtFunClass:file_scan4()const/litml掃描函數(shù)coutnlitnil文件:”endl;constchar*to_search=E:c+十課程設(shè)計(jì)*.html;longhandle;mtcount=0;stmct_fiiiddata_tfileinfo;liandle=_flndfirst(to_seafch,&filemfb);if(-l=handle)ietum-1;(H大小:fllemfo.size”字節(jié))endl;COUllt+;while(!_findnext(handle
21、,&fllemfb)count十十;n(Mn大小:Hfileinfo.sizeH字節(jié)n)uendl;n(Mn大小:Hfileinfo.sizeH字節(jié)n)uendl; coutn共有McountH個(gè)Hendl;_fiiidclose(handle);ietiun0;uilineboolFunClass:CieatFile(stnng&k)const/創(chuàng)建文件FileOpeiatoiOuta(k);/定義一個(gè)FileOperatoiOut對(duì)象if(a.ofile)ietumtine;elseietumfalse;mlinebo
22、olFunClass:OpeiiFile(stiing&k)const打開文件FileOpeiatoilna(tiue,k);/定義一個(gè)FileOperatorln對(duì)象if(a.ifile)couta.readfile()eiidl;ietumtine;else # retunifalse;mlinevoidFunClass:WiiteniFile(stimg&k)const/寫入文件stungt;FileOpeiatorOuta(k);coutn請(qǐng)輸入需要寫入的內(nèi)容:”endl;getline(cinj);a.WnteFile(t);mlinevoidFunClass:ReName(stnn
23、g&kstnng&NewName)const重命名文件lfstreamm(k.dataQ);if(in)如果文件存在m.close();if(!rename(k.data(),NewName.data()/刪除成功coutkn成功重命名為:uNewNameencll;else/無(wú)法重命名:文件打開或無(wú)權(quán)限執(zhí)行重命名cout文件無(wú)法重命名(可能原因如下):uendl;coutMtHn1.HNewNamen己存在Hendl;coutMtH,f2.HNewName,r正在使用,未關(guān)閉.Hendl; #coutMtHn3.HH你沒(méi)有權(quán)限重命名此文件.Hendl;else/文件不存在coutk不存在,無(wú)
24、法重命名.,endl;uilineboolFunClass:deletefile(stnng&k)const/刪除文件if(DeleteFileA(k.dataO)fetumtine;elsefetumfalse;mtmam()stungconunand.opeia;FunClassfun;while(l)fiui.MenuO;mtb;cinb;switch(b)casel:system(uclsn);while(l)coutendl;coutendl;coutn*yvendcoutn*yvendcoutn*1.文件分類*11endl;/visitorcoutn*2.打開文件endl;cout
25、n*3返回主菜單endl;coutn*請(qǐng)輸入選項(xiàng):endl;coutn*yvendcoutn*yvendliltc;cmc;switch(c)is casel:fxin.file_scan();coutn*yvend-fxin.file_scanl();coutn*yvendfxin.file_scaii2();coutn*yvendfxin.file_scan3();coutn*yvendfxin.file_scan4();coutn*yvendbreak;case2:cout請(qǐng)輸入打開文件名:,endl;cuiopeia,cm.sync();fim.OpeiiFile(opera)?cou
26、tufr開成功!endl:coutJT開失敗!vendl;break;case3:maui();break;default:cout*i擇錯(cuò)誤請(qǐng)重新選擇!Hendl;break;case2:system(nclsn);fun.Password();while(l)coutendl;coutendl;coutMendl;coutMendl;coutM*yendl;/admin*coutM*11endl;coutM*endl;coutM*endl;coutM*endl;coutM*新建文件寫入文件修改文件名刪除文件返回主菜單請(qǐng)輸入選項(xiàng)】endl;coutMendl;*coutMendl;*mta;cina;switch(a)case1:cout*請(qǐng)輸入新建文件Hendl;cmopeia,cui.sync();fun.CreatFile(opera)?cout,|J建成功!endl:coutn創(chuàng)建失敗!”endl;break;case2:coutHi#輸入文件名
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省綿陽(yáng)市梓潼縣2026屆九年級(jí)上學(xué)期1月期末考試物理試卷答案
- 衛(wèi)生檢查題目及答案
- 網(wǎng)格員考試題及答案
- 六年級(jí)樂(lè)趣作文300字4篇
- 二十屆四中全會(huì)考試測(cè)試卷及答案
- 電纜敷設(shè)施工技術(shù)要領(lǐng)
- 2026屆山東省淄博市高三上學(xué)期期末考試(摸底質(zhì)量檢測(cè))歷史試題(含答案)
- 社群運(yùn)營(yíng)管理實(shí)操考試題及答案
- 社會(huì)實(shí)踐考試試題及答案
- 青霉素過(guò)敏考試題及答案
- 中藥外洗治療化療導(dǎo)致外周神經(jīng)毒課件
- 2025-2026學(xué)年人教版(新教材)小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)(全冊(cè))教學(xué)設(shè)計(jì)(附目錄P208)
- 2025版中國(guó)慢性乙型肝炎防治指南
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)草酸行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略數(shù)據(jù)分析研究報(bào)告
- 感染科結(jié)核病防治培訓(xùn)指南
- 金屬水幕施工方案(3篇)
- 2025美國(guó)心臟協(xié)會(huì)心肺復(fù)蘇(CPR)與心血管急救(ECC)指南解讀
- 2024-2025學(xué)年浙江省金華市蘭溪市一年級(jí)(上)期末數(shù)學(xué)試卷
- 廣東省珠海市香洲區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 2025年青海省輔警考試公安基礎(chǔ)知識(shí)考試真題庫(kù)及參考答案
- GB/T 5169.12-2024電工電子產(chǎn)品著火危險(xiǎn)試驗(yàn)第12部分:灼熱絲/熱絲基本試驗(yàn)方法材料的灼熱絲可燃性指數(shù)(GWFI)試驗(yàn)方法
評(píng)論
0/150
提交評(píng)論