c++課程設(shè)計(jì) (16)

上傳人:無*** 文檔編號(hào):21900383 上傳時(shí)間:2021-05-14 格式:DOC 頁數(shù):22 大?。?45.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
c++課程設(shè)計(jì) (16)_第1頁
第1頁 / 共22頁
c++課程設(shè)計(jì) (16)_第2頁
第2頁 / 共22頁
c++課程設(shè)計(jì) (16)_第3頁
第3頁 / 共22頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《c++課程設(shè)計(jì) (16)》由會(huì)員分享,可在線閱讀,更多相關(guān)《c++課程設(shè)計(jì) (16)(22頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 遼 寧 工 業(yè) 大 學(xué) 《C++語言程序設(shè)計(jì)》課程設(shè)計(jì)(論文) 題目: 保密文件加密處理 院(系): 軟 件 學(xué) 院 專業(yè)班級(jí): 113班 學(xué) 號(hào): 111301073 學(xué)生姓名: 教師職稱: 副教授 起止時(shí)間:2011.12.20-2011.12.31 課程設(shè)計(jì)(論文)任務(wù)及評(píng)語 院(系):軟件學(xué)院 教研室:軟件教研室

2、 學(xué) 號(hào) 111301073 軟件工程113 課程設(shè)計(jì)(論文)題目 保密文件加密處理 課程設(shè)計(jì)(論文)任務(wù) (1). 掌握面向?qū)ο蟪绦蛟O(shè)計(jì)語言C++的基本語法 (2). 掌握C++面向?qū)ο笤O(shè)計(jì)的思想 (3). 掌握VC++6.0與DEV C++ 開發(fā)工具的使用 (4). 運(yùn)用標(biāo)準(zhǔn)C++規(guī)范設(shè)計(jì)應(yīng)用程序 設(shè)計(jì)過程中,要嚴(yán)格遵守設(shè)計(jì)的時(shí)間安排,聽從指導(dǎo)教師的指導(dǎo)。正確地完成上述內(nèi)容,規(guī)范完整地撰寫出設(shè)計(jì)報(bào)告。 指導(dǎo)教師評(píng)語及成績(jī) 成績(jī): 指導(dǎo)教師簽

3、字: 年 月 日 目 錄 第1章 課程設(shè)計(jì)目的與要求 1 1.1 課程設(shè)計(jì)目的 1 1.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境 1 1.3 課程設(shè)計(jì)的預(yù)備知識(shí) 1 1.4 課程設(shè)計(jì)要求 1 第2章 課程設(shè)計(jì)內(nèi)容 3 2.1 C++語言程序設(shè)計(jì)------《多功能資料加密軟件》問題分析。 3 2.1.1 功能分析 3 2.1.1算法設(shè)計(jì)及程序設(shè)計(jì)中技術(shù)重點(diǎn) 3 2.2 程序中涉及的類的UML類圖和主要函數(shù)流程圖或框圖。 4 2.2.1音樂類(class

4、Music) 6 2.2.2修改密碼類( class XiuGaipassword) 6 2.3 程序源代碼 7 2.3.1建立音樂類(class Music)代碼 7 2.3.2建立修改密碼類( class XiuGaipassword)代碼 11 第3章 課程設(shè)計(jì)總結(jié) 18 參考文獻(xiàn) 19 第一章 課程設(shè)計(jì)目的與要求 1.1 課程設(shè)計(jì)目的 將理論教學(xué)中涉及到的知識(shí)點(diǎn)貫穿起來,對(duì)不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對(duì)所學(xué)知識(shí)達(dá)到融會(huì)貫通的程度。 通過課程設(shè)計(jì),學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:

5、 (1)進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程《C++語言教程》的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。 (2)全面考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。 (3)利用所學(xué)知識(shí),開發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用C++語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨(dú)立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。 (4)對(duì)于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。 (5)掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的方法。 (6)熟練掌握C++語言的基本語法,靈活運(yùn)用各種數(shù)據(jù)類型。 (7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序(單步調(diào)試,設(shè)置斷

6、點(diǎn)、觀察表達(dá)式,分塊調(diào)試)和修改程序。 1.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境 硬件要求能運(yùn)行Windows 操作系統(tǒng)的微機(jī)系統(tǒng)。C++語言應(yīng)用程序開發(fā)軟件使用:VC++ 系統(tǒng),或其他C++語言應(yīng)用程序開發(fā)軟件。 1.3 課程設(shè)計(jì)的預(yù)備知識(shí) 熟悉C++語言程序設(shè)計(jì)的基本知識(shí)及VC++編輯器的使用方法。 1.4 課程設(shè)計(jì)要求 仔細(xì)分析設(shè)計(jì)題目,畫出程序流程圖,編寫程序源代碼。 積極上機(jī)調(diào)試源程序,增強(qiáng)編程技巧與調(diào)程能力。 認(rèn)真書寫課程設(shè)計(jì)預(yù)習(xí)報(bào)告,課程設(shè)計(jì)說明書。 遵守課程設(shè)計(jì)要求和機(jī)房管理制度,服從指導(dǎo)教師的安排,確保課程設(shè)計(jì)的順利完成課程設(shè)計(jì)內(nèi)容。

7、 第二章 課程設(shè)計(jì)內(nèi)容 2.1 C++語言程序設(shè)計(jì)------《保密文件加密處理》問題分析。 2.1.1 功能分析 (1)使用本程序需要登錄用戶名和密碼,而用戶名和密碼都存放在改程序當(dāng)前目錄的配置文件conf.txt中,配置文件中的密碼是以密文的形式存放的。如果配置文件丟失,也可以使用本程序的默認(rèn)用戶名和密碼admin登錄。 (2)登錄本程序后,在主菜單中可以選擇文件寫入,書寫自己的文章并以密文的形式存放在本程序當(dāng)前目錄story.txt中。也可以選擇讀取story.txt中的內(nèi)容顯示在屏幕上。 (3)在你

8、工作煩躁的時(shí)候,你可通過試聽本程序的一些音樂,一次放松工作情緒。選擇音樂試聽,可以使用選擇是否安裝本程序提供的播放器。由于是單線程,在程序同步執(zhí)行時(shí)可能有些瑕疵,請(qǐng)諒解。 (4)選擇修改用戶名和密碼選項(xiàng),可以對(duì)本程序的配置文件進(jìn)行修改,修改后的用戶名以明文的形式存放到配置文件中,密碼以密文的形式存放在配置文件中。2.1.2 算法設(shè)計(jì)及程序設(shè)計(jì)中技術(shù)重點(diǎn) 2.1.1算法設(shè)計(jì)及程序設(shè)計(jì)中技術(shù)重點(diǎn) 本程序具有面向?qū)ο蟮乃囊兀侯?,?duì)象,繼承,多態(tài)。所以,本程序是一個(gè)完備的面向?qū)ο蟮某绦蛟O(shè)計(jì)。 本程序的設(shè)計(jì)亮點(diǎn)是,如果在輸出的屏幕上進(jìn)行退格刪除,以及如何在輸出屏幕上進(jìn)行輸出掩蓋,如何讀取配置文

9、件中的用戶名和加密后的密碼,如何將修改后的用戶名和密碼(加密后)寫入到配置文件中,以及在配置文件丟失的情況下是如何轉(zhuǎn)入默認(rèn)配置的狀態(tài),修改用戶名和密碼時(shí),需要重新確認(rèn)(二次輸入)。將輸入的內(nèi)容加密后寫入文件進(jìn)行保存,將輸入的內(nèi)容進(jìn)行字?jǐn)?shù)統(tǒng)計(jì)。 在本程序中使用了return,continue,break以及輸出字符掩蓋等語句的組合,文件的加密與解密的計(jì)算。所用最多的是WHILE循環(huán)結(jié)構(gòu)和IF語句以及系統(tǒng)函數(shù)system,然而這也正為了它的特色。循環(huán)體的嵌套思路清晰,目的明確,格式規(guī)范,易于閱讀和理解。 If語句的逐層運(yùn)用,正形象化的描述了計(jì)算機(jī)工作流程,而且與人的一般習(xí)慣相吻合,簡(jiǎn)單明了,易

10、于觀察理解它的來龍去脈,思路清晰直觀。 2.2 程序中涉及的類的UML類圖和主要函數(shù)流程圖或框圖。 END 開始 Y 判斷配置文件是否存在 N 輸入 輸入

11、 判斷用戶名和密碼 N N 判斷默認(rèn)用戶名和密碼 處理菜單選擇 處理菜單選擇 處 處 處

12、 處 處 處 理 理 理 理 理 理 1 2 3 4 5 6 Music - static ch,bh:char - static k,i:int + static ShiTing():void

13、 XiuGaipassword -static UserName[50],UserName1[50]:char -static MiMa[50],MiMa1[50]:char + static XiuGai():void File -static i,k:int -static ch[N],bh[N],g:char +static Writ():void +static Read():void Mm +static Zmenu():void +static Mmusic():void

14、 Choice -static ch:char +static XuanZe():void +static Xmusic():void User -static TuserName[50],TpassWord[50]:char -static GuserName[50],GuserWord[50]:char -static MoRenUserName[6],MoRenPassWord[6]:char -static i,j,k:int -static ch:char +static DengLu():void

15、 +User(int) +User() +~User() 2.2.1音樂類(class Music) 此模塊中定義了ShiTing函數(shù),其主要功能是,根據(jù)用戶的選擇做出相應(yīng)的操作,是否需要安裝播放器,以及試聽音樂。 簡(jiǎn)介: class Music { public: static void ShiTing(); //定義音樂試聽函數(shù) private: static char ch; //定義靜態(tài)私有字符變量 ch static i

16、nt k,i; //定義靜態(tài)私有整型變量I,k static char bh; //定義靜態(tài)私有字符變量bh }; 本類定義了靜態(tài)成員函數(shù)Shiting,和成員變量ch,bh,i,k Shiting()成員函數(shù)提供對(duì)歌曲的各種操作,以及提供安裝播放器的功能。 2.2.2修改密碼類( class XiuGaipassword) 此模塊中定義了XiuGai函數(shù),此函數(shù)的功能是修改用戶名和用戶密碼,當(dāng)用戶修改密碼時(shí),將用戶名和密碼的格式進(jìn)行驗(yàn)證,并將用戶密碼進(jìn)行二次驗(yàn)證。并將修改后的用戶名以

17、明文的形式存放到conf.txt中,將修改后的密碼以密文的形式存放到conf.txt中。 簡(jiǎn)介: class XiuGaipassword { public: static void XiuGai(); //定義修改功能函數(shù) private: static char UserName[50]; //存放用戶名的字符數(shù)組 static char UserName1[50]; //存放輸入用戶名的字符數(shù)組 static char

18、 MiMa[50],MiMa1[50]; //存放密碼的字符數(shù)組 static int i,k; //靜態(tài)成員 }; 本類定義有UserName,UserName1,MiMa,MiMa1,i,k等靜態(tài)成員變量 2.3 程序源代碼 2.3.1建立音樂類(class Music)代碼 //Music.h #include #include #include #include #include"Ch

19、oice.h" using namespace std; class Music { public: static void ShiTing(); //定義音樂試聽函數(shù) private: static char ch; static int k,i; static char bh; }; //Music.cpp #include"Music.h" void Music::ShiTing() { static char ch; static char bh; static int k=0,i=0; whi

20、le(1) { if(k==0) { system("cls"); printf("是否需要本程序?yàn)槟惭b音樂播放器?\n是 Y 否 N\n"); bh=getch(); while(1) { if(bh==Y || bh==N || bh==n || bh==y) { k=1; break; } else printf("\n請(qǐng)輸入 Y 或 N\n"); bh=getch(); } if(bh==Y || bh==y) //打開程序包,并延時(shí)

21、 { system("mic\\setup.exe"); printf("\n稍后."); for(i=0;i<=400000000;i++); printf("."); for(i=0;i<=400000000;i++); printf("."); for(i=0;i<=400000000;i++); printf("."); for(i=0;i<=400000000;i++); printf("."); for(i=0;i<=400000000;i++); printf("."); for(i=0;i<=40

22、0000000;i++); printf("."); for(i=0;i<=400000000;i++); printf(".\n\nOK! 四秒后選擇歌曲!"); for(i=0;i<=600000000;i++); } } Mm::Mmusic(); ch=ChoiceMusic::Xmusic(); //音樂菜單 switch(ch) {case1:system("mic\\kisstherain.mp3");break; //根據(jù)輸入大開相應(yīng)的文件

23、 case 2:system("mic\\天空之城.mp3");break; case 3:system("mic\\我相信.mp3");break; case 4:system("mic\\farawayformhome.mp3");break; case 5:system("mic\\myheartwillgoon.mp3");break; case 6:system("mic\\宣言.mp3");break; case 7:return; case 0:exit(0); } } } 2.3.2建立修改密碼類( c

24、lass XiuGaipassword)代碼 //XiuGaipassword.h #include #include #include #include using namespace std; class XiuGaipassword { public: static void XiuGai(); //定義修改功能函數(shù) private: static char UserName[50];

25、 //定義存放用戶名的字符數(shù)組 static char UserName1[50]; static char MiMa[50],MiMa1[50]; //定義存放密碼的字符數(shù)組 static int i,k; }; #include"XiuGaipassword.h" void XiuGaipassword::XiuGai() { FILE *f; static char UserName1[50]={0}; static char MiMa[50]="password:";

26、 //將給數(shù)組進(jìn)行初始化 static char MiMa1[50]="password:"; static char UserName[50]="username:"; static int i=9,k=0; //將初始變量初始化 system("cls"); cout<<"輸入自己的新用戶名(5位)#號(hào)結(jié)束:"; while(1) { for(i=9;i<17;) { UserName[i]=getch();

27、 //將輸入的字符用*掩蓋 if(UserName[i]==8 ) { if(i!=9) { UserName[i]=\0; i--; putchar(8); cout<<" "; putchar(8); } } else { if(UserName[i]==#) //以#號(hào)結(jié)束輸入 { UserName[i]=\n; UserName[i+1]=\0; break; } cout<

28、 //通過i的值來判斷上述的UserName是否符合標(biāo)準(zhǔn) { system("cls"); cout<<"用戶名位數(shù)不正確!"<

29、 for(i=9;i<17;) { MiMa[i]=getch(); if(MiMa[i]==8 ) { if(i!=9) { MiMa[i]=\0; i--; putchar(8); cout<<" "; putchar(8); } } else { if(MiMa[i]==#) { MiMa[i]=\0; break; } cout<<*; i++; } } if(i!=14) { system("cls"); cout<<"密碼位數(shù)不正確!"<

30、{ MiMa[i]=\0; break; } } cout<

31、 MiMa1[i]=\0; break; } cout<<*; i++; } } for(k=0;MiMa[k]!=\0;k++) { if(MiMa1[k]!=MiMa[k]) { k=0; break; } } if(k==0) { system("cls"); cout<<"兩次密碼不一致!"<

32、 //次循環(huán)為給要輸入正確的密碼加密 { MiMa1[i]=(~MiMa[i]); } strcat(UserName,MiMa1); if(f=fopen("conf.txt","w"))==NULL) { cout<<"修改出錯(cuò)!!"; exit(0); } fputs(UserName,f); //將加密后的密碼以及明文的用戶名寫入conf.txt fclose(f); cout<

33、} 第三章 課程設(shè)計(jì)總結(jié) 經(jīng)過半年的學(xué)習(xí)和實(shí)踐,使我對(duì)C++語言有了更認(rèn)識(shí)和和了解,要想學(xué)好它要重在實(shí)踐,要通過不斷的上機(jī)操作才能更好的學(xué)習(xí)它,通過實(shí)踐,我也發(fā)現(xiàn)我的好多不足之處,對(duì)各種控制結(jié)構(gòu)及語句、數(shù)組的基本與高級(jí)應(yīng)用、指針數(shù)組、字符數(shù)組、動(dòng)態(tài)數(shù)組、函數(shù)的定義、調(diào)用方式;函數(shù)在編程中的具體應(yīng)用;以及變量存儲(chǔ)特征與標(biāo)識(shí)符的作用域,通過實(shí)踐,使我在這些方面有了認(rèn)識(shí)和提高。課程設(shè)計(jì)它是一項(xiàng)任務(wù),更是一種挑戰(zhàn)和歷練。在課程設(shè)計(jì)中,為了使用時(shí)方便,著重對(duì)不足方面的知識(shí)進(jìn)行了分析與理解,在這一過程中對(duì)文件的操作有了很大的提高。通過實(shí)際的演練,可以增強(qiáng)對(duì)知識(shí)的理解和運(yùn)用能力。

34、 參考文獻(xiàn) 1. 徐孝凱 編著 《C++語言程序設(shè)計(jì)》 北京:清華大學(xué)出版社,2005:301頁 2. 黃迪明 主編 《C++語言程序設(shè)計(jì)基礎(chǔ)》 北京:電子工業(yè)出版社, 2003:210頁 3. 錢能 主編 《C++程序設(shè)計(jì)教程》 北京:清華大學(xué)出版社 ,2004:430頁 4. 鄭莉、董淵 編著 《C++語言程序設(shè)計(jì)》 北京:清華大學(xué)出版社,2004:240頁 5. 吳訪升 編著 《C++程序設(shè)計(jì)》 北京: 機(jī)械工業(yè)出版社 ,2007:320頁 6. Decoder 主編 《C/C++程序設(shè)計(jì)》 北京:中國鐵道出版社,2006:330頁 7. 鄭莉 主編《c++語言程序設(shè)計(jì)(第三版) 》 北京:清華大學(xué)出版社,2004:273頁

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!