




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告仲愷農(nóng)業(yè)工程學(xué)院課程設(shè)計(jì)文件加密姓名孫浩斌院(系)信息科學(xué)與技術(shù)學(xué)院專業(yè)年級計(jì)算機(jī)132學(xué)號201320244207指導(dǎo)教師羅慧慧職稱學(xué)生起止時(shí)間2015-6-15至2015-6-24仲愷農(nóng)業(yè)工程學(xué)院教務(wù)處制程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告目錄.課程設(shè)計(jì)目的和要求21.1 設(shè)計(jì)目的21.2 設(shè)計(jì)要求31.3 設(shè)計(jì)意義3.課程設(shè)計(jì)任務(wù)內(nèi)容42.142.2功能需求43 .模塊設(shè)計(jì)43.1 系統(tǒng)模塊43.2 主函數(shù)流程圖53.3 函數(shù)流程圖73.3.1 加密函數(shù)流程圖73.3.2 解密函數(shù)流程圖83.3.3 顯示函數(shù)流程圖93.3.4 統(tǒng)計(jì)單詞流程圖104 .軟件使用說明.114.1
2、 進(jìn)入界面11.4.2 加密文件124.3 解密文件124.4 顯示文件144.5 統(tǒng)計(jì)單詞個(gè)數(shù)14五課程設(shè)計(jì)心得與體會155.1 關(guān)于對程序編寫的心得155.2 對于課程設(shè)計(jì)的心得體會15附錄1:參考文獻(xiàn)16附錄2:程序代碼16一.課程設(shè)計(jì)目的和要求1.1 設(shè)計(jì)目的有時(shí)我們有些資料不希望別人看到,最常用的方法就是加密。對給定的相關(guān)文件進(jìn)行加密可以對文件進(jìn)行保護(hù),可以防止某些重要信息不被別人所知道甚至竊取。對文件起到保護(hù)作用,可以方便用戶使用某些只有自己能知道的信息,能夠安全保護(hù)文件的相關(guān)內(nèi)容幾信息不被外流。隨著信息社會的到來,人們在享受信息資源所帶來的巨大的利益的同時(shí),也面臨著信息安全的嚴(yán)峻
3、考驗(yàn)。信息安全已經(jīng)成為世界性的現(xiàn)實(shí)程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告問題,信息安全問題已威脅到國家的政治、經(jīng)濟(jì)、軍事、文化、意識形態(tài)等領(lǐng)域,同時(shí),信息安全問題也是人們能否保護(hù)自己的個(gè)人隱私的關(guān)鍵。信息安全是社會穩(wěn)定安全的必要前提條件。通過課程設(shè)計(jì),使學(xué)生了解高級程序設(shè)計(jì)語言的結(jié)構(gòu),逐漸培養(yǎng)學(xué)生的編程能力、用計(jì)算機(jī)解決實(shí)際問題的能力,掌握基本的程序設(shè)計(jì)過程和技巧,掌握基本的分析問題和利用計(jì)算機(jī)求解問題的能力,具備初步的高級語言程序設(shè)計(jì)能力。為后續(xù)各門計(jì)算機(jī)課程的學(xué)習(xí)和畢業(yè)設(shè)計(jì)打下堅(jiān)實(shí)基礎(chǔ)。程序設(shè)計(jì)的主要任務(wù)是要求學(xué)生遵循軟件開發(fā)過程的基本規(guī)范,運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的方法,按照課程設(shè)計(jì)的題目要求,分析、設(shè)計(jì)、
4、編寫、調(diào)試和測試程序及編寫設(shè)計(jì)報(bào)告。本課程設(shè)計(jì)的目標(biāo):1,鞏固高級語言程序設(shè)計(jì)課程學(xué)習(xí)的內(nèi)容和加深學(xué)生對基本知識的理解和掌握。2.掌握編程和程序調(diào)試的基本技能。3,掌握軟件設(shè)計(jì)的方法。4.提高運(yùn)用程序設(shè)計(jì)解決實(shí)際問題的能力。5,培養(yǎng)獨(dú)立思考、綜合運(yùn)用所學(xué)有關(guān)相應(yīng)知識的能力。6,強(qiáng)化上機(jī)動手編程能力,闖過理論與實(shí)踐相結(jié)合的難關(guān)!1.2設(shè)計(jì)要求1 .分析課程設(shè)計(jì)題目的要求,根據(jù)所要求的程序功能,畫出程序的流程圖。2,對系統(tǒng)功能模塊進(jìn)行分析,寫出詳細(xì)設(shè)計(jì)說明文檔。3,對程序源代碼進(jìn)行調(diào)試與測試,使其能正確運(yùn)行。4,設(shè)計(jì)完成的軟件要便于操作和使用。5,設(shè)計(jì)完成后提交課程設(shè)計(jì)報(bào)告。1.3設(shè)計(jì)意義至今,密
5、碼技術(shù)是取得信息安全性最有效的一種方法,密碼技術(shù)是信息安全的核心技術(shù)。通過數(shù)據(jù)加密,人們可以有效地保證通信線路上的內(nèi)容不被泄露,而且還可以檢驗(yàn)傳送信息的完整性。進(jìn)一步,密碼技術(shù)可以應(yīng)用于數(shù)字簽名、身份認(rèn)證和信息鑒定,這些應(yīng)用對于資源存取控制以及其它安全措施是必須而且有效的。相對于防程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告病毒軟件和防火墻軟件來說,基于密碼技術(shù)密碼類產(chǎn)品、認(rèn)證類產(chǎn)品份額相對較小,但隨著金融、電信、政府等行業(yè)信息化建設(shè)對于網(wǎng)絡(luò)安全整體解決方案需求的增加,將會有較大的增長。二.課程設(shè)計(jì)任務(wù)內(nèi)容2.1 背景加密技術(shù)是電子商務(wù)采取的主要安全保密措施,是最常用的安全保密手段利用技術(shù)手段把重要的數(shù)據(jù)變?yōu)閬y碼
6、(加密)傳送,到達(dá)目的地后再用相同或不同的手段還原(解密)。加密技術(shù)包括兩個(gè)元素:算法和密鑰。算法是將普通的文本(或者可以理解的信息)與一竄數(shù)字(密鑰)的結(jié)合,產(chǎn)生不可理解的密文的步驟,密鑰是用來對數(shù)據(jù)進(jìn)行編碼和解碼的一種算法。在安全保密中,可通過適當(dāng)?shù)拿荑€加密技術(shù)和管理機(jī)制來保證網(wǎng)絡(luò)的信息通訊安全。2.2 功能需求實(shí)現(xiàn)對文件的加密與解密,要求有圖形用戶界面。細(xì)則如下:1 .能夠?qū)σ粋€(gè)文件進(jìn)行加密。2 .加密后生成一個(gè)新文件,并且原文件刪除。3 .能將加密生成的文件還原成原文件。4 .能夠統(tǒng)計(jì)文件中單詞個(gè)數(shù)。三.模塊設(shè)計(jì)3.1 系統(tǒng)模塊包括四個(gè)模塊:加密模塊,解密模塊,顯示模塊,統(tǒng)計(jì)單詞模塊程
7、序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告系統(tǒng)模塊加密模塊解密模塊統(tǒng)計(jì)單詞模塊圖3-1系統(tǒng)模塊圖3.2 主函數(shù)流程圖在主函數(shù)中,利用switch語句實(shí)現(xiàn)對各個(gè)項(xiàng)目的函數(shù)調(diào)用程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告Y>退由Abreak,輸入>breakY力口密-快breaky*解密break輸入錯(cuò)誤,重新輸入圖3-2主函數(shù)流程圖程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告3.3 函數(shù)流程圖3.3.1 加密函數(shù)流程圖先讀取原文件數(shù)據(jù),將原文件稱需經(jīng)過特定條件轉(zhuǎn)換后存放到另一個(gè)文件夾。加密過程,即將讀取文件的字符根據(jù)加密公式轉(zhuǎn)化為別的字符實(shí)現(xiàn)加密。但由于后面的解密重要判斷是否已經(jīng)是加密文件,所以在文件末尾做記號標(biāo)記。存到另一文件夾后關(guān)閉文件,
8、最后用remove,rename兩個(gè)函數(shù)實(shí)現(xiàn)刪除源文件,將加密后文件命名為原文件名,這樣只剩下一個(gè)加密文件了。加密后的文件名更改為原文件名N圖3-3加密函數(shù)流程圖程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告3.3.2 解密函數(shù)流程圖先判斷是否已經(jīng)加密,這時(shí)要利用加密函數(shù)中使用的標(biāo)識符,可以用fseek函數(shù)讀取文件末尾的標(biāo)識符判斷是否已加密。若是則解密,否則不解密。開始N結(jié)束圖3-4解密函數(shù)流程圖程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告3.3.3 顯示函數(shù)流程圖利用文件的操作,用fgetc函數(shù)從文件讀取數(shù)據(jù),再用putchar函數(shù)將數(shù)據(jù)顯示到屏帚0:結(jié)束;圖3-5顯示函數(shù)流程圖程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告3.3.4 統(tǒng)計(jì)單詞流程圖從文
9、件中讀取字符串,存到數(shù)組中。接著從字符串中讀取一個(gè)英文單詞,出來與要統(tǒng)計(jì)的單詞比較(strcmp函數(shù)),定義一個(gè)計(jì)數(shù)的變量實(shí)現(xiàn)記錄單詞出現(xiàn)的次數(shù)。*鍵入要查找單詞的文件名統(tǒng)計(jì)單詞個(gè)數(shù)圖3-6統(tǒng)計(jì)單詞流程圖10程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告豺客件的文:現(xiàn)工加r出廠屆例的文:在,.文文文詞統(tǒng)月的的本他京文某出入給給示計(jì)顯統(tǒng)四.軟件使用說明4.1 進(jìn)入界面輸入05,實(shí)現(xiàn)不同功能。12尊號&myM4sycointlnue圖4-1若輸入錯(cuò)誤,重新輸入。1一輸入a加密力一解筆1-輸入2旺3-解密4顯示5-統(tǒng)計(jì)0一遲出51下s-統(tǒng)計(jì)0-iRtti*?件的文:現(xiàn)攀娓.出數(shù)如那容:人任仃內(nèi)件國評的文-若齋練H
10、k的本單雷走妥基出入萼示計(jì).1PlM-二二-i?r請選擇£8-S>4:Adfr輸入招試,請重新輸入.按任意健返回重新情小圖4-211程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告4.2 加密文件輸入要加密文件名,文檔內(nèi)容。弟:工要吊1人信尸.的L巴件W河怖仄爻檔兩丙容:以Ctrl*2結(jié)束gi5iwnI&111LLL及檔輸入并保存成功,緡?yán)m(xù)創(chuàng)建文件并儲;侑£門發(fā)y繼續(xù)).圖4-3付A里加把的丁存w稱士小=日0W':文件,八苜燈打開.平到f輸入4接v、?。盤入盟加考的點(diǎn)件/科,2.51濃密后的火檔tyii«<trtKLlXLKT(1包檔:舊由萬年懺唬功,黨轉(zhuǎn)加密
11、七件M按,銅法網(wǎng)蜒人算加密的文件名稱加吧后的文檔,jrwr<i'><11<<-t<*TTHlO密并保住欣u;,獻(xiàn)族加娜文件r按沙電犢>偌任憑神原向主蔡甲圖4-4電工募加密的文件缶杯,FLm出七的文檔,*T<t<tT<T#二批11J交井保存戌功”任續(xù)”I史史年X佞y組那.>w沙人德加密的文黃"名神”-七文件口使用本程序加宏r?重新輸入要加存的文件名(授n?圖4-54.3 解密文件輸入進(jìn)入系統(tǒng)密碼百輸.人2L工醉岳樂紐必田碼£3史碼輸入常傻,王新旃入密牙耳乂接U至新胸入小圖4-612程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)
12、告謂幅入過九部空摹班的密到二,J交取輸入有誤,叁新輸入密犯箕廢舉重新福入土¥卜不起.您的輸入次數(shù)太事了.返回想空再耒啊標(biāo)任袁駢市叵主菜學(xué).圖4-7濟(jì)輸入進(jìn)入解交系統(tǒng)的雷刊川11"Chen普.若科產(chǎn)的文件名何:*比文件未能打開.重新情入橫”為徒九要解密的交件套飾2.Jt幫賽后的文檔H£1IkJO1L111ILL檔解密并保存式照工解史文件"拄尸國拉回黑與隼申:的文件名林小引生后的文檔,圖4-8槌入舞斡密的文件名稱訓(xùn)游史員的文恃he±Ju?*nm文巖解史并保存成功t看的去解含文件T4校出續(xù)按Q脛桃退回主菜單圖4-9儲入要辮密的文件名怖十文件節(jié)盾使用本
13、程序加密n,重新輸入要加密的文件名按八?圖4-1013程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告4.4 顯示文件F注入JFT產(chǎn)J1伊川牛=ft*Mtiti'-1I*-UT他4jI足dIjLillItL射嶂_H士性眩V維”:“YH%”HT-g,峰卞二你工5Lg:#.|開展Tirrt<1<ft腦9E打;文件恢量堆勺”E安任lSFRIE_k干一圖4-114.5統(tǒng)計(jì)單詞個(gè)數(shù)地入曼古找出洞的文件名你二Kt樊人翼統(tǒng)計(jì)中/的羊i司r文檔串有1為單詞靴為,4上觸銃U畢i司個(gè)聯(lián)(按Y觸關(guān)了少繼入強(qiáng)亶找中詞的文件:棟:HJMt健入蚌場計(jì)個(gè)卦:的單訕:11文檔串有門的單詞數(shù)為I2臚續(xù)統(tǒng)討單詞數(shù)按V的竦?唬告意鍵返
14、叵生菜單.圖4-12程序存在問題:1.沒有獨(dú)立的磁盤管理功能,沒有能從磁盤開辟空間,對文件進(jìn)行定義,分區(qū)存儲以及管理。2.加密解密方式過于簡單,并沒有實(shí)現(xiàn)完全的加密封鎖。雖然進(jìn)行了轉(zhuǎn)碼,能避免重要信息直接以明文的方式呈現(xiàn),但是假如有入侵者獲取了控制權(quán),雖然他不能夠獲取文件的信息,但是他可以把這個(gè)文件直接刪除,或者做一些損壞性的操作。這堆用戶來說依然是不安全的。程序改進(jìn)方案:1、本程序采用的按字符異或加密的算法是一種比較簡單的加密算法,安全性較差,若對文件保密性要求比較高,則可采用一些復(fù)雜的算法進(jìn)行加密。2、本程序入口只能輸入要加密或解密的目標(biāo)文件名,而對加密或解密后的文件14程序設(shè)計(jì)綜合課程設(shè)
15、計(jì)報(bào)告不能自定義,只能用程序提供的anma.txt和mingma.txt存放文件,這樣,當(dāng)對同一目錄下多個(gè)文檔加密時(shí),加密解密操作后的文件會替換原來的文件,造成數(shù)據(jù)丟失;五.課程設(shè)計(jì)心得與體會5.1 關(guān)于對程序編寫的心得這個(gè)程序看起來挺簡單的,但對于對C語言還是初學(xué)者的我,還是顯得有些難度的。在編寫的過程中,由于粗心經(jīng)常出現(xiàn)一些比較簡單的錯(cuò)誤,比如遺漏逗號、雙引號、小括號,以及項(xiàng)目名稱,從而導(dǎo)致出現(xiàn)亂碼。C編譯的程序?qū)φZ法檢查并不象其它高級語言那么嚴(yán)格,這就給編程人員留下靈活的余地”,但還是由于這個(gè)靈活給程序的調(diào)試帶來了許多不便,尤其對初學(xué)C語言的人來說,經(jīng)常會出一些連自己都不知道錯(cuò)在哪里的錯(cuò)
16、誤。看著有錯(cuò)的程序,不知該如何改起!但是,通過上網(wǎng)查詢還有在老師、學(xué)長和同學(xué)的幫助下,我最終還是完成了程序的編寫。5.2 對于課程設(shè)計(jì)的心得體會作為計(jì)算機(jī)類本科生教學(xué)的主要基礎(chǔ)課之一,課程緊密結(jié)合計(jì)算機(jī)課程類的專業(yè)特點(diǎn),系統(tǒng)介紹操作系統(tǒng)的基本知識,基本組成,體系結(jié)構(gòu)和工作模式,從而使學(xué)生能較清楚地了解操作系統(tǒng)的知識,建立起系統(tǒng)的概念。這次操作系統(tǒng)課程設(shè)計(jì)用時(shí)兩個(gè)個(gè)星期,在整整兩個(gè)一星期的日子里,可以說得是大家積極努力準(zhǔn)備,同時(shí)可以學(xué)到很多很多的的東西,不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。以前,在寫一個(gè)程序的時(shí)候,我總是不細(xì)心,怕很浪費(fèi)時(shí)間。但是,這次課程設(shè)
17、計(jì)完全改變了我以前的那種錯(cuò)誤的認(rèn)識,以前我接觸的那些程序都是很短、很基礎(chǔ)的,但是在課程設(shè)計(jì)中碰到的那些需要很多代碼才能完成的任務(wù),在做設(shè)計(jì)的過程中,我們每一步要做什么,每一步要完成什么任務(wù)都有一個(gè)很清楚的思路,其次,以前對于編程工具的使用還處于一知半解的狀態(tài)上,但是經(jīng)過一段上機(jī)的實(shí)踐,對于怎么去排錯(cuò)、查錯(cuò),怎么去看每一步的運(yùn)行結(jié)果,確保程序的正確性上15程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告都有了很大程度的提高。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力
18、。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在同學(xué)和老師的辛勤指導(dǎo)下,終于游刃而解。附錄1:參考文獻(xiàn)1 .譚浩強(qiáng):C程序設(shè)計(jì),清華大學(xué)出版社,2005年7月第三版2 .譚浩強(qiáng):C+程序設(shè)計(jì),清華大學(xué)出版社,2004年6月第一版3 .譚浩強(qiáng),張基溫,唐永炎:編著。語言程序設(shè)計(jì)教程.北京:高等教育出版社,19924操作系統(tǒng)教程(費(fèi)祥林,駱斌)附錄2:程序代碼#include<stdio.h>
19、#include<stdlib.h>#include<string.h>#include<ctype.h>#include<conio.h>#defineM20#defineN20#defineW20#defineF1000#defineE3/*/*/*/*/*charmina="ulinchen”;/*宏定義文件名字符串?dāng)?shù)組大小宏定義解密碼字符串?dāng)?shù)組大小宏定義單詞字符串?dāng)?shù)組大小*/*/*/宏定義文件讀取字符串?dāng)?shù)組大小宏定義解密系統(tǒng)密碼輸入次數(shù)初始化解密系統(tǒng)進(jìn)入密碼*/*/16*/程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告voidmenu(void);/
20、*主菜單*/voidshuru(void);/*輸入*/voidjiami(void);/*加密*/*函數(shù)原型*/voidjiemi(void);/*解密*/voidshow(void);/*顯示*/voidcount(void);/*統(tǒng)計(jì)單詞數(shù)*/intjudge(void);/*是否繼續(xù)判斷函數(shù)*/intmain()charnum;while(1)menu();/*顯示主菜單*/scanf("%c”,&num);/*輸入數(shù)字0-5*/fflush(stdin);/*消除數(shù)據(jù)流,防止惡意輸入字符串,直接操作以第一個(gè)字符后面字符串為名的文件*/switch(num)/*選擇語
21、句*/case'0':/*選擇0*/printf("n");exit(0);case'1':/*選擇1*/system("cls");shuru();/*輸入*/printf("n按任意鍵返回主菜單");break;case'2':/*選擇2*/system("cls");jiami();/*加密*/printf("n按任意鍵返回主菜單");break;case'3':/*選擇3*/system("cls");j
22、iemi();/*解密*/printf("n按任意鍵返回主菜單");break;case'4':/*選擇4*/system("cls");show();/*顯示*/printf("n按任意鍵返回主菜單");break;case'5':/*選擇5*/system("cls");17程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告count();printf("nbreak;default:printf("nttbreak;)getch();fflush(stdin);system(&quo
23、t;cls");)voidmenu(void)printf("nn");printf("t/*按任意鍵返回主菜單");/*輸入錯(cuò)誤,請重新輸入/*/*/*/*統(tǒng)計(jì)單詞數(shù)*/輸入錯(cuò)誤*/(按任意鍵返回主菜單)")等待輸入,是界面停留*/消除數(shù)據(jù)流*/清屏*/主菜單函數(shù)*/*n");*printf("t*n");退出printf("t*1-輸入2-加密3-解密4-顯示5-統(tǒng)計(jì)0-*n");printf("t*n");printf("t*n");*pr
24、intf("nn");printf("t0.退出系統(tǒng)。、n");printf("t1.輸入信息,并寫入數(shù)據(jù)文件。n");printf("t2.對給定的文件進(jìn)行加密。n");printf("t3.對給定的文件進(jìn)行解密。n");printf("t4.顯示文本文件的內(nèi)容。n");printf("t5.統(tǒng)計(jì)某單詞在文件中出現(xiàn)的次數(shù)。n");printf("nn");printf("t請選擇(0-5):");)voidshur
25、u(void)/*輸入函數(shù)*/FILE*fp;intx=1;/*定義x=1,輸入*/charch,fnameM;while(x)printf("nn鍵入要輸入信息的文件名:");18程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告scanf("%s",fname);/*輸入文件名*/if(fp=fopen(fname,"w")=NULL)/*若不能打開*/(printf("存儲空間不足!n");exit(0);else(printf("請輸入文檔的內(nèi)容:(以Ctrl+z結(jié)束)n");fflush(stdin);whil
26、e(ch=getchar()!=EOF)fputc(ch,fp);fclose(fp);printf("n文檔輸入并保存成功!");printf("繼續(xù)創(chuàng)建文件并輸入信息?(按Y繼續(xù))");x=judge();voidjiami(void)/*加密函數(shù)*/(FILE*fp,*fp1;charc,pd,fnameM;intx=1;while(x)(printf("nn鍵入要加密白文件名稱:");scanf("%s",fname);if(fp=fopen(fname,"r")=NULL)(print
27、f("n此文件未能打開,重新輸入(按Y)?");fflush(stdin);x=judge();else(if(!fseek(fp,-(long)sizeof(char),SEEK_END)pd=fgetc(fp);/*判斷文件是否已進(jìn)行加密步驟*/if(pd='$')(printf("n文件已使用本程序加密!!");printf("重新輸入要加密的文件名(按Y)?");19程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告x=judge();fclose(fp);)else(rewind(fp);if(fp1=fopen("jiam
28、i.txt","w")=NULL)(printf("存儲空間不足!!n");exit(0);)printf("n加密后的文檔:nn");加密公式“c+520"*/刪除被加密的原文件*/加密后的文件名更改為while(c=fgetc(fp)!=EOF)(fputc(c+520,fp1);/*putchar(c+520);)fclose(fp);fclose(fp1);fp1=fopen("jiami.txt","a");fputc邰,fp1);fclose(fp1);remov
29、e(fname);/*rename("jiami.txt",fname);/*原文件名*/printf("nn文檔加密并保存成功!");printf("繼續(xù)加密文件?(按Y繼續(xù))");x=judge();)voidjiemi(void)/*解密函數(shù)*/(FILE*fp,*fp1;charc,pd,fnameM,mmN,mimaN;intx=1,y=1,z=0;while(y)(system("cls");printf("nn請輸入進(jìn)入解密系統(tǒng)的密碼:");scanf("%s”,mm);
30、20程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告if(strcmp(mm,mima)=0)/*驗(yàn)證密碼,判斷字符串是否相等*/(y=0;while(x)(fflush(stdin);printf("nn鍵入要解密的文件名稱:");scanf("%s”,fname);if(fp=fopen(fname,"r")=NULL)(printf("n此文件未能打開,重新輸入(按Y)?");fflush(stdin);x=judge();else(if(!fseek(fp,-(long)sizeof(char),SEEK_END)pd=fgetc(fp);
31、if(pd!='$')(printf("n文件未曾使用本程序加密!!");printf("重新輸入要加密的文件名(按Y)?");x=judge();fclose(fp);else(rewind(fp);if(fp1=fopen("jiemi.txt","w")=NULL)(printf("存儲空間不足!n");exit(0);printf("n解密后的文檔:nn");while(c=fgetc(fp)!='$')(fputc(c-520,fp1
32、);putchar(c-520);x=0;fclose(fp);fclose(fp1);remove(fname);/*刪除被解密的文件*/rename("jiemi.txt",fname);/*解密后的文件名更改21程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告為原文件名*/printf("nn文檔解密并保存成功!");printf("繼續(xù)解密文件?(按Y繼續(xù))");x=judge();)else(printf("nn密碼輸入有誤!n");printf("n重新輸入密碼?(按Y重新輸入)n");y=judge();z+;if(z=E)(printf("n對不起,您輸入錯(cuò)誤次數(shù)太多,請仔細(xì)回想密碼!n");y=0;)voidshow(void)/*顯示函數(shù)*/(FILE*fp;charfnameM;intx=1;while(x)(printf("nn鍵入要顯示的文件名稱:");scanf("%s”,fname);if(fp=fopen(fname,"r")=NULL)(pr
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國電動車?yán)刃袠I(yè)投資前景及策略咨詢報(bào)告
- 對學(xué)生進(jìn)行心理健康教育的意義或必要性在于
- 2025至2030年中國潤滑油空氣釋放值測定器行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國法蘭式刀形閘閥行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國模制西林瓶行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國根雕藝術(shù)茶桌行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國木工旋風(fēng)分離器行業(yè)投資前景及策略咨詢報(bào)告
- 《大氣環(huán)境》(二)教學(xué)設(shè)計(jì)
- 乳制品企業(yè)經(jīng)營管理方案
- 初中思想品德教學(xué)的現(xiàn)狀與面臨的挑戰(zhàn)
- 2023年福建省高一數(shù)學(xué)競賽試題參考答案
- 四川省中小型水利工程建設(shè)項(xiàng)目管理制管理辦法(試行)
- 嬰幼兒上呼吸道感染的護(hù)理課件
- 一年級英語下冊素材-Unit 1 Lets count!課文翻譯 譯林版(一起)
- 幼兒園大班數(shù)學(xué)口算練習(xí)題可打印
- 功能薄膜材料與技術(shù)課件
- 應(yīng)急救援預(yù)案組織機(jī)構(gòu)圖
- 中海地產(chǎn)海之子啟航計(jì)劃應(yīng)屆畢業(yè)生接收與培養(yǎng)工作管理辦法
- 廉頗藺相如列傳原文及翻譯x0001
- GSM信令流程詳解
- 聽課記錄空白模板
評論
0/150
提交評論