版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告課程設(shè)計(jì)報(bào)告題目:招生查詢系統(tǒng)課程名稱:專業(yè)班級(jí):C 語言程序設(shè)計(jì)信息平安 202102 班學(xué)姓號(hào):名: 指導(dǎo)教師:報(bào)告日期: 2021 年 10 月 10 日計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告任 務(wù) 書招生查詢系統(tǒng) 主要內(nèi)容建立招生信息系統(tǒng),提供創(chuàng)立、編輯和綜合查詢等根本業(yè)務(wù)管理和效勞。 任務(wù)要求收集與閱讀相關(guān)文獻(xiàn)資料,確定系統(tǒng)目標(biāo)與范圍,分析系統(tǒng)需求,確定系統(tǒng)功能;設(shè)計(jì)系統(tǒng)方案,完成系統(tǒng)實(shí)現(xiàn);提交?課程設(shè)計(jì)報(bào)告?。 參考文獻(xiàn)1曹計(jì)昌,盧萍,李開. C 語言程序設(shè)計(jì),北京:科學(xué)出版社,20212李開,盧萍,曹計(jì)昌. C 語言實(shí)
2、驗(yàn)與課程設(shè)計(jì),北京:科學(xué)出版社,20213張引. C 程序設(shè)計(jì)根底課程設(shè)計(jì), 杭州: 浙江大學(xué)出版社,20074黃明,梁旭,萬洪莉. C 語言課程設(shè)計(jì),北京: 電子工業(yè)出版社,2006題目和難度選擇的規(guī)定:1、題目選擇的規(guī)定學(xué)號(hào)尾數(shù)最后一位為:1、4、7、0 者自動(dòng)選擇題目樓盤查詢系統(tǒng)。學(xué)號(hào)尾數(shù)最后一位為:2、5、8 者自動(dòng)選擇題目招生查詢系統(tǒng)。學(xué)號(hào)尾數(shù)最后一位為:3、6、9 者自動(dòng)選擇題目景點(diǎn)查詢系統(tǒng)。2、難度選擇的規(guī)定1選三個(gè)方向的十字交叉鏈表數(shù)據(jù)結(jié)構(gòu)的難度系數(shù)為 1;選二個(gè)方向十字交叉鏈表數(shù)據(jù)結(jié)構(gòu)的難度系數(shù)為。2采用文本菜單界面的難度系數(shù)為 1;采用教材 p215-p216 類似的簡易菜
3、單的難度系數(shù)為。請每個(gè)同學(xué)根據(jù)實(shí)際掌握程度和能力選擇相應(yīng)難度系數(shù)的題,要求能夠獨(dú)立完成。根本要求:1、只能使用 C 語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀。2、要有用戶界面。要求至少采用教材 p215-p216 類似的簡易菜單;鼓勵(lì)采用文本菜單界面甚至采用圖形菜單界面。3、必須使用結(jié)構(gòu)和十字交叉鏈表等數(shù)據(jù)結(jié)構(gòu)。4、使用文件保存數(shù)據(jù)。5、至少輸出一份報(bào)表屏幕輸出即可,鼓勵(lì)自行增加新功能。6、設(shè)計(jì)測試的模擬數(shù)據(jù),完成系統(tǒng)測試。7、寫實(shí)驗(yàn)報(bào)告要求正規(guī)打印,A4 幅面,內(nèi)容包括:題目系統(tǒng)功能模塊結(jié)構(gòu)圖數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說明程序結(jié)構(gòu)畫流程圖各模塊的功能試驗(yàn)結(jié)果包括輸入數(shù)據(jù)和輸出結(jié)果體會(huì)華中科技大學(xué)?
4、C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告參考文獻(xiàn)附錄:程序清單及源程序軟盤7、凡發(fā)現(xiàn)抄襲,抄襲者與被抄襲者皆以零分計(jì)入本課程設(shè)計(jì)成績并向?qū)W院報(bào)告。凡發(fā)現(xiàn)實(shí)驗(yàn)報(bào)告或源程序雷同,涉及的全部人員皆以零分計(jì)入本課程設(shè)計(jì)成績并向?qū)W院報(bào)告。8、課程設(shè)計(jì)報(bào)告封面統(tǒng)一格式,標(biāo)準(zhǔn)格式見附件。指導(dǎo)建議:系統(tǒng)功能系統(tǒng)主要是提供招生信息的快速查詢、檢索和統(tǒng)計(jì)。應(yīng)該具有按高校、按專業(yè)等查詢招生信息;組合條件檢索招生信息;統(tǒng)計(jì)招生情況等。系統(tǒng)數(shù)據(jù)系統(tǒng)主要涉及“高校、“專業(yè)和“招生3 類信息。“高校信息由高校編號(hào)、高校名稱、高校地址和聯(lián)系 等數(shù)據(jù)工程組成,“專業(yè)信息由專業(yè)編號(hào)、專業(yè)名稱等數(shù)據(jù)工程組成,“招生信息由招生年份、招生方案、實(shí)際
5、招生、最高分?jǐn)?shù)和最低分?jǐn)?shù)等數(shù)據(jù)工程組成。在磁盤上,建議采用 3 個(gè)文件分別存儲(chǔ)“高校、 專業(yè)和“招生的數(shù)據(jù)。在“專業(yè)信息中增加高校編號(hào),在“招生信息中增加高校編號(hào)和專業(yè)編號(hào)。在內(nèi)存中,建議采用如以下圖 2 所示的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)。head高校 1高校 2高校 n專業(yè) 11招生 111招生 11p 專業(yè) 12專業(yè) 1m圖 2 招生查詢系統(tǒng)的鏈表結(jié)構(gòu)示意圖教學(xué)網(wǎng)站HYPERLINK :/221.234.47.93/jp2021/hzkjdx/cyycxsj/創(chuàng)立文本菜單與打印輸出的提示1、與創(chuàng)立文本菜單的相關(guān)函數(shù)如下,請自行查閱相關(guān)資料,了解這些函數(shù)的用法。window、textbackground、
6、clrscr、textcolor、cprintf、bioskey、gotoxy、gettext、puttext、putch2、打印輸出使用以下語句。FILE*fp;fp=fopen(“PRN,w);華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告目錄1緒言.- 11.1 課程背景和意義 .- 11.2 國內(nèi)外研究現(xiàn)狀.- 11.3 課程設(shè)計(jì)的主要研究工作 .- 11.3.1 課程設(shè)計(jì)題目 .- 11.3.2 編譯環(huán)境.- 11.3.3 系統(tǒng)功能 .- 11.3.4 系統(tǒng)數(shù)據(jù).- 22.系統(tǒng)需求分析與總體設(shè)計(jì).- 32.1 系統(tǒng)需求分析 .- 3-系統(tǒng)總體設(shè)計(jì) .- 3-3.系統(tǒng)詳細(xì)設(shè)計(jì).- 43.1
7、有關(guān)數(shù)據(jù)結(jié)構(gòu)的定義 .- 43.2 算法設(shè)計(jì).- 74.系統(tǒng)實(shí)現(xiàn)與測試.- 104.1 系統(tǒng)實(shí)現(xiàn) .- 104.1.1 人機(jī)交互界面模塊 .- 104.1.2 功能函數(shù)模塊 .- 104.1.3 函數(shù)模塊.- 114.2 系統(tǒng)測試 .- 114.2.1 載入功能模塊.- 114.2.2 文件模塊.- 124.2.3 數(shù)據(jù)維護(hù)模塊.- 134.2.4 數(shù)據(jù)查詢模塊.- 154.2.5 數(shù)據(jù)統(tǒng)計(jì)模塊.- 174.2.6 幫助模塊.- 185.總結(jié)與體會(huì).- 20參考文獻(xiàn).- 21附錄.- 22-華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告1緒言1.1 課程背景和意義在數(shù)字化的社會(huì)中,由于信息量巨大,人
8、們僅僅從書本中查詢資料已不太方便,所以我們更急迫的需要一些用于查詢資料的系統(tǒng)。并且在完成了一學(xué)期的 C語言課程之后,為了對 C 有更進(jìn)一步的了解,我們以招生查詢系統(tǒng)為主題,以雙向十字鏈表為根底,完成了這次的課程設(shè)計(jì)。1.2 國內(nèi)外研究現(xiàn)狀現(xiàn)如今,高考過后,擇校仍牽動(dòng)著每一位考生與家長的心弦,此時(shí),往年的分?jǐn)?shù)參考對于他們來說尤其重要。國內(nèi)大學(xué)數(shù)量繁多,專業(yè)更是五花八門,難以找到一個(gè)整合信息的平臺(tái)供考生與家長查詢。因此,招生查詢系統(tǒng)應(yīng)運(yùn)而生。通過該系統(tǒng),考生們可以方便的查詢到自己心儀的學(xué)校與適合自己的專業(yè)。1.3 課程設(shè)計(jì)的主要研究工作1.3.1 課程設(shè)計(jì)題目招生查詢系統(tǒng)1.3.2 編譯環(huán)境Win
9、dows 7 64 位環(huán)境下,使用 CodeBlocks 編譯器編寫。1.3.3 系統(tǒng)功能提供招生信息的統(tǒng)計(jì),查詢和檢索。具有 按高校、專業(yè)等查詢招生信息 組合條件查詢 統(tǒng)計(jì)每年招生情況等等功能。-1-|華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告1.3.4 系統(tǒng)數(shù)據(jù)系統(tǒng)主要涉及“高校、“專業(yè)和“招生3 類信息?!案咝P畔⒂筛咝>幪?hào)、高校名稱、高校簡介,高校地址和高校聯(lián)系 等數(shù)據(jù)工程組成;“專業(yè)信息由專業(yè)所屬高校編號(hào)、專業(yè)編號(hào)和專業(yè)名稱等數(shù)據(jù)工程組成;“招生信息由招生所屬高校編號(hào)、招生所屬高校編號(hào)、招生年份、招生計(jì)劃、實(shí)際招生、最高分?jǐn)?shù)和最低分?jǐn)?shù)等數(shù)據(jù)工程組成。在磁盤上,采用 3 個(gè)文本文件分別存
10、儲(chǔ)“高校、 專業(yè)和“招生的數(shù)據(jù)。在“專業(yè)信息中增加專業(yè)所屬高校編號(hào),在“招生信息中增加招生所屬高校編號(hào)和招生所屬專業(yè)編號(hào)。-2-|華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告2.系統(tǒng)需求分析與總體設(shè)計(jì)2.1 系統(tǒng)需求分析隨著全國高校的增多,以及相應(yīng)專業(yè)的增多,對應(yīng)的資料也越來越多。用戶需要一個(gè)能簡便的查詢出所需資料的軟件。而我正是面向這些對象,為滿足他們的需求所做的系統(tǒng)。它具有以下功能:1 保存,備份,復(fù)原文件信息。2 數(shù)據(jù)維護(hù)添加,修改,刪除高校、專業(yè)、招生信息。3 查詢高校、專業(yè)、招生信息。并可以根據(jù)分?jǐn)?shù)組合查詢當(dāng)年能讀的專業(yè)。4 統(tǒng)計(jì)所有信息,統(tǒng)計(jì)招生總?cè)藬?shù)。系統(tǒng)總體設(shè)計(jì)招生查詢系統(tǒng)由五大功
11、能模塊組成:【文件】, 【數(shù)據(jù)維護(hù)】,【數(shù)據(jù)查詢】,【數(shù)據(jù)統(tǒng)計(jì)】,【幫助】:如圖 2.2.1 所示1、【文件】包括:【數(shù)據(jù)保存】,【數(shù)據(jù)備份】,【數(shù)據(jù)恢復(fù)】,【退出 Alt+X】;2、 【數(shù)據(jù)維護(hù)】包括: 【維護(hù)高校信息】、【維護(hù)專業(yè)信息】、【維護(hù)招生信息】;3、 【數(shù)據(jù)查詢】包括: 【查詢高校信息】、【查詢專業(yè)信息】、【查詢招生信息】、【組合查詢】;4、【數(shù)據(jù)統(tǒng)計(jì)】包括:【整體統(tǒng)計(jì)】、【招生總?cè)藬?shù)】;5、【幫助】包括:【幫助主題】、【關(guān)于】;-3-|華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告3.系統(tǒng)詳細(xì)設(shè)計(jì)3.1 有關(guān)數(shù)據(jù)結(jié)構(gòu)的定義一高校信息鏈結(jié)點(diǎn)結(jié)構(gòu):typedef struct sch_n
12、odechar sch_id10;char sch_name50;char sch_intro100;char sch_add50;char sch_tel20;struct major_node *mnext;struct sch_node *next;SCH_NODE;二專業(yè)信息鏈結(jié)點(diǎn)結(jié)構(gòu):typedef struct major_nodechar major_sch10;char major_id10;char major_name30;/*高校編號(hào)*/*高校名稱*/* 高校簡介*/* 高校地址*/* 聯(lián)系 */*指向?qū)I(yè)信息結(jié)點(diǎn)的指針*/* 指向下一結(jié)點(diǎn)的指針*/*所屬高校編號(hào)*/*專
13、業(yè)編號(hào)*/*專業(yè)名稱*/struct enrol_node *enext; /*指向招生信息支鏈的指針*/struct major_node *next;MAJOR_NODE;三招生信息鏈結(jié)點(diǎn)結(jié)構(gòu):typedef struct enrol_nodechar enrol_sch10;char enrol_major10;char enrol_id10;int enrol_year;int enrol_num;int enrol_realnum;int enrol_highest;int enrol_lowest;/*指向下一結(jié)點(diǎn)的指針*/*招生所屬高校編號(hào)*/*招生所屬專業(yè)編號(hào)*/*招生信息編號(hào)
14、*/*招生年份*/*招生方案*/*實(shí)際招生*/*最高分*/*最低分*/-4-|華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告struct enrol_node *next;/*指向下一結(jié)點(diǎn)的指針*/ENROL_NODE;四屏幕窗口信息鏈結(jié)點(diǎn)結(jié)點(diǎn)結(jié)構(gòu):typedef struct layer_node */char LayerNo;SMALL_RECT rcArea;CHAR_INFO *pContent;char *pScrAtt;/* 彈出窗口層數(shù)*/* 彈出窗口區(qū)域坐標(biāo)*/* 彈出窗口區(qū)域字符單元原信息存儲(chǔ)緩沖區(qū)/* 彈出窗口區(qū)域字符單元原屬性值存儲(chǔ)緩沖區(qū)*/struct layer_node
15、*next; /* 指向下一結(jié)點(diǎn)的指針*/ LAYER_NODE;五標(biāo)簽束結(jié)構(gòu):typedef struct labe1_bundle char *ppLabel;COORD *pLoc;int num; LABEL_BUNDLE;六熱區(qū)結(jié)構(gòu):typedef struct hot_area SMALL_RECT *pArea;char *pSort;*/char *pTag;int num;/*標(biāo)簽字符串?dāng)?shù)組首地址*/* 標(biāo)簽定位數(shù)組首地址*/* 標(biāo)簽個(gè)數(shù)*/*熱區(qū)定位數(shù)組首地址*/* 熱區(qū)類別(按鍵、文本框、選項(xiàng)框)數(shù)組首地址/* 熱區(qū)序號(hào)數(shù)組首地址*/*熱區(qū)個(gè)數(shù)*/ HOT_AREA;表
16、高校信息統(tǒng)計(jì)表-5-|數(shù)據(jù)結(jié)構(gòu)名稱:高校信息 數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí):SCH_NODE數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)標(biāo)識(shí)數(shù)據(jù)類型數(shù)據(jù)長度取值范圍例如華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告表 專業(yè)信息統(tǒng)計(jì)表表 招生信息統(tǒng)計(jì)表-6-|數(shù)據(jù)結(jié)構(gòu)名稱:專業(yè)信息 數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí):ENROL_NODE數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)標(biāo)識(shí)數(shù)據(jù)類型數(shù)據(jù)長度取值范圍例如所屬高校編號(hào)enrol_schchar10“yyyy/mm/dd1所屬專業(yè)編號(hào)enrol_majorchar10“yyyy/mm/dd11招生信息編號(hào)enrol_idchar10“yyyy/mm/dd“111招生年份enrol_yearint4-21474836482147483647
17、2021方案招生enrol_numint4-2147483648214748364790實(shí)際招生enrol_realnumint4-2147483648214748364789最高分?jǐn)?shù)enrol_highestint4-21474836482147483647629最低分?jǐn)?shù)enrol_lowestint4-21474836482147483647600高校編號(hào)sch_idChar10“yyyy/mm/dd1高校名稱sch_namechar10“yyyy/mm/dd華中科技大學(xué)高校簡介sch_introchar100“985 高校高校地址sch_addchar50“湖北省武漢市珞喻路 1037號(hào)
18、高校 sch_telchar20據(jù)結(jié)構(gòu)名稱:專業(yè)信息 數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí):MAJOR_NODE數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)標(biāo)識(shí)數(shù)據(jù)類型數(shù)據(jù)長度取值范圍例如專業(yè)所屬高校編號(hào)major_schchar10“yyyy/mm/dd1專業(yè)編號(hào)major_idchar10“yyyy/mm/dd11專業(yè)名稱major_namechar30信息平安華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告3.2 算法設(shè)計(jì)一總體流程圖 3.2.1 總體流程二文件模塊圖 3.2.2 文件模塊-7-|華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告三數(shù)據(jù)維護(hù)模塊圖 3.2.3 數(shù)據(jù)維護(hù)模塊四數(shù)據(jù)查詢模塊圖 3.2.4 數(shù)據(jù)查詢模塊
19、-8-|華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告五數(shù)據(jù)統(tǒng)計(jì)模塊圖 3.2.5 數(shù)據(jù)統(tǒng)計(jì)模塊六幫助模塊圖 3.2.6 幫助模塊-9-|華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告4.系統(tǒng)實(shí)現(xiàn)與測試4.1 系統(tǒng)實(shí)現(xiàn)本系統(tǒng)在 windows 7 操作系統(tǒng)下,以 C 語言為根底,由 CodeBlocks 編譯器編譯完成。4.1.1 人機(jī)交互界面模塊1界面初始化這一局部主要是創(chuàng)立簡易文本菜單的初始化界面,通過利用控制臺(tái)函數(shù)及有關(guān)屏幕緩沖區(qū)的一些基層函數(shù)在屏幕上生成剛進(jìn)入程序的控制臺(tái)窗口。2界面的彈出窗口在指定的區(qū)域顯示信息,使每個(gè)功能模塊的根底功能能夠有條理的顯示出其相關(guān)性,同時(shí)也方面用戶調(diào)用和操作。3鍵盤
20、和鼠標(biāo)信息的獲取及函數(shù)調(diào)用通過獲取鍵盤及鼠標(biāo)在控制臺(tái)的信息,調(diào)用相關(guān)的函數(shù)運(yùn)行,從而到達(dá)相應(yīng)的功能。4.1.2 功能函數(shù)模塊1文件模塊數(shù)據(jù)保存:將鏈表中的數(shù)據(jù)重新以文本格式寫入到三個(gè)根底文件里。數(shù)據(jù)備份:將鏈表中的數(shù)據(jù)以文本格式寫入到另外三個(gè)做為備份的根底文件中去。數(shù)據(jù)恢復(fù):從備份的三個(gè)文本文件中將數(shù)據(jù)加載到鏈表中去。退出:從該招生查詢信息系統(tǒng)中退出。2數(shù)據(jù)維護(hù)模塊維護(hù)高校信息:共包含查找插入、修改和刪除三個(gè)功能,分別調(diào)用插入高校結(jié)點(diǎn)函數(shù)、修改高校結(jié)點(diǎn)函數(shù)和刪除高校結(jié)點(diǎn)函數(shù)進(jìn)行操作。維護(hù)專業(yè)信息:與維護(hù)高校信息類似。維護(hù)招生信息:與維護(hù)高校信息類似。3數(shù)據(jù)查詢模塊- 10 - |華中科技大學(xué)?
21、C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告查詢高校信息:調(diào)用查詢高校信息結(jié)點(diǎn)函數(shù)查找相應(yīng)的結(jié)點(diǎn),并顯示出來。查詢專業(yè)信息:調(diào)用查詢專業(yè)信息結(jié)點(diǎn)函數(shù)查找相應(yīng)的結(jié)點(diǎn),并顯示出來。查詢招生信息:調(diào)用查詢招生信息結(jié)點(diǎn)函數(shù)查找相應(yīng)的結(jié)點(diǎn),并顯示出來。組合查詢模塊:選擇年份和設(shè)置分?jǐn)?shù)線,通過指針遍歷的形式,遍歷所有招生結(jié)點(diǎn),找到對應(yīng)年份且錄取分?jǐn)?shù)線低于所設(shè)置分?jǐn)?shù)線的所有結(jié)點(diǎn),并顯示出來。4數(shù)據(jù)統(tǒng)計(jì)模塊統(tǒng)計(jì)高校數(shù)量:采用指針遍歷,遍歷主鏈上所有高校結(jié)點(diǎn),遍歷的結(jié)點(diǎn)數(shù)即為高??倲?shù)。統(tǒng)計(jì)招生總?cè)藬?shù):采用指針遍歷,遍歷所有結(jié)點(diǎn),找出對應(yīng)年份的所有結(jié)點(diǎn),并對每個(gè)結(jié)點(diǎn)中的實(shí)際招生一項(xiàng)求和,和即為該年份招生總?cè)藬?shù)。5幫助模塊幫助主題:
22、顯示一些幫助信息。關(guān)于.:顯示該系統(tǒng)的作者等信息。4.1.3 函數(shù)模塊函數(shù)皆在頭文件中有定義以及功能表達(dá)。詳見附錄。4.2 系統(tǒng)測試4.2.1 載入功能模塊一、模塊功能與設(shè)計(jì)目標(biāo)載入已有的數(shù)據(jù)文件。二、測試當(dāng)文件夾里沒有相應(yīng)文件圖時(shí),會(huì)出現(xiàn)如圖提示。當(dāng)文件夾里有相應(yīng)文件圖時(shí),會(huì)出現(xiàn)如圖提示。圖圖圖- 11 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告4.2.2 文件模塊一、模塊功能與設(shè)計(jì)目標(biāo)擁有【數(shù)據(jù)保存】、【數(shù)據(jù)備份】、【數(shù)據(jù)恢復(fù)】、【退出 Alt+X】。管理已有文件數(shù)據(jù),對文件數(shù)據(jù)進(jìn)行保存,備份,恢復(fù)以及程序的退出。二、測試數(shù)據(jù)保存數(shù)據(jù)保存會(huì)在文件夾里面不存在三個(gè)文檔時(shí)自動(dòng)生成該文檔,并
23、保存本次操作所對文件數(shù)據(jù)進(jìn)行的修改增添,修改,刪除。數(shù)據(jù)備份數(shù)據(jù)備份會(huì)在文件夾里面不存在三個(gè)文檔是自動(dòng)生成該文檔,并將現(xiàn)有數(shù)據(jù)保存至這三個(gè)文檔當(dāng)中。以作備份使用。數(shù)據(jù)恢復(fù)數(shù)據(jù)恢復(fù)會(huì)將上一次所備份的三個(gè)文檔中的數(shù)據(jù)拷貝到三個(gè)文檔中,以恢復(fù)上個(gè)保存節(jié)點(diǎn)中的內(nèi)容。退出退出系統(tǒng)。圖 4.2.2.1 及圖圖- 12 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告4.2.3 數(shù)據(jù)維護(hù)模塊一、模塊功能與設(shè)計(jì)目標(biāo)擁有【維護(hù)高校信息】、【維護(hù)專業(yè)信息】、【維護(hù)招生信息】三個(gè)模塊。每個(gè)模塊對應(yīng)有插入、修改、刪除信息的功能。二、測試以維護(hù)高校信息為例維護(hù)高校信息1.插入高校信息起始查詢學(xué)校編號(hào)為 4 的學(xué)校,顯示未
24、找到高校圖圖然后點(diǎn)擊維護(hù)高校信息,顯示如圖圖假設(shè)輸入非 1,2,3 三個(gè)數(shù)字,系統(tǒng)會(huì)提示錯(cuò)誤,并提示重新輸入。選擇 1 插入高校信息,添加新的高校信息。圖圖- 13 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告再次查詢編號(hào)為 4 的高校。資料已經(jīng)在數(shù)據(jù)庫里。圖圖2.修改高校信息起始查詢編號(hào)為 1 的高校信息圖圖選擇 2 修改高校信息。對編號(hào)為 1 的高校資料進(jìn)行修改。圖圖查詢編號(hào)為 1 的高校圖,修改成功。- 14 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告圖3.刪除高校信息刪除上述編號(hào)為 1 的高校信息。圖圖查詢編號(hào)為 1 的高校,查找不到,刪除成功。圖圖在以上插入,修改,刪除操作后。
25、務(wù)必記住進(jìn)行數(shù)據(jù)保存,否那么修改的數(shù)據(jù)不會(huì)保存至數(shù)據(jù)庫中。4.2.4 數(shù)據(jù)查詢模塊一、模塊功能與設(shè)計(jì)目標(biāo)分【查詢高校信息】、【查詢專業(yè)信息】、【查詢招生信息】、【組合查詢】。對已有資料進(jìn)行查詢,得到自己想要的資料。支持編號(hào)查詢,編號(hào)由數(shù)據(jù)統(tǒng)計(jì)中給出。圖。- 15 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告圖組合查詢能夠查詢某年某分?jǐn)?shù)能夠讀取哪些學(xué)校哪些專業(yè)。以方便用戶篩選。二、測試查詢編號(hào)為 1 的高校圖。圖查詢編號(hào)為 11 的專業(yè)圖。圖- 16 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告查詢編號(hào)為 11 的專業(yè),編號(hào)為 111 的招生信息。圖圖組合查詢 2021 年 620 分能報(bào)取
26、的專業(yè)。 圖 數(shù)據(jù)盡為虛構(gòu),實(shí)際數(shù)據(jù)以網(wǎng)上為準(zhǔn)圖4.2.5 數(shù)據(jù)統(tǒng)計(jì)模塊一、模塊功能與設(shè)計(jì)目標(biāo)擁有【整體統(tǒng)計(jì)】和【招生總?cè)藬?shù)】兩局部?!菊w統(tǒng)計(jì)】為統(tǒng)計(jì)數(shù)據(jù)庫中現(xiàn)有的所有數(shù)據(jù),并列表顯示出來?!菊猩?cè)藬?shù)】為統(tǒng)計(jì)某年招生總?cè)藬?shù),以供參考。二、測試【整體統(tǒng)計(jì)】圖。- 17 - | 華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告圖【招生總?cè)藬?shù)】統(tǒng)計(jì) 2021 年招生總?cè)藬?shù)。圖數(shù)據(jù)盡為虛構(gòu),實(shí)際數(shù)據(jù)以網(wǎng)上為準(zhǔn)圖4.2.6 幫助模塊一、模塊功能與設(shè)計(jì)目標(biāo)有【幫助主題】和【關(guān)于】兩局部。【幫助主題】為介紹該系統(tǒng)內(nèi)容以及幫助用戶運(yùn)用該系統(tǒng)?!娟P(guān)于】申明版權(quán)。二、測試【幫助主題】圖- 18 - |華中科技大學(xué)?C
27、 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告圖【關(guān)于】圖圖- 19 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告5.總結(jié)與體會(huì)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)開展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在是生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握計(jì)算機(jī)開發(fā)技術(shù)十分重要的。這次的課程設(shè)計(jì)實(shí)驗(yàn)是對我們進(jìn)入大學(xué)以來學(xué)習(xí) C 語言結(jié)果的一次考驗(yàn)。全盤由自己動(dòng)手,發(fā)現(xiàn)并解決問題。并發(fā)現(xiàn)了許多自己缺乏之處,在實(shí)踐過程中,平時(shí)沒有掌握的知識(shí)一一暴露并自行經(jīng)過查閱,思考等方式解決。此次課程設(shè)計(jì)真是一個(gè)漫長的過程
28、,從開始做到完成消耗一個(gè)月以上的時(shí)間。從不知道如何開頭到碼出 3000 行代碼也是經(jīng)歷了很多艱辛。與平時(shí)的上機(jī)訓(xùn)練不一樣,課程設(shè)計(jì)是個(gè)龐大的工作,有超過 50 個(gè)函數(shù),并且相互鑲嵌調(diào)用,如果沒有提前籌劃好,只會(huì)越做越亂。我明白了程序員并不是一個(gè)簡單的工作,這個(gè)工作需要全局觀,需要細(xì)心,需要無限的耐心。在 3000 行代碼中,一個(gè)小小的符號(hào)可能就會(huì)引起全局性的 bug。這次在檢查前我甚至就因?yàn)槁┝?3 個(gè)換行符,導(dǎo)致保存和讀取方式不一致,使得 I/O 沒有實(shí)現(xiàn)。直到檢查完回來才注意到。在這個(gè)過程中,我不僅穩(wěn)固了書本上學(xué)習(xí)的內(nèi)容,掌握設(shè)計(jì)的根本方法,強(qiáng)化上機(jī)動(dòng)手能力,還進(jìn)一步掌握了:數(shù)據(jù)類型、分支
29、控制、循環(huán)控制、函數(shù)定義與調(diào)用、結(jié)構(gòu)體、數(shù)組、指針、文件操作、編譯預(yù)處理等;通過課程設(shè)計(jì),掌握了程序的局部測試、調(diào)試方法,學(xué)會(huì)較大程序的系統(tǒng)測試和調(diào)試方法。通過這次課程設(shè)計(jì),我懂得了理論與實(shí)際相結(jié)合很重要,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把理論和實(shí)踐相結(jié)合才能真正的提高自己的能力。當(dāng)上程序員還有很長的路要走,我一定要以這次實(shí)踐為引,將課程設(shè)計(jì)的精神帶到學(xué)習(xí)生活中,讓生活更加美好。- 20 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告參考文獻(xiàn)1曹計(jì)昌,盧萍,李開著。?C 語言與程序設(shè)計(jì)?。北京:電子工業(yè)出版社,。2李開,盧萍,曹計(jì)昌 著。?C 語言實(shí)驗(yàn)與程序設(shè)計(jì)?。背景:科學(xué)出版社,2021。3
30、(美)克尼漢Kernighan,B.W.(美)里奇Ritchie,D.M.著;徐寶文,李志譯.?C 語言程序設(shè)計(jì)第二版?。北京:機(jī)械工業(yè)出版社,。4(美)湯多Tondo,C.L.,(美)吉米拜爾Gimpe,S.E.著;楊濤等譯。?C語言程序設(shè)計(jì)第二版?習(xí)題解答。北京:機(jī)械工業(yè)出版社,。- 21 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告附錄頭文件#include #include #include #include #include #include #include #include #include #include #include #ifndef TYPE_H_INCLUDED#d
31、efine TYPE_H_INCLUDED#define SCR_ROW 40#define SCR_COL 100/*招生信息鏈結(jié)點(diǎn)結(jié)構(gòu)*/typedef struct enrol_nodechar enrol_sch10;char enrol_major10;char enrol_id10;int enrol_year;int enrol_num;int enrol_realnum;int enrol_highest;int enrol_lowest;struct enrol_node *next;ENROL_NODE;/*專業(yè)信息鏈結(jié)點(diǎn)結(jié)構(gòu)*/typedef struct major_n
32、odechar major_sch10;char major_id10;char major_name30;/*屏幕行數(shù)*/*屏幕列數(shù)*/*招生所屬高校編號(hào)*/*招生所屬專業(yè)編號(hào)*/*招生信息編號(hào)*/*招生年份*/*招生方案*/*實(shí)際招生*/*最高分*/*最低分*/*指向下一結(jié)點(diǎn)的指針*/*所屬高校編號(hào)*/*專業(yè)編號(hào)*/*專業(yè)名稱*/- 22 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告struct enrol_node *enext;struct major_node *next;MAJOR_NODE;/*高校信息鏈結(jié)點(diǎn)結(jié)構(gòu)*/typedef struct sch_node/*指向招生信息
33、支鏈的指針*/*指向下一結(jié)點(diǎn)的指針*/char sch_id10;char sch_name50;char sch_intro100;char sch_add50;char sch_tel20;struct major_node *mnext;struct sch_node *next; /*/*高校編號(hào)*/*高校名稱*/*高校簡介*/*高校地址*/*聯(lián)系 */*指向?qū)I(yè)信息結(jié)點(diǎn)的指針*/指向下一結(jié)點(diǎn)的指針*/SCH_NODE;/*屏幕窗口信息鏈結(jié)點(diǎn)結(jié)點(diǎn)結(jié)構(gòu)*/typedef struct layer_node char LayerNo; /* 彈出窗口層數(shù)*/SMALL_RECT rcAre
34、a; /* 彈出窗口區(qū)域坐標(biāo)*/CHAR_INFO *pContent; /* 彈出窗口區(qū)域字符單元原信息存儲(chǔ)緩沖區(qū)*/char *pScrAtt; /* 彈出窗口區(qū)域字符單元原屬性值存儲(chǔ)緩沖區(qū)*/struct layer_node *next; /* 指向下一結(jié)點(diǎn)的指針*/ LAYER_NODE;/*標(biāo)簽束結(jié)構(gòu)*/typedef struct labe1_bundle char *ppLabel; /*標(biāo)簽字符串?dāng)?shù)組首地址*/COORD *pLoc; /* 標(biāo)簽定位數(shù)組首地址*/int num; /* 標(biāo)簽個(gè)數(shù)*/ LABEL_BUNDLE;/*熱區(qū)結(jié)構(gòu)*/- 23 - |華中科技大學(xué)?C
35、語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告typedef struct hot_area SMALL_RECT *pArea;/*熱區(qū)定位數(shù)組首地址*/char *pSort; /* 熱區(qū)類別(按鍵、文本框、選項(xiàng)框)數(shù)組首地址*/char *pTag; /* 熱區(qū)序號(hào)數(shù)組首地址*/int num; /*熱區(qū)個(gè)數(shù)*/ HOT_AREA;LAYER_NODE *gp_top_layer = NULL;SCH_NODE *gp_head = NULL;char *gp_sys_name = 招生查詢系統(tǒng);/*系統(tǒng)名稱*/*彈出窗口信息鏈鏈頭*/*主鏈頭指針*/char *gp_sch_info_filename = s
36、chool.txt; /*高校信息數(shù)據(jù)文件*/char *gp_major_info_filename = major.txt; /*專業(yè)信息數(shù)據(jù)文件*/char *gp_enrol_code_filename = enrol.txt; /*招生信息數(shù)據(jù)文件*/char *gp_backupsch_info_filename = backupschool.txt; /*高校信息數(shù)據(jù)文件*/char *gp_backupmajor_info_filename = backupmajor.txt; /*專業(yè)信息數(shù)據(jù)文件*/char *gp_backupenrol_code_filename = b
37、ackupenrol.txt; /*招生信息數(shù)據(jù)文件*/char *ga_main_menu = 文件(F),數(shù)據(jù)維護(hù)(M),數(shù)據(jù)查詢(Q),數(shù)據(jù)統(tǒng)計(jì)(S),幫助(H);/*定義系統(tǒng)主菜單*/char *ga_sub_menu = S 數(shù)據(jù)保存B 數(shù)據(jù)備份R 數(shù)據(jù)恢復(fù),/*定義系統(tǒng)子菜單*/X 退出Alt+X,N 維護(hù)高校信息L 維護(hù)專業(yè)信息U 維護(hù)招生信息N 查詢高校信息L 查詢專業(yè)信息U 查詢招生信息,Z 組合查詢U 整體統(tǒng)計(jì),- 24 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告S 招生總?cè)藬?shù) ,T 幫助主題,A 關(guān)于. ;int ga_sub_menu_count = 4, 3, 5
38、, 2, 3; /*各主菜單項(xiàng)下子菜單的個(gè)數(shù)*/int gi_sel_menu = 1; /*被選中的主菜單項(xiàng)號(hào),初始為 1*/int gi_sel_sub_menu = 0; /*被選中的子菜單項(xiàng)號(hào),初始為 0,表示未選中*/CHAR_INFO *gp_buff_menubar_info = NULL;*/CHAR_INFO *gp_buff_stateBar_info = NULL;/*存放菜單條屏幕區(qū)字符信息的緩沖區(qū)/*存放狀態(tài)條屏幕區(qū)字符信息的緩沖區(qū)*/char *gp_scr_att = NULL; /*存放屏幕上字符單元屬性值的緩沖區(qū)*/char gc_sys_state = 0;
39、HANDLE gh_std_out;HANDLE gh_std_in;/*用來保存系統(tǒng)狀態(tài)的字符*/*標(biāo)準(zhǔn)輸出設(shè)備句柄*/*標(biāo)準(zhǔn)輸入設(shè)備句柄*/int CreatList(SCH_NODE *pphead); /*數(shù)據(jù)鏈表初始化*/void InitInterface(void); /*系統(tǒng)界面初始化*/void ClearScreen(void); /*清屏*/void ShowMenu(void); /*顯示菜單欄*/void PopInfo(void); /*顯示標(biāo)簽及內(nèi)容*/void PopMenu(int num); /*顯示下拉菜單*/void PopPrompt(int num)
40、;/*顯示彈出窗口*/void PopUp(SMALL_RECT *, WORD, LABEL_BUNDLE *, HOT_AREA *); /*彈出窗口屏幕信息維護(hù)*/void PopOff(void); /*關(guān)閉頂層彈出窗口*/void DrawBox(SMALL_RECT *parea); /*繪制邊框*/void LocSubMenu(int num, SMALL_RECT *parea); /*主菜單下拉菜單定位*/void ShowState(void); /*顯示狀態(tài)欄*/void TagMainMenu(int num); /*標(biāo)記被選中的主菜單項(xiàng)*/void TagSubMe
41、nu(int num); /*標(biāo)記被選中的子菜單項(xiàng)*/int DealConInput(HOT_AREA *phot_area, int *pihot_num); /*控制臺(tái)輸入處理*/void SetHotPoint(HOT_AREA *phot_area, int hot_num); /*設(shè)置熱區(qū)*/void RunSys(SCH_NODE *pphd); /*系統(tǒng)功能模塊的選擇和運(yùn)行*/BOOL ExeFunction(int main_menu_num, int sub_menu_num); /*功能模塊的調(diào)用*/void CloseSys(SCH_NODE *phd);/*退出系統(tǒng)*
42、/- 25 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告BOOL LoadData(void);BOOL SaveData(void);BOOL BackupData(void);BOOL RestoreData(void);BOOL ExitSys(void);BOOL HelpTopic(void);BOOL AboutSch(void);/*數(shù)據(jù)加載*/*保存數(shù)據(jù)*/*備份數(shù)據(jù)*/*恢復(fù)數(shù)據(jù)*/*退出系統(tǒng)*/*幫助主題*/*關(guān)于系統(tǒng)*/BOOL MaintainSchInfo(void); /*維護(hù)高校信息*/BOOL MaintainMajorInfo(void); /*維護(hù)專業(yè)信息
43、*/BOOL MaintainEnrolInfo(void); /*維護(hù)招生信息*/BOOL QuerySchInfo(void); /*查詢高校信息*/BOOL QueryMajorInfo(void); /*查詢專業(yè)信息*/BOOL QueryEnrolInfo(void); /*查詢招生信息*/BOOL QueryMajorInfoM(void); /*組合查詢相應(yīng)的專業(yè)*/BOOL StatEnrolNum(void);/*招生總數(shù)統(tǒng)計(jì)*/BOOL InsertSchNode(SCH_NODE *phd, SCH_NODE *psch_node); /*插入高校信息結(jié)點(diǎn)*/BOOL I
44、nsertMajorNode(SCH_NODE *hd, MAJOR_NODE *pmajor_node); /*插入專業(yè)信息結(jié)點(diǎn)*/BOOL InsertEnrolNode(SCH_NODE *phd, ENROL_NODE *penrol_node);/*插入招生信息結(jié)點(diǎn)*/BOOL DelSchNode(SCH_NODE *hd, char *sch_id); /*刪除高校信息結(jié)點(diǎn)*/BOOL DelMajorNode(SCH_NODE *hd,char *major_id); /*刪除專業(yè)信息結(jié)點(diǎn)*/BOOL DelEnrolNode(SCH_NODE *hd,char * enrol
45、_major,char *enrol_id);/*刪除招生信息結(jié)點(diǎn)*/BOOL ModifSchNode(SCH_NODE *hd,char *sch_id,char *sch_name,char *sch_intro,char*sch_add,char *sch_tel);BOOL ModifMajorNode(SCH_NODE *hd,char *major_sch,char *major_id,char*major_name);/*修改專業(yè)信息結(jié)點(diǎn)*/BOOL ModifEnrolNode(SCH_NODE *hd,char *enrol_major,char *enrol_id,int
46、 enrol_year,int enrol_num,int enrol_realnum,int enrol_highest,intenrol_lowest);/*修改招生信息結(jié)點(diǎn)*/SCH_NODE *SeekSchNode(SCH_NODE *hd,char *sch_id); /*查找高校信息結(jié)點(diǎn)*/MAJOR_NODE *SeekMajorNode(SCH_NODE *phd, char *major_id); /*查找專業(yè)根本信息結(jié)點(diǎn)*/ENROL_NODE *SeekEnrolNode(SCH_NODE *hd, char *enrol_major, char *enrol_id);
47、/*查找招生信息結(jié)點(diǎn)*/void SeekMajorNodeM (void);/*模糊查詢專業(yè)信息結(jié)點(diǎn)*/- 26 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告BOOL JudgeMajorNodeItem(MAJOR_NODE *pmajor_node, char *pcond);/*判斷專業(yè)信息數(shù)據(jù)項(xiàng)是否滿足查詢條件*/BOOL MatchString(char *string_item, char *pcond);/*字符串與查詢條件是否滿足指定的運(yùn)算關(guān)系*/BOOL MatchChar(char char_item, char *pcond);/*字符與查詢條件是否滿足指定的運(yùn)算關(guān)系
48、*/BOOL SaveSysData(void); /*保存系統(tǒng)數(shù)據(jù)*/BOOL BackupSysData(void); /*備份系統(tǒng)數(shù)據(jù)*/BOOL RestoreSysData(void); /*恢復(fù)系統(tǒng)數(shù)據(jù)*/#endif /* TYPE_H_INCLUDED*/源程序(main.c)#include main.hint main()COORD size = SCR_COL, SCR_ROW;/*窗口緩沖區(qū)大小*/gh_std_out = GetStdHandle(STD_OUTPUT_HANDLE); /* 獲取標(biāo)準(zhǔn)輸出設(shè)備句柄*/gh_std_in = GetStdHandle(S
49、TD_INPUT_HANDLE); /* 獲取標(biāo)準(zhǔn)輸入設(shè)備句柄*/SetConsoleTitle(gp_sys_name); /*設(shè)置窗口標(biāo)題*/SetConsoleScreenBufferSize(gh_std_out, size); /*設(shè)置窗口緩沖區(qū)大小 80*25*/LoadData();InitInterface();PopInfo();RunSys(&gp_head);CloseSys(gp_head);/*數(shù)據(jù)加載*/*界面初始化*/*顯示標(biāo)簽及內(nèi)容*/*系統(tǒng)功能模塊的選擇及運(yùn)行*/*退出系統(tǒng)*/return 0;/* 函數(shù)名稱: LoadData* 函數(shù)功能: 將三類根底數(shù)據(jù)從
50、數(shù)據(jù)文件載入到內(nèi)存緩沖區(qū)和十字鏈表中.* 輸入?yún)?shù): 無* 輸出參數(shù): 無* 返 回 值: BOOL 類型, 功能函數(shù)中除了函數(shù) ExitSys 的返回值可以為 FALSE 外,*其他函數(shù)的返回值必須為 TRUE.* 調(diào)用說明: 為了能夠以統(tǒng)一的方式調(diào)用各功能函數(shù), 將這些功能函數(shù)的原型設(shè)為*一致, 即無參數(shù)且返回值為 BOOL. 返回值為 FALSE 時(shí), 結(jié)束程序運(yùn)行.*/- 27 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告BOOL LoadData()int Res = 0;gc_sys_state = 1 | 2;Res = CreatList(&gp_head);gc_sys_s
51、tate |= Res;gc_sys_state &= (4 + 8 + 16 - Res);if (gc_sys_state sch_id,pSchNode-sch_name,pSchNode-sch_intro,pSchNode-sch_add,pSchNode-sch_tel);pSchNode-mnext=NULL;pSchNode-next=hd;hd=pSchNode;fclose(out_s);if(hd=NULL)printf(高校信息數(shù)據(jù)文件加載失敗!n);return re;printf(高校信息數(shù)據(jù)文件加載成功!n);re+=4;*phead=hd;if(out_m=fo
52、pen(gp_major_info_filename,r+)=NULL)printf(專業(yè)信息數(shù)據(jù)文件翻開失??!n);printf(專業(yè)信息數(shù)據(jù)文件翻開成功!n);re+=8;/*從數(shù)據(jù)文件讀取專業(yè)信息存入主鏈對應(yīng)結(jié)點(diǎn)的專業(yè)信息支鏈中*/while(!feof(out_m)/*創(chuàng)立結(jié)點(diǎn),存放從數(shù)據(jù)文件中讀出的專業(yè)信息*/pMajorNode=(MAJOR_NODE *)calloc(1,sizeof(MAJOR_NODE);- 29 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告fscanf(out_m,%s %s %s,pMajorNode-major_sch,pMajorNode-majo
53、r_id,pMajorNode-major_name);pMajorNode-enext=NULL;/*在主鏈上查找該專業(yè)所對應(yīng)的主鏈結(jié)點(diǎn)*/pSchNode=hd;while(out_m!=NULL&strcmp(pSchNode-sch_id,pMajorNode-major_sch)!=0)pSchNode=pSchNode-next;/*假設(shè)找到,那么將結(jié)點(diǎn)以后進(jìn)先出方式插入學(xué)生信息支鏈*/if(pSchNode!=NULL)pMajorNode-next=pSchNode-mnext;pSchNode-mnext=pMajorNode;/*假設(shè)未找到,那么釋放所創(chuàng)立結(jié)點(diǎn)的內(nèi)存空間*/
54、elsefree(out_m);fclose(out_m);if(out_e=fopen(gp_enrol_code_filename,r+)=NULL)printf(招生信息數(shù)據(jù)文件翻開失??!n);return re;printf(招生信息數(shù)據(jù)文件翻開成功!n);re+=16;/*從數(shù)據(jù)文件中讀取招生信息數(shù)據(jù),存入專業(yè)信息支鏈對應(yīng)結(jié)點(diǎn)的招生信息支鏈中*/while(!feof(out_e)/*創(chuàng)立結(jié)點(diǎn),存放從數(shù)據(jù)文件中讀出的招生信息*/pEnrolNode=(ENROL_NODE *)calloc(1,sizeof(ENROL_NODE);fscanf(out_e,%s %s %s %d %
55、d %d %d %d,pEnrolNode-enrol_sch,pEnrolNode-enrol_major,pEnrolNode-enrol_id,&(pEnrolNode-enrol_year),&(pEnrolNode-enrol_num),&(pEnrolNode-enrol_realnum),&(pEnrolNode-enrol_highest),&(pEnrolNode-enrol_lowest);/*查找招生信息結(jié)點(diǎn)所屬的專業(yè)結(jié)點(diǎn)*/pSchNode=hd;find=0;while(pSchNode!=NULL&strcmp(pSchNode-sch_id,pEnrolNode-
56、enrol_sch)!=0)- 30 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告pSchNode=pSchNode-next;pMajorNode=pSchNode-mnext;while(pMajorNode!=NULL&strcmp(pMajorNode-major_id,pEnrolNode-enrol_major)!=0)pMajorNode=pMajorNode-next;/*假設(shè)找到,那么將結(jié)點(diǎn)以后進(jìn)先出方式插入專業(yè)信息支鏈*/if(pSchNode!=NULL&pMajorNode!=NULL)pEnrolNode-next=pMajorNode-enext;pMajorNo
57、de-enext=pEnrolNode;find=1;/*假設(shè)未找到,那么釋放所創(chuàng)立結(jié)點(diǎn)的內(nèi)存空間*/elsefree(pEnrolNode);fclose(out_e);return re;/* 函數(shù)名稱: InitInterface* 函數(shù)功能: 初始化界面.* 輸入?yún)?shù): 無* 輸出參數(shù): 無* 返 回 值: 無* 調(diào)用說明:*/void InitInterface()WORD att = FOREGROUND_RED | FOREGROUND_GREEN |FOREGROUND_INTENSITY| BACKGROUND_BLUE | BACKGROUND_GREEN; /*黃色前景和
58、淡藍(lán)色背景*/- 31 - |華中科技大學(xué)?C 語言程序設(shè)計(jì)?實(shí)驗(yàn)報(bào)告SetConsoleTextAttribute(gh_std_out, att); /*設(shè)置控制臺(tái)屏幕緩沖區(qū)字符屬性*/ClearScreen(); /* 清屏*/*創(chuàng)立彈出窗口信息堆棧,將初始化后的屏幕窗口當(dāng)作第一層彈出窗口*/gp_scr_att = (char *)calloc(SCR_COL * SCR_ROW, sizeof(char);/*屏幕字符屬性*/gp_top_layer = (LAYER_NODE *)malloc(sizeof(LAYER_NODE);gp_top_layer-LayerNo = 0;
59、 /*彈出窗口的層號(hào)為 0*/gp_top_layer-rcArea.Left = 0;/*彈出窗口的區(qū)域?yàn)檎麄€(gè)屏幕窗口*/gp_top_layer-rcArea.Top = 0;gp_top_layer-rcArea.Right = SCR_COL - 1;gp_top_layer-rcArea.Bottom = SCR_ROW - 1;gp_top_layer-pContent = NULL;gp_top_layer-pScrAtt = gp_scr_att;gp_top_layer-next = NULL;ShowMenu();ShowState();/*顯示菜單欄*/*顯示狀態(tài)欄*/r
60、eturn;/* 函數(shù)名稱: ClearScreen* 函數(shù)功能: 去除屏幕信息.* 輸入?yún)?shù): 無* 輸出參數(shù): 無* 返 回 值: 無* 調(diào)用說明:*/void ClearScreen(void)CONSOLE_SCREEN_BUFFER_INFO bInfo;COORD home = 0, 0;unsigned long size;GetConsoleScreenBufferInfo( gh_std_out, &bInfo );/*取屏幕緩沖區(qū)信息*/size = bInfo.dwSize.X * bInfo.dwSize.Y; /*計(jì)算屏幕緩沖區(qū)字符單元數(shù)*/*將屏幕緩沖區(qū)所有單元的字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師職業(yè)發(fā)展與成長規(guī)劃方案
- 2025廣西師范大學(xué)高層次人才公開招聘153人備考題庫及答案詳解1套
- 園藝花鏡養(yǎng)護(hù)及植物配置方案
- 金融行業(yè)風(fēng)險(xiǎn)防控操作流程
- 金融行業(yè)員工獎(jiǎng)金及薪酬激勵(lì)政策
- 2026山東德州市國企外包崗位工作人員招聘備考題庫有完整答案詳解
- 定制化產(chǎn)品特色性承諾書(9篇)
- 管線資源清查項(xiàng)目實(shí)施方案
- 急危重癥救治標(biāo)準(zhǔn)操作流程
- 市場調(diào)研與信息收集模板
- IATF16949-質(zhì)量手冊(過程方法無刪減版)
- 妊娠合并膽汁淤積綜合征
- 河南省安陽市滑縣2024-2025學(xué)年高二數(shù)學(xué)上學(xué)期期末考試試題文
- 新疆維吾爾自治區(qū)普通高校學(xué)生轉(zhuǎn)學(xué)申請(備案)表
- 內(nèi)鏡中心年終總結(jié)
- 園林苗木容器育苗技術(shù)
- 陜西省2023-2024學(xué)年高一上學(xué)期新高考解讀及選科簡單指導(dǎo)(家長版)課件
- 兒科學(xué)熱性驚厥課件
- 《高職應(yīng)用數(shù)學(xué)》(教案)
- 漢堡規(guī)則中英文
- GB/T 5231-2022加工銅及銅合金牌號(hào)和化學(xué)成分
評(píng)論
0/150
提交評(píng)論