學(xué)生成績(jī)管理系統(tǒng)說(shuō)明書(shū)_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng)說(shuō)明書(shū)_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng)說(shuō)明書(shū)_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng)說(shuō)明書(shū)_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(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、唐山學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題 目學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)系 (部)計(jì)算機(jī)科學(xué)與技術(shù)系班級(jí) 11計(jì)本1班姓 名 iFs學(xué)號(hào) 4112006102指導(dǎo)教師 張小松2013 年1 月4日至,月 11 日 共 2 周2013年1月11日數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書(shū)、設(shè)計(jì)題目、內(nèi)容及要求 1、設(shè)計(jì)題目:學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。2、設(shè)計(jì)內(nèi)容及要求:(1)查詢功能:可以通過(guò)姓名、學(xué)號(hào)進(jìn)行查詢學(xué)生成績(jī),同時(shí)可以查詢有不及格科目的學(xué)生。(2)錄入功能:能夠錄入學(xué)生成績(jī)(包括:學(xué)號(hào)、姓名、至少 3門(mén)課程的成績(jī)、總分、 平均分等信息)。總分和平均分自動(dòng)計(jì)算。(3)排序功能:能夠?qū)W(xué)生成績(jī)進(jìn)行排序并可以瀏覽排序結(jié)果。(

2、4)統(tǒng)計(jì)功能:能夠統(tǒng)計(jì)出優(yōu)秀、良好、中等、及格和不及格這五個(gè)等級(jí)的人數(shù)。二、要求的設(shè)計(jì)成果(課程設(shè)計(jì)說(shuō)明書(shū)、設(shè)計(jì)實(shí)物、圖紙等)1、用C語(yǔ)言進(jìn)行程序設(shè)計(jì),實(shí)現(xiàn)系統(tǒng)的功能。注重算法效率,代碼要有適當(dāng)?shù)淖⑨專?、撰寫(xiě)課程設(shè)計(jì)說(shuō)明書(shū)一份,不少于 2000字。課程設(shè)計(jì)說(shuō)明書(shū)應(yīng)包括封面、任務(wù)書(shū)、成績(jī)?cè)u(píng)定表、正文(設(shè)計(jì)思路、設(shè)計(jì)步驟等)、參考文獻(xiàn)(資料)、附錄(程序代碼)等 內(nèi)容。三、進(jìn)程安排1月4日:進(jìn)行需求分析,確定系統(tǒng)的主要功能和算法思路;1月5日1月6日:進(jìn)行詳細(xì)設(shè)計(jì),確定各模塊的算法思路;1月7日1月8日:進(jìn)行編碼實(shí)現(xiàn);1月9日1月10日:進(jìn)行測(cè)試調(diào)試,完善設(shè)計(jì);撰寫(xiě)設(shè)計(jì)說(shuō)明書(shū),準(zhǔn)備答辯;1月11

3、日:答辯。四、主要參考資料1 .嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu).清華大學(xué)出版社,2007.2 .蘇仕華.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì).機(jī)械工業(yè)出版社,2010.3 .滕國(guó)文.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì).清華大學(xué)出版社,2010.指導(dǎo)教師(簽名):教研室主任(簽名)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表出勤情況出勤天數(shù)缺勤天數(shù)成出勤情況及設(shè)計(jì)過(guò)程表現(xiàn)(20分)績(jī)課設(shè)答辯(20分)評(píng)設(shè)計(jì)成果(60分)定總成績(jī)(100分)提問(wèn)(答辯)問(wèn)題情況綜合評(píng)定指導(dǎo)教師簽名:年 月 日1 引言學(xué)生成績(jī)管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要。為了提高學(xué)校管理員和學(xué)生管理和查詢學(xué)生成績(jī)的效率,需要建立一個(gè)學(xué)生成績(jī)管理

4、系統(tǒng),使我們可以在眾多的學(xué)生信息中查找自己的成績(jī)信息,面對(duì)學(xué)院大量的學(xué)生信息,學(xué)生只要登錄本系統(tǒng)就可以查找到自己的成績(jī)信息,而管理員也方便去管理每學(xué)期的學(xué)生的成績(jī)信息。學(xué)生成績(jī)管理系統(tǒng),使學(xué)生成績(jī)信息管理工作規(guī)范化、系統(tǒng)化、程序化,避免學(xué)生管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、 有效的查詢和修改學(xué)生信息。學(xué)生成績(jī)管理系統(tǒng)有效地管理學(xué)生成績(jī)相關(guān)信息,包括學(xué)生成績(jī)的查詢、錄入、排序、統(tǒng)計(jì)等功能。該系統(tǒng)為用戶提供了一個(gè)簡(jiǎn)單的人機(jī)界面,用戶可以根據(jù)提示信息進(jìn)行各種操作。本次設(shè)計(jì)使用的編程語(yǔ)言是 C語(yǔ)言。2 問(wèn)題分析根據(jù)設(shè)計(jì)題目要求分析如下:( 1)本題目主要涉及順序表的基本操作。(

5、 2)在學(xué)生成績(jī)管理系統(tǒng)中,錄入學(xué)生信息時(shí)通常按錄入順序的先后,因此選用線性表。在查找學(xué)生信息時(shí),是在大量無(wú)序的學(xué)生信息中,通過(guò)比較所給關(guān)鍵字與對(duì)應(yīng)信息項(xiàng),找到所要查找的學(xué)生信息。修改學(xué)生信息是在查找的基礎(chǔ)上完成的,首先要找到需要修改的信息項(xiàng),用輸入的新數(shù)據(jù)覆蓋原來(lái)的老數(shù)據(jù),達(dá)到修改的目的。刪除學(xué)生信息也是在查找的基礎(chǔ)上完成的,先找到要?jiǎng)h除的學(xué)生信息,從要?jiǎng)h除的那個(gè)信息項(xiàng)開(kāi)始,用后一個(gè)信息項(xiàng)覆蓋它,一直循環(huán)到最后,即可完成刪除。在查詢不及格的學(xué)生信息時(shí),只要把符合不及格的學(xué)生信息輸出即可做到查詢。在統(tǒng)計(jì)不同等級(jí)的學(xué)生人數(shù)時(shí),是想要 根據(jù)劃分的不同等級(jí),將所有學(xué)生信息分成符合條件的幾個(gè)部分。學(xué)生

6、信息的存儲(chǔ)結(jié)構(gòu):struct STU/* 定義學(xué)生信息結(jié)構(gòu)體*/int num;/* 學(xué)號(hào) */ char name20;/* 姓名 */ double Data;/* 數(shù)據(jù)結(jié)構(gòu)成績(jī)*/double Math;/* 高等數(shù)學(xué)成績(jī)*/double English;/* 大學(xué)英語(yǔ)成績(jī)*/double sum;/* 總成績(jī) */double ave;/* 平均成績(jī)*/STU,stu1000003總體設(shè)計(jì)3.1模塊結(jié)構(gòu)圖圖3,1系統(tǒng)模塊結(jié)構(gòu)圖輸入:學(xué)生信息的錄入。查找:按學(xué)號(hào)或姓名查找學(xué)生成績(jī),輸入關(guān)鍵字,查找指定信息記錄并輸出。修改:通過(guò)調(diào)用查找函數(shù),找到要修改的學(xué)生信息,輸入新數(shù)據(jù)覆蓋原先的數(shù)據(jù)刪

7、除:通過(guò)調(diào)用查找函數(shù),找到要?jiǎng)h除的學(xué)生信息,用后一項(xiàng)覆蓋前一項(xiàng)。查詢:查詢各科成績(jī)不及格的學(xué)生成績(jī),輸出其學(xué)生信息。排序:按總成績(jī)排序,并輸出排序后學(xué)生信息。統(tǒng)計(jì):分別統(tǒng)計(jì)各個(gè)等級(jí)的學(xué)生人數(shù),并輸出各個(gè)等級(jí)的學(xué)生人數(shù)。退出:結(jié)束程序運(yùn)行。3.2總體流程圖查找學(xué)生信息刪除學(xué)生信息總成績(jī)排序開(kāi)始系統(tǒng)啟動(dòng)密碼輸入x=?4.1錄入模塊N x=123456? 二一進(jìn)入系統(tǒng)功能表c=1?c=2?c=3?c=4?c=5?c=6?=7?c=0圖3.2系統(tǒng)流程圖結(jié)構(gòu)圖4詳細(xì)設(shè)計(jì)系統(tǒng)重啟錄入學(xué)生信息修改學(xué)生信息查詢不及格信息統(tǒng)計(jì)學(xué)生信息該模塊實(shí)現(xiàn)的功能是從鍵盤(pán)錄入學(xué)生信息。1.1.1 設(shè)計(jì)思路void Getin

8、formation()此函數(shù)用來(lái)錄入學(xué)生信息。此函數(shù)用 while循環(huán)達(dá)到循環(huán)輸入的目的,只要輸入的學(xué)號(hào)有效(在所有學(xué)號(hào)的范圍內(nèi)且不等于 -1),就可以實(shí)現(xiàn)學(xué)生信 息的不斷錄入,用-1做結(jié)束錄入的標(biāo)志。1.1.2 流程圖圖4.1錄入模塊程序流程圖4.2 查找模塊該模塊實(shí)現(xiàn)的功能是根據(jù)所給的學(xué)生信息(關(guān)鍵字),查找該學(xué)生的全部信息并輸出。4.2.1 設(shè)計(jì)思路在void Seekinformation()函數(shù)中,用while循環(huán)可以實(shí)現(xiàn)循環(huán)輸入查找信息,用if語(yǔ)句 可以實(shí)現(xiàn)按學(xué)號(hào)和姓名兩種查找方式。用if語(yǔ)句確定查找方式,通過(guò)調(diào)用void Seeknum()或void Seekname ()函數(shù)實(shí)

9、現(xiàn)查找。在 void Seeknum () (void Seekname () 函數(shù)中,用for循環(huán)逐次查找,通過(guò)用if語(yǔ)句比較學(xué)號(hào)(姓名),返回符合條件的標(biāo)號(hào), 并調(diào)用Printinformation()函數(shù)輸出該生的所有信息。判斷是否繼續(xù)查找,繼續(xù)查找則進(jìn)入以上環(huán)境,否則退出查找。4.2.2流程圖開(kāi)始輸出相應(yīng)姓名 所對(duì)應(yīng)的信息圖4.2查找模塊程序流程圖4.3 修改模塊該模塊的實(shí)現(xiàn)的功能是根據(jù)需要修改學(xué)生信息。4.3.1 設(shè)計(jì)思路在Modfinformation()函數(shù)中,此函數(shù)用于修改學(xué)生信息?;驹砭褪怯幂斎氲男聰?shù)據(jù)覆蓋原來(lái)的老數(shù)據(jù),達(dá)到修改的目的。本函數(shù)還調(diào)用了查找模塊的函數(shù),使修改

10、前能 按學(xué)號(hào)或姓名找到要修改的學(xué)生信息。4.3.2 流程圖結(jié)束圖4.3修改學(xué)生信息模塊程序流程圖4.4 刪除模塊該模塊實(shí)現(xiàn)的功能是刪除指定的學(xué)生信息4.4.1 設(shè)計(jì)思路Deleteformation() 此函數(shù)用于刪除學(xué)生信息。同樣調(diào)用了查找模塊的函數(shù)。刪除模塊的 關(guān)鍵語(yǔ)句是for(j=x;j<i-1;j+)stuj=stuj+1,從要?jiǎng)h除的那一個(gè)信息項(xiàng)開(kāi)始,用后一個(gè)信息項(xiàng)覆蓋它,一直循環(huán)到最后,相當(dāng)于把開(kāi)始的第一個(gè)數(shù)據(jù)刪除了。4.4.2流程圖圖4.4刪除學(xué)生信息模塊程序流程圖4.5 查詢模塊該模塊實(shí)現(xiàn)的功能是查詢不及格(某科成績(jī)低于60分)的學(xué)生信息并輸出。4.5.1 設(shè)計(jì)思路void

11、 Showfail() 此函數(shù)用于顯示不及格學(xué)生的信息。能夠按要求輸出不及格學(xué)生的學(xué) 號(hào)、姓名、各科成績(jī)、平均成績(jī)、總成績(jī)。首先在 for循環(huán)中用if語(yǔ)句搜索該學(xué)生是 否有成績(jī)不及格,當(dāng)三門(mén)課中至少有一門(mén)不及格時(shí)就會(huì)輸出該學(xué)生的相關(guān)信息。4.7.2流程圖4.6 排序模塊該模塊實(shí)現(xiàn)的功能是按學(xué)生總成績(jī)對(duì)學(xué)生信息排序并輸出排序后的結(jié)果。4.6.1 設(shè)計(jì)思路Lineup函數(shù)用來(lái)對(duì)學(xué)生信息按總成績(jī)進(jìn)行排序。Lineup函數(shù)在排序時(shí)用的是冒泡排序 法,冒泡排序是經(jīng)過(guò)n-1趟子排序完成的,第i趟子排序從第1個(gè)數(shù)至第n+1個(gè)數(shù),若 第i個(gè)數(shù)比后一個(gè)數(shù)大(則升序,小則降序。本程序一律采用降序)則交換兩數(shù)。圖4

12、.6冒泡排序的模塊程序流程圖4.7 統(tǒng)計(jì)模塊該模塊的實(shí)現(xiàn)的功能是統(tǒng)計(jì)各個(gè)等級(jí)的學(xué)生人數(shù)并輸出各等級(jí)的人數(shù)。4.7.1 設(shè)計(jì)思路void Count()函數(shù)統(tǒng)計(jì)各個(gè)等級(jí)(優(yōu)秀、良好、中等、及格、不及格)的學(xué)生人數(shù)。函數(shù)用switch語(yǔ)句劃分出不同等級(jí),用for循環(huán)依次判斷每個(gè)學(xué)生所處的等級(jí),并記錄每個(gè)等級(jí)的人數(shù)。5運(yùn)行測(cè)試進(jìn)入演示程序后即可顯示的界面:圖5.0.1系統(tǒng)進(jìn)入輸入密碼錯(cuò)誤顯示的界面:圖5.0.2輸入密碼正確后的功能表輸入密碼正確顯示的界面:D*我的文檔與桌面博茴Debug存生成韁苣理系統(tǒng)n生要自£盲心自理級(jí) 2霍生生生 若WO#杳不 一一擇人找改n心計(jì)出 一選房一修3 一i

13、 請(qǐng) 12345670sts.g績(jī)功成的自IJJ言請(qǐng)輸入您所需防rm能d二圖5.0.3輸入密碼正確后的功能表1、執(zhí)行功能1,依次錄入學(xué)生信息:1.1錄入第1個(gè)學(xué)生信息:請(qǐng)輸入您所需要的功能0-7 = 1錄入學(xué)生信息功能用-工結(jié)束信息錄入:口號(hào)式姓名:chenit麴歌;霆箕語(yǔ)成第:871.2 錄入第2個(gè)學(xué)生信息:迎名;bzlng大學(xué)央語(yǔ)成績(jī)二991.3 錄入第3個(gè)學(xué)生信息:3:1結(jié)數(shù)英號(hào)名皇軍裂姓塑口前大成/于語(yǔ)8 8 69 8 5賽賽賽1.4錄入第4個(gè)學(xué)生信息:uang1.5錄入第5個(gè)學(xué)生信息:4 ._eZ7 ? 8 6 8 9- 賽賽賽成成成手語(yǔ)號(hào)名竭寸學(xué) 2霆瞿口1.6錄入第6個(gè)學(xué)生信息:

14、=lohu i Bit-號(hào)名握寺學(xué) 學(xué)姐數(shù)高飛:?1.7結(jié)束錄入!結(jié)束錄入,請(qǐng)輸入您所需要的功能蠲-7八圖5.1結(jié)束錄入2、執(zhí)行功能2,按一定方式查找學(xué)生信息:2.1 按學(xué)號(hào)查找學(xué)生信息:請(qǐng)輸入您所需要的功能小-刀=2翕豳耨叩瓢名查找按21輸入要查找的學(xué)號(hào)建美號(hào)姓名 數(shù)據(jù)結(jié)構(gòu) 高等數(shù)學(xué)大學(xué)英語(yǔ) 總成績(jī)平均成責(zé)謖學(xué)生原息不存扣密續(xù)查提請(qǐng)按1,退出查詢請(qǐng)按10圖5.2.1查找學(xué)號(hào)不存在2.2 繼續(xù)按學(xué)號(hào)查找學(xué)生信息:繼經(jīng)查找請(qǐng)按7丁退出查詢請(qǐng)按工。1按學(xué)號(hào)查找按1按姓名查找按21輸入要查找的學(xué)號(hào);3學(xué)號(hào)姓名數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī) 平均成績(jī)3 lirui 78.0Q和*日目56.00W 銃陽(yáng)

15、目80.67性續(xù)查找請(qǐng)按1,退出查詢請(qǐng)按10圖5.2.2查找學(xué)號(hào)存在2.3 按姓名查找的學(xué)生信息:繼續(xù)查找請(qǐng)按1,退出查詢請(qǐng)按101按學(xué)號(hào)查找按1按姓名查找按22輸入要查找的姓各lirui- -挈號(hào)姓名數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī)平均成績(jī)3 lirui 99.00SB.0056.00242.OS 80*67延續(xù)查找請(qǐng)按1,退出查詢請(qǐng)按10圖5.2.3查找姓名存在2.4 繼續(xù)按姓名查找學(xué)生信息:1 ,退出查詢請(qǐng)按10按姓名查找按2前人要查找的姓登 觸麹麟后;y號(hào)!禍姓名音若數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī)平均成績(jī)圖5.2.4查找姓名不存在2.5 退出查找:繼續(xù)查找請(qǐng)按工退出查詢請(qǐng)按1010請(qǐng)輸入

16、您所需要的功能力-7=圖5.2.5退出查找3、執(zhí)行功能3,修改學(xué)生信息:3.1執(zhí)行修改學(xué)生信息功能:I請(qǐng)輸入您所需要的功能門(mén)查找技高等數(shù)學(xué)平均成績(jī)畬入新信息高等數(shù)學(xué)大于央卡大學(xué)英語(yǔ)總成韁距浜修”方增L,退小匕泡向工圖5.3.1修改學(xué)生信息3.2退出修改功能:10請(qǐng)按工,退出此功能請(qǐng)按1。睛輸入您所需要的功能:圖5.3.2退出修改4、執(zhí)行功能4,刪除學(xué)生信息:4.1執(zhí)行刪除學(xué)生信息功能:I請(qǐng)輻A您所需要的功能er八4此刪除學(xué)生情忌卻靜請(qǐng)先查找要修的窣基胺學(xué)號(hào)查莪堞1 狼4、士自器找按2輸人要查找的姓名inxg輸出要?jiǎng)h除的信息;學(xué)號(hào)姓名數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī)4 Jinze L7.0096.

17、Q0 2s4.H值確認(rèn)刪除請(qǐng)按工不刪除請(qǐng)按N 1平均成績(jī)fl4.G91,退出止勘能請(qǐng)按10圖5.4.1刪除學(xué)生信息4.2退出刪除功能:繼續(xù)刪除請(qǐng)按if退出此功能請(qǐng)按1010請(qǐng)輸入您所需要的功能日7”圖5.4.2退出刪除5、執(zhí)行功能5,查詢不及格的學(xué)生信息:請(qǐng)輸入您所需要的功部國(guó)-乃嗎查詢不及格駕言鑼.6由羲譙贏晟喜用及格I -1 chen高姜的學(xué)大學(xué)英悟89.0087.00總成績(jī)232.00平均成績(jī)前出大學(xué)英語(yǔ)成統(tǒng)不及格的學(xué)生信息、:3 liFui 98.0088,09242,0080-67圖5.5查詢不及格學(xué)生信息6、執(zhí)行功能6,用冒泡法按總成績(jī)對(duì)學(xué)生信息排序:請(qǐng)輸入您所需要的功能er八6卜

18、按總成統(tǒng)對(duì)饕信息期J功熊L 一,主氣姓名數(shù)據(jù)結(jié)構(gòu)輸出按總成績(jī)排序田學(xué)生信息,P3 lirui 98.09高等數(shù)學(xué) 大學(xué)英語(yǔ) 總成績(jī)平均成績(jī)clien bins iaang luhui8S,S956.00242.09S9,G7U9.00S7.00232.0077.33B7.M089.0B2G&,B9£8.33B7.S0232.00?7.327S .Q&89皿234Q&78.00請(qǐng)輸入您所需要的功能:圖5.6按總成績(jī)學(xué)生信息排序7、執(zhí)行功能7,統(tǒng)計(jì)不同等級(jí)學(xué)生的人數(shù):圖5.7統(tǒng)計(jì)不同等級(jí)學(xué)生人數(shù)級(jí)02 30史 巨于::;tBX鬻 F人人人人生 刀老生生學(xué) 

19、5;81 落及 中5不9、選擇功能數(shù)字錯(cuò)誤:圖5.8退出系統(tǒng)*"*®入數(shù)字有誤,請(qǐng)重新輸入* 功能8、執(zhí)行功能0,退出該系統(tǒng):請(qǐng)輸入甄所需要的功能e-力二回KMMAM KMKM或謝謝使用 * 再見(jiàn)!Press any keg to continue.圖5.9重選功能6總結(jié)(1)綜合實(shí)踐過(guò)程的收獲通過(guò)本次的綜合實(shí)踐,收獲頗多。對(duì)過(guò)去學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)與算法分析的相關(guān)知識(shí)進(jìn)行了匯總。同時(shí)也自學(xué)了許多相關(guān)知識(shí)。通過(guò)調(diào)用各種功能函數(shù)實(shí)現(xiàn)對(duì)相關(guān)數(shù)據(jù)的具體操作。實(shí)踐出真知,在課堂上,接受理論的知識(shí),且把每一個(gè)內(nèi)容都細(xì)分切塊,最終學(xué)到的卻不能完全有效的整合到一起,在做這個(gè)課程設(shè)計(jì)的時(shí)候,涉及

20、到很多學(xué)過(guò)的內(nèi)容。因此就必須要查閱很多課本和書(shū)籍,這樣不僅把以前學(xué)過(guò)的快遺忘的知識(shí)重新復(fù)習(xí)一遍,還能有效的把那些零散的知識(shí)點(diǎn)相結(jié)合,并運(yùn)用。通過(guò)這次綜合實(shí)踐,加強(qiáng)了對(duì)實(shí)踐操作的要求,不但要掌握理論知識(shí),還要通過(guò)自己動(dòng)手操作,在實(shí)踐中充分理解理論知識(shí),使自己的理論水平上升到更高層次,此外在此次實(shí)踐中,自學(xué)能力得到了增強(qiáng),這是這次綜合實(shí)踐過(guò)程中的最大收獲。( 2)遇到問(wèn)題以及解決問(wèn)題的思路和方法通過(guò)本次得綜合實(shí)踐,在編寫(xiě)學(xué)生成績(jī)管理系統(tǒng)程序代碼的過(guò)程中遇到了很多的問(wèn)題。如果錄入的學(xué)生信息數(shù)量非常大時(shí),用此系統(tǒng)的查找效率就比較低,所以此系統(tǒng)用于信息量比較少。由于學(xué)生人數(shù)不確定,可能造成存儲(chǔ)空間的浪費(fèi)

21、。由于自己本身編程能力的問(wèn)題,實(shí)現(xiàn)的功能非常有限,只可以進(jìn)行簡(jiǎn)單的信息錄入、查找、修改、刪除、查詢、排序、統(tǒng)計(jì)等簡(jiǎn)單功能。在每個(gè)模塊也存在不足的地方,如輸入學(xué)生信息時(shí),對(duì)每個(gè)信息項(xiàng)沒(méi)有嚴(yán)格的規(guī)定,所以在輸入信息時(shí)要提起注意。( 3)程序調(diào)試能力的思考在調(diào)試過(guò)程中逐漸學(xué)會(huì)了編譯器的調(diào)試功能。學(xué)會(huì)讀懂程序中出錯(cuò)時(shí)所報(bào)出的錯(cuò)誤提示信息。并能夠根據(jù)這些信息找到相應(yīng)的錯(cuò)誤,及時(shí)改正。( 4)在綜合實(shí)踐設(shè)計(jì)過(guò)程中對(duì)數(shù)據(jù)結(jié)構(gòu)課程的認(rèn)識(shí)通過(guò)這次綜合設(shè)計(jì),對(duì)數(shù)據(jù)結(jié)構(gòu)課程有了更深的認(rèn)識(shí)。對(duì)于從事計(jì)算機(jī)專業(yè)的的人士來(lái)說(shuō),學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法都是有必要的。算法是對(duì)輸入數(shù)據(jù)的處理,以產(chǎn)生解決問(wèn)題的輸出的過(guò)程。從實(shí)踐的角度

22、來(lái)看,我們必須了解計(jì)算機(jī)領(lǐng)域中不同問(wèn)題的一系列標(biāo)準(zhǔn)算法以及計(jì)算機(jī)程序加工的對(duì)象之間的關(guān)系;此外,我們還要具備設(shè)計(jì)新算法和分析其效率的能力。要清楚地知道、算法和程序三者之間的關(guān)系及相應(yīng)的技術(shù)。參考文獻(xiàn)1 嚴(yán)蔚敏,吳偉民數(shù)據(jù)結(jié)構(gòu)北京:清華大學(xué)出版社,2 蘇仕華數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)北京:機(jī)械工業(yè)出版社,3 . 滕國(guó)文數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)北京:清華大學(xué)出版社,20082010.2010.附錄#include<stdio.h> #include<string.h> #include<stdlib.h> struct STU/* 定義學(xué)生信息結(jié)構(gòu)體*/ int num;/* 學(xué)

23、號(hào) */ char name20;/* 姓名 */ double Data;/* 數(shù)據(jù)結(jié)構(gòu)成績(jī)*/double Math;/* 高等數(shù)學(xué)成績(jī)*/double English;/* 大學(xué)英語(yǔ)成績(jī)*/double sum;/* 總成績(jī) */ double ave;/* 平均成績(jī)*/STU,stu100000; int i=1;/* 統(tǒng)計(jì)錄入學(xué)生人數(shù)*/int a,d,w; char b20;void Getinformation()/* 錄入學(xué)生信息,用 -1 結(jié)束錄入*/stu0.sum=0;stu0.ave=0;printf("1 、錄入學(xué)生信息功能(用 -1 結(jié)束信息錄入):n&q

24、uot;);printf(" 學(xué)號(hào) :"); scanf("%d",&stui.num);while(stui.num!=-1)&&(stui.num<=100000)/* 確定輸入的學(xué)號(hào)有效*/ printf(" 姓名 :");scanf("%s",&); printf(" 數(shù)據(jù)結(jié)構(gòu)成績(jī):");scanf("%lf",&stui.Data);printf(" 高等數(shù)學(xué)成績(jī):");scanf(

25、"%lf",&stui.Math);printf(" 大學(xué)英語(yǔ)成績(jī):");scanf("%lf",&stui.English);stui.sum=stui.Data+stui.Math+stui.English; stui.ave=stui.sum/3; i+; printf(" 學(xué)號(hào) :"); scanf("%d",&stui.num); if(stui.num=-1)printf(" 結(jié)束錄入!n");printf("n");

26、int Seeknum(int no)/* 按學(xué)號(hào)查找*/int j;for(j=1;j<i;j+)if(stuj.num=no)return j;return -1;int Seekname(char b20)/* 按姓名查找*/int k;for(k=1;k<i;k+)if(strcmp(,b)=0)return k;return -1;void Printinformation(int x)/* 輸出學(xué)生信息*/if(x=-1)printf(" 該學(xué)生信息不存在!n");elseprintf(" %d %s %.2lf%.2lf

27、%.2lf%.2lf %.2lfn",stux.num,,stux.Data,stux.Math,stux.English,stux.sum,stux.ave);void Seekinformation()/* 查找學(xué)生信息*/int x;printf("2 、查找學(xué)生信息功能:n");while(1)/* 可以循環(huán)輸入查找信息*/printf(" 按學(xué)號(hào)查找按1 按姓名查找按2n");scanf("%d",&a);if(a=1) printf(" 輸入要查找的學(xué)號(hào):");sca

28、nf("%d",&d);x=Seeknum(d);/* 調(diào)用按學(xué)號(hào)查找函數(shù)*/printf(" 學(xué)號(hào) 姓名 數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī)平均成績(jī) n");Printinformation(x);else if(a=2)printf(" 輸入要查找的姓名:");scanf("%s",&b);x=Seekname(b);/* 調(diào)用按姓名查找函數(shù)*/printf(" 學(xué)號(hào) 姓名 數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī)平均成績(jī) n");Printinformation(x);printf(&q

29、uot; 繼續(xù)查找請(qǐng)按1,退出查詢請(qǐng)按10n");scanf("%d",&a);if(a=10)break;void Modifinformation()/* 修改學(xué)生信息*/int x;printf("3 、修改學(xué)生信息功能:n");while(1)printf(" 請(qǐng)先查找要修改的學(xué)生信息!n");printf(" 按學(xué)號(hào)查找按1 按姓名查找按2n");scanf("%d",&a);if(a=1)printf(" 輸入要查找的學(xué)號(hào):");scan

30、f("%d",&d);x=Seeknum(d);/* 調(diào)用按學(xué)號(hào)查找函數(shù)*/else if(a=2)printf(" 輸入要查找的姓名:");scanf("%s",&b);x=Seekname(b);/* 調(diào)用按姓名查找函數(shù)*/if(x=-1)printf(" 該學(xué)生信息不存在!n");elseprintf(" 輸出要修改的信息:n");平均printf(" 學(xué)號(hào) 姓名 數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī)成績(jī) n");Printinformation(x);pri

31、ntf(" 輸入新信息:n");w=x;printf(" 學(xué)號(hào) 姓名 數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)n");scanf("%d %s %lf %lf %lf",&stuw.num,&,&stuw.Data,&stuw.Math,&stuw.Englis h);stuw.sum=stuw.Data+stuw.Math+stuw.English;stuw.ave=stuw.sum/3;printf(" 繼續(xù)修改請(qǐng)按1,退出此功能請(qǐng)按10n");scanf("

32、%d",&a);if(a=10)break;void Deleteformation()/* 刪除學(xué)生信息*/int x;int j;printf("4 、刪除學(xué)生信息功能:n");while(1)printf(" 請(qǐng)先查找要?jiǎng)h除的學(xué)生信息:n");printf(" 按學(xué)號(hào)查找按1 按姓名查找按2n");scanf("%d",&a);if(a=1)printf(" 輸入要查找的學(xué)號(hào):");scanf("%d",&d);x=Seeknum(d)

33、;/* 調(diào)用按學(xué)號(hào)查找函數(shù)*/else if(a=2)printf(" 輸入要查找的姓名:");scanf("%s",&b);x=Seekname(b);/* 調(diào)用按姓名查找函數(shù)*/if(x=-1)printf(" 該學(xué)生信息不存在!");elseprintf(" 輸出要?jiǎng)h除的信息:n");平均printf(" 學(xué)號(hào) 姓名 數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī)成績(jī) n");Printinformation(x);printf(" 確認(rèn)刪除請(qǐng)按1 不刪除請(qǐng)按2n");scan

34、f("%d",&a);if(a=1)for(j=x;j<i;j+)stuj=stuj+1;/* 用元素以覆蓋的方式向前移動(dòng)來(lái)刪除元素*/printf(" 刪除成功!n");i-;printf(" 繼續(xù)刪除請(qǐng)按1,退出此功能請(qǐng)按10n");scanf("%d",&a);if(a=10)break;void Showfail()/* 查詢不及格(某科成績(jī)低于60分 )學(xué)生信息*/ int j,flag=0;printf("5 、查詢不及格學(xué)生信息功能:n");平均成績(jī)n&quo

35、t;);printf(" 學(xué)號(hào) 姓名 數(shù)據(jù)結(jié)構(gòu)高等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī)for(j=1;j<i;j+)if(stuj.Data<60)flag=1;printf(" 輸出數(shù)據(jù)結(jié)構(gòu)成績(jī)不及格的學(xué)生信息:n");Printinformation(j);if(stuj.Math<60)flag=1;printf(" 輸出高等數(shù)學(xué)成績(jī)不及格的學(xué)生信息:n");Printinformation(j);if(stuj.English<60)flag=1;printf(" 輸出大學(xué)英語(yǔ)成績(jī)不及格的學(xué)生信息:n");Pr

36、intinformation(j);if(flag=0)printf(" 不存在某科成績(jī)不及格的學(xué)生!n");void Lineup()/* 用冒泡法按總成績(jī)排序*/struct STU t;double max;int m,n,j;printf("6 、按總成績(jī)對(duì)學(xué)生信息排序功能:n");max=stu1.ave;for(m=1;m<i;m+)for(n=m+1;n<i+1;n+)if(max<stun.ave)t=stun;stun=stum;stum=t;max=stun.ave;printf(" 學(xué)號(hào) 姓名 數(shù)據(jù)結(jié)構(gòu)高

37、等數(shù)學(xué)大學(xué)英語(yǔ)總成績(jī)平均成績(jī)n");printf(" 輸出按總成績(jī)排序的學(xué)生信息:n");for(j=1;j<i;j+)Printinformation(j);printf("n");void Count()/* 統(tǒng)計(jì)不同等級(jí)學(xué)生的人數(shù)*/int j,A=0,B=0,C=0,D=0,E=0;printf("7 、統(tǒng)計(jì)不同等級(jí)學(xué)生人數(shù)的功能:n");for(j=1;j<i;j+)switch(int(stuj.ave/10)/* 利用 switch 語(yǔ)句統(tǒng)計(jì)各個(gè)等級(jí)的學(xué)生人數(shù)*/case 10:case9:A+;break;/*統(tǒng)計(jì)優(yōu)秀學(xué)生人數(shù)*/case8:B+;break;/*統(tǒng)計(jì)良好學(xué)生人數(shù)*/case7:C+;break;/*統(tǒng)計(jì)中等學(xué)生人數(shù)*/case6:D+;break;/*統(tǒng)計(jì)及格學(xué)生人數(shù)*/default :E+;/* 統(tǒng)計(jì)不及格學(xué)生人數(shù)*/printf(" 優(yōu)秀學(xué)生人數(shù):%dn",A);printf(" 良好學(xué)生人數(shù):%dn",B);printf(" 中等學(xué)生人數(shù):%dn",C);printf(" 及格學(xué)生人數(shù):%

溫馨提示

  • 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)論