版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 《C語言課程設(shè)計(jì)》</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 目錄</b></p><p> 目錄…………………………………………………………………………1</p><p> 課程設(shè)計(jì)任務(wù)書……………
2、………………………………………………2</p><p> 摘要…………………………………………………………………………3</p><p> 關(guān)鍵詞………………………………………………………………………3</p><p> 原理…………………………………………………………………………3</p><p> 1. 系統(tǒng)功能分析…………………
3、…………………………………………4</p><p> 1.1 設(shè)計(jì)目的…………………………………………………………………4</p><p> 1.2 功能描述…………………………………………………………………4</p><p> 2. C語言程序編寫…………………………………………………………5</p><p> 2.1程序結(jié)構(gòu)圖…
4、………………………………………………………5</p><p> 2.2程序流程圖…………………………………………………………5</p><p> 2.3 具體程序源代碼……………………………………………………8</p><p> 3. C語言程序功能示例……………………………………………………11</p><p> 4. 設(shè)計(jì)總結(jié)…
5、………………………………………………………………12</p><p> 5. 參考文獻(xiàn)…………………………………………………………………13</p><p> 《C語言程序》課程設(shè)計(jì)任務(wù)書</p><p><b> 摘要 </b></p><p> 隨著現(xiàn)代化的發(fā)展,人們的數(shù)據(jù)需要更笀便、安全和可靠的加密管理模式
6、。設(shè)計(jì)一個基于C語言的數(shù)據(jù)加密及解密軟件,可以方便對數(shù)據(jù)的加密與解密。本設(shè)計(jì)實(shí)現(xiàn)了數(shù)據(jù)的加密及?密,運(yùn)行軟件之后只需輸入英文句子倎,再輸入換位位數(shù)(密鑰),即可輸出密文,也即對該數(shù)據(jù)進(jìn)行加密;輸入密文后再輸入換位位數(shù)則可輸出明文,即解密操作。朄設(shè)計(jì)的加密?解密系統(tǒng),運(yùn)用了C語言程序設(shè)計(jì)的知識,具有對英文文本加密和解密的功能,并在此基礎(chǔ)上可進(jìn)行對文件的操作。</p><p><b> 關(guān)鍵詞 <
7、/b></p><p><b> C語言;</b></p><p><b> 程序設(shè)計(jì);</b></p><p><b> 換位法</b></p><p><b> 換位位數(shù)</b></p><p><b>
8、 數(shù)據(jù)加密與解密;</b></p><p><b> 原理</b></p><p> 換位法加密的原理是將英文句子中的空格去除,然后將句子排成若干行,每行的字符數(shù)為換位位數(shù),再按列輸出即為密文,不足部分填入隨機(jī)字母。例如英文Can you come here若換位位數(shù)取4,則密文為comraueenchayoeb,如右圖所示。</p>
9、<p><b> 一、系統(tǒng)功能分析</b></p><p><b> 1.1設(shè)計(jì)目的</b></p><p> 本課程設(shè)計(jì)的目的是為了保證個人數(shù)據(jù)資料不被他人非法竊取使用,保護(hù)個人的隱私及重要文件!</p><p><b> 1.2功能描述</b></p><p&
10、gt; 本程序主要是對已知文件(為英文字符)通過一定的算法將其轉(zhuǎn)換成非本身的其他英文字母以達(dá)到文件加密的目的。整個系統(tǒng)由以下幾大功能模塊組成。</p><p> 1.2.1主控選擇模塊</p><p> 此模塊是主程序操作界面,供用戶進(jìn)行選擇。用戶可選擇執(zhí)行加密或解密操作。</p><p><b> 1.2.2加密模塊</b></
11、p><p> 加密模塊主要是完成對文件的加密操作。從外部文件中讀入任意一個文件并將它加密并顯示出來!</p><p><b> 1.2.3解密模塊</b></p><p> 解密模塊是完成對文件的解密工作,將密文轉(zhuǎn)換為可被識別的明文。從外部文件中讀入任意一個文件并將它解密并顯示出來!</p><p> 本綜合訓(xùn)練是計(jì)
12、算機(jī)科學(xué)與技術(shù)、信息管理與信息系統(tǒng)、軟件工程專業(yè)重要的實(shí)踐性環(huán)節(jié)之一,是在學(xué)生學(xué)習(xí)完《C語言程序設(shè)計(jì)》 《數(shù)據(jù)結(jié)構(gòu)》課程后進(jìn)行的一次全面的綜合練習(xí)。本課綜合訓(xùn)練的目的和任務(wù):</p><p> 1. 鞏固和加深學(xué)生對C語言、數(shù)據(jù)結(jié)構(gòu)課程的基本知識的理解和掌握;</p><p> 2. 掌握C語言編程和程序調(diào)試的基本技能;</p><p> 3. 利用C語言進(jìn)行
13、基本的軟件設(shè)計(jì);</p><p> 4. 掌握書寫程序設(shè)計(jì)說明文檔的能力;</p><p> 5. 提高運(yùn)用C語言、數(shù)據(jù)結(jié)構(gòu)解決實(shí)際問題的能力。 </p><p> 二、C語言源程序編寫:</p><p><b> 2.1程序結(jié)構(gòu)圖:</b></p><p><b> 2.2程
14、序流程圖</b></p><p> 2.3、具體程序源代碼如下:</p><p> #include<stdio.h></p><p> #include<string.h></p><p> #include<time.h></p><p> #define
15、CODELEN 256</p><p> char *encode(char *dest,char *s1,int key)</p><p><b> {</b></p><p> int i,j,len,len2,n=0;</p><p> len=strlen(s1);</p><p>
16、; if((len % key)!=0)</p><p> len2=len+key-(len % key);</p><p><b> else</b></p><p><b> len2=len;</b></p><p> (timesrand(NULL));</p>&
17、lt;p> for(i=len;i<len2;i++)</p><p> s1[i]=(char)((rand() % 26)+(rand() % 1)*('A'-'a')+'a');</p><p> s1[len2]=0;</p><p> for(j=0;j<key;j++)</p
18、><p> for(i=0;i<(len2/key);i++)</p><p> dest[n++]=s1[i*key+j];</p><p> dest[n]=0;</p><p> return dest;</p><p><b> }</b></p><p&g
19、t; char *decode(char *dest,char *str,int key)</p><p><b> {</b></p><p> int i,j,len,n=0;</p><p> len=strlen(str);</p><p> if((len % key)!=0) </p>
20、<p> return NULL;</p><p> len=(len / key);</p><p> for(i=0;i<len;i++)</p><p> for(j=0;j<key;j++)</p><p><b> {</b></p><p> des
21、t[n++]=str[j*len+i];</p><p><b> }</b></p><p> dest[n]=0;</p><p> return dest;</p><p><b> }</b></p><p> int main()</p>&
22、lt;p><b> {</b></p><p> int key,i,j,len;</p><p> char s1[CODELEN];</p><p> char str[CODELEN];</p><p> char xstr[CODELEN];</p><p> print
23、f("Please enter a string:");</p><p> gets(str);</p><p><b> {</b></p><p> int m=0,i=0,t;</p><p><b> char ch;</b></p><p&g
24、t; t=strlen(str);</p><p> for(i=0;i<t;i++)</p><p> if(str[i]!=' '&&str[i]!='\0')</p><p><b> {</b></p><p> ch=str[i];</p&g
25、t;<p> s1[m]=ch;m=m+1;</p><p><b> }</b></p><p> ch=str[i];</p><p><b> s1[m]=ch;</b></p><p> if(s1[0]>='A'&&s1[0]&
26、lt;='Z')</p><p> s1[0]=s1[0]+32;}</p><p><b> puts(s1);</b></p><p> printf("Please enter a digit:");</p><p> scanf("%d",&
27、key);</p><p> encode(xstr,s1,key);</p><p> printf(“The mi wen is:”);</p><p> printf("%s\n",xstr);</p><p> if(decode(s1,xstr,key)!=NULL)</p><p&g
28、t;<b> {;} </b></p><p><b> else</b></p><p><b> {</b></p><p> printf("NULL");}</p><p><b> {</b></p>
29、<p><b> int a;</b></p><p> char s2[CODELEN];</p><p> printf("Please enter again a digit:");</p><p> scanf("%d",&a);</p><p>
30、 getchar();</p><p> printf("Please enter again a string:");</p><p> gets(s2); </p><p> if(a==key&&s2[0]==s1[0])</p><p><b> {</b></
31、p><p> printf(“The ming wen is:”);</p><p> puts(str);</p><p><b> }</b></p><p> printf(“****”);</p><p> printf(“****”);</p><p>&l
32、t;b> }</b></p><p><b> }</b></p><p> 三、C語言程序功能示例:</p><p><b> 操作過程中的截圖:</b></p><p><b> 測試數(shù)據(jù):</b></p><p> P
33、lease enter a string:Nice to meet you </p><p> Please enter a digit:4;</p><p> The mi wen is:nteuiotacmyfeeok</p><p> Please enter again a digit:4</p><p> Please en
34、ter again a string: Nice to meet you</p><p> ******** </p><p> Please enter a string:Well down boby</p><p> Please enter a digit:4;</p><p> The mi wen is:wdbeoo
35、lwblny</p><p> Please enter again a digit:4</p><p> Please enter again a string: Well down boby</p><p><b> ********</b></p><p><b> 四、設(shè)計(jì)總結(jié)</b>
36、;</p><p> 通過這次課程設(shè)計(jì),我學(xué)到了許多東西,在完成設(shè)計(jì)的過程中也遇到了許多的問題,通過不斷的查資料,和向老師同學(xué)的請教,使得大部分問題得到了解決。并且解決問題的過程中我也學(xué)到了很多東西。</p><p> 在設(shè)計(jì)過程中,主要遇到的問題就是文件的操作問題,以前學(xué)習(xí)的時(shí)候,對文件的操作掌握的不是很好,但在做課程設(shè)計(jì)時(shí)會常常用到,經(jīng)認(rèn)真看書后解決了這個問題。還有就是對讀取文本文
37、件中的內(nèi)容不停止(一直讀下去)的問題。首先是密碼的存儲識別,后用fgetc(fp))!=EOF函數(shù)解決,使得讀函數(shù)不會無限讀下去,讀完后停止并還回文本內(nèi)容;其次是密碼太多時(shí)會出現(xiàn)亂碼的問題,后用while()函數(shù)解決。</p><p> 雖然在課程設(shè)計(jì)過程中修改了很多次,但程序還是很不完美,有一些問題未能解決。比如說程序的界面不夠美觀,不夠人性化;在對密碼的處理上也不甚太好,可能存在安全隱患。我將在以后的時(shí)間里
38、繼續(xù)努力,不斷充實(shí)自己。</p><p><b> 附軟件說明:</b></p><p> 本程序采用宏定義方式定義字符串的大小,增加了程序的通用性,</p><p> 本程序基本實(shí)現(xiàn)了要求的內(nèi)容:1.采用換位法進(jìn)行加密和解密;</p><p> 2.輸入英文句子后,再輸入換位位數(shù)(密鑰),即可輸出密文;<
39、/p><p> 3.輸入密文后再輸入換位位數(shù)則可輸出明文;</p><p> 數(shù)據(jù)的加密與解密的使用方法:</p><p> 1.加密使用方法: 首先輸入一個加密字符串(即明文),然后再輸入加密字?jǐn)?shù)(即密鑰),即可顯示結(jié)果(密文)。</p><p> 2.解密使用方法: 首先輸入解密字節(jié)數(shù)(密鑰),然后再輸入密文,即可顯示結(jié)果(即明文)
40、。</p><p><b> 五、參考文獻(xiàn)</b></p><p> 1. 譚浩強(qiáng) C語言程序設(shè)計(jì)(第二版).高等教育出版社,2002</p><p> 2. 黃維通 C語言程序設(shè)計(jì) 清華大學(xué)出版社</p><p> 3. 徐士良等. C語言常用算法程序集 清華大學(xué)出版社</p&g
41、t;<p> 4. 馬靖善等. C語言程序設(shè)計(jì).清華大學(xué)出版社,2005</p><p> 5. 張毅坤等. C語言程序設(shè)計(jì)教程[M] .西安交通大學(xué)出版社,2003</p><p> 物理與電子信息學(xué)院課程設(shè)計(jì)評定意見</p><p> 注:本頁與上一頁用A3紙?zhí)子〕煞饷婧头獾祝n程設(shè)計(jì)報(bào)告正文用A4紙打印然后裝訂</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)—數(shù)據(jù)加密解密
- c語言課程設(shè)計(jì)數(shù)據(jù)的加密與解密
- c語言課程設(shè)計(jì)-文件加密解密
- c語言課程設(shè)計(jì)-文件加密解密
- 加密與解密課程設(shè)計(jì)
- c語言課程設(shè)計(jì)-文件加密解密(含源代碼)
- java課程設(shè)計(jì)--加密與解密
- java課程設(shè)計(jì) -- 文件加密與解密
- java課程設(shè)計(jì)---加密和解密
- java文件加密解密課程設(shè)計(jì)
- 【課程設(shè)計(jì)】c語言課程設(shè)計(jì)
- 加密解密程序設(shè)計(jì)課程設(shè)計(jì)
- 文件加密與解密—java課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--加密與解密
- 微機(jī)原理課程設(shè)計(jì)--加密解密程序設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--數(shù)據(jù)集合處理
- aes密碼學(xué)課程設(shè)計(jì)(c語言實(shí)現(xiàn))--aes加密解密軟件的實(shí)現(xiàn)
評論
0/150
提交評論