版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計</p><p> 設(shè)計課程名稱: C語言課程設(shè)計 </p><p> 題 目: 編碼解碼 </p><p><b> 目錄</b></p><p><b>
2、編碼解碼任務(wù)書</b></p><p><b> 課程設(shè)計正文</b></p><p><b> 任務(wù)主要功能概述</b></p><p> 任務(wù)書基本要求分析和內(nèi)容描述</p><p><b> 系統(tǒng)的功能結(jié)構(gòu)框圖</b></p><p
3、><b> C語言程序代碼</b></p><p><b> 系統(tǒng)使用說明書</b></p><p> 課程設(shè)計日志及心得體會</p><p><b> 編碼解碼任務(wù)書</b></p><p><b> 一、目的要求</b></p&g
4、t;<p> 本課程設(shè)計任務(wù)的目的是要求學(xué)生按照分析、設(shè)計、編碼、調(diào)試和測試的軟件開發(fā)過程獨立完成一個簡單的數(shù)據(jù)壓縮解壓系統(tǒng),并能最終實現(xiàn)本系統(tǒng)的功能要求。</p><p><b> 二、功能要求</b></p><p><b> 【題目描述】</b></p><p> 在壓縮算法中,有一種算法叫做游
5、程壓縮算法,其算法是如果遇到多個連續(xù)相同的字節(jié),就先記錄該字節(jié)的連續(xù)的個數(shù),然后再記錄該字節(jié)。例如字符串AAABBCCCCCCAAA壓縮結(jié)果是3A2B6C3A,結(jié)果只需要8字節(jié)就存貯了原先14字節(jié)的內(nèi)容。不過這種方法有個缺點,如果單個元素較多的時候,反而會大于原先壓縮前的內(nèi)容。例如AAABBCDEF結(jié)果是3A2B1C1D1E1F,大于原串長。因此設(shè)置一個特殊字節(jié)@,如果有連續(xù)出現(xiàn)的字符,就用一個@表示下面是壓縮數(shù)據(jù),然后接著一個連續(xù)個數(shù)
6、,再是被壓縮的字節(jié)。例如第一個例子中,被壓縮成@3A@2B@6C@3A第二個例子,被壓縮成@3A@2BCDEF。實現(xiàn)這種算法。并且考慮如何改良該算法。Windows提供一個壓縮工具compress.exe,可用來壓縮大文件,可以通過VC自帶的解壓縮庫lzexpand.dll來解壓縮。</p><p> 你的程序需要實現(xiàn)以下功能:</p><p><b> 字符串簡單編碼<
7、;/b></p><p><b> 字符串簡單解碼</b></p><p><b> 字符串改進編碼</b></p><p><b> 字符串改進解碼</b></p><p> 解壓縮由命令行compress生成的壓縮文件。</p><p>
8、;<b> 【題目要求】</b></p><p> (1)為各項操作功能設(shè)計一個菜單。應(yīng)用程序運行后,先顯示這個菜單,然后用戶通過菜單項選擇希望進行的操作項目; (2) 在第一,三個功能中,用戶輸入源文件名稱和目標文件名稱,你的程序打開源文件,進行編碼,結(jié)果放在目標文件中,同時把結(jié)果顯示再屏幕上</p><p> ?。?)在第二,四個功能中,用戶輸入源文件名
9、稱和目標文件名稱,你的程序打開源文件,進行解碼,結(jié)果放在目標文件中,同時把結(jié)果顯示再屏幕上</p><p> (4)在功能5中,輸入壓縮文件名和解壓以后的文件名,直接解壓出結(jié)果文件。</p><p><b> 【輸入/輸出要求】</b></p><p> ?。?)應(yīng)用程序運行后,先顯示一個菜單,然后用戶根據(jù)需要選擇相應(yīng)的操作項目。進入每個操
10、作后,根據(jù)程序的提示輸入相應(yīng)的信息;</p><p> ?。?)要求用戶輸入數(shù)據(jù)時,要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。</p><p><b> 課程設(shè)計正文</b></p><p> 一、編碼解碼任務(wù)書主要功能概述</p><p> 編碼解碼任務(wù)書系統(tǒng)主要實現(xiàn)以下功能:</p
11、><p><b> 字符串簡單編碼。</b></p><p><b> 字符串簡單解碼。</b></p><p><b> 字符串改進編碼。</b></p><p><b> 字符串改進解碼。</b></p><p> 解壓縮
12、由命令行compress生成的壓縮文件。</p><p><b> 退出。</b></p><p> 【補充】執(zhí)行一個功能后,按enter鍵可以繼續(xù)選擇功能鍵,執(zhí)行下一個任務(wù)。在未退出的條件下,系統(tǒng)可以連續(xù)多次執(zhí)行上述的5個功能。</p><p> 二、任務(wù)書基本要求分析和內(nèi)容描述</p><p><b>
13、; 【要求分析】</b></p><p> ?。?)為各項操作功能設(shè)計一個菜單。應(yīng)用程序運行后,先顯示這個菜單,然后用戶通過菜單項選擇希望進行的操作項目; (2) 在第一,三個功能中,用戶輸入源文件名稱和目標文件名稱,你的程序打開源文件,進行編碼,結(jié)果放在目標文件中,同時把結(jié)果顯示再屏幕上</p><p> ?。?)在第二,四個功能中,用戶輸入源文件名稱和目標文件名稱,你的
14、程序打開源文件,進行解碼,結(jié)果放在目標文件中,同時把結(jié)果顯示再屏幕上</p><p> ?。?)在功能5中,輸入壓縮文件名和解壓以后的文件名,直接解壓出結(jié)果文件。</p><p><b> 【程序要求】</b></p><p> 程序正確。能夠嚴格實現(xiàn)任務(wù)書中描述的功能;</p><p> 界面友好。盡可能使界面友
15、好、直觀、易操作;</p><p> 風(fēng)格友好。源程序應(yīng)有良好的編碼風(fēng)格,使程序容易閱讀。</p><p><b> 【輸入/輸出要求】</b></p><p> ?。?)應(yīng)用程序運行后,先顯示一個菜單,然后用戶根據(jù)需要選擇相應(yīng)的操作項目。進入每個操作后,根據(jù)程序的提示輸入相應(yīng)的信息;</p><p> ?。?)要求
16、用戶輸入數(shù)據(jù)時,要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。</p><p> 三、系統(tǒng)的功能結(jié)構(gòu)框圖</p><p><b> 四、C語言程序代碼</b></p><p><b> 五、系統(tǒng)使用說明書</b></p><p> ?。?)“編碼解碼”任務(wù)書明書有一個菜單。
17、應(yīng)用程序運行后,會顯示這個菜單,然后用戶通過菜單項的相應(yīng)鍵選擇希望進行的操作項目。 (2) 在第一,三個功能中,用戶選擇功能鍵1或功能鍵3后,按提示輸入源文件名稱和目標文件名稱,程序?qū)⒋蜷_源文件,進行編碼,結(jié)果放在目標文件中,同時把結(jié)果顯示再屏幕上。</p><p> (3)在第二,四個功能中,用戶選擇功能鍵2或功能鍵4后,按提示輸入源文件名稱和目標文件名稱,程序?qū)⒋蜷_源文件,進行解碼,結(jié)果放在目標文件中
18、,同時把結(jié)果顯示再屏幕上。</p><p> ?。?)在功能5中,用戶選擇功能鍵5后,輸入壓縮文件名和解壓以后的文件名,直接解壓出結(jié)果文件。</p><p> ?。?)一個功能任務(wù)執(zhí)行后,按enter鍵可以繼續(xù)選擇,多次執(zhí)行各項功能。通過菜單項選擇功能鍵6則直接退出。</p><p> 六、設(shè)計日志及心得體會</p><p> 第一天
19、閱讀題目,和同學(xué)交流了,自己理解,確定思路,編寫了菜單。</p><p> 第二天 分塊編寫了字符串簡單編碼和簡單解碼。</p><p> 第三天 分塊編寫了字符串改進編碼和改進解碼。</p><p> 查詢compress原理編碼的資料,結(jié)合網(wǎng)絡(luò)課堂的幫助,完成了jy函數(shù)編寫。</p><p> 將輸入源文件和目標文件的函數(shù)獨立
20、出來。</p><p> 對程序進行了部分修改。完成了《課程設(shè)計說明書》。</p><p> 經(jīng)過艱苦奮斗,課程設(shè)計終于完成了?;叵肫渲械倪^程,既有快樂又有煩惱。</p><p> 剛開始上課時,還在迷茫這門課程,想著《C 語言程序設(shè)計》到底事學(xué)什么的,有什么用。不過,這些感受都是在對這門課程不了解的情況下產(chǎn)生的。后來慢慢的接觸多了,聽老師講的多了,了解多了,
21、漸漸的產(chǎn)生了興趣。尤其是學(xué)到上機操作程序時,經(jīng)過編譯,調(diào)試和運行后,出現(xiàn)界面,當(dāng)時覺得很好奇,想真正的學(xué)好這門課程。通過一個學(xué)期的學(xué)習(xí),我掌握了基本知識。</p><p> 下學(xué)期的時候,才知道C語言還有課程設(shè)計。當(dāng)時有點心怯,感覺課程設(shè)計是很高深的東西,而我們學(xué)的東西很少,很零散,不知該怎么綜合到一起。剛看到課程設(shè)計題目時,“編碼解碼”任務(wù)書,感覺應(yīng)該是很難完成的題目。經(jīng)過認真的閱讀和理解題目,逐漸有了大概的
22、思路。和同一組的同學(xué)相互交流各自對題目的理解后,對任務(wù)書的編寫思路更清晰了。把大題目分為一個個小的功能,小函數(shù)編寫后,感覺就簡單多了。我把整個程序的思路理清后,就開始著手認真的分塊的寫程序,一個函數(shù)一個函數(shù)的編寫。有自己總是調(diào)試解決不了的錯誤就查詢資料,確定疑惑的知識點是否出錯,或是和同組的同學(xué)交流。經(jīng)過七八天的努力, 課程設(shè)計終于完成了。</p><p> 現(xiàn)在想來,“編碼解碼”任務(wù)書組要是對文件的操作,其中
23、還含有循環(huán)結(jié)構(gòu)的運用。解壓compress壓縮的文件是一個難點,而老師也給出了一些例子作為參考。從老師給出的例子中我也得到了不少啟發(fā),然后結(jié)合對題目的理解參照網(wǎng)絡(luò)課堂幫助,經(jīng)過努力也完成了。 </p><p> 課程設(shè)計結(jié)束了,但是這段時間里,我又學(xué)到了更多C 知識,如:對文件的操作等,同時我也被提醒以后辦事的時候要認真,仔細,考慮周全。,也看到了團隊精神和互幫互助的重要性。這一點會讓我終生受
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- dpcm課程設(shè)計---dpcm編碼和解碼
- 微機原理課程設(shè)計簡易的編碼解碼程序
- huffman編碼課程設(shè)計
- 課程設(shè)計-哈夫曼編碼
- 差分曼徹斯特編碼課程設(shè)計
- 《哈夫曼編碼》課程設(shè)計
- 課程設(shè)計哈夫曼編碼
- 哈夫曼編碼課程設(shè)計
- 課程設(shè)計哈夫曼編碼
- 基帶編碼軟件課程設(shè)計設(shè)計報告
- cmi編解碼的設(shè)計與仿真課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----huffman編碼
- 信息論與編碼課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 (赫夫曼編碼)
- 信息論與編碼課程設(shè)計
- 信息論與編碼課程設(shè)計
- 信息論與編碼課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)前綴編碼課程設(shè)計
- 通原課程設(shè)計--pcm編碼報告
- 綜合課程設(shè)計---信源編解碼的vb實現(xiàn)
評論
0/150
提交評論