數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告,電文的編碼與譯碼_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告,電文的編碼與譯碼_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告,電文的編碼與譯碼_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告,電文的編碼與譯碼_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告,電文的編碼與譯碼_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、沈沈 陽(yáng)陽(yáng) 工工 程程 學(xué)學(xué) 院院課 程 設(shè) 計(jì)設(shè)計(jì)題目:設(shè)計(jì)題目:電文的編碼與譯碼、數(shù)值轉(zhuǎn)換電文的編碼與譯碼、數(shù)值轉(zhuǎn)換系系 別別 軟軟 件件 工工 程程 班級(jí)班級(jí) 軟件軟件 151151 學(xué)學(xué) 生生 姓姓 名名 楊紅偉楊紅偉 姜明姜明 閆旺閆旺 張曉曉張曉曉 學(xué)學(xué) 號(hào)號(hào) 1010 2323 1111 0909 指導(dǎo)教師指導(dǎo)教師 職稱職稱 起止日期:起止日期:20102010 年月日起年月日起至至 20112011 年月日止年月日止沈沈 陽(yáng)陽(yáng) 工工 程程 學(xué)學(xué) 院院課 程 設(shè) 計(jì) 任 務(wù) 書(shū) 課程設(shè)計(jì)題目:課程設(shè)計(jì)題目:電文的編碼與譯碼電文的編碼與譯碼系系 別別 軟軟 件件 工工 程程 班班

2、級(jí)級(jí) 軟軟 件件 151151 學(xué)生姓名學(xué)生姓名 楊紅偉楊紅偉 閆旺閆旺 學(xué)學(xué) 號(hào)號(hào) 1010 1111 指導(dǎo)教師指導(dǎo)教師 職稱職稱 課程設(shè)計(jì)進(jìn)行地點(diǎn):課程設(shè)計(jì)進(jìn)行地點(diǎn): 實(shí)訓(xùn)實(shí)訓(xùn) F F 座座 任任 務(wù)務(wù) 下下 達(dá)達(dá) 時(shí)時(shí) 間:間: 20102010 年月年月 日日起止日期:起止日期:20102010 年月日起年月日起至至 20112011 年月日止年月日止教教研研室室主主任任 2 20 01 10 0 年年月月日日批批準(zhǔn)準(zhǔn)一、問(wèn)題描述隨著信息時(shí)代的到來(lái),如何采用有效的壓縮技術(shù)和加密技術(shù)已越來(lái)越引起人們的關(guān)注,哈夫曼編碼正是一種應(yīng)用廣泛且能有效加密和壓縮的技術(shù)。要壓縮和加密就要做到:加密人員

3、要根據(jù)要加密的電文,統(tǒng)計(jì)出各字符出現(xiàn)的頻率,然后構(gòu)造哈夫曼樹(shù)從而構(gòu)造出哈夫曼編碼;解密人員就要根據(jù)哈夫曼編碼,還原出原來(lái)的電文。二、課程設(shè)計(jì)主要內(nèi)容及要求1.具有數(shù)據(jù)輸入功能,輸入的數(shù)據(jù)能最終保存在文件中;2.具有加密功能,在加密的時(shí)候,從文本文檔中提取要加密的電文。待加密完成之后, 不但要把密文顯示在用戶界面上,還要把密文保存在另一個(gè)文本文檔中;3.在加密的過(guò)程中,要根據(jù)電文字符的頻率,構(gòu)造出哈夫曼樹(shù),進(jìn)而構(gòu)造出哈夫曼編 碼;4.具有解密功能,在解密的時(shí)候,在文本文檔中讀取要解密的密文,然后進(jìn)行解密, 要把解密之后的原電文通過(guò)用戶界面顯示出來(lái);5.解密是要根據(jù)哈夫曼編碼進(jìn)行解密;6.其它功能

4、(如計(jì)算壓縮效率等)。三、對(duì)課程設(shè)計(jì)說(shuō)明書(shū)撰寫內(nèi)容、格式、字?jǐn)?shù)的要求1課程設(shè)計(jì)說(shuō)明書(shū)是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,主要內(nèi)容包括:設(shè)計(jì)題目、設(shè)計(jì)目的、設(shè)備器材、設(shè)計(jì)原理及內(nèi)容、設(shè)計(jì)步驟、遇到的問(wèn)題及解決方法、設(shè)計(jì)總結(jié)、設(shè)計(jì)小組評(píng)語(yǔ)、參考文獻(xiàn)等。一般不應(yīng)少于 3000 字。2在適當(dāng)位置配合相應(yīng)的實(shí)驗(yàn)原理圖、數(shù)據(jù)通路圖、微程序流程圖、實(shí)驗(yàn)接線圖、微指令代碼表等圖表進(jìn)行說(shuō)明。應(yīng)做到文理通順,內(nèi)容正確完整,書(shū)寫工整,裝訂整齊。3設(shè)計(jì)總結(jié)部分主要寫本人完成工作簡(jiǎn)介以及自己的設(shè)計(jì)體會(huì),包括通過(guò)課程設(shè)計(jì)學(xué)到了什么,哪里遇到了困難,解決的辦法以及今后的目標(biāo)。設(shè)計(jì)小組評(píng)語(yǔ)處注明設(shè)計(jì)組編號(hào)、設(shè)計(jì)組組長(zhǎng)、設(shè)計(jì)組成員

5、,并由設(shè)計(jì)組組長(zhǎng)給出評(píng)語(yǔ)。4課程設(shè)計(jì)說(shuō)明書(shū)手寫或打印均可。手寫要用學(xué)校統(tǒng)一的課程設(shè)計(jì)用紙,用黑或藍(lán)黑墨水工整書(shū)寫;打印時(shí)采用 A4 紙,頁(yè)邊距均為 20mm,正文采用宋體小四號(hào)字,行間距 18磅。文中大標(biāo)題采用黑體小三號(hào)字,一級(jí)節(jié)標(biāo)題采用黑體四號(hào)字,二級(jí)節(jié)標(biāo)題采用黑體小四號(hào)字,表題與圖題采用宋體五號(hào)字。5課程設(shè)計(jì)說(shuō)明書(shū)裝訂順序?yàn)椋悍饷?、任?wù)書(shū)、成績(jī)?cè)u(píng)定表、目錄、正文、參考文獻(xiàn)。四、設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求1完成“任務(wù)書(shū)”中指定的操作功能,運(yùn)行穩(wěn)定。2課程設(shè)計(jì)說(shuō)明書(shū)。 五、時(shí)間進(jìn)度安排順序階段日期計(jì) 劃 完 成 內(nèi) 容備注1第 1 天(12 月 27 日)閱讀資料2第

6、2 天(12 月 28 日12 月 30 日)系統(tǒng)分析設(shè)計(jì)3第 3 天(12 月 31 日1 月 5 日)程序編制、調(diào)試及運(yùn)行4第 4 天(1 月 6 日)成績(jī)?cè)u(píng)定5第 5 天(1 月 7 日)撰寫課程設(shè)計(jì)說(shuō)明書(shū)六、主要參考資料(文獻(xiàn))1嚴(yán)蔚敏 吳偉民.數(shù)據(jù)結(jié)構(gòu)(C 語(yǔ)言版). 北京:清華大學(xué)出版社.20072譚浩強(qiáng).C 程序設(shè)計(jì).北京:清華大學(xué)出版社.1999.123滕國(guó)文.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì).北京:清華大學(xué)出版社.2010.094蘇仕華 等編著. 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì). 北京:機(jī)械工業(yè)出版社.2005.055李春葆.數(shù)據(jù)結(jié)構(gòu)(C 語(yǔ)言版)習(xí)題與解析.北京:清華大學(xué)出版社.2002.04沈沈 陽(yáng)陽(yáng)

7、 工工 程程 學(xué)學(xué) 院院課 程 設(shè) 計(jì) 任 務(wù) 書(shū)設(shè)計(jì)題目:設(shè)計(jì)題目: 數(shù)值轉(zhuǎn)換數(shù)值轉(zhuǎn)換 系系 別別 軟件工程軟件工程 班級(jí)班級(jí) 軟件軟件 151151 學(xué)生姓名學(xué)生姓名 姜明姜明 張曉曉張曉曉 學(xué)號(hào)學(xué)號(hào) 2323 0909 指導(dǎo)教師指導(dǎo)教師 職稱職稱 起止日期:起止日期:20102010 年月日起年月日起至至 20112011 年月日止年月日止一、課程設(shè)計(jì)的原始資料及依據(jù)編制一個(gè)能演示執(zhí)行數(shù)值轉(zhuǎn)換的程序。二、課程設(shè)計(jì)主要內(nèi)容及要求1. 錄入兩個(gè)集合的元素并輸出集合。2. 統(tǒng)計(jì)兩集合的交集、并集、差集,并再次輸出該數(shù)據(jù)。三、對(duì)課程設(shè)計(jì)說(shuō)明書(shū)撰寫內(nèi)容、格式、字?jǐn)?shù)的要求1課程設(shè)計(jì)說(shuō)明書(shū)是體現(xiàn)和總結(jié)

8、課程設(shè)計(jì)成果的載體,主要內(nèi)容包括:設(shè)計(jì)題目、設(shè)計(jì)目的、設(shè)備器材、設(shè)計(jì)原理及內(nèi)容、設(shè)計(jì)步驟、遇到的問(wèn)題及解決方法、設(shè)計(jì)總結(jié)、設(shè)計(jì)小組評(píng)語(yǔ)、參考文獻(xiàn)等。一般不應(yīng)少于 3000 字。2在適當(dāng)位置配合相應(yīng)的實(shí)驗(yàn)原理圖、數(shù)據(jù)通路圖、微程序流程圖、實(shí)驗(yàn)接線圖、微指令代碼表等圖表進(jìn)行說(shuō)明。應(yīng)做到文理通順,內(nèi)容正確完整,書(shū)寫工整,裝訂整齊。3設(shè)計(jì)總結(jié)部分主要寫本人完成工作簡(jiǎn)介以及自己的設(shè)計(jì)體會(huì),包括通過(guò)課程設(shè)計(jì)學(xué)到了什么,哪里遇到了困難,解決的辦法以及今后的目標(biāo)。設(shè)計(jì)小組評(píng)語(yǔ)處注明設(shè)計(jì)組編號(hào)、設(shè)計(jì)組組長(zhǎng)、設(shè)計(jì)組成員,并由設(shè)計(jì)組組長(zhǎng)給出評(píng)語(yǔ)。4課程設(shè)計(jì)說(shuō)明書(shū)手寫或打印均可。手寫要用學(xué)校統(tǒng)一的課程設(shè)計(jì)用紙,用黑或

9、藍(lán)黑墨水工整書(shū)寫;打印時(shí)采用 A4 紙,頁(yè)邊距均為 20mm,正文采用宋體小四號(hào)字,行間距 18 磅。文中大標(biāo)題采用黑體小三號(hào)字,一級(jí)節(jié)標(biāo)題采用黑體四號(hào)字,二級(jí)節(jié)標(biāo)題采用黑體小四號(hào)字,表題與圖題采用宋體五號(hào)字。5課程設(shè)計(jì)說(shuō)明書(shū)裝訂順序?yàn)椋悍饷妗⑷蝿?wù)書(shū)、成績(jī)?cè)u(píng)定表、目錄、正文、參考文獻(xiàn)。四、設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求1完成“任務(wù)書(shū)”中指定的操作功能,運(yùn)行穩(wěn)定。2課程設(shè)計(jì)說(shuō)明書(shū)。五、時(shí)間進(jìn)度安排順序階段日期計(jì) 劃 完 成 內(nèi) 容備注1第 1 天(月日)閱讀資料2第 2 天(月日月日)系統(tǒng)分析設(shè)計(jì)3第 3 天(月日月日)程序編制、調(diào)試及運(yùn)行4第 4 天(月日)成績(jī)?cè)u(píng)定5第 5

10、 天(月日)撰寫課程設(shè)計(jì)說(shuō)明書(shū)六、主要參考資料(文獻(xiàn))1嚴(yán)蔚敏 吳偉民.數(shù)據(jù)結(jié)構(gòu)(C 語(yǔ)言版). 北京:清華大學(xué)出版社.20072譚浩強(qiáng).C 程序設(shè)計(jì).北京:清華大學(xué)出版社.1999.123滕國(guó)文.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì).北京:清華大學(xué)出版社.2010.094蘇仕華 等編著. 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì). 北京:機(jī)械工業(yè)出版社.2005.055李春葆.數(shù)據(jù)結(jié)構(gòu)(C 語(yǔ)言版)習(xí)題與解析.北京:清華大學(xué)出版社.2002.04沈沈 陽(yáng)陽(yáng) 工工 程程 學(xué)學(xué) 院院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表系(部):系(部): 信息學(xué)院信息學(xué)院 班級(jí):班級(jí): 軟件軟件151151 學(xué)生姓名:學(xué)生姓名: 楊紅偉楊

11、紅偉 指指 導(dǎo)導(dǎo) 教教 師師 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15 54 43 32 2工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作, 0.25 54 43 32 2工作量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25 54 43 32 2說(shuō)明書(shū)的質(zhì)量說(shuō)明書(shū)立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書(shū)寫工整規(guī)范。0.55 54 43 32 2指導(dǎo)教師評(píng)審成績(jī)指導(dǎo)教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8 8

12、) 分分加權(quán)分合計(jì)加權(quán)分合計(jì)指指 導(dǎo)導(dǎo) 教教 師師 簽簽 名:名: 年年 月月 日日評(píng)評(píng) 閱閱 教教 師師 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分查閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25 54 43 32 2工作量工作量飽滿,難度適中。0.55 54 43 32 2說(shuō)明書(shū)的質(zhì)量說(shuō)明書(shū)立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書(shū)寫工整規(guī)范。0.35 54 43 32 2評(píng)閱教師評(píng)審成績(jī)?cè)u(píng)閱教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 4 4)分分加權(quán)分合計(jì)加權(quán)分合計(jì)評(píng)評(píng) 閱閱 教教 師師 簽簽 名:名: 年年

13、月月 日日答答 辯辯 小小 組組 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分學(xué)生匯報(bào)匯報(bào)準(zhǔn)備充分,思路清晰;語(yǔ)言表達(dá)準(zhǔn)確,概念清楚,論點(diǎn)正確,有層次,有重點(diǎn),基本上反映了所完成任務(wù)的全部?jī)?nèi)容;時(shí)間符合要求。0.55 54 43 32 2答 辯思路清晰;回答問(wèn)題有理論依據(jù),基本概念清楚;主要問(wèn)題回答準(zhǔn)確,深入,有說(shuō)服力。0.55 54 43 32 2答辯小組評(píng)審成績(jī)答辯小組評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8 8)分分加權(quán)分合計(jì)加權(quán)分合計(jì)答辯小組教師簽名:答辯小組教師簽名: 年年 月月 日日課課 程程 設(shè)設(shè) 計(jì)計(jì) 總總 評(píng)評(píng) 成成 績(jī)績(jī)分分沈沈 陽(yáng)陽(yáng) 工工 程程 學(xué)學(xué)

14、院院程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表系(部):系(部): 信息學(xué)院信息學(xué)院 班級(jí):班級(jí): 軟件軟件151151 學(xué)生姓名:學(xué)生姓名: 閆旺閆旺 指指 導(dǎo)導(dǎo) 教教 師師 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15 54 43 32 2工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作, 0.25 54 43 32 2工作量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25 54 43 32 2說(shuō)明書(shū)的質(zhì)量說(shuō)明書(shū)立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字

15、通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書(shū)寫工整規(guī)范。0.55 54 43 32 2指導(dǎo)教師評(píng)審成績(jī)指導(dǎo)教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8 8) 分分加權(quán)分合計(jì)加權(quán)分合計(jì)指指 導(dǎo)導(dǎo) 教教 師師 簽簽 名:名: 年年 月月 日日評(píng)評(píng) 閱閱 教教 師師 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分查閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25 54 43 32 2工作量工作量飽滿,難度適中。0.55 54 43 32 2說(shuō)明書(shū)的質(zhì)量說(shuō)明書(shū)立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書(shū)寫工整規(guī)范。0.35

16、 54 43 32 2評(píng)閱教師評(píng)審成績(jī)?cè)u(píng)閱教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 4 4)分分加權(quán)分合計(jì)加權(quán)分合計(jì)評(píng)評(píng) 閱閱 教教 師師 簽簽 名:名: 年年 月月 日日答答 辯辯 小小 組組 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分學(xué)生匯報(bào)匯報(bào)準(zhǔn)備充分,思路清晰;語(yǔ)言表達(dá)準(zhǔn)確,概念清楚,論點(diǎn)正確,有層次,有重點(diǎn),基本上反映了所完成任務(wù)的全部?jī)?nèi)容;時(shí)間符合要求。0.55 54 43 32 2答 辯思路清晰;回答問(wèn)題有理論依據(jù),基本概念清楚;主要問(wèn)題回答準(zhǔn)確,深入,有說(shuō)服力。0.55 54 43 32 2答辯小組評(píng)審成績(jī)答辯小組評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以

17、8 8)分分加權(quán)分合計(jì)加權(quán)分合計(jì)答辯小組教師簽名:答辯小組教師簽名: 年年 月月 日日課課 程程 設(shè)設(shè) 計(jì)計(jì) 總總 評(píng)評(píng) 成成 績(jī)績(jī)分分沈沈 陽(yáng)陽(yáng) 工工 程程 學(xué)學(xué) 院院程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表系(部):系(部): 信息學(xué)院信息學(xué)院 班級(jí):班級(jí): 軟件軟件151151 學(xué)生姓名:學(xué)生姓名: 姜明姜明 指指 導(dǎo)導(dǎo) 教教 師師 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15 54 43 32 2工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作, 0.2

18、5 54 43 32 2工作量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25 54 43 32 2說(shuō)明書(shū)的質(zhì)量說(shuō)明書(shū)立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書(shū)寫工整規(guī)范。0.55 54 43 32 2指導(dǎo)教師評(píng)審成績(jī)指導(dǎo)教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8 8) 分分加權(quán)分合計(jì)加權(quán)分合計(jì)指指 導(dǎo)導(dǎo) 教教 師師 簽簽 名:名: 年年 月月 日日評(píng)評(píng) 閱閱 教教 師師 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分查閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25 54 43 32 2工作量工作量飽滿,難

19、度適中。0.55 54 43 32 2說(shuō)明書(shū)的質(zhì)量說(shuō)明書(shū)立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書(shū)寫工整規(guī)范。0.35 54 43 32 2評(píng)閱教師評(píng)審成績(jī)?cè)u(píng)閱教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 4 4)分分加權(quán)分合計(jì)加權(quán)分合計(jì)評(píng)評(píng) 閱閱 教教 師師 簽簽 名:名: 年年 月月 日日答答 辯辯 小小 組組 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分學(xué)生匯報(bào)匯報(bào)準(zhǔn)備充分,思路清晰;語(yǔ)言表達(dá)準(zhǔn)確,概念清楚,論點(diǎn)正確,有層次,有重點(diǎn),基本上反映了所完成任務(wù)的全部?jī)?nèi)容;時(shí)間符合要求。0.55 54 43 32 2答 辯思路清晰

20、;回答問(wèn)題有理論依據(jù),基本概念清楚;主要問(wèn)題回答準(zhǔn)確,深入,有說(shuō)服力。0.55 54 43 32 2答辯小組評(píng)審成績(jī)答辯小組評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8 8)分分加權(quán)分合計(jì)加權(quán)分合計(jì)答辯小組教師簽名:答辯小組教師簽名: 年年 月月 日日課課 程程 設(shè)設(shè) 計(jì)計(jì) 總總 評(píng)評(píng) 成成 績(jī)績(jī)分分沈沈 陽(yáng)陽(yáng) 工工 程程 學(xué)學(xué) 院院程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表系(部):系(部): 信息學(xué)院信息學(xué)院 班級(jí):班級(jí): 軟件軟件151151 學(xué)生姓名:學(xué)生姓名: 張曉曉張曉曉 指指 導(dǎo)導(dǎo) 教教 師師 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分調(diào)研論證

21、能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15 54 43 32 2工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作, 0.25 54 43 32 2工作量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25 54 43 32 2說(shuō)明書(shū)的質(zhì)量說(shuō)明書(shū)立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書(shū)寫工整規(guī)范。0.55 54 43 32 2指導(dǎo)教師評(píng)審成績(jī)指導(dǎo)教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8 8) 分分加權(quán)分合計(jì)加權(quán)分合計(jì)指指 導(dǎo)導(dǎo) 教教 師師 簽簽 名:名: 年年 月月 日日評(píng)評(píng) 閱閱 教

22、教 師師 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分查閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25 54 43 32 2工作量工作量飽滿,難度適中。0.55 54 43 32 2說(shuō)明書(shū)的質(zhì)量說(shuō)明書(shū)立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書(shū)寫工整規(guī)范。0.35 54 43 32 2評(píng)閱教師評(píng)審成績(jī)?cè)u(píng)閱教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 4 4)分分加權(quán)分合計(jì)加權(quán)分合計(jì)評(píng)評(píng) 閱閱 教教 師師 簽簽 名:名: 年年 月月 日日答答 辯辯 小小 組組 評(píng)評(píng) 審審 意意 見(jiàn)見(jiàn)評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分學(xué)生

23、匯報(bào)匯報(bào)準(zhǔn)備充分,思路清晰;語(yǔ)言表達(dá)準(zhǔn)確,概念清楚,論點(diǎn)正確,有層次,有重點(diǎn),基本上反映了所完成任務(wù)的全部?jī)?nèi)容;時(shí)間符合要求。0.55 54 43 32 2答 辯思路清晰;回答問(wèn)題有理論依據(jù),基本概念清楚;主要問(wèn)題回答準(zhǔn)確,深入,有說(shuō)服力。0.55 54 43 32 2答辯小組評(píng)審成績(jī)答辯小組評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8 8)分分加權(quán)分合計(jì)加權(quán)分合計(jì)答辯小組教師簽名:答辯小組教師簽名: 年年 月月 日日課課 程程 設(shè)設(shè) 計(jì)計(jì) 總總 評(píng)評(píng) 成成 績(jī)績(jī)分分沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 摘要摘摘 要要數(shù)據(jù)結(jié)構(gòu)與算法在計(jì)算機(jī)學(xué)科中的地位十分重要,是設(shè)計(jì)系統(tǒng)程序和大型應(yīng)用程序的重要基礎(chǔ)。我們

24、進(jìn)行課程設(shè)計(jì)的目的是要掌握設(shè)計(jì)程序的思路,學(xué)習(xí)會(huì)用計(jì)算機(jī)語(yǔ)言編寫程序,以實(shí)現(xiàn)所需要處理的任務(wù)。算法的實(shí)現(xiàn)是課程設(shè)計(jì)的靈魂,也就是我們學(xué)習(xí)設(shè)計(jì)的重中之重。算法的設(shè)計(jì)靠的不是語(yǔ)法規(guī)則,而是解題的思路。所以在開(kāi)始設(shè)計(jì)前,我們要掌握好課本的基本內(nèi)容,并且查閱一系列的課外資料,鍛煉我們?cè)O(shè)計(jì)算法的思路。本次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)電文的編碼與譯碼這個(gè)題目,其主要思想是哈夫曼樹(shù)的建立,利用哈夫曼編碼的優(yōu)點(diǎn),使得在通信的過(guò)程中對(duì)電文進(jìn)行編碼,從而達(dá)到加密方對(duì)電文進(jìn)行加密且壓縮,解密方對(duì)電文進(jìn)行解密的過(guò)程。在存儲(chǔ)方式上是運(yùn)用了二叉樹(shù)的存儲(chǔ)方式,同時(shí)在編寫程序中使用的基本操作有字符的統(tǒng)計(jì)、哈夫曼樹(shù)的建立、哈夫曼編碼的實(shí)現(xiàn)

25、以及對(duì)哈夫曼編碼的翻譯。在編寫程序的過(guò)程中遇到了許多問(wèn)題,例如:如何統(tǒng)計(jì)字符出現(xiàn)的次數(shù)、如何正確的構(gòu)造哈夫曼樹(shù)等。 數(shù)值轉(zhuǎn)換這個(gè)題目,其主要的思想是棧的基本操作,利用棧先進(jìn)先出的優(yōu)點(diǎn),對(duì)于給定的十進(jìn)制數(shù)對(duì)其進(jìn)行除權(quán)取余運(yùn)算,把得到的余數(shù)逐個(gè)壓入棧中,然后輸出棧,就是想要得到的十進(jìn)制數(shù)轉(zhuǎn)換后的二進(jìn)制數(shù)、八進(jìn)制數(shù)以及十六進(jìn)制數(shù)。使用順序棧來(lái)存儲(chǔ)計(jì)算后的結(jié)果,主要實(shí)現(xiàn)的功能有:對(duì)于給定的十進(jìn)制數(shù)字轉(zhuǎn)換成對(duì)應(yīng)的二進(jìn)制數(shù)、八進(jìn)制樹(shù)、十六進(jìn)制數(shù)以及相反的運(yùn)算。在編寫程序的過(guò)程中遇到的問(wèn)題有:如何把十進(jìn)制數(shù)轉(zhuǎn)換為其他的進(jìn)制數(shù)以及棧的建立等。關(guān)鍵詞關(guān)鍵詞 哈夫曼樹(shù)、二叉樹(shù)、順序棧。沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 目

26、錄目錄摘摘 要要.I第一章第一章 問(wèn)題分析問(wèn)題分析.11.1 引言.11.3 分析.11.3.1 學(xué)生成績(jī)信息管理系統(tǒng).11.3.2 集合的交并運(yùn)算系統(tǒng).2第二章第二章 原理與運(yùn)行環(huán)境原理與運(yùn)行環(huán)境.32.1 數(shù)據(jù)結(jié)構(gòu)理論.32.1.1 學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)理論.32.1.2 集合交并運(yùn)算系統(tǒng)數(shù)據(jù)結(jié)構(gòu)理論.32.2 運(yùn)行環(huán)境.42.2.1 打開(kāi)方法.42.2.2 打開(kāi) CodeBlocks 中的 C 環(huán)境 .42.2.3 源程序的建立與編輯、連接.5第三章第三章 系統(tǒng)分析與設(shè)計(jì)系統(tǒng)分析與設(shè)計(jì).73.1 學(xué)生成績(jī)管理分析與設(shè)計(jì).73.1.1 系統(tǒng)的功能.73.1.2 系統(tǒng)模塊分析及其流程圖.

27、73.2 集合交并運(yùn)算系統(tǒng)分析與設(shè)計(jì).103.2.1 集合交并運(yùn)算系統(tǒng)的功能.103.2.2 系統(tǒng)模塊分析及其流程圖.10第四章第四章 系統(tǒng)功能實(shí)現(xiàn)系統(tǒng)功能實(shí)現(xiàn).144.1 學(xué)生成績(jī)管理系統(tǒng)功能實(shí)現(xiàn).144.1.1 定義主函數(shù).144.1.2 定義存儲(chǔ)結(jié)構(gòu).164.1.3 構(gòu)建鏈表.164.1.4 調(diào)用學(xué)生排序函數(shù).184.1.5 調(diào)用查詢學(xué)生數(shù)據(jù)函數(shù).204.1.6 調(diào)用學(xué)生插入函數(shù).234.1.7 調(diào)用顯示學(xué)生數(shù)據(jù)函數(shù).244.1.8 調(diào)用修改學(xué)生數(shù)據(jù)函數(shù).254.1.9 調(diào)用刪除學(xué)生數(shù)據(jù)函數(shù).274.2 集合交并運(yùn)算系統(tǒng)功能實(shí)現(xiàn).284.2.1 定義主函數(shù).284.2.2 定義存儲(chǔ)結(jié)構(gòu).

28、304.2.3 創(chuàng)建集合功能.304.2.4 計(jì)算集合交集功能.324.2.5 計(jì)算集合并集功能.334.2.6 計(jì)算集合差集功能.35結(jié)論結(jié)論.37沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 目錄致謝致謝.38參考文獻(xiàn)參考文獻(xiàn).39沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第一章 問(wèn)題分析0第一章 問(wèn)題分析1.1 引言數(shù)據(jù)結(jié)構(gòu)的教學(xué)要求是:學(xué)會(huì)分析研究計(jì)算機(jī)加工的數(shù)據(jù)結(jié)構(gòu)的特征,以便為應(yīng)用涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其相應(yīng)的算法,并初步掌握算法的時(shí)間分析和空間分析的技術(shù)。另一方面,本課程的學(xué)習(xí)過(guò)程也是復(fù)雜程序設(shè)計(jì)的訓(xùn)練過(guò)程,要求學(xué)生編寫的程序結(jié)構(gòu)清楚和正確易讀,符合軟件工程的規(guī)范。在學(xué)習(xí)中,先要學(xué)習(xí)程序設(shè)計(jì)課程的

29、目的掌握設(shè)計(jì)程序的思路,學(xué)習(xí)會(huì)用計(jì)算機(jī)語(yǔ)言編寫程序,以實(shí)現(xiàn)所需要處理的任務(wù)。要正確處理算法與語(yǔ)法的關(guān)系,算法是程序的核心、是靈魂,語(yǔ)法是外殼、是工具。不應(yīng)把學(xué)習(xí)重點(diǎn)放在語(yǔ)法規(guī)則上,語(yǔ)法是重要的,不掌握語(yǔ)法規(guī)則就無(wú)法編寫出正確的程序。一定要把重點(diǎn)放在解題的思路上,通過(guò)思考,和大量的閱讀,來(lái)構(gòu)造一個(gè)完整的程序。請(qǐng)記?。褐匾氖菍W(xué)會(huì)編程,而不是背語(yǔ)法。程序設(shè)計(jì)是為了鍛煉我們的實(shí)際動(dòng)手能力,在一定程度上,又增加了我們的各方面的知識(shí),特別是一些聯(lián)系實(shí)際的課程設(shè)計(jì),它的完成需要自己平時(shí)積累的大量知識(shí)、并且需要勤于思考的能力和無(wú)限的激情。本次課程設(shè)計(jì)主要是學(xué)習(xí)程序設(shè)計(jì)的方法,進(jìn)行程序設(shè)計(jì)的基本訓(xùn)練,大多數(shù)的

30、學(xué)生應(yīng)該把精力放在最基本,最常用的內(nèi)容上,學(xué)好基本功。通過(guò)本次課程設(shè)計(jì),相信我們一定能加強(qiáng)對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程的學(xué)習(xí),尤其在動(dòng)手實(shí)踐上會(huì)有很大的進(jìn)步。1.2 背景21 世紀(jì),科學(xué)技術(shù)突飛猛進(jìn),特別是信息技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,各個(gè)學(xué)校的規(guī)模也隨之不斷增大,有關(guān)學(xué)生成績(jī)管理工作所涉及的數(shù)據(jù)量越來(lái)越大,如若進(jìn)行的仍是手工的學(xué)生成績(jī)管理,學(xué)校就不得不靠增加人力、物力來(lái)進(jìn)行學(xué)生成績(jī)管理。即使如此,手工管理仍具有效率低、管理復(fù)雜和易出錯(cuò)等諸多問(wèn)題。所以在學(xué)校這樣一個(gè)具有超大數(shù)據(jù)量的機(jī)構(gòu)中,通過(guò)應(yīng)用信息技術(shù)和網(wǎng)絡(luò)技術(shù)對(duì)學(xué)生成績(jī)信息進(jìn)行系統(tǒng)化的管理是必須的。將計(jì)算機(jī)這一信息處理器應(yīng)用于學(xué)生的個(gè)人信息管理已是

31、勢(shì)必所然,而且這也將為學(xué)生信息管理帶來(lái)前所未有的改變。采用計(jì)算機(jī)對(duì)學(xué)生的信息管理是信息科學(xué)化和現(xiàn)代的重要標(biāo)志,它也給各大高校帶來(lái)了明顯的社會(huì)效益。主要體現(xiàn)在:極大地提高了管理工作人員的工作效率,大大地減少了以往的資料室所存在的各種弊端,同時(shí)也加強(qiáng)和規(guī)范學(xué)習(xí)對(duì)于學(xué)生信息的管理。1.3 分析1.3.1 學(xué)生成績(jī)信息管理系統(tǒng)學(xué)生成績(jī)管理系統(tǒng)的主要功能是實(shí)現(xiàn)學(xué)生成績(jī)和基本信息的管理。如若還沒(méi)有建立文件可以在運(yùn)行界面新建文件,在重新運(yùn)行程序即可進(jìn)入系統(tǒng)。學(xué)生成績(jī)信息有學(xué)號(hào)、姓名、數(shù)沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第一章 問(wèn)題分析1學(xué)成績(jī)、英語(yǔ)成績(jī)、計(jì)算機(jī)和總分的顯示。學(xué)生成績(jī)管理包括對(duì)學(xué)生各科成績(jī)的輸入、輸出

32、、刪除、修改、按總分排序、查找和保存等多種功能。查找又分為按學(xué)號(hào)和姓名進(jìn)行查找,然后輸出查找學(xué)生的全部信息;刪除可以通過(guò)學(xué)生的序號(hào)進(jìn)行查找再進(jìn)行刪除,再對(duì)記錄進(jìn)行調(diào)整;排序有按學(xué)號(hào)排序,單科(數(shù)學(xué)、英語(yǔ)、計(jì)算機(jī))成績(jī)由高到低排序,按總分由高到低排序等。1.3.2 集合的交并運(yùn)算系統(tǒng)集合的交并運(yùn)算系統(tǒng)運(yùn)用的數(shù)據(jù)結(jié)構(gòu)是線性表中的順序表。順序表是多個(gè)數(shù)據(jù)元素的連續(xù)存儲(chǔ),至于每個(gè)數(shù)據(jù)元素的具體含義,在不同的情況下各不相同,它可以是一個(gè)數(shù)或是一個(gè)符號(hào)等等。集合的交并運(yùn)算適合用順序表,其方便隨時(shí)進(jìn)行對(duì)相應(yīng)的整數(shù)進(jìn)行查找統(tǒng)計(jì),實(shí)現(xiàn)動(dòng)態(tài)管理。該數(shù)組類型為結(jié)構(gòu)體,結(jié)構(gòu)體中的域表示整數(shù)的相應(yīng)屬性。集合的交并運(yùn)算系

33、統(tǒng)包括有三個(gè)函數(shù),分別為統(tǒng)計(jì)集合的交集、并集、差集。在函數(shù)的開(kāi)始階段,系統(tǒng)會(huì)執(zhí)行創(chuàng)建集合函數(shù)。在這個(gè)過(guò)程中,需要用戶進(jìn)行錄入操作,即輸入要進(jìn)行運(yùn)算的集合元素。當(dāng)完成錄入工作后,集合的交并運(yùn)算系統(tǒng)會(huì)繼續(xù)調(diào)用輸出集合元素函數(shù)對(duì)所輸入的信息進(jìn)行輸出。之后,此系統(tǒng)將提示用戶調(diào)用集合的交集函數(shù)來(lái)計(jì)算所輸入元素的交集;繼續(xù)提示用戶調(diào)用集合的并集函數(shù)來(lái)計(jì)算所輸入元素的并集;繼續(xù)提示用戶調(diào)用集合的差集函數(shù)來(lái)計(jì)算所輸入元素的差集。計(jì)算集合的交集功能,首先調(diào)用集合的交集函數(shù),在此函數(shù)里判斷是否有相等的元素,如果有輸出即可,如果沒(méi)有輸出集合沒(méi)有交集。計(jì)算集合的并集功能,首先調(diào)用集合的并集函數(shù),先輸出里面集合元素個(gè)數(shù)

34、較多的集合,然后找出在集合元素個(gè)數(shù)較少的集合中存在的元素但在集合元素個(gè)數(shù)較多的集合中沒(méi)有的元素輸出它們即可。計(jì)算集合的差集功能,首先調(diào)用集合的差集函數(shù),因?yàn)閮蓚€(gè)集合有兩個(gè)差集,找出在第一個(gè)集合里存在的元素但在第二個(gè)集合里不存在的元素輸出即可;再找出在第二個(gè)集合里存在的元素但在第一個(gè)集合里不存在的元素輸出即可。 沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第二章 原理與運(yùn)行環(huán)境2第二章第二章 原理與運(yùn)行環(huán)境原理與運(yùn)行環(huán)境2.1 數(shù)據(jù)結(jié)構(gòu)理論2.1.1 學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)理論鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一系列結(jié)點(diǎn)(鏈表中每一個(gè)元素

35、稱為結(jié)點(diǎn))組成,結(jié)點(diǎn)可以在運(yùn)行時(shí)動(dòng)態(tài)生成。每個(gè)結(jié)點(diǎn)包括兩個(gè)部分:一個(gè)是存儲(chǔ)數(shù)據(jù)元素的數(shù)據(jù)域,另一個(gè)是存儲(chǔ)下一個(gè)結(jié)點(diǎn)地址的指針域。 相比于線性表順序結(jié)構(gòu),操作復(fù)雜。使用鏈表結(jié)構(gòu)可以克服數(shù)組鏈表需要預(yù)先知道數(shù)據(jù)大小的缺點(diǎn),鏈表結(jié)構(gòu)可以充分利用計(jì)算機(jī)內(nèi)存空間,實(shí)現(xiàn)靈活的內(nèi)存動(dòng)態(tài)管理。但是鏈表失去了數(shù)組隨機(jī)讀取的優(yōu)點(diǎn),同時(shí)鏈表由于增加了結(jié)點(diǎn)的指針域,空間開(kāi)銷比較大。在本系統(tǒng)中我們使用的是鏈表的存儲(chǔ)結(jié)構(gòu)以及其相關(guān)的應(yīng)用。學(xué)生成績(jī)管理系統(tǒng)應(yīng)用的是鏈表的存儲(chǔ)結(jié)構(gòu),線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn):用一組任意的存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元素(這組存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的)。因此,為了表示每個(gè)數(shù)據(jù)元素與其

36、直接后繼數(shù)據(jù)元素 之間的邏輯關(guān)系,對(duì)數(shù)據(jù)元素 來(lái)說(shuō),除了存儲(chǔ)其本身的信息之外,還需存儲(chǔ)一個(gè)指示其直接后繼的信息(即直接后繼的存儲(chǔ)位置)。我們將任務(wù)分成多個(gè)最簡(jiǎn)化的模塊,增強(qiáng)了可讀性和簡(jiǎn)單性,同時(shí)為日后的編寫,調(diào)試,維護(hù)提供了極大地方便。在學(xué)生成績(jī)管理系統(tǒng)中,鏈表的數(shù)據(jù)結(jié)構(gòu)中有保存學(xué)生數(shù)據(jù)的數(shù)據(jù)域,還有保存存儲(chǔ)下一個(gè)結(jié)點(diǎn)地址的指針域。輸入功能:輸入是將學(xué)生數(shù)據(jù)信息存儲(chǔ)到鏈表中。查找功能:對(duì)于給定一個(gè)學(xué)生的學(xué)號(hào)(或?qū)W生的姓名)利用查找算法找到學(xué)生的信息并輸出。排序功能:可以按學(xué)號(hào)排序,單科成績(jī)排序,總分排序。刪除功能:按照學(xué)生的序號(hào)進(jìn)行刪除。修改功能:按照學(xué)生的學(xué)號(hào)查找到然后在進(jìn)行修改。插入功能:

37、直接插入之后處理即可。2.1.2 集合交并運(yùn)算系統(tǒng)數(shù)據(jù)結(jié)構(gòu)理論線性表采用順序存儲(chǔ)的方式存儲(chǔ)就稱之為順序表。順序表是將表中的結(jié)點(diǎn)依次存放在計(jì)算機(jī)內(nèi)存中一組地址連續(xù)的存儲(chǔ)單元中。順序表是在計(jì)算機(jī)內(nèi)存中以數(shù)組的形式保存的線性表,是指用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)數(shù)據(jù)元素的線性結(jié)構(gòu)。順序表存儲(chǔ)位置是相鄰連續(xù)的,可以隨即訪問(wèn)的一種數(shù)據(jù)結(jié)構(gòu),一個(gè)順序表在使用前必須指定起長(zhǎng)度,一旦分配內(nèi)存,則在使用中不可以動(dòng)態(tài)的更改。他的優(yōu)點(diǎn)是訪問(wèn)數(shù)據(jù)是比較方便,可以隨即的訪問(wèn)表中的任何一個(gè)數(shù)據(jù)。集合交并運(yùn)算系統(tǒng)應(yīng)用的是線性表順序存儲(chǔ)結(jié)構(gòu),線性表的順序儲(chǔ)結(jié)構(gòu)的特點(diǎn):只要確沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第二章 原理與運(yùn)行環(huán)境3

38、定了起始位置,表中任一元素的地址都通過(guò)下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L 1in 其中,L 是元素占用存儲(chǔ)單元的長(zhǎng)度。順序表可隨機(jī)存取。我們將任務(wù)分成多個(gè)最簡(jiǎn)化的模塊,增強(qiáng)了可讀性和簡(jiǎn)單性,同時(shí)為日后的編寫,調(diào)試,維護(hù)提供了極大地方便。在集合交并運(yùn)算系統(tǒng)中,適合用順序表。該數(shù)組類型為結(jié)構(gòu)體,結(jié)構(gòu)體中的域表示整數(shù)數(shù)據(jù)的相應(yīng)屬性。其中,數(shù)據(jù)的形式和范圍輸入整型的數(shù)據(jù)。輸入功能:分別輸入集合 A 和集合 B 的元素,并輸出它們。計(jì)算集合交集功能:找出兩個(gè)集合不相同的元素并輸出它們。計(jì)算集合并集功能:首先調(diào)用集合的并集函數(shù),先輸出里面集合元素個(gè)數(shù)較多的集合,然后找出在集合元素

39、個(gè)數(shù)較少的集合中存在的元素但在集合元素個(gè)數(shù)較多的集合中沒(méi)有的元素輸出它們即可。計(jì)算集合差集功能:首先調(diào)用集合的差集函數(shù),因?yàn)閮蓚€(gè)集合有兩個(gè)差集,找出在 A集合里存在的元素但在 B 集合里不存在的元素輸出即可;再找出在第 B 集合里存在的元素但在 A 集合里不存在的元素輸出即可。 2.2 運(yùn)行環(huán)境在數(shù)據(jù)結(jié)構(gòu)程序的運(yùn)行環(huán)境為 CodeBlocks 中的 Console application 的 C 環(huán)境。2.2.1 打開(kāi)方法開(kāi)始所有程序CodeBlocks 如圖 2-1 所示。圖 2-1 打開(kāi)CodeBlocks的方法2.2.2 打開(kāi) CodeBlocks 中的 C 環(huán)境其工作環(huán)境如圖 2-2

40、所示。沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第二章 原理與運(yùn)行環(huán)境4 圖 2-2 C CodeBlocks 中的 Console application 的 C 環(huán)境 CodeBlocks 中的 Console application 的 C 環(huán)境的材料如下:CodeBlocks 中的 Console application 的 C 環(huán)境可以劃分為三塊區(qū)域。最左邊的區(qū)域是工作區(qū),最下面的區(qū)域是輸出區(qū),最右邊的區(qū)域是編輯區(qū)。編輯區(qū)用來(lái)對(duì)原文件進(jìn)行編輯,現(xiàn)在的編輯區(qū)是天藍(lán)色的,表示等待源文件進(jìn)行編輯。輸出區(qū)的作用是對(duì)程序進(jìn)行編譯和鏈接后,如果程序有錯(cuò)誤或警告,則顯示在輸出區(qū)。工作區(qū)的作用是用來(lái)管理各種源程序文

41、件,在它的管理下,可以有條不紊的進(jìn)行各種源文件的編輯。 總體來(lái)講,CodeBlocks 中的 Console application 的 C 環(huán)境運(yùn)行環(huán)境方便快捷。2.2.3 源程序的建立與編輯、連接建立 C 語(yǔ)言源程序文件。建立方法:選擇“CodeBlocks” “Console application” “C” “Project title” “Finish”。程序的編輯與編譯。編輯完成后,選擇菜單欄中的“build”即可對(duì)程序進(jìn)行編譯。當(dāng)輸出區(qū)顯示“0 errors, 0 warnings ”時(shí)表示沒(méi)有錯(cuò)誤和警告,反之,則會(huì)按序號(hào)列出錯(cuò)誤和警告。雙擊錯(cuò)誤或警告,編輯標(biāo)志會(huì)出現(xiàn)在源文件可能

42、出錯(cuò)的位置,當(dāng)然有時(shí)提示位置不一定很準(zhǔn)確。程序的執(zhí)行。單擊工具欄上的“深藍(lán)色三角號(hào)”按鈕,即可執(zhí)行剛編寫的程序,如圖2-3 所示。沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第二章 原理與運(yùn)行環(huán)境5圖 2-3 對(duì)源程序進(jìn)行編寫沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第三章系統(tǒng)分析與設(shè)計(jì)6第三章 系統(tǒng)分析與設(shè)計(jì)3.1 學(xué)生成績(jī)管理分析與設(shè)計(jì)3.1.1 系統(tǒng)的功能本次任務(wù)要求實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),根據(jù)需要可以進(jìn)行如下操作:構(gòu)建鏈表、調(diào)用各個(gè)函數(shù)并輸出結(jié)果。其功能模塊圖如圖 3-1 所示圖 3-1 學(xué)生成績(jī)管理功能模塊圖3.1.2 系統(tǒng)模塊分析及其流程圖主函數(shù)先對(duì)鏈表進(jìn)行初始化,再調(diào)用。主函數(shù)流程圖,如圖 3-2 所示。 學(xué)生成績(jī)

43、管理系統(tǒng)學(xué) 生 數(shù) 據(jù) 輸 入學(xué) 生 數(shù) 據(jù) 排 序?qū)W 生 數(shù) 據(jù) 的 插 入學(xué) 生 數(shù) 據(jù) 修 改學(xué) 生 數(shù) 據(jù) 輸 出學(xué) 生 數(shù) 據(jù) 查 詢學(xué) 生 數(shù) 據(jù) 刪 除按 學(xué) 號(hào) 排 序單 科 最 高 分 及 均 分按 總 分 排 序按 單 科 成 績(jī) 排 序按 學(xué) 號(hào) 查 詢按 姓 名 查 詢沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第三章系統(tǒng)分析與設(shè)計(jì)7圖 3-2 主函數(shù)流程圖構(gòu)建鏈表根據(jù)學(xué)生數(shù)據(jù)信息初始化鏈表。在存儲(chǔ)完成后,再進(jìn)行操作。其構(gòu)建鏈表如圖 3-3 所示。圖 3-3 學(xué)生數(shù)據(jù)信息初始化流程圖利用冒泡排序算法對(duì)學(xué)生數(shù)據(jù)進(jìn)行排序:將被排序的記錄數(shù)組 R1.n垂直排列,每個(gè)記錄 Ri看作是重量為 Ri

44、.key 的氣泡。根據(jù)輕氣泡不能在重氣泡之下的原則,從下往上掃描數(shù)組 R:凡掃描到違反本原則的輕氣泡,就使其向上飄浮。如此反復(fù)進(jìn)行,直到最后任何兩個(gè)氣泡都是輕者在上,重者在下為止。(1)初始 R1.n為無(wú)序區(qū)。(2)第一趟掃描賦權(quán)值結(jié)束開(kāi)始輸入學(xué)生數(shù)據(jù)信息形成鏈表調(diào)用各個(gè)函數(shù)進(jìn)行處理輸出結(jié)果結(jié)束圖 3-3 構(gòu)建有向網(wǎng)流程圖開(kāi)始輸入學(xué)生數(shù)據(jù)初始化學(xué)生鏈表輸出鏈表結(jié)束沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第三章系統(tǒng)分析與設(shè)計(jì)8 從無(wú)序區(qū)底部向上依次比較相鄰的兩個(gè)氣泡的重量,若發(fā)現(xiàn)輕者在下、重者在上,則交換二者的位置。即依次比較(Rn,Rn-1),(Rn-1,Rn-2),(R2,R1);對(duì)于每對(duì)氣泡(Rj+1,

45、Rj),若 Rj+1.keyB 元素個(gè)數(shù)?找出在 A 中有 B 中無(wú)的元素找出在 B 中有 A 中無(wú)的元素輸出這些元素和 B 集合結(jié)束是否1輸出這些元素和 A 集合沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第三章系統(tǒng)分析與設(shè)計(jì)123 計(jì)算集合差集功能計(jì)算集合差集功能:首先調(diào)用集合的差集函數(shù),因?yàn)閮蓚€(gè)集合有兩個(gè)差集,找出在 A集合里存在的元素但在 B 集合里不存在的元素輸出即可;再找出在第 B 集合里存在的元素但在 A 集合里不存在的元素輸出即可。其功能流程圖如圖 3-9 所示。 圖 3-9 計(jì)算集合差集功能流程圖開(kāi)始輸入想要操作函數(shù)的序號(hào) 找出在 A 中有 B 中無(wú)的元素組成新集合找出在 B 中有 A 中無(wú)的

46、元素組成新集合 分別輸出這兩個(gè)新集合結(jié)束沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第四章系統(tǒng)功能實(shí)現(xiàn)13第四章第四章 系統(tǒng)功能實(shí)現(xiàn)系統(tǒng)功能實(shí)現(xiàn)4.1 學(xué)生成績(jī)管理系統(tǒng)功能實(shí)現(xiàn)4.1.1 定義主函數(shù)主函數(shù)是程序的入口,采用模塊化設(shè)計(jì),首先聲明一些必要的變量,然后調(diào)用 cin 函數(shù)創(chuàng)建鏈表,再調(diào)用各個(gè)函數(shù)進(jìn)行操作,輸出所要求的結(jié)果,退出系統(tǒng)。源代碼如下:int main()/主函數(shù)Student *head;int choose,i;head=(Student *)malloc(LEN);head-next=NULL;for(;) printf( *n); printf( * 學(xué)生成績(jī)管理系統(tǒng) *n); prin

47、tf( *n); printf( * 1.學(xué)生數(shù)據(jù)錄入 *n); printf( * 2.學(xué)生數(shù)據(jù)統(tǒng)計(jì)排序 *n); printf( * 3.查詢學(xué)生數(shù)據(jù) *n); printf( * 4.插入學(xué)生數(shù)據(jù) *n); printf( * 5.顯示當(dāng)前成績(jī)表 *n); printf( * 6.修改學(xué)生的數(shù)據(jù) *n); printf( * 7.刪除學(xué)生的數(shù)據(jù) *n); printf( * 0.退出成績(jī)管理系統(tǒng) *n); printf( *n); printf(n 請(qǐng)輸入你所選擇的操作(0-7):); scanf(%d,&choose); while(getchar()!=n); switch(

48、choose) case 1:printf(nn *注意*); printf(nn 這將會(huì)建立新的學(xué)生數(shù)據(jù) ,原來(lái)的數(shù)據(jù)將不再存在,你確定要?jiǎng)h除原來(lái)的數(shù)據(jù)并建立新的數(shù)據(jù)系統(tǒng)么?nn); printf(1、建立新的數(shù)據(jù)系統(tǒng). 0、放棄建立新的數(shù)據(jù)系統(tǒng).nn);沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第四章系統(tǒng)功能實(shí)現(xiàn)14 printf(請(qǐng)選擇:); scanf(%d,&i); if (i=1) head=cin();print(head);break; else if (i=0) printf(n 你選擇了放棄建立新的數(shù)據(jù)系統(tǒng)!n); break; else printf(n 你做出別的選擇,當(dāng)作放棄

49、建立!n); break; case 2:head=sort_all(head);break; case 3:find(head);break; case 4:head=add_new(head); case 5:print(head);break; case 6:xg(head);break; case 7:sc(head);break; case 0:system(pause);return 0; default: printf(nn 您的輸入有誤!請(qǐng)重新輸入:nn);break; 功能實(shí)現(xiàn)圖如圖 4-1 所示。沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第四章系統(tǒng)功能實(shí)現(xiàn)15圖 4-1 初始化界面4.1.

50、2 定義存儲(chǔ)結(jié)構(gòu)首先需要定義一個(gè)全局變量結(jié)構(gòu)體,學(xué)生的學(xué)號(hào)、成績(jī)、總分是整型,學(xué)生的姓名是字符型的。具體代碼如下:#include #include #include #include #define LEN sizeof(Student)int n; /定義一個(gè)全局變量 nStudent *cin(void);Student *sort_1(Student *head,int);void sort_2(Student *head);void print(Student *head);Student *sort_all(Student *head);void find(Student *hea

51、d);Student *add_new(Student *head); /函數(shù)的聲明typedef struct student /定義結(jié)構(gòu)體int num;char name20;int score4;int sum; /定義數(shù)據(jù)域struct student *next; /定義指針域Student;4.1.3 構(gòu)建鏈表初始化,管理員需要自己輸入學(xué)生數(shù)據(jù)信息。具體代碼如下:Student *cin()/學(xué)生數(shù)據(jù)初始化函數(shù)int flag;Student *head,*p1,*p2;n=0;head=(Student *)malloc(LEN);/動(dòng)態(tài)開(kāi)辟內(nèi)存p2=head;printf(n

52、 請(qǐng)輸入第%d 名學(xué)生的學(xué)號(hào)(學(xué)號(hào)為 0 表示結(jié)束輸入):,n+1);scanf(%d,&flag);沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第四章系統(tǒng)功能實(shí)現(xiàn)16while(getchar()!=n);for(;flag;) n+; p1=(Student *)malloc(LEN); p1-num=flag; printf(請(qǐng)輸入第%d 名學(xué)生的姓名:,n); scanf(%s,p1-name); printf(請(qǐng)輸入第%d 名學(xué)生的語(yǔ)文成績(jī):,n); scanf(%d,&p1-score0); printf(請(qǐng)輸入第%d 名學(xué)生的數(shù)學(xué)成績(jī):,n); scanf(%d,&p1-s

53、core1); printf(請(qǐng)輸入第%d 名學(xué)生的英語(yǔ)成績(jī):,n); scanf(%d,&p1-score2); printf(請(qǐng)輸入第%d 名學(xué)生的計(jì)算機(jī)成績(jī):,n); scanf(%d,&p1-score3); p1-sum=p1-score0+p1-score1+p1-score2+p1-score3; p2-next=p1; p2=p1; printf(n 請(qǐng)輸入第%d 名學(xué)生的學(xué)號(hào),沒(méi)有此學(xué)生則輸入 0 表示結(jié)束:,n+1); scanf(%d,&flag); p2-next=NULL;printf(nn);return head;/返回頭指針 功能實(shí)現(xiàn)圖如

54、圖 4-2 所示。圖 4-2 鏈表初始化沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第四章系統(tǒng)功能實(shí)現(xiàn)174.1.4 調(diào)用學(xué)生排序函數(shù)利用學(xué)生排序函數(shù)對(duì)學(xué)生數(shù)據(jù)的管理。具體代碼如下:Student *sort_all(Student *head)/學(xué)生數(shù)據(jù)統(tǒng)計(jì)排序函數(shù)int choose;for(;) printf( #n); printf( # 學(xué)生成績(jī)統(tǒng)計(jì)排序 #n); printf( #n); printf( # 1.按學(xué)生學(xué)號(hào)排序 #n); printf( # 2.按學(xué)生總分排序 #n); printf( # 3.按學(xué)生語(yǔ)文成績(jī)排序 #n); printf( # 4.按學(xué)生數(shù)學(xué)成績(jī)排序 #n); pri

55、ntf( # 5.按學(xué)生英語(yǔ)成績(jī)排序 #n); printf( # 6.按學(xué)生計(jì)算機(jī)成績(jī)排序 #n); printf( # 7.單科最高分及均分 #n); printf( # 8.顯示當(dāng)前學(xué)生成績(jī) #n); printf( # 0.返回上一級(jí)菜單 #n); printf( #nn); printf(請(qǐng)輸入你所選擇的操作(0-8):); scanf(%d,&choose); while(getchar()!=n); switch(choose) case 1: case 2: case 3: case 4: case 5: case 6:head=sort_1(head,choose);

56、break; case 7:print(head);sort_2(head);break; case 8:print(head);break; case 0:return head; default: printf(nn 您的輸入有誤!請(qǐng)重新輸入:nn);break; 沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第四章系統(tǒng)功能實(shí)現(xiàn)18Student *sort_1(Student *head,int choose)/學(xué)生數(shù)據(jù)排序函數(shù)Student *p1,*p2=head-next,*pm,*px;Student mid;if (!p2) return head;/如果是空的直接返回頭指針for(p1=p2;p

57、1-next!=NULL;p1=p1-next) pm=p1; for(p2=p1-next;p2!=NULL;p2=p2-next) switch(choose)/判斷想要執(zhí)行哪一步排序 case 1:if (pm-nump2-num) pm=p2;break;/按學(xué)生學(xué)號(hào)排序 case 2:if (pm-sumsum) pm=p2;break;/按學(xué)生總分排序 case 3:if (pm-score0score0) pm=p2;break;/按學(xué)生語(yǔ)文成績(jī)排序 case 4:if (pm-score1score1) pm=p2;break;/按學(xué)生數(shù)學(xué)成績(jī)排序 case 5:if (pm-

58、score2score2) pm=p2;break;/按學(xué)生英語(yǔ)成績(jī)排序 case 6:if (pm-score3score3) pm=p2;break;/按學(xué)生計(jì)算機(jī)成績(jī)排序 if (pm!=p1) mid=*pm; *pm=*p1; *p1=mid; px=pm-next; pm-next=p1-next; p1-next=px; printf(n 排序后的成績(jī)表為:n);print(head);/調(diào)用輸出函數(shù)return head;功能實(shí)現(xiàn)圖如圖 4-3 所示。沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第四章系統(tǒng)功能實(shí)現(xiàn)19圖 4-3 學(xué)生排序功能實(shí)現(xiàn)4.1.5 調(diào)用查詢學(xué)生數(shù)據(jù)函數(shù)利用學(xué)生查詢函數(shù)對(duì)學(xué)

59、生數(shù)據(jù)進(jìn)行查詢。具體代碼如下:void find(Student *head)/查找函數(shù)Student *p;int choose,fnum;char tem20;if (n=0) printf(n 當(dāng)前系統(tǒng)沒(méi)有任何學(xué)生數(shù)據(jù)n );return;for(;) printf(n 請(qǐng)輸入您要查詢學(xué)生的方式:nn); printf(1、按學(xué)號(hào)查詢;2、按姓名查詢;0、我不查詢了。nn); printf(請(qǐng)選擇:); scanf(%d,&choose); while(getchar()!=n); if (choose=1) /判斷你想要按什么查詢,如果是按學(xué)號(hào)查,進(jìn)入循環(huán)直到找到你想要查找的學(xué)

60、生數(shù)據(jù) /否則找不到你要查詢的學(xué)號(hào)。按姓名查詢和按學(xué)號(hào)查詢一樣。 printf(n 請(qǐng)輸入你要查詢的學(xué)生的學(xué)號(hào),輸入 0 退出學(xué)號(hào)查詢:);沈陽(yáng)工程學(xué)院課程設(shè)計(jì)報(bào)告 第四章系統(tǒng)功能實(shí)現(xiàn)20 scanf(%d,&fnum); for(;fnum;) for(p=head-next;p!=NULL&p-num!=fnum;p=p-next); if (!p) printf(nn 找不到你要查詢的學(xué)號(hào),請(qǐng)重新輸入,輸入 0 表示結(jié)束:); scanf(%d,&fnum); else if (p-num=fnum) printf(n 學(xué)號(hào)為%d 學(xué)生的數(shù)據(jù)為:n,p-num); printf(學(xué)號(hào) 姓名 語(yǔ)文成績(jī) 數(shù)學(xué)成績(jī) 英語(yǔ)成績(jī) 計(jì)算機(jī)成績(jī) 總分n); printf(%d %s %d %d %d %d %dn,p-num,

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論