版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 《C語(yǔ)言課程設(shè)計(jì)》</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 目錄</b></p><p> 課程設(shè)計(jì)任務(wù)書…………………………………………………3</p><p> 摘要……………………………………
2、…………………………4</p><p> 關(guān)鍵詞……………………………………………………………4</p><p> 原理………………………………………………………………4</p><p> 一.系統(tǒng)功能分析………………………………………………5</p><p> 1.1設(shè)計(jì)目的……………………………………………………..5</p
3、><p> 1.2功能描述……………………………………………………..5</p><p> 二.C 語(yǔ)言程序編寫……………………………………………6</p><p> 2.1程序結(jié)構(gòu)圖…………………………………………………..6</p><p> 2.2程序流程圖…………………………………………………..6</p><
4、p> 2.3程序源代碼…………………………………………………..8</p><p> 三.程序功能示例………………………………………………13</p><p> 3.1示例截圖……………………………………………………..13</p><p> 3.2測(cè)試過(guò)程……………………………………………………..16</p><p> 四
5、.設(shè)計(jì)體會(huì)與收獲……………………………………………16</p><p> 五.參考文獻(xiàn)……………………………………………………16</p><p> 《C 語(yǔ)言程序》課程設(shè)計(jì)任務(wù)書</p><p><b> 摘要:</b></p><p> 作為保障數(shù)據(jù)數(shù)據(jù)安全的一種方式,對(duì)于信息的加密技巧起源于歐洲,最廣為人知
6、的編碼機(jī)器是德國(guó)的German Enigma,在第二次世界大戰(zhàn)中德國(guó)人利用它創(chuàng)建了加密信息系統(tǒng),從而解決軍事信息的保密通訊問(wèn)題。</p><p> 盡管加密技術(shù)被首先使用在軍事通信領(lǐng)域,但是人們或許出于安全的考慮,開始逐漸對(duì)于商業(yè)機(jī)密、政府文件等重要信息實(shí)施加密手段。數(shù)據(jù)加密應(yīng)運(yùn)而生。其基本原理是:</p><p> 對(duì)明文(可讀懂的信息)進(jìn)行翻譯,使用不同的算法對(duì)明文以代碼形式(密碼
7、)實(shí)施加密。該過(guò)程的逆過(guò)程稱為解密,即將該編碼信息轉(zhuǎn)化為明文的過(guò)程。</p><p> 從事數(shù)據(jù)加密研究的人稱為密碼編碼者(Cryptographer),而從事對(duì)數(shù)據(jù)解密的專業(yè)人士稱為密碼分析者(Cryptanalyst)。如今數(shù)據(jù)加密技術(shù)被廣泛地應(yīng)用與國(guó)民經(jīng)濟(jì)各個(gè)領(lǐng)域,特別是政府機(jī)關(guān)和國(guó)防情報(bào)部門,此外才是科學(xué)研究機(jī)關(guān)、商業(yè)部門、新聞出版、金融證券、交通管制與電力輸送等部門。</p><p
8、> 而C語(yǔ)言程序設(shè)計(jì)教學(xué)不僅僅局限于使學(xué)生單純地了解和掌握C語(yǔ)言的基本語(yǔ)法規(guī)范,而是要致力于培養(yǎng)學(xué)生運(yùn)用C語(yǔ)言解決實(shí)際問(wèn)題的編程能力。C語(yǔ)言程序設(shè)計(jì)教學(xué)方法的改革讓學(xué)生從多角度、以多方式去了解和掌握C語(yǔ)言以及程序設(shè)計(jì)的精髓,著重培養(yǎng)學(xué)生無(wú)論以后在學(xué)習(xí)、工作中使用什么語(yǔ)言編程,都能靈活應(yīng)用這些思想和方法的能力。</p><p> 關(guān)鍵詞:C語(yǔ)言,程序設(shè)計(jì),換位法,換位位數(shù),數(shù)據(jù)加密與解密</p>
9、;<p><b> 原理:</b></p><p> 換位法加密的原理是將英文句子中的空格</p><p> 去除,然后將句子排成若干 行,每行的字符</p><p> 數(shù)為換位位數(shù),再按列輸出即為密文,不足</p><p> 部分填入隨機(jī)字母。;例如英文can you come here<
10、/p><p> 若換位位數(shù)取4,則密文為comraueench*yoe*,</p><p> *代表隨機(jī)字母,如右圖所示:</p><p><b> 一、系統(tǒng)功能分析</b></p><p><b> 1.1 設(shè)計(jì)目的</b></p><p> 本課程設(shè)計(jì)的目的是為了保
11、證個(gè)人數(shù)據(jù)資料不被他人非法竊取使用,保護(hù)個(gè)人的隱私及重要文件。</p><p><b> 1.2 功能描述</b></p><p> 本程序主要是對(duì)已知文件(為英文字符)通過(guò)一定的算法將其轉(zhuǎn)換成非本身的其他英文字母以達(dá)到文件加密的目的。整個(gè)系統(tǒng)由以下幾大功能模塊組成。</p><p><b> 1.主控選擇模塊</b>
12、;</p><p> 此模塊是主程序操作界面,供用戶進(jìn)行選擇。用戶可選擇執(zhí)行加密或解密操作。</p><p><b> 2.加密模塊</b></p><p> 此模塊執(zhí)行加密操作,輸入明文后,去除空格得s1,再判斷有沒有缺空格,有就補(bǔ)隨機(jī)字母,然后按照換位位數(shù)進(jìn)行加密,從而得到密文。</p><p><b&g
13、t; 3.解密模塊</b></p><p> 解密模塊是完成對(duì)文件的解密工作,將密文轉(zhuǎn)換為可被識(shí)別的明文。從外部文件中讀入任意一個(gè)文件并將它解密并顯示出來(lái)。</p><p> 本次綜合訓(xùn)練是計(jì)算機(jī)科學(xué)與技術(shù)、信息管理與信息系統(tǒng)、軟件工程專業(yè)重要的實(shí)踐性環(huán)節(jié)之一,是在學(xué)生學(xué)習(xí)完《C語(yǔ)言程序設(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》課程后進(jìn)行的一次全面的綜合練習(xí)。本課綜合訓(xùn)練的目的和任務(wù)是:<
14、;/p><p> 1. 鞏固和加深學(xué)生對(duì)C語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)課程的基本知識(shí)的理解和掌握;</p><p> 2. 掌握C語(yǔ)言編程和程序調(diào)試的基本技能;</p><p> 3. 利用C語(yǔ)言進(jìn)行基本的軟件設(shè)計(jì);</p><p> 4. 掌握書寫程序設(shè)計(jì)說(shuō)明文檔的能力;</p><p> 5. 提高運(yùn)用C語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)解決
15、實(shí)際問(wèn)題的能力。</p><p> 二、C 語(yǔ)言源程序編寫:</p><p><b> 1 程序結(jié)構(gòu)圖:</b></p><p><b> 主函數(shù)</b></p><p><b> 2 程序流程圖</b></p><p> 3所有的課題程序源代
16、碼:</p><p> #include<stdio.h></p><p> #include<string.h></p><p> #define CHANGDU 1000</p><p> int main( )</p><p><b> { </b><
17、;/p><p> char *jiami(char *p,char *s1,int key);</p><p> char *jiemi(char *p,char *s2,int key);</p><p> int key,i,j,len;</p><p> char s1[CHANGDU];</p><p>
18、 char s2[CHANGDU];</p><p> char xstr[CHANGDU];</p><p> printf(" *****************************\n");</p><p> printf(" *
19、 welcome to use the system! *\n");</p><p> printf(" *****************************\n");</p><p> printf("qing shu ru yuan shi ming wen:");<
20、/p><p><b> gets(s2);</b></p><p><b> {</b></p><p> int m=0,i=0,t;</p><p><b> char ch;</b></p><p> t=strlen(s2);</p&
21、gt;<p> for(i=0;i<t;i++)</p><p> if(s2[i]!=' '&&s2[i]!='\0')</p><p><b> {</b></p><p><b> ch=s2[i];</b></p><p
22、><b> s1[m]=ch;</b></p><p><b> m=m+1;</b></p><p><b> }</b></p><p><b> ch=s2[i];</b></p><p><b> s1[m]=ch;<
23、;/b></p><p> if(s1[0]>='A'&&s1[0]<='Z')</p><p> s1[0]=s1[0]+32;</p><p><b> }</b></p><p><b> puts(s1);</b>&l
24、t;/p><p> printf("qing shu ru jia mi mi yao:");</p><p> scanf("%d",&key);</p><p> jiami(xstr,s1,key);</p><p> printf("jia mi mi wen shi:&q
25、uot;);</p><p> printf("%s\n",xstr);</p><p> if(jiemi(s1,xstr,key)!=NULL)</p><p><b> {;}</b></p><p><b> else</b></p><p&g
26、t;<b> {</b></p><p> printf("NULL");</p><p><b> }</b></p><p><b> {</b></p><p><b> int a;</b></p>&l
27、t;p> char str[CHANGDU];</p><p> printf("**********************************************\n");</p><p> printf("qing shu ru jie mi mi yao:");</p><p> scanf(&q
28、uot;%d",&a);</p><p> getchar();</p><p> printf("qing shu ru jia mi mi wen:");</p><p> gets(str);</p><p> if(a==key&&str[0]==s1[0])</p&
29、gt;<p><b> {</b></p><p> printf("jie mi ming wen shi:");</p><p><b> puts(s2);</b></p><p><b> }</b></p><p><b
30、> }</b></p><p><b> }</b></p><p> char *jiami(char *p,char *s1,int key)</p><p><b> {</b></p><p> int i,j,len,len1,n=0;</p>&
31、lt;p> len=strlen(s1);</p><p> if((len % key)!=0)</p><p> len1=len+key-(len % key);</p><p><b> else</b></p><p><b> len1=len;</b></p>
32、;<p> for(i=len;i<len1;i++)</p><p> s1[i]=(char)((rand() % 26)+(rand() % 1)*('A'-'a')+'a');</p><p> s1[len1]=0;</p><p> for(j=0;j<key;j++)&l
33、t;/p><p> for(i=0;i<(len1/key);i++)</p><p> p[n++]=s1[i*key+j];</p><p><b> p[n]=0;</b></p><p><b> return p;</b></p><p><b>
34、; }</b></p><p> char *jiemi(char *p,char *s2,int key)</p><p><b> {</b></p><p> int i,j,len,n=0;</p><p> len=strlen(s2);</p><p> if(
35、(len % key)!=0)</p><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>
36、</p><p> p[n++]=s2[j*len+i];</p><p><b> }</b></p><p><b> p[n]=0;</b></p><p><b> return p;</b></p><p><b> }&l
37、t;/b></p><p> 我負(fù)責(zé)編寫的主程序源代碼:</p><p> char *jiemi(char *p,char *s2,int key)</p><p><b> {</b></p><p> int i,j,len,n=0;</p><p> len=strlen(
38、s2);</p><p> if((len % key)!=0)</p><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>&
39、lt;p><b> {</b></p><p> p[n++]=s2[j*len+i];</p><p><b> }</b></p><p><b> p[n]=0;</b></p><p><b> return p;</b></
40、p><p><b> }</b></p><p><b> 三.程序功能示例</b></p><p><b> 3.1示例截圖:</b></p><p> 3.2測(cè)試過(guò)程:(以第一幅截圖舉例)</p><p> ?。?)qing shu ru yua
41、n shi ming wen:Can you come here?</p><p> canyoucomehere?</p><p> qing shu ru jia mi mi yao:4</p><p> jia mi mi wen shi:comraueenchi?yoea</p><p> ******************
42、************************</p><p> qing shu ru jie mi mi yao:4</p><p> qing shu ru jia mi mi wen:comraueenchi?yoea</p><p> jie mi ming wen shi:Can you come here?</p><p&g
43、t; (2)qing shu ru yuan shi ming wen:Can you come here</p><p> canyoucomehere?</p><p> qing shu ru jia mi mi yao:11</p><p> jia mi mi wen shi:cearrney?oiuackoymietht</p>&
44、lt;p> ******************************************</p><p> qing shu ru jie mi mi yao:11</p><p> qing shu ru jia mi mi wen: cearrney?oiuackoymietht</p><p> jie mi ming wen shi:C
45、an you come here</p><p><b> 四.設(shè)計(jì)體會(huì)與收獲</b></p><p> 該程序是我與牛濤,杭世龍同學(xué)一起完成的,我負(fù)責(zé)解密函數(shù)的編寫,我負(fù)責(zé)加密函數(shù)的編寫,牛濤負(fù)責(zé)編寫主函數(shù),然后三個(gè)人在加以整合、更改,得到以上程序。在編寫主函數(shù)是遇到了一些問(wèn)題,例如,在對(duì)待字符數(shù)組的處理問(wèn)題上,遇到了些問(wèn)題,但經(jīng)過(guò)查閱書籍,最終得以解決,感受頗
46、多?;仡櫰鸫舜握n程設(shè)計(jì),至今我仍感慨頗多,的確,從從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)學(xué)期的日子里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題
47、,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體……通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。</p><p><b> 五.參考文獻(xiàn)</b></p><p> 《C語(yǔ)言程序設(shè)計(jì)》 譚浩強(qiáng)版</p><p>
48、 全國(guó)計(jì)算機(jī)登記考試二級(jí)教程—C預(yù)言程序設(shè)計(jì) 高等教育出版社 田樹青</p><p> 《C語(yǔ)言程序設(shè)計(jì)習(xí)題與實(shí)驗(yàn)設(shè)計(jì)指導(dǎo)》電子科技大學(xué)出版社,編者孫淑霞,周家紀(jì),丁照宇。</p><p> 《標(biāo)準(zhǔn)C語(yǔ)言基礎(chǔ)教程(第四版)》編者Gary J.Bronson</p><p> 物理與電子信息學(xué)院課程設(shè)計(jì)評(píng)定意見</p><p> 注:
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)—數(shù)據(jù)加密解密
- 《c語(yǔ)言課程設(shè)計(jì)》課程設(shè)計(jì)--數(shù)據(jù)的加密與解密
- c語(yǔ)言課程設(shè)計(jì)-文件加密解密
- c語(yǔ)言課程設(shè)計(jì)-文件加密解密
- c語(yǔ)言課程設(shè)計(jì)-文件加密解密(含源代碼)
- 加密與解密課程設(shè)計(jì)
- java課程設(shè)計(jì)--加密與解密
- java課程設(shè)計(jì) -- 文件加密與解密
- java課程設(shè)計(jì)---加密和解密
- java文件加密解密課程設(shè)計(jì)
- aes密碼學(xué)課程設(shè)計(jì)(c語(yǔ)言實(shí)現(xiàn))--aes加密解密軟件的實(shí)現(xiàn)
- 文件加密與解密—java課程設(shè)計(jì)報(bào)告
- 加密解密程序設(shè)計(jì)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--加密與解密
- java課程設(shè)計(jì)文本文檔的加密與解密
- aes課程設(shè)計(jì)報(bào)告--aes加密解密的實(shí)現(xiàn)
- 微機(jī)原理課程設(shè)計(jì)--加密解密程序設(shè)計(jì)
- c語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)--數(shù)據(jù)集合處理
- 應(yīng)用密碼學(xué)課程設(shè)計(jì)-rsa加密解密的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論