c语言课程设计加密程序,C语言课程设计文件加密解密.doc
C語言課程設計文件加密解密
C語言程序設計 課程設計
學 院 計算機工程 班 級 計算1313
姓 名 學 號 201321121089
成 績 指導老師
2014年6月26日
計算1313班C語言程序設計課程設計大綱
一、設計目的:
通過課程設計,學會把相關的理論知識和實際應用相結合,鍛煉了獨立實踐的能力;學會了查閱與設計相關資料的能力。
二、設計內容:
設計題目:
學生使用C語言設計程序,產(chǎn)生如下界面,0-6對應不同功能,若不用漢字,可用拼音或英文表示。
**************************************************************************************
* *
* 1--輸入 2--加密 3--解密 4--顯示 5—統(tǒng)計 6—統(tǒng)計全部 0--退出 *
* *
*************************************************************************************** 請選擇(0--6):
0.退出系統(tǒng)。
輸入信息,并寫入文本文件。
對給定的文件進行加密。
對給定的文件進行解密。
顯示文本文件的內容。
5.統(tǒng)計某單詞在文件中出現(xiàn)的次數(shù)。
*6. 統(tǒng)計在文件中各單詞出現(xiàn)的次數(shù)(可選)。
三、設計思想:
主要思想為由總到分,由上到下的逐級分配任務的思想。通過主函數(shù)調用各個被調用的函數(shù),再由被調用函數(shù)通過多個循環(huán)嵌套的使用實現(xiàn)各自的功能,最終達到程序的要求。
1.主函數(shù)中:先使用了switch選擇結構來調用不同命令下所對應的被調用函數(shù),其中包括:輸入函數(shù)shuru(),加密函數(shù)jiami(),解密函數(shù)jiemi(),顯示函數(shù)show(),統(tǒng)計函數(shù)count1()、count2。在每個被調用函數(shù)中還多次調用了用來判斷是否要繼續(xù)的函數(shù)judge(),以達到循環(huán)的目的。在主函數(shù)中還多次使用清屏命令system(“cls”),以及刷新全部流的命令flushall()、fllush(stdin)使調用函數(shù)后,界面保持清潔,提高了程序的易讀性。
2.輸入函數(shù)中:while((c=getchar())!=EOF)的使用能提示使用者結束的命令,并且通過fputc(c,fp)把一個字符c寫到由文件指針fp指定的磁盤文件上。
3.加密函數(shù)中:先定義兩個指針,將輸入的文件內容通過fputc(c+1,fp1);進行加密并保存到fp1所指定的文件上。保存成功后,使用remove(fname);語句刪除掉原文件,并使用rename("jiami.txt",fname);語句將加密后的文件名改為已被刪除的原文件名。
4.解密函數(shù)中:考慮到解密時的安全性問題,在進入解密系統(tǒng)時,需先輸入進入解密系統(tǒng)的密碼,因此在程序的主函數(shù)外先對解密系統(tǒng)密碼進行初始值化,然后在進入解密系統(tǒng)時輸入該密碼就可進入。由于加密時是對每個文件內容都加上了20,所以解密時只需再減20即可。
5.顯示函數(shù)中: while(!feof(fp))語句用來判斷是否到了文件的末尾,可以用來保證文件的內容都被顯示出來。
6.統(tǒng)計函數(shù)中:先定義一個字符串數(shù)組,將文件中的內容存到數(shù)組中,再使用tolower函數(shù)統(tǒng)一將數(shù)組所有字符轉化為小寫字母,將用戶輸入的字符也轉化為小寫字母,用strcmp來比較輸入的字符是否與文件中的字符相等,若相等,則變量jishu加1,最后可以統(tǒng)計出所查單詞在文件中的數(shù)目。l=strlen(word);語句表示用戶輸入字符的長度。
7.高級統(tǒng)計函數(shù)中:通過調用tol()自定義函數(shù)來判斷文件中的字符是否是小寫字母,若是的話,則將文件中的字符賦值給二維字符串數(shù)組cpy[][],而二維字符串數(shù)組則通過兩個for循環(huán)嵌套來與自身進行比較,并且通過變量a的自增與自減來實現(xiàn)將重復被統(tǒng)計過的單詞減去被多統(tǒng)計的次數(shù),算出正確的單詞個數(shù)。
四、實驗小結:
1. 過多的嵌套級別可能會使程序難以理解,應避免使用超過3個級別的縮進。
2.把程序寫成小函數(shù)的集合,有助于程序編寫、調試、維護和修改的方便。
3.在相關性不是很大的語句之間可以使用空行隔開,有利于區(qū)分各個語句的具體作用,在修改程序時起到一定的作用,提高了程序的可讀性。
4.在switch語句中未加ge
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的c语言课程设计加密程序,C语言课程设计文件加密解密.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 特斯拉Autopilot自动驾驶技术曾造
- 下一篇: 小米12不用了!曝三星Galaxy S2