版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 華中科技大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院</p><p> 《C語言程序設(shè)計》課程設(shè)計</p><p><b> 實(shí)驗(yàn)報告</b></p><p> 題目: 招生查詢系統(tǒng) </p><p> 專業(yè): </p>
2、;<p> 班級: </p><p> 學(xué)號: </p><p> 姓名: </p><p> 成績:
3、 </p><p> 指導(dǎo)教師: </p><p> 完成日期: 2011年 10月22日</p><p><b> 系統(tǒng)功能模塊:</b></p><p> 本系統(tǒng)主要有七大模塊</p><p> 下面分別描述各模
4、塊及其子模塊的功能</p><p><b> 界面初始化</b></p><p> 界面初始化的模塊包括系統(tǒng)初始密碼的檢查與設(shè)置,初始界面的輸出,密碼的輸入保存,界面的進(jìn)入。其功能結(jié)構(gòu)圖如下</p><p> ?。?)初始密碼的檢查與設(shè)置模塊:用于檢查系統(tǒng)是否已經(jīng)設(shè)置密碼,若未設(shè)置密碼,則提示用戶輸入密碼,輸入密碼時需要輸入兩次相同的密碼,
5、且密碼不能為空。 設(shè)置密碼成功直接進(jìn)入主界面。 </p><p> ?。?)初始界面的輸出模塊:包括時間,創(chuàng)建者等。若系統(tǒng)密碼已經(jīng)設(shè)置,則需要用戶需要密碼,輸入密碼成功后才能進(jìn)入主界面,輸入錯誤直接退出</p><p> ?。?)輸入密碼模塊
6、:用于用戶輸入密碼,將用戶輸入密碼與系統(tǒng)保存的密碼進(jìn)行比對,并提示用戶剩余輸入密碼機(jī)會。</p><p> ?。?)主界面的顯示: 用于設(shè)置控制臺窗口的顯示模式,包括窗口大小,窗口的背景顏色,顯示系統(tǒng)狀態(tài)欄及狀態(tài)欄。</p><p><b> 文件</b></p><p> 文件模塊的功能包括對數(shù)據(jù)的導(dǎo)入,保存,備份,恢復(fù)等。用于保障數(shù)據(jù)的
7、正常運(yùn)行。包括四個模塊,導(dǎo)入數(shù)據(jù),保存數(shù)據(jù),備份數(shù)據(jù),回復(fù)數(shù)據(jù)。</p><p><b> 功能結(jié)構(gòu)如圖所示。</b></p><p> ?。?) 導(dǎo)入數(shù)據(jù)子模塊:用于將存放在多個數(shù)據(jù)文件的數(shù)據(jù)導(dǎo)入內(nèi)存,構(gòu)造數(shù)據(jù)鏈表,同時,若已經(jīng)加載數(shù)據(jù),則提示用戶已經(jīng)加載數(shù)據(jù)。輸出加載數(shù)據(jù)相關(guān)提示信息。</p><p> ?。?) 數(shù)據(jù)保存子模塊:用于將內(nèi)
8、存中的代碼表數(shù)據(jù)和鏈表數(shù)據(jù)按照缺省路徑,分別保存到各個文件中,;當(dāng)數(shù)據(jù)保存失敗時,提示用戶。</p><p> ?。?) 數(shù)據(jù)備份子模塊:用于將內(nèi)存中的數(shù)據(jù)按照用戶路徑保存在同一數(shù)據(jù)文件中,用于供系統(tǒng)數(shù)據(jù)在破壞或者丟失時用來恢復(fù)數(shù)據(jù)。若用戶路徑不能打開,則提示用戶。</p><p> ?。?)數(shù)據(jù)恢復(fù)子模塊:與系統(tǒng)備份模塊相對應(yīng),能從備份數(shù)據(jù)中恢復(fù)得到的系統(tǒng)數(shù)據(jù),并加載數(shù)據(jù)到內(nèi)存中。用于提
9、高系統(tǒng)的穩(wěn)定性和可靠性。</p><p><b> 省份批次線查詢維護(hù)</b></p><p> 省份批次線查詢維護(hù)模塊主要用于省份批次的操作,若未添加數(shù)據(jù),操作時,系統(tǒng)均會給予提示用戶未加入數(shù)據(jù)。包括四個部分:省份批次線信息查詢子模塊,省份批次線信息添加子模塊,省份批次線信息修改子模塊,省份批次線信息刪除子模塊。 </p><p> (
10、1)省份批次信息查詢子模塊:用于省份批次線的查詢,包括三種查詢方式,一種是根據(jù)省份編號(或者名稱)和年份來查詢批次線,第二種是根據(jù)省份編號顯示所有已有的該省份年份批次線,第三種是根據(jù)年份查詢所有省份當(dāng)年的批次線。由于查詢函數(shù)中有根據(jù)年份或者省份名稱(或編號)查詢省份對應(yīng)的批次線,則在組合查詢時輸入一個數(shù)據(jù)會顯示所有滿足條件的數(shù)據(jù)(若沒有,則提示用戶輸入錯誤并退出);</p><p> ?。?)省份批次信息添加子模
11、塊: 用于添加省份批次線的添加,提示用戶輸入相應(yīng)的數(shù)據(jù)。輸入數(shù)據(jù)時,若系統(tǒng)檢測到系統(tǒng)中已經(jīng)存在該數(shù)據(jù),則提示用戶并退出。 數(shù)據(jù)輸入時會對數(shù)據(jù)長度(字符串時)或者大小(整形時)有限制,若輸入錯誤則給與提示,并要求用戶重新輸入。 輸入數(shù)據(jù)成功后,顯示用戶輸入的數(shù)據(jù),提示用戶是否確認(rèn)添加。若用戶選擇是,則添加,否則,提示添加失敗并退出。</p><p> ?。?)省份批次信息修改子模塊: 用于省份批次線的修改。首先要
12、求用戶輸入省份編號(或名稱),若存在該省份,則輸出該省份所有年份的信息,否則提示用戶不存在該省份并退出。 然后要求用戶根據(jù)輸出的所有年份輸入相應(yīng)要修改的年份,系統(tǒng)根據(jù)輸入的數(shù)據(jù)進(jìn)行查找。未找到,則提示用戶并退出;找到,則輸出相應(yīng)數(shù)據(jù),及要修改的選項。用戶需要根據(jù)提示輸入選項,若選項不符合,則提示用戶,并要求用戶重新輸入選項。修改時,對于修改后數(shù)據(jù),若是字符串,則對其長度最大值進(jìn)行限制;若是整形數(shù)據(jù),則對其的取值范圍進(jìn)行限制,不滿足條件時
13、需要重新輸入。 修改后,系統(tǒng)提示用戶是否刪除,用戶選擇是,則刪除數(shù)據(jù)并提示用戶輸入選項選擇繼續(xù)修改或者退出, 否則,提示并直接退出。</p><p> ?。?)省份批次信息刪除子模塊: 用于省份批次信息的刪除。首先系統(tǒng)會提示用戶輸入要刪除的省份編號(或名稱),若存在該省份,則輸出該省份所有年份的信息,否則提示用戶不存在該省份并退出。 輸出信息后,系統(tǒng)會提示用戶刪除省份信息全部年份或者刪除部分年份。 用戶輸
14、入選項后系統(tǒng)會提示用戶是否刪除。刪除成功后,系統(tǒng)會提示用戶是否繼續(xù)刪除或者退出。</p><p><b> 學(xué)校信息查詢維護(hù)</b></p><p> 學(xué)校查詢維護(hù)模塊主要用于學(xué)校信息的操作,若未添加數(shù)據(jù),操作時,系統(tǒng)均會給予提示用戶未加入數(shù)據(jù)。包括四個部分:學(xué)校信息查詢子模塊,學(xué)校信息添加子模塊,學(xué)校信息修改子模塊,學(xué)校信息刪除子模塊。 </p>
15、<p> ?。?)學(xué)校信息查詢子模塊:用于學(xué)校信息的查詢,包括2種查詢方式,一種是顯示所有的學(xué)校信息,第二種是根據(jù)學(xué)校編號(或名稱)查詢相應(yīng)的學(xué)校信息。兩種方式查詢后用戶可以選擇繼續(xù)查詢或者退出;</p><p> ?。?)學(xué)校信息添加子模塊: 用于添加學(xué)校信息的添加,提示用戶輸入相應(yīng)的數(shù)據(jù)。輸入數(shù)據(jù)后,若系統(tǒng)檢測到系統(tǒng)中已經(jīng)存在該數(shù)據(jù),則提示用戶并退出。</p><p> 數(shù)
16、據(jù)輸入時會對數(shù)據(jù)長度(字符串時)或者大小(整形時)有限制,若輸入錯誤則給與提示,并要求用戶重新輸入。輸入數(shù)據(jù)成功后,顯示用戶輸入的數(shù)據(jù),提示用戶是否確認(rèn)添加。若用戶選擇是,則添加,否則,提示添加失敗并退出;</p><p> ?。?)學(xué)校信息修改子模塊: 用于學(xué)校信息的修改。首先要求用戶輸入學(xué)校編號(或名稱),若存在該學(xué)校,則輸出該省份所有年份的信息及要修改的選項,否則提示用戶不存在該學(xué)校并退出。用戶需要根據(jù)提示
17、輸入選項,若選項不符合,則提示用戶,并要求用戶重新輸入選項。修改時,對于修改后數(shù)據(jù),若是字符串,則對其長度最大值進(jìn)行限制,若是整形數(shù)據(jù),則對其的取值范圍進(jìn)行限制,不滿足條件時需要重新輸入。 修改后,系統(tǒng)提示用戶是否刪除,用戶選擇是,則刪除數(shù)據(jù)并提示用戶輸入選項選擇繼續(xù)修改或者退出; 否則,提示并直接退出。</p><p> (4)學(xué)校信息刪除子模塊: 用于學(xué)校信息的刪除。首先系統(tǒng)會提示用戶輸入要刪除的學(xué)校編號
18、(或名稱),若存在該學(xué)校,則輸出該學(xué)校的信息,否則提示用戶不存在該學(xué)校并退出。 輸出信息后,系統(tǒng)會提示用戶刪除學(xué)校信息后專業(yè)信息及省份信息均會被刪除。 用戶輸入選項后系統(tǒng)會提示用戶是否刪除。刪除成功或失敗后,系統(tǒng)會自動退出。</p><p><b> 專業(yè)信息查詢維護(hù)</b></p><p> 專業(yè)信息查詢維護(hù)模塊主要用于專業(yè)信息的操作,若未添加數(shù)據(jù),操作時,
19、系統(tǒng)均會給予提示用戶未加入數(shù)據(jù)。包括四個部分:專業(yè)信息查詢子模塊,專業(yè)信息添加子模塊,專業(yè)信息修改子模塊,專業(yè)信息刪除子模塊。 </p><p> ?。?)專業(yè)信息查詢子模塊:用于專業(yè)信息的查詢,包括2種查詢方式,一種是根據(jù)專業(yè)編號(或名稱)查詢所有設(shè)有該專業(yè)的學(xué)校專業(yè)信息,第二種是根據(jù)學(xué)校編號(或名稱)及專業(yè)編號(或名稱)查詢相應(yīng)的專業(yè)信息。兩種方式查詢后用戶可以選擇繼續(xù)查詢或者退出;</p>&
20、lt;p> ?。?)專業(yè)信息添加子模塊: 用于添加專業(yè)信息的添加,提示用戶輸入相應(yīng)的數(shù)據(jù)。輸入數(shù)據(jù)后,若系統(tǒng)檢測到系統(tǒng)中已經(jīng)存在該數(shù)據(jù),則提示用戶并退出。</p><p> 數(shù)據(jù)輸入時會對數(shù)據(jù)長度(字符串時)或者大?。ㄕ螘r)有限制,若輸入錯誤則給與提示,并要求用戶重新輸入。輸入數(shù)據(jù)成功后,顯示用戶輸入的數(shù)據(jù),提示用戶是否確認(rèn)添加。若用戶選擇是,則添加,否則,提示添加失敗并退出;</p>&
21、lt;p> ?。?)專業(yè)信息修改子模塊: 用于專業(yè)信息的修改。首先要求用戶輸入專業(yè)編號(或名稱),若存在該專業(yè),則輸出所有設(shè)有該專業(yè)的學(xué)校專業(yè)信息及要修改的選項,否則提示用戶不存在該專業(yè)并退出。用戶需要根據(jù)提示輸入學(xué)校編號(或名車),若未找到改學(xué)校專業(yè),則提示用戶并退出;找到則輸出改專業(yè)信息,用戶需要根據(jù)提示輸入選項,若選項不符合,則提示用戶,并要求用戶重新輸入選項。修改時,對于修改后數(shù)據(jù),若是字符串,則對其長度最大值進(jìn)行限制,若
22、是整形數(shù)據(jù),則對其的取值范圍進(jìn)行限制,不滿足條件時需要重新輸入。 修改后,系統(tǒng)提示用戶是否刪除,用戶選擇是,則刪除數(shù)據(jù)并提示用戶輸入選項選擇繼續(xù)修改或者退出; 否則,提示并直接退出。</p><p> (4)專業(yè)信息刪除子模塊: 用于專業(yè)信息的刪除。首先要求用戶輸入專業(yè)編號(或名稱),若存在該專業(yè),則輸出所有設(shè)有該專業(yè)的學(xué)校專業(yè)信息及要修改的選項,否則提示用戶不存在該專業(yè)并退出。用戶需要根據(jù)提示輸入學(xué)校編號(
23、或名稱),若未找到改學(xué)校專業(yè),則提示用戶并退出;找到則輸出改專業(yè)信息,系統(tǒng)會提示刪除專業(yè)信息會刪除專業(yè)信息對應(yīng)的省份信息。刪除成功或失敗后,系統(tǒng)會自動退出。</p><p><b> 省份信息查詢維護(hù)</b></p><p> 省份信息查詢維護(hù)模塊主要用于專業(yè)信息的操作,若未添加數(shù)據(jù),操作時,系統(tǒng)均會給予提示用戶未加入數(shù)據(jù)。包括四個部分:專業(yè)信息查詢子模塊,專業(yè)信
24、息添加子模塊,專業(yè)信息修改子模塊,專業(yè)信息刪除子模塊。 </p><p> ?。?)省份信息查詢子模塊:用于省份信息的查詢,包括2種查詢方式,一種是根據(jù)省份編號(或名稱)查詢所有在改省份招有該專業(yè)的學(xué)校專業(yè)信息,第二種是根據(jù)學(xué)校編號(或名稱),專業(yè)編號(或名稱)及省份編號(或名稱)查詢相應(yīng)的專業(yè)信息。兩種方式查詢后用戶可以選擇繼續(xù)查詢或者退出;</p><p> ?。?)省份信息添加子模塊
25、: 用于添加省份信息的添加,提示用戶輸入相應(yīng)的數(shù)據(jù)。系統(tǒng)首先會輸出所有的省份信息,避免用戶輸入錯誤,輸入數(shù)據(jù)后,若系統(tǒng)檢測到系統(tǒng)中已經(jīng)存在該數(shù)據(jù),則提示用戶并退出。數(shù)據(jù)輸入時會對數(shù)據(jù)長度(字符串時)或者大?。ㄕ螘r)有限制,若輸入錯誤則給與提示,并要求用戶重新輸入。輸入數(shù)據(jù)成功后,顯示用戶輸入的數(shù)據(jù),提示用戶是否確認(rèn)添加。若用戶選擇是,則添加,否則,提示添加失敗并退出;</p><p> ?。?)省份信息修改子模
26、塊: 用于省份信息的修改。首先要求用戶輸入省份編號(或名稱),若存在該省份,則輸出所有在該省份開設(shè)有該專業(yè)的省份專業(yè)信息(基本信息),否則提示用戶不存在該專業(yè)并退出。系統(tǒng)會提示用戶根據(jù)上述輸出信息輸入專業(yè)編號(或名稱),若未找到專業(yè),則提示用戶并退出;找到則輸出該專業(yè)信息。最后要求學(xué)校輸入學(xué)校編號(或名稱),若未找到學(xué)校,則提示用戶并退出;找到則輸出該學(xué)校下的專業(yè)省份信息(包括每年的招生信息)。信息用戶需要根據(jù)提示輸入選項,若選項不符合
27、,則提示用戶,并要求用戶重新輸入選項。修改時,對于修改后數(shù)據(jù),若是字符串,則對其長度最大值進(jìn)行限制,若是整形數(shù)據(jù),則對其的取值范圍進(jìn)行限制,不滿足條件時需要重新輸入。 修改后,系統(tǒng)提示用戶是否刪除,用戶選擇是,則刪除數(shù)據(jù)并提示用戶輸入選項選擇繼續(xù)修改或者退出;否則,提示并直接退出。</p><p> (4)省份信息刪除子模塊: 用于專業(yè)信息的刪除。首先要求用戶輸入省份編號(或名稱),若存在該省份,則輸出所有在
28、該省份開設(shè)有該專業(yè)的省份專業(yè)信息(基本信息),否則提示用戶不存在該專業(yè)并退出。系統(tǒng)會提示用戶根據(jù)上述輸出信息輸入專業(yè)編號(或名稱),若未找到專業(yè),則提示用戶并退出;找到則輸出該專業(yè)信息。最后要求學(xué)校輸入學(xué)校編號(或名稱),若未找到學(xué)校,則提示用戶并退出;找到則輸出該學(xué)校下的專業(yè)省份信息(包括每年的招生信息)。系統(tǒng)會提示是否刪除。刪除成功或失敗后,系統(tǒng)會自動退出。</p><p><b> 幫助<
29、/b></p><p> 幫助模塊主要包括五個模塊:關(guān)于系統(tǒng)子模塊,關(guān)于批次子模塊,關(guān)于學(xué)校子模塊,關(guān)于專業(yè)子模塊,關(guān)于省份子模塊。</p><p> 每個子模塊主要是為用戶使用系統(tǒng)時更加方便的使用該系統(tǒng);</p><p><b> 退出</b></p><p> 退出模塊主要包括三個子模塊:重啟系統(tǒng)子模塊
30、,修改密碼子模塊,退出子模塊。</p><p> ?。?)重啟系統(tǒng)子模塊:主要是為了修改數(shù)據(jù)后重新查詢數(shù)據(jù)避免關(guān)掉系統(tǒng)的不便,重啟系統(tǒng)時,系統(tǒng)會提示用戶保存數(shù)據(jù),重啟后需要再次輸入密碼,重啟后需要再次導(dǎo)入數(shù)據(jù)。</p><p> ?。?)修改密碼子模塊:主要功能是方便系統(tǒng)修改密碼,以保證系統(tǒng)的安全性。</p><p> 修改密碼時首先要輸入原密碼,若輸入密碼與系統(tǒng)
31、密碼不匹配,則退出,否則修改密碼系統(tǒng)。,輸入新密碼時需要輸入兩次相同的密碼,且密碼不能為空。 設(shè)置密碼成功重新進(jìn)入主界面。</p><p> 數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明</p><p> 本系統(tǒng)采用一個十字交叉鏈表和一個單向鏈表鏈。</p><p> 在十字交叉鏈表中,各級鏈表都是單向鏈表,構(gòu)成三個方向的十字交叉鏈表結(jié)構(gòu)。主要存儲的信息為高校信息,專業(yè)信息,省份招
32、生信息。</p><p><b> 其數(shù)據(jù)結(jié)構(gòu)圖如下:</b></p><p> 十字交叉鏈表使用說明:</p><p> ?。?)大多數(shù)操作要對十字交叉鏈表進(jìn)行遍歷。</p><p> (2)本系統(tǒng)的所有功能的核心就是對十字鏈表的各種操作</p><p> ?。?)信息輸入處理即為以后進(jìn)先
33、出的方式創(chuàng)建十字鏈表</p><p> ?。?)查詢功能實(shí)質(zhì)是分別遍歷一級二級三級鏈表,或遍歷十字交叉鏈表</p><p> ?。?)信息插入處理即為在十字交叉鏈表中插入結(jié)點(diǎn)</p><p> (6)相關(guān)操作還包括刪除十字鏈表中的結(jié)點(diǎn)。</p><p> 在單向鏈表中,存儲的是省份近幾年的文理科的批次信息。</p><
34、p> 其數(shù)據(jù)結(jié)構(gòu)圖如下所示:</p><p><b> 單向鏈表使用說明:</b></p><p> (1)大多數(shù)操作要對單向鏈表進(jìn)行遍歷。</p><p> ?。?)信息輸入處理即為以先進(jìn)先出的方式創(chuàng)建十字鏈表</p><p> ?。?)查詢功能實(shí)質(zhì)是遍歷單向鏈表</p><p>
35、?。?)信息插入處理即為在單向鏈表中插入結(jié)點(diǎn)</p><p> ?。?)相關(guān)操作還包括刪除單向鏈表中的結(jié)點(diǎn)。</p><p> 在程序中各結(jié)構(gòu)的聲明為:</p><p> /*定義具體省份招生情況*/</p><p> typedef struct {</p><p> int year;
36、 /*年份*/</p><p> int scoreTop; /*專業(yè)錄取最高分*/</p><p> int scoreAverage; /*專業(yè)錄取平均分*/</p><p> int majorPlanNumber; /*專業(yè)計劃錄取人數(shù)*/</p><p>
37、 int majorActualNumber; /*專業(yè)實(shí)際錄取人數(shù)*/</p><p> int least; /*學(xué)校錄取最低分*/</p><p> int number; /*學(xué)校錄取總?cè)藬?shù)*/</p><p><b> }Accept;</b></p&
38、gt;<p> /*省份招生信息鏈結(jié)點(diǎn)結(jié)構(gòu)*/</p><p> typedef struct province_node{</p><p> char provinceId[3]; /*省份代碼*/</p><p> char provinceName[10]; /*省份名字*/</p><p&
39、gt; char majorId[7]; /*專業(yè)編號*/</p><p> char schoolId[5]; /*學(xué)校編號*/</p><p> Accept Science[3]; /*理科學(xué)校近三年招生情況*/</p><p> Accept Arts[3]; /*文
40、科學(xué)校近三年招生情況*/</p><p> int science; /*文科今年計劃招收人數(shù)*/</p><p> int arts; /*理科今年計劃招收人數(shù)*/</p><p> struct province_node *next; /*指向下一結(jié)點(diǎn)的指針*/</p>&l
41、t;p> }Province_node;</p><p> /*專業(yè)招生信息鏈結(jié)點(diǎn)結(jié)構(gòu)*/</p><p> typedef struct school_major_node{</p><p> char schoolId[5]; /*學(xué)校編號*/</p><p> char majorI
42、d[7]; /*專業(yè)編號*/</p><p> char majorName[20]; /*專業(yè)名稱*/</p><p> int rank; /*專業(yè)全國排名*/</p><p> struct school_major_node
43、*next; /*指向下一結(jié)點(diǎn)的指針*/</p><p> Province_node *province_next; /*指向省份的指針*/</p><p> }Major_node;</p><p> /*學(xué)校基本信息鏈表結(jié)構(gòu)*/</p><p> typedef struct school_node{&l
44、t;/p><p> char schoolId[5]; /*學(xué)校編號*/</p><p> char schoolName[20]; /*學(xué)校名稱*/</p><p> char schoolAddress[10]; /*學(xué)校地址*/</p><p> char sc
45、hoolPhone[14]; /*聯(lián)系方式*/</p><p> char schoolType[11]; /*學(xué)校類型*/</p><p> char schoolBatch[6]; /*學(xué)校批次*/</p><p> struct school_node *next; /*
46、指向下一結(jié)點(diǎn)的指針*/</p><p> Major_node *major_next; /*指向?qū)I(yè)的指針*/</p><p> }School_node;</p><p> /*省份批次基本信息*/</p><p> typedef struct province{</p><p> c
47、har provinceId[3]; /*省份代碼*/</p><p> char name[10]; /*省份名稱*/</p><p> int year; /*年份*/</p><p> int firstScore[2];
48、 /*文理科一本線*/</p><p> int secondScore[2]; /*文理科二本線*/</p><p> int thirdScore[2]; /*文理科三本線*/</p><p> struct province *next; /*指向下一結(jié)點(diǎn)指針*/&
49、lt;/p><p> }Province_Score_node;</p><p> 其中省份招生信息由于信息較多(需要近三年文理科在相關(guān)專業(yè)的招生信息),其結(jié)構(gòu)中又包括一個結(jié)構(gòu)Accept。</p><p> 程序結(jié)構(gòu)及流程圖(由于函數(shù)較多,只畫出部分函數(shù)流程圖)</p><p> (1)主函數(shù)main結(jié)構(gòu)圖</p><
50、;p><b> N</b></p><p><b> Y</b></p><p> N Y </p><p><b> N</b></p><p> Y Y
51、 N</p><p> ?。?)省份批次創(chuàng)建函數(shù)int Creat_List_1(Province_Score_node **phead)</p><p><b> Y</b></p><p><b> N</b></p><p><
52、;b> N</b></p><p><b> Y</b></p><p><b> Y </b></p><p><b> N</b></p><p><b> Y</b></p><p> ?。?)查找
53、函數(shù)SeekMajorNode(char *,char *)結(jié)構(gòu)圖;</p><p> N Y</p><p><b> Y</b></p><p><b> N</b></p><p><b> N <
54、/b></p><p><b> Y </b></p><p> ?。?)插入函數(shù)void InsertMajorNode()結(jié)構(gòu)圖;</p><p><b> Y</b></p><p><b> N</b></p><p><b&g
55、t; Y</b></p><p> ?。?)刪除函數(shù)void DeleteSchoolNode(void) 結(jié)構(gòu)圖;</p><p><b> Y</b></p><p><b> N</b></p><p><b> N</b></p>&l
56、t;p><b> Y</b></p><p><b> 五、試驗(yàn)結(jié)果;</b></p><p> ?。ㄓ捎谄邢?,未能將所有的功能均列出)</p><p> 進(jìn)入主操作界面前的界面</p><p><b> 2.主操作界面</b></p><
57、p> 各級一級菜單下的下拉菜單</p><p><b> 導(dǎo)入數(shù)據(jù)文件。</b></p><p><b> 保存數(shù)據(jù)文件</b></p><p> 按照多種方式查詢數(shù)據(jù)(如圖是按照第一種方式查詢,輸入年份2009 省份為hubei及第二種方式查詢,可以按照第三種方式查詢,這里不做闡述)</p>
58、<p><b> 方式1</b></p><p><b> 方式2</b></p><p> 添加省份批次信息(圖一是輸入文件中不存在的數(shù)據(jù),圖二是輸入存在的省份年份批次信息)</p><p><b> 圖1</b></p><p><b> 圖2
59、</b></p><p> 修改省份批次信息(如圖修改的是hubei 2010 年數(shù)據(jù))。</p><p> 刪除省份批次信息(如圖選擇刪除整個湖北省份批次信息,圖一是刪除改省份批次信息,圖二是刪除后查找改批次省份信息)</p><p><b> 圖1</b></p><p><b> 圖2
60、</b></p><p> 學(xué)校基本信息查詢(如圖上方是查詢huazhongkejidaxue(1023)時的顯示,下方是輸入不存在的學(xué)校時的顯示)。</p><p><b> 圖1</b></p><p> 11.學(xué)?;拘畔⒉迦牍δ埽▓D1是用戶輸入已經(jīng)存在的學(xué)校時的顯示,圖2是未添加時的顯示)</p><
61、;p><b> 圖1.</b></p><p><b> 圖2.</b></p><p> 12.學(xué)校基本信息修改(圖中是輸入huazhongkejidaxue(1023)時的修改截圖)</p><p> 13.學(xué)?;拘畔h除(圖1是刪除武漢大學(xué)時,圖2是刪除后查找武漢大學(xué)時的顯示)</p>
62、<p><b> 圖1.</b></p><p><b> 圖2.</b></p><p> 14.專業(yè)基本信息查詢(圖中選取的是華中科技大學(xué)信息安全專業(yè)(590208)作為查詢對象).</p><p> 15.專業(yè)信息添加(如圖顯示的是添加一個沒有學(xué)校對應(yīng)的)</p><p>
63、 16.專業(yè)信息修改功能(如圖修改的是華中科技大學(xué)信息安全專業(yè)的信息)</p><p> 17.專業(yè)信息刪除功能(如圖刪除的 是武漢大學(xué)的商務(wù)英語的專業(yè))</p><p> 18. 省份基本信息查詢功能(如圖查詢的是北京大學(xué)信息安全在湖北的近三年 的招生情況) </p><p> 19.省份基本信息添加函數(shù)(如圖顯示的是用戶誤輸入一個已經(jīng)存在的數(shù)據(jù)時的系統(tǒng)顯示
64、) </p><p> 20.省份基本信息修改函數(shù)(如圖修改的是清華大學(xué)商務(wù)英語在湖北的招生情況,系統(tǒng)顯示不存在改數(shù)據(jù)) </p><p> 21.省份信息刪除函數(shù)(如圖刪除的是北京大學(xué)商務(wù)英語在江西的招生情況,后圖為刪除后的查找顯示) </p><p> 22.幫助模塊四個子模塊。
65、 </p><p> 23.系統(tǒng)重啟功能(如圖1為重啟前的顯示,圖2 為選擇重啟后系統(tǒng)界面需要重新輸入密碼的界面)</p><p><b> 圖1.</b></p><p><b> 圖2 </b></p><p> 24.
66、重新設(shè)置密碼功能(如圖顯示的是密碼修改功能,下方顯示的是系統(tǒng)需要用戶輸入兩次不為空且不與原密碼的密碼,否則出錯)</p><p><b> 25,備份功能</b></p><p> 26.退出功能(如圖顯示的是系統(tǒng)提示用戶需要保存數(shù)據(jù))</p><p><b> 六.實(shí)驗(yàn)體會</b></p><p
67、> 經(jīng)過近兩個月的艱難摸索,終于完成了C語言實(shí)驗(yàn)課程設(shè)計要求的任務(wù),自己也從一個連指定教科書都看不懂的人變成一個可以挑出書本毛病的學(xué)生。課程設(shè)計是很好的運(yùn)用及鞏固所學(xué)知識的方法,例如,通過獨(dú)立自主完成課程設(shè)計,我發(fā)現(xiàn)自己對鏈表,指針,結(jié)構(gòu)以及函數(shù)的認(rèn)識上了一個臺階。同時,對于以后需要學(xué)習(xí)的匯編語言也不再恐懼,因?yàn)镃語言課程設(shè)計讓我相信----實(shí)踐出真知。</p><p> C語言課程設(shè)計鍛煉了我自主學(xué)習(xí)
68、的能力,在做課程設(shè)計之前,對于文件及界面設(shè)計一竅不通,通過在圖書館翻閱大量書籍,終于弄懂了文件的原理及界面設(shè)計的基本思路。它也告訴我們,凡事要著眼大局:做一個好的系統(tǒng)需要一個好的整體思路。比如說,是選擇先進(jìn)先出還是先進(jìn)后出的方式建立鏈表,都會對后期添加信息結(jié)點(diǎn)或刪除信息結(jié)點(diǎn)有影響,稍有不慎,便會出很大的錯誤,并且極難糾正。</p><p> 從整體上審視該系統(tǒng),我也發(fā)現(xiàn)了幾點(diǎn)較為明顯的缺點(diǎn)和優(yōu)點(diǎn)。</p&
69、gt;<p> 優(yōu)點(diǎn):從系統(tǒng)安全性來看,由于設(shè)有系統(tǒng)密碼及備份恢復(fù)功能,使得系統(tǒng)具有較強(qiáng)的安全性;從界面來看,設(shè)置有多重快捷鍵,如在一級菜單中,按鍵菜單首字母大小寫或ALT+菜單首字母大小寫均可以展開二級菜單,也可以按左右鍵移動選項,在二級菜單中,按鍵菜單首字母大小寫均可以運(yùn)行函數(shù);從信息顯示來看,均采用表格輸出,使信息顯示更加簡潔;從數(shù)據(jù)維護(hù)來看,修改或添加時對于字符串的長度或數(shù)字的大小均有要求(輸入錯誤時需重新輸入)
70、,同時,若用戶添加已經(jīng)存在的數(shù)據(jù)系統(tǒng)會自動顯示;從出錯處理來看,未導(dǎo)入數(shù)據(jù)時,系統(tǒng)會提示首先導(dǎo)入數(shù)據(jù)。退出及重啟時,系統(tǒng)會提示用戶首先保存數(shù)據(jù)。</p><p> 缺點(diǎn):由于有較多的出錯處理,代碼比較長,通用性較差,對于內(nèi)存的處理也不是很好。</p><p> 總而言之,課程設(shè)計可以讓我們很好的認(rèn)識并運(yùn)用C語言,課程設(shè)計理應(yīng)放在一個很高的地位。</p><p>
71、<b> 七、參考文獻(xiàn)</b></p><p> 《C語言程序設(shè)計》曹計昌,盧萍,李開編著. 科學(xué)出版社 ISBN 978-7-03-020908</p><p> 《C語言實(shí)驗(yàn)與課程設(shè)計》曹計昌,盧萍,李開編著. 科學(xué)出版社 ISBN 978-7-03-030379-0</p><p> 《C語言課程設(shè)計案例精編 》姜靈芝, 余鍵編
72、著 清華大學(xué)出版社 978-7-302-16686-3</p><p><b> 八、原程序 </b></p><p> 頭文件school.h原代碼</p><p> #include<stdio.h></p><p> #include<stdlib.h></p><
73、;p> #include<string.h></p><p> #include<dos.h></p><p> #include<conio.h> /*系統(tǒng)需要的頭文件*/</p><p> /*定義省份批次線的格式常量*/</p><p> #define HEAD1 &qu
74、ot; ----------------------------------ProvinceDate------------------------------\n"</p><p> #define HEAD2 " |ID| Name |Year|ArtFirst|SciFirst |ArtSecond|SciSecond|ArtThird |SciThird|\n"
75、 /*定義信息輸出表頭*/</p><p> #define HEAD3 " |--|---------|----|--------|---------|---------|---------|---------|--------|\n" /*定義多個信息輸出承接表*/</p><p> #d
76、efine FORMAT" |%-2.2s|%-9.9s|%-4.4d| %-3.3d | %-3.3d | %3.3d | %3.3d | %3.3d | %3.3d |\n" /*定義輸出格式*/</p><p> #define END " -----------------------------------------
77、-----------------------------------\n" /*定義輸出結(jié)尾*/</p><p> /*定義專業(yè)信息輸出時的格式常量*/</p><p> #define MAJOR_HEAD_1 " -------------------------THE IFO OF SCHOOL MAJOR----
78、-------------------------\n"</p><p> #define MAJOR_HEAD_2 " | MajorName(ID) | School Name |School Id| Rank of Nation|\n" /*定義信息輸出表頭*/</p><p> #define MAJOR
79、_HEAD_3 " |----------------------------|--------------------|---------|---------------|\n" /*定義多個信息輸出承接表*/</p><p> #define MAJOR_FORMAT " | %19.19s(%-6.6s)| %-19.19s| %-5.5s | %6d
80、 |\n" /*定義輸出格式*/</p><p> #define MAJOR_END " -----------------------------------------------------------------------------\n" /*定義輸出結(jié)尾*/</p><p> /
81、*定義學(xué)校信息輸出時的格式常量*/</p><p> #define SCHOOL_HEAD_1 " -----------------------------THE INFO OF SCHOOL-----------------------\n"</p><p> #define SCHOOL_HEAD_2 " | Id | School
82、 Name | Address | Phone | Type |Batch|\n" /*定義信息輸出表頭*/</p><p> #define SCHOOL_HEAD_3 " |----|-------------------|---------|--------------|------------|-----|\n"
83、/*定義多個信息輸出承接表*/</p><p> #define SCHOOL_FORMAT " |%-4.4s|%-19.19s|%-9.9s|%-14.14s|%-10.10s |%5.5s|\n" /*定義輸出格式*/</p><p> #define SCHOOL_END " -
84、---------------------------------------------------------------------\n" /*定義輸出結(jié)尾*/</p><p> /*定義省份信息輸出時的格式常量*/</p><p> #define PROVINCE_HEAD_1 " --------------------------THE
85、 INFO OF PROVINCE-------------------------\n"</p><p> #define PROVINCE_HEAD_2 " |Id| Name | Major Name | School Name | Sci N | Arts N |\n" /*定義省份信息輸出表頭*/</p><p
86、> #define PROVINCE_HEAD_3 " |--|---------|-------------------|-------------------|-------|--------|\n" /*定義多個信息輸出承接表*/</p><p> #define PROVINCE_FORMAT1 " |%-2.2s|%-9.9s|%-19.19s|%
87、-19.19s| %4d | %4d |\n" /*定義輸出格式*/</p><p> #define PROVINCE_HEAD_4 " --------------------------THE INFO OF PROVINCE(SCIENCE)----------------\n" /*定義文科信息輸出表頭*/&
88、lt;/p><p> #define PROVINCE_HEAD_5 " --------------------------THE INFO OF PROVINCE(ARTS)-------------------\n" /*定義理科信息輸出表頭*/</p><p> #define PROVINCE_HEAD_6 " |Year| Top
89、| Average | Plan |Actual| Percent |School Line| Total Numbe|\n" /*定義信息輸出表頭*/</p><p> #define PROVINCE_HEAD_7 " |----|-----|---------|------|------|---------|-----------|------------|\n"
90、 /*定義多個信息輸出承接表*/</p><p> #define PROVINCE_FORMAT2 " |%-4d| %-3d | %-3d | %-4d | %-4d | %-6.2f%% | %4d | %4d |\n" /*定義輸出格式*/</p><p> #define PROVINCE_END "
91、 -----------------------------------------------------------------------\n" /*定義輸出結(jié)尾*/</p><p> /*定義具體省份招生情況*/</p><p> typedef struct {</p><p> int year;
92、 /*年份*/</p><p> int scoreTop; /*專業(yè)錄取最高分*/</p><p> int scoreAverage; /*專業(yè)錄取平均分*/</p><p> int majorPlanNumber; /*專業(yè)計劃錄取人數(shù)*/</p><p> int m
93、ajorActualNumber; /*專業(yè)實(shí)際錄取人數(shù)*/</p><p> int least; /*學(xué)校錄取最低分*/</p><p> int number; /*學(xué)校錄取總?cè)藬?shù)*/</p><p><b> }Accept;</b></p>&l
94、t;p> /*省份招生信息鏈結(jié)點(diǎn)結(jié)構(gòu)*/</p><p> typedef struct province_node{</p><p> char provinceId[3]; /*省份代碼*/</p><p> char provinceName[10]; /*省份名字*/</p><p> cha
95、r majorId[7]; /*專業(yè)編號*/</p><p> char schoolId[5]; /*學(xué)校編號*/</p><p> Accept Science[3]; /*理科學(xué)校近三年招生情況*/</p><p> Accept Arts[3]; /*文科學(xué)校近三年招生
96、情況*/</p><p> int science; /*文科今年計劃招收人數(shù)*/</p><p> int arts; /*理科今年計劃招收人數(shù)*/</p><p> struct province_node *next; /*指向下一結(jié)點(diǎn)的指針*/</p><p>
97、 }Province_node;</p><p> /*專業(yè)招生信息鏈結(jié)點(diǎn)結(jié)構(gòu)*/</p><p> typedef struct school_major_node{</p><p> char schoolId[5]; /*學(xué)校編號*/</p><p> char majorId[7];
98、 /*專業(yè)編號*/</p><p> char majorName[20]; /*專業(yè)名稱*/</p><p> int rank; /*專業(yè)全國排名*/</p><p> struct school_major_node *next;
99、 /*指向下一結(jié)點(diǎn)的指針*/</p><p> Province_node *province_next; /*指向省份的指針*/</p><p> }Major_node;</p><p> /*學(xué)?;拘畔㈡湵斫Y(jié)構(gòu)*/</p><p> typedef struct school_node{</p>
100、<p> char schoolId[5]; /*學(xué)校編號*/</p><p> char schoolName[20]; /*學(xué)校名稱*/</p><p> char schoolAddress[10]; /*學(xué)校地址*/</p><p> char schoolPhon
101、e[14]; /*聯(lián)系方式*/</p><p> char schoolType[11]; /*學(xué)校類型*/</p><p> char schoolBatch[6]; /*學(xué)校批次*/</p><p> struct school_node *next; /*指向下一結(jié)點(diǎn)的指
102、針*/</p><p> Major_node *major_next; /*指向?qū)I(yè)的指針*/</p><p> }School_node;</p><p> /*省份批次基本信息*/</p><p> typedef struct province{</p><p> char prov
103、inceId[3]; /*省份代碼*/</p><p> char name[10]; /*省份名稱*/</p><p> int year; /*年份*/</p><p> int firstScore[2]; /*
104、文理科一本線*/</p><p> int secondScore[2]; /*文理科二本線*/</p><p> int thirdScore[2]; /*文理科三本線*/</p><p> struct province *next; /*指向下一結(jié)點(diǎn)指針*/</p>
105、;<p> }Province_Score_node;</p><p> /*定義全局變量*/</p><p> School_node *head=NULL;</p><p> Province_Score_node *headp=NULL;</p><p> char password_save[10];
106、 /*保存密碼的字符串*/</p><p> char *p_data="d:\\province.txt" ; /*省份批次線數(shù)據(jù)文件*/</p><p> char *school_data="d:\\sch.txt"; /*學(xué)?;緮?shù)據(jù)文件*/</p><p> char *major_
107、data="d:\\major.txt"; /*專業(yè)基本數(shù)據(jù)文件*/</p><p> char *province_data="d:\\pro.txt"; /*省份招生數(shù)據(jù)文件*/</p><p> char bufferMenu[80*25*2]; /*定義存儲緩沖區(qū)*/</p>
108、<p> char *password_data="d:\\password.dat"; /*保存密碼文件區(qū)*/</p><p><b> /*函數(shù)原型*/</b></p><p> void LodeData(); /*導(dǎo)入數(shù)據(jù)文件*/</p>&
109、lt;p> int Creat_List_1(Province_Score_node **); /*創(chuàng)建省份批次信息鏈表*/</p><p> int Creat_List_2(School_node ** ); /*創(chuàng)建三個方向的十字鏈表鏈表*/</p><p> School_node *SeekSchoolNode(char *);
110、/*根據(jù)學(xué)校編號或名稱查找相應(yīng)的結(jié)點(diǎn)*/</p><p> Major_node *SeekMajorNode(char *,char *); /*根據(jù)專業(yè)編號或名稱及學(xué)校編號或名稱查找相應(yīng)的結(jié)點(diǎn)*/</p><p> Major_node *SeekMajorNode1(char *); /*根據(jù)專業(yè)編號或名稱查找所有符合條件的結(jié)點(diǎn)*/</p><
111、p> Province_node *SeekProvinceNode(char *,char *,char *); /*根據(jù)省份編號及名稱,專業(yè)編號或名稱,學(xué)校編號或名稱查找相應(yīng)的結(jié)點(diǎn)*/</p><p> Province_node *SeekProvinceNode1(char * ); /*根據(jù)省份編號及名稱查找所有的結(jié)點(diǎn)*/</p><p>
112、Province_Score_node *SeekProvinceScoreNode1(char *); /*按省份編號或名稱查找所有符合條件的結(jié)點(diǎn),并形成后進(jìn)先出的鏈表返回*/</p><p> Province_Score_node *SeekProvinceScoreNode2(char *,int);/*省份編號及年份查找符合條件的點(diǎn)*/</p><p> Province
113、_Score_node *SeekProvinceScoreNode3(int ); /*按年份查找所有符合條件的結(jié)點(diǎn),并形成后進(jìn)先出的鏈表返回*/</p><p> void InquireProvinceBatchIfo();/*查詢省份批次信息*/</p><p> void InquireSchoolNodeIfo();/*查詢學(xué)校招生信息*/</p><
114、;p> void InquireMajorNodeIfo();/*查詢專業(yè)招生信息*/</p><p> void InquireProvinceNodeIfo();/*查詢省份招生信息*/</p><p> void SchoolInfoPrintf(School_node *,int);/*格式化輸出學(xué)校招生信息*/</p><p> void M
115、ajorInfoPrintf(Major_node *,int);/*格式化輸出專業(yè)信息*/</p><p> void ProvinceInfoPrintf(Province_node *,int,int ,int ,int );/*格式化輸出省份招生信息*/</p><p> void ProvinceBatchInfoPrintf(Province_Score_node *,i
116、nt);/*格式化輸出省份批次信息*/</p><p> void PrintfProject(Accept *,int ,int );/*格式化輸出文科或理科招生信息信息*/</p><p> void ModifySchoolNode();/*按選項修改學(xué)校招生基本信息*/</p><p> void ModifyMajorNode();/*按選項修改專業(yè)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《c語言程序設(shè)計》課程設(shè)計報告-招生信息查詢系統(tǒng)
- 《c語言程序設(shè)計》課程設(shè)計報告-景點(diǎn)查詢系統(tǒng)
- c語言課程設(shè)計---學(xué)生成績管理查詢系統(tǒng)
- 《c語言程序設(shè)計》課程設(shè)計--工資管理查詢系統(tǒng)
- c語言課程設(shè)計-摩托車資料查詢
- 【課程設(shè)計】c語言課程設(shè)計
- c語言課程設(shè)計
- c語言課程設(shè)計
- c語言課程設(shè)計
- c語言課程設(shè)計---飛機(jī)訂票系統(tǒng)
- c語言校園導(dǎo)游系統(tǒng)課程設(shè)計
- c語言課程設(shè)計-賓館管理系統(tǒng)
- c語言課程設(shè)計-成績管理系統(tǒng)
- c語言課程設(shè)計--宿舍管理系統(tǒng)
- c語言課程設(shè)計-學(xué)籍管理系統(tǒng)
- c語言課程設(shè)計車票管理系統(tǒng)
- c語言課程設(shè)計——飛機(jī)訂票系統(tǒng)
- c語言課程設(shè)計--車票管理系統(tǒng)
- c語言課程設(shè)計--銷售管理系統(tǒng)
- c語言課程設(shè)計——教材管理系統(tǒng)
評論
0/150
提交評論