C語(yǔ)言課程設(shè)計(jì)報(bào)告報(bào)告—學(xué)生宿舍的管理系統(tǒng)設(shè)計(jì)報(bào)告_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告報(bào)告—學(xué)生宿舍的管理系統(tǒng)設(shè)計(jì)報(bào)告_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告報(bào)告—學(xué)生宿舍的管理系統(tǒng)設(shè)計(jì)報(bào)告_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告報(bào)告—學(xué)生宿舍的管理系統(tǒng)設(shè)計(jì)報(bào)告_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告報(bào)告—學(xué)生宿舍的管理系統(tǒng)設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩62頁(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、-. z.課 程 設(shè) 計(jì) 報(bào) 告課程名稱 C語(yǔ)言程序設(shè)計(jì) 課題名稱 學(xué)生宿舍管理系統(tǒng) 專 業(yè)班 級(jí)學(xué) 號(hào)姓 名指導(dǎo)教師2012年6月19日工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 C語(yǔ)言程序設(shè)計(jì) 課 題 學(xué)生宿舍管理系統(tǒng) 專業(yè)班級(jí) 學(xué)生 學(xué) 號(hào) 指導(dǎo)老師 審 批 任務(wù)書下達(dá)日期 2012 年 6 月 19 日任務(wù)完成日期 2012年 7 月 4 日一、設(shè)計(jì)容與設(shè)計(jì)要求設(shè)計(jì)容:學(xué)生宿舍管理系統(tǒng)設(shè)計(jì)涉及的知識(shí)點(diǎn):掌握并熟練運(yùn)用C語(yǔ)言的基本數(shù)據(jù)類型與各種表達(dá)式,程序的流程控制語(yǔ)句;掌握數(shù)組的基本概念。熟練掌握一維數(shù)組、二維數(shù)組的應(yīng)用、掌握字符數(shù)組與字符串的關(guān)系以及字符串的簡(jiǎn)單處理。掌握函數(shù)的定義,

2、函數(shù)的返回值,函數(shù)的調(diào)用,函數(shù)的形式參數(shù)和實(shí)際參數(shù)之間的關(guān)系;掌握變量的作用域與生存期,了解函數(shù)的作用域。掌握結(jié)構(gòu)體的概念,結(jié)構(gòu)體類型的定義,結(jié)構(gòu)體變量的定義和初始化,結(jié)構(gòu)體成員的表示,結(jié)構(gòu)體變量的賦值含義,結(jié)構(gòu)體與指針、函數(shù)的關(guān)系。掌握文件、文件類型指針的基本概念,熟練掌握文件的打開與關(guān)閉以及文件的建立、讀寫等有關(guān)操作。設(shè)計(jì)要求:用C語(yǔ)言實(shí)現(xiàn)系統(tǒng);利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)學(xué)生宿舍信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);應(yīng)提供一個(gè)界面來(lái)調(diào)用各個(gè)功能,調(diào)用界面和各個(gè)功能的操作界面應(yīng)盡可能清晰美觀;各項(xiàng)顯示數(shù)據(jù)均要求以表格的形式輸出;在各功能子模塊中應(yīng)設(shè)計(jì)相應(yīng)的二級(jí)菜單。2) 建立一

3、個(gè)學(xué)生宿舍信息數(shù)據(jù)庫(kù),文件名為ss*k.t*t,并從該文件中讀取數(shù)據(jù);3) 學(xué)生宿舍管理系統(tǒng)應(yīng)能提供以下功能:系統(tǒng)以菜單方式工作:通過(guò)提示用戶輸入一個(gè)數(shù)字選項(xiàng),調(diào)用相應(yīng)的功能函數(shù)。顯示功能:完成全部宿舍信息的顯示,顯示時(shí)按表格的形式,且應(yīng)有表頭;追加功能:完成一個(gè)(或多個(gè))學(xué)生入住宿舍的登記(追加記錄),要求在追加過(guò)程中有相應(yīng)的提示信息,完成追加后能重新顯示;查詢功能:要求可選擇按指定*和指定兩種方式定位查詢,查詢的結(jié)果要求以表格的形式顯示,若查詢不到應(yīng)給出相應(yīng)的提示信息。刪除功能:要求可按指定的*和指定的兩種定位方式刪除學(xué)生在宿舍的記錄。修改功能:要求能按*或按兩種定位方式,且可以按用戶要求

4、修改記錄中除*和以外的指定容,并重新顯示。)統(tǒng)計(jì)模塊:能按指定的校區(qū)、宿舍棟號(hào)、統(tǒng)計(jì)入住該棟的學(xué)生人數(shù),或統(tǒng)計(jì)指定的班級(jí)入住*棟的人數(shù),并將統(tǒng)計(jì)的結(jié)果以及被統(tǒng)計(jì)的人員的信息用表格的形式顯示;排序功能:按宿舍類別排序(升序)要求在刪除模塊、修改模塊和查詢模塊中若找不到所需的記錄時(shí),系統(tǒng)設(shè)計(jì)中應(yīng)有一定的提示信息。4) 說(shuō)明:要求將修改后的數(shù)據(jù)寫入到一個(gè)新的數(shù)據(jù)文件nwes*k.t*t中。對(duì)系統(tǒng)有興趣的同學(xué)可以在實(shí)現(xiàn)基本要求的基礎(chǔ)上,完善系統(tǒng)的其它功能。5) 學(xué)生宿舍管理系統(tǒng)采用一個(gè)結(jié)構(gòu)體數(shù)組,宿舍生信息數(shù)據(jù)庫(kù)結(jié)構(gòu)如下:char ssdh4; /*宿舍棟號(hào)*/ int fjh; /*房間號(hào)*/ lo

5、ng *h /*/ char name10; /*/ char *b4; /*性別*/ char bj12; /*班級(jí)*/ char phone12; /*/ int *q; /*校區(qū)*/ int sslb; /*宿舍類別*/注意:*不能重復(fù)且不少于4位數(shù)字,各項(xiàng)字符串的長(zhǎng)度要求在410之間,數(shù)據(jù)庫(kù)應(yīng)有10條或多于10條以上的記錄。6) 要求:要求每個(gè)學(xué)生必須獨(dú)立思考,認(rèn)真并按時(shí)完成本課程設(shè)計(jì)所包含的所有容;要求學(xué)生必須按照課程設(shè)計(jì)報(bào)告的完整格式說(shuō)明設(shè)計(jì)容,設(shè)計(jì)任務(wù)分析過(guò)程和算法,給出程序流程圖和全部源程序;設(shè)計(jì)報(bào)告的完整格式應(yīng)包括以下部分的容:系統(tǒng)設(shè)計(jì)總體思路;系統(tǒng)的主要功能;系統(tǒng)功能模塊的

6、劃分(要求畫出總體模塊框圖);主要功能的實(shí)現(xiàn)和各個(gè)程序模塊說(shuō)明(每個(gè)功能模塊的框圖、系統(tǒng)主模塊的流程圖,各個(gè)功能模塊至少要有一個(gè)主要的流程圖);程序調(diào)試過(guò)程及各模塊調(diào)試中相應(yīng)的部分截圖;課程設(shè)計(jì)總結(jié)與體會(huì)(不少于500字)。課程設(shè)計(jì)參考文獻(xiàn);程序清單;課程設(shè)計(jì)周,凡規(guī)定的集中上機(jī)時(shí)間必須到機(jī)房調(diào)試程序;設(shè)計(jì)完成后必須參加答辯,并按要求演示程序,提交課程設(shè)計(jì)報(bào)告和有關(guān)電子文檔。7)分組及安排所選題目根據(jù)學(xué)生班號(hào)和*確定,(班號(hào)+*)% 6+1。如你的班號(hào)為01班、*為01,則所選題目號(hào)為:(1+1)%6+13,即課題號(hào)為3。8)成績(jī)?cè)u(píng)定程序設(shè)計(jì)方案是否合理;程序設(shè)計(jì)是否正確;調(diào)試結(jié)果;設(shè)計(jì)說(shuō)明書

7、的質(zhì)量高低;答辯時(shí)回答問(wèn)題情況;課程設(shè)計(jì)周表現(xiàn)情況;總評(píng)成績(jī)記入課程設(shè)計(jì)成績(jī)?cè)u(píng)分表”。二、進(jìn)度安排第 19 周 星期一 8:0012:00 講課、布置任務(wù)星期二 8:0012:00 機(jī)房上機(jī)調(diào)試程序星期三 14:0018:00 機(jī)房上機(jī)調(diào)試程序星期四 14:0018:00 機(jī)房上機(jī)調(diào)試程序、答辯 附:課程設(shè)計(jì)報(bào)告排版、打印和裝訂要求1. 課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、附件、評(píng)分表。按A4大小的紙排版和打印。 2. 設(shè)計(jì)報(bào)告的頁(yè)碼從目錄之后開始使用;3. 正文的格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行距為22磅。正文中程序清單(英文)用英文字體Ti

8、mes New Roman,單倍行間距。 4. 正文的容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個(gè)主要模塊的流程圖);四、程序調(diào)試(各模塊至少有一個(gè)程序調(diào)試的截圖);五、總結(jié)(不少于500字);六、參考文獻(xiàn);t、附件(包含所有程序的原代碼,且程序中應(yīng)有必要的注釋)。八.正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼)。5設(shè)計(jì)報(bào)告中任務(wù)書和評(píng)分表不需重新排版。目 錄TOC o 1-2 h z uHYPERLINK l _Toc329188191一、系統(tǒng)總體設(shè)計(jì)思路: PAGEREF _Toc329188191 h 1HYPERLINK l

9、_Toc329188192.總體功能設(shè)計(jì): PAGEREF _Toc329188192 h 1HYPERLINK l _Toc329188193.各模塊功能設(shè)計(jì): PAGEREF _Toc329188193 h 1HYPERLINK l _Toc329188194二.系統(tǒng)總體模塊框圖: PAGEREF _Toc329188194 h 3HYPERLINK l _Toc329188195三、系統(tǒng)總流程圖及各模塊流程圖 PAGEREF _Toc329188195 h 4HYPERLINK l _Toc329188196.總流程圖: PAGEREF _Toc329188196 h 4HYPERLIN

10、K l _Toc329188197.各模塊流程圖: PAGEREF _Toc329188197 h 6HYPERLINK l _Toc329188198四、系統(tǒng)各模塊主要功能的實(shí)現(xiàn) PAGEREF _Toc329188198 h 12HYPERLINK l _Toc329188199I.顯示模塊 PAGEREF _Toc329188199 h 12HYPERLINK l _Toc329188200II.追加模塊 PAGEREF _Toc329188200 h 12HYPERLINK l _Toc329188201III修改模塊 PAGEREF _Toc329188201 h 12HYPERLI

11、NK l _Toc329188202IV刪除模塊 PAGEREF _Toc329188202 h 13HYPERLINK l _Toc329188203V.查詢模塊 PAGEREF _Toc329188203 h 13HYPERLINK l _Toc329188204VI統(tǒng)計(jì)模塊: PAGEREF _Toc329188204 h 13HYPERLINK l _Toc329188205VII排序模塊: PAGEREF _Toc329188205 h 14HYPERLINK l _Toc329188206五程序調(diào)試 PAGEREF _Toc329188206 h 14HYPERLINK l _To

12、c329188207I.顯示模塊: PAGEREF _Toc329188207 h 14HYPERLINK l _Toc329188208II追加程序: PAGEREF _Toc329188208 h 16HYPERLINK l _Toc329188209III.修改程序: PAGEREF _Toc329188209 h 20HYPERLINK l _Toc329188210IV刪除模塊: PAGEREF _Toc329188210 h 23HYPERLINK l _Toc329188211V查詢模塊: PAGEREF _Toc329188211 h 26HYPERLINK l _Toc329

13、188212VI統(tǒng)計(jì)模塊: PAGEREF _Toc329188212 h 28HYPERLINK l _Toc329188213VII排序模塊: PAGEREF _Toc329188213 h 31HYPERLINK l _Toc329188214VIII退出模塊: PAGEREF _Toc329188214 h 32HYPERLINK l _Toc329188215六.總結(jié)與體會(huì) PAGEREF _Toc329188215 h 33HYPERLINK l _Toc329188216七參考文獻(xiàn): PAGEREF _Toc329188216 h 34HYPERLINK l _Toc329188

14、217八附件 PAGEREF _Toc329188217 h 34-. z.一、系統(tǒng)總體設(shè)計(jì)思路:.總體功能設(shè)計(jì):學(xué)生宿舍管理系統(tǒng)存放了每個(gè)學(xué)生的*、性別、班級(jí)、及所住的宿舍棟號(hào)、房間號(hào)、校區(qū)、宿舍類別的數(shù)據(jù)庫(kù)。每個(gè)人的信息定義在一個(gè)結(jié)構(gòu)體變量中。其結(jié)構(gòu)如下:系統(tǒng)通過(guò)顯示程序、追加程序、查詢程序、刪除程序、修改程序、統(tǒng)計(jì)程序、排序程序來(lái)實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的顯示功能、追加功能、查詢功能、刪除功能、修改功能、統(tǒng)計(jì)功能、排序功能。各個(gè)功能的調(diào)用通過(guò)主函數(shù)中的switch語(yǔ)句來(lái)實(shí)現(xiàn)。switch(sele) case 1:Disp();break;(顯示模塊) case 2:Appe();break

15、;(追加模塊) case 3:Modi();break;(修改模塊) case 4:Dele();break;(刪除模塊) case 5:Query();break;(查詢模塊) case 6:Sort(); break;(排序模塊) case 7:Total(); break;(統(tǒng)計(jì)模塊) case 8:Quit(); sele=0;break;(退出模塊).各模塊功能設(shè)計(jì):.顯示模塊:通過(guò)設(shè)計(jì)一個(gè)模塊,來(lái)實(shí)現(xiàn)學(xué)生信息的顯示。以便于瀏覽學(xué)生的信息。.追加模塊:通過(guò)設(shè)計(jì)一個(gè)模塊,當(dāng)要加入新的學(xué)生的信息的時(shí)候,來(lái)實(shí)現(xiàn)新學(xué)生信息的加入。= 3 * romaniii.查詢模塊:通過(guò)設(shè)計(jì)一個(gè)模塊,這個(gè)

16、模塊可以按學(xué)生的*、來(lái)查詢學(xué)生所有的信息,并顯示學(xué)生的所有信息,以便查詢者閱讀。 = 4 * romaniv.刪除模塊: 通過(guò)設(shè)計(jì)一個(gè)模塊,當(dāng)輸入一個(gè)學(xué)生的*或者的時(shí)候,可以通過(guò)這個(gè)模塊,將輸入*或者的學(xué)生的所有信息從數(shù)據(jù)庫(kù)中刪除出去。以后,這個(gè)學(xué)生的信息將不再會(huì)出現(xiàn)再數(shù)據(jù)庫(kù)中。= 5 * romanv.修改模塊:通過(guò)設(shè)計(jì)一個(gè)模塊,當(dāng)*個(gè)人的信息發(fā)生變化的時(shí)候,可以通過(guò)修改模塊來(lái)進(jìn)行修改。修改模塊時(shí)一具有多級(jí)子菜單的摸塊。使用十分的方便、靈活。= 5 * romanvi統(tǒng)計(jì)模塊:通過(guò)設(shè)計(jì)一個(gè)模塊,能按指定的校區(qū)、宿舍棟號(hào)統(tǒng)計(jì)入住該棟的學(xué)生人數(shù),或統(tǒng)計(jì)制指定的班級(jí)入住*棟的人數(shù),并能將統(tǒng)計(jì)的結(jié)果

17、以及統(tǒng)計(jì)的人員的信息用表格顯示出來(lái),是瀏覽者一目了然。= 6 * romanvii.排序模塊:通過(guò)設(shè)計(jì)一個(gè)模塊,來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的信息按宿舍類別的升序排列。并顯示所有信息,使瀏覽者一目了然。二.系統(tǒng)總體模塊框圖:主函數(shù)顯示模塊追加模塊查詢模塊刪除模塊排序模塊退出模塊統(tǒng)計(jì)模塊退出修改模塊三、系統(tǒng)總流程圖及各模塊流程圖.總流程圖:進(jìn)入系統(tǒng)輸入Sele=追加程序刪除程序查詢程序統(tǒng)計(jì)程序顯示程序退出程序輸出Sele=8Sele=4Sele=2Sele=5Sele=7Sele=1排序程序Sele=6修改程序Sele=3開始結(jié)束.各模塊流程圖:i.顯示模塊:進(jìn)入輸入選項(xiàng)*uan*M=輸出所有信息退出M=1M=

18、2ii.追加模塊:進(jìn)入輸入選項(xiàng)num=輸入信息輸出所有信息退出num=2num=1是否繼續(xù)追加否是iii.修改模塊:進(jìn)入輸入選項(xiàng)t=修改宿舍棟號(hào)修改性別修改修改校區(qū)退出程序輸入信息t=8t=3t=1t=7修改宿舍類別t=6修改房間號(hào)t=2修改班級(jí)num=?num=3按*查找并修改按*查找并修改num=1num=2輸出所有信息t=4t=5選擇是否繼續(xù)修改?是否iv.刪除模塊:進(jìn)入輸入選項(xiàng)要查找的信息查找要?jiǎng)h除的學(xué)生信息刪除學(xué)生信息輸出刪除后的學(xué)生信息是否繼續(xù)刪除退出查無(wú)此人flag=否是flag=0flag=1v.查詢模塊:進(jìn)入輸入選項(xiàng)按*查找號(hào)按*查找號(hào)查找學(xué)生num=1num=3num=2f

19、lag=是否繼續(xù)查詢查無(wú)此人!flag=1輸出學(xué)生信息flag=0退出是否vi.統(tǒng)計(jì)模塊:進(jìn)入輸入選項(xiàng)按校區(qū)、宿舍棟號(hào)統(tǒng)計(jì)該棟入住學(xué)生人數(shù)按班級(jí)統(tǒng)計(jì)入住*棟的人數(shù)輸入統(tǒng)計(jì)的人數(shù)和這些學(xué)生的信息是否繼續(xù)統(tǒng)計(jì)退出否是t=1t=2t=3vii.排序模塊:進(jìn)入輸入選項(xiàng)按宿舍類別進(jìn)行升序排列輸出排序后的學(xué)生信息退出num=2num=1四、系統(tǒng)各模塊主要功能的實(shí)現(xiàn)= 1 * ROMANI.顯示模塊程序通過(guò)一個(gè)printf函數(shù)把輸出信息的表頭打印出來(lái),再通過(guò)一個(gè)for循環(huán)把每一個(gè)學(xué)生的信息輸出,在輸出的時(shí)候,通過(guò)調(diào)用Print函數(shù)(一個(gè)專門用來(lái)輸出的函數(shù),且是用指向結(jié)構(gòu)體數(shù)組的指針輸出學(xué)生信息)輸出所有學(xué)生

20、信息。= 2 * ROMANII.追加模塊結(jié)構(gòu)體中間的成員之間用空格來(lái)隔開輸入,通過(guò)回車鍵來(lái)實(shí)現(xiàn)追加。且追加一個(gè)學(xué)生信息后可選擇繼續(xù)追加或退出。III修改模塊程序定義一個(gè)變量num1,來(lái)確定到底輸入的是*還是。通過(guò)一個(gè)for循環(huán)來(lái)確定數(shù)據(jù)庫(kù)到底是否含有此人的信息。如果含有此人的信息,則把此人的序號(hào)賦值給變量k,把標(biāo)識(shí)變量flag賦值為1;如果不含有此人信息,則標(biāo)識(shí)變量flag值仍為0。再通過(guò)if語(yǔ)句,如果標(biāo)識(shí)變量flag為0,則打印查無(wú)此人!”。如果flag的值為1怎進(jìn)入下一級(jí)菜單,通過(guò)switch語(yǔ)句來(lái)選擇是修改這個(gè)人的宿舍棟號(hào)、房間號(hào)、性別、班級(jí)、校區(qū)還是宿舍類別。修改完成后通過(guò)調(diào)用Pri

21、nt函數(shù)輸出修改后的新的所有學(xué)生信息。每次修改成功之后可通過(guò)選擇是”或者否”來(lái)選擇是否繼續(xù)修改學(xué)生信息。= 4 * ROMANIV刪除模塊程序通過(guò)定義一個(gè)變量num,來(lái)確定輸入到底是*還是,或者退出刪除模塊。通過(guò)一個(gè)for循環(huán)來(lái)確定數(shù)據(jù)庫(kù)到底是否含有此人的信息。如果含有此人的信息,則通過(guò)一個(gè)for循環(huán),把這個(gè)以后的信息依次前推來(lái)覆蓋這個(gè)人的信息,而實(shí)現(xiàn)此人信息的刪除。如果不含此人的信息,則打印查無(wú)此人!”。每次刪除結(jié)束之后通過(guò)選擇是”或者否”來(lái)選擇是否繼續(xù)刪除學(xué)生信息。V.查詢模塊程序通過(guò)輸入一個(gè)變量num來(lái)實(shí)現(xiàn)是按*還是按來(lái)查找,或者退出查詢。當(dāng)輸入完*或者的時(shí)候,再通過(guò)一個(gè)for循環(huán)來(lái)實(shí)現(xiàn)

22、此人信息的查找。當(dāng)含有這個(gè)人的信息的時(shí)候,把標(biāo)識(shí)變量flag賦值為1,并立即輸出此人信息。如果不含這個(gè)人的信息的時(shí)候,標(biāo)識(shí)變量flag仍為0。再通過(guò)一個(gè)if 語(yǔ)句,如果標(biāo)識(shí)變量flag為0,則打印查無(wú)此人!”。用while循環(huán)保證程序在模塊中查詢。每次查詢結(jié)束之后通過(guò)選擇是”或者否”來(lái)選擇是否繼續(xù)查詢學(xué)生信息。= 6 * ROMANVI統(tǒng)計(jì)模塊:程序通過(guò)輸入一個(gè)變量t來(lái)選擇是按校區(qū)、宿舍棟號(hào)統(tǒng)計(jì)該棟入住學(xué)生人數(shù)還是按班級(jí)統(tǒng)計(jì)入住*棟的人數(shù),或者退出統(tǒng)計(jì)模塊。再通過(guò)一個(gè)for循環(huán)來(lái)實(shí)現(xiàn)目標(biāo)信息的查找。定義標(biāo)識(shí)變量flag,在for循環(huán)查找信息前賦值為零。當(dāng)每找到一個(gè)目標(biāo)信息的時(shí),把標(biāo)識(shí)變量fla

23、g賦值為1,用變量num累加人數(shù)并并把此人信息賦給另一個(gè)結(jié)構(gòu)體成員。如果不含這個(gè)人的信息的時(shí),標(biāo)識(shí)變量flag仍為0。最后輸出統(tǒng)計(jì)的人數(shù)并通過(guò)for語(yǔ)句輸出這些學(xué)生的信息,再通過(guò)一個(gè)if 語(yǔ)句,如果標(biāo)識(shí)變量flag為0,則打印出查無(wú)此信息!”。每次統(tǒng)計(jì)結(jié)束之后可通過(guò)選擇是”或者否”來(lái)選擇是否繼續(xù)統(tǒng)計(jì)其他學(xué)的信息信息。= 6 * ROMANVII排序模塊:程序運(yùn)用起泡排序方法(從第一個(gè)數(shù)開始依次對(duì)相鄰兩數(shù)進(jìn)行比較,如次序?qū)t不進(jìn)行任何操作;如次序不對(duì)則使這兩個(gè)數(shù)交換位置。第一遍的(N-1)次比較后,最大數(shù)已放在最后,第二遍只需考慮(N-1)個(gè)數(shù),以此類推直到第(N-1)遍后就可以完成排序。)對(duì)所

24、有學(xué)生按宿舍類別進(jìn)行升序排列,并通過(guò)調(diào)用Print函數(shù)輸出排序后的數(shù)據(jù)。五程序調(diào)試如果運(yùn)行程序,將出現(xiàn)如下的界面,即程序主菜單:= 1 * ROMANI.顯示模塊:輸入1,并按回車鍵,程序?qū)⑦M(jìn)入顯示模塊的菜單(二級(jí)菜單),界面如下:如果輸入1并按回車,將顯示出所有學(xué)生的所有信息,其輸出界面如下:如果按任意鍵將退出,退回主菜單:= 2 * ROMANII追加程序:在主菜單下輸入2并回車,將進(jìn)入追加程序菜單,其界面如下:輸入2并回車,將開始進(jìn)行追加學(xué)生信息:輸入學(xué)生信息:輸入學(xué)生信息后,按回車將自動(dòng)顯示出追加的及原來(lái)的所有學(xué)生信息,并顯示出是否繼續(xù)追加學(xué)生信息,其界面如下:輸入1并按回車,即選擇繼

25、續(xù)追加學(xué)生信息,將出現(xiàn)追加程序的菜單:輸入另一個(gè)學(xué)生的信息并回車,將自動(dòng)顯示出所有學(xué)生的信息,其界面如下:輸入2并按回車,將顯示出提示語(yǔ)按任意鍵返回主菜單”,界面如下:按任意鍵將退出追加程序返回主菜單。III.修改程序:在主菜單下輸入3并回車進(jìn)入修改程序下菜單:輸入1并回車,即按*查找并修改,程序?qū)?huì)提示輸入*:輸入*,如2112,回車,顯示修改程序的下一級(jí)菜單,即修改選項(xiàng):輸入選擇項(xiàng),如2,將會(huì)提示進(jìn)入下一步,即修改信息:輸入修改信息并回車,將顯示出經(jīng)修改后所有學(xué)生的新信息,并出現(xiàn)提示語(yǔ)句選項(xiàng),是否繼續(xù)修改,其界面如下:輸入1并回車,即選擇繼續(xù)修改,將進(jìn)入修改程序下的主菜單:輸入2并回車,即

26、選擇按查找并修改。修改完成后選擇繼續(xù)修改,并按*查找并修改,隨便輸入一個(gè)*(即數(shù)據(jù)庫(kù)不存在的學(xué)生信息),將會(huì)顯示提示信息查無(wú)此人!其界面如下:輸入2并回車,即選擇退出修改程序,程序?qū)⑼瓿尚薷牟⒎祷刂鞑藛巍? 4 * ROMANIV刪除模塊:在主菜單下輸入2并回車,將進(jìn)入刪除程序的菜單下,其界面如下:輸入1并回車,即選擇按*查找并刪除,并輸入一個(gè)*回車,如輸入2112,將自動(dòng)顯示出刪除后新的學(xué)生信息,即不在存在*為2112的學(xué)生信息:按任意鍵將進(jìn)入下一步,即選擇是否繼續(xù)修改:輸入1并回車,即選擇繼續(xù)修改,將顯示出刪除程序的選擇菜單:輸入2,即按查找并修改,隨意輸入一個(gè),即數(shù)據(jù)庫(kù)不存在的學(xué)生信息,

27、回車將顯示出提示信息:查無(wú)結(jié)果! 其界面如下:= 4 * ROMANV查詢模塊:在主菜單下輸入5并回車,進(jìn)入查詢程序的選擇菜單下,其界面如下:輸入1并回車,即選擇按*查詢,將出現(xiàn)提示語(yǔ)句,提示使用者輸入學(xué)生*。輸入一個(gè)學(xué)生*,如2011,回車,將顯示出此學(xué)生的所有信息。并且提示使用者是否選擇繼續(xù)查詢,其界面如下:選擇繼續(xù)查詢將回到查詢程序的選擇菜單下。在查詢程序的菜單下輸入2并回車,即選擇按查詢,輸入一個(gè)學(xué)生并回車,如司馬懿(追加的學(xué)生信息),將出現(xiàn)此人的所有信息,即也證明追加學(xué)生信息成功:選擇繼續(xù)查詢,并且按*查詢(或按查詢),隨便輸入一個(gè)數(shù)據(jù),即數(shù)據(jù)庫(kù)不存在的,如*8970,將出現(xiàn)提示語(yǔ)句

28、查無(wú)此人!選擇否”,即不繼續(xù)查詢,將完成信息的查詢并退出查詢程序返回主菜單。= 4 * ROMANVI統(tǒng)計(jì)模塊:在主菜單下輸入6并回車,將進(jìn)入統(tǒng)計(jì)模塊的菜單下:輸入1,即按校區(qū)、宿舍棟號(hào)統(tǒng)計(jì)該棟入住學(xué)生人數(shù),并提示使用者輸入相關(guān)信息:輸入相關(guān)信息,如0,A(中間用空格),回車將統(tǒng)計(jì)出人數(shù)和顯示出這些學(xué)生的所有信息,并提示使用者下一步是否繼續(xù)統(tǒng)計(jì)其他的數(shù)據(jù):選擇繼續(xù)統(tǒng)計(jì)將返回統(tǒng)計(jì)程序下的菜單,輸入2并回車,即選擇按班級(jí)統(tǒng)計(jì)入住*棟的人數(shù),并提示輸入相關(guān)信息:輸入相關(guān)信息并回車,將顯示出統(tǒng)計(jì)出的人數(shù)和這些學(xué)生的所有信息:選擇繼續(xù)統(tǒng)計(jì)返回菜單,選擇1、2任一項(xiàng),如選擇1,即選擇按班級(jí)統(tǒng)計(jì)入住*棟的人

29、數(shù),隨意輸入數(shù)據(jù),即數(shù)據(jù)庫(kù)不存在的,回車,將顯示提示語(yǔ)句查無(wú)此信息!其界面如下:選擇否”完成統(tǒng)計(jì)返回主菜單。= 4 * ROMANVII排序模塊:在主菜單下輸入7并回車進(jìn)入排序程序下的菜單:輸入2并回車,即選擇按宿舍類別排列(升序),將顯示排序后的所有學(xué)生信息:按任意鍵返回主菜單。= 4 * ROMANVIII退出模塊:在主菜單下輸入8并回車將顯示出退出程序的界面:繼續(xù)按任意鍵將退出整個(gè)程序,即退出學(xué)生宿舍管理系統(tǒng)。六.總結(jié)與體會(huì)說(shuō)過(guò)實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”。通過(guò)幾天的課程設(shè)計(jì),通過(guò)實(shí)踐來(lái)理解和鞏固理論知識(shí),使我對(duì)C語(yǔ)言程序設(shè)計(jì)有了一個(gè)更加深入的認(rèn)識(shí),從剛開始的初略了解到有了比較深入的認(rèn)識(shí),

30、能夠比較靈活的運(yùn)用。C語(yǔ)言是一門比較靈活、有趣而且實(shí)踐性非常強(qiáng)的課程,單從理論課上是難以領(lǐng)略到它的精髓,我們只有從它的實(shí)踐運(yùn)用中,才能體會(huì)到了學(xué)習(xí)C語(yǔ)言的樂趣和好處。在課程設(shè)計(jì)的這段時(shí)間里,我學(xué)到了許多東西,同時(shí)也使我對(duì)以前學(xué)的東西有了一個(gè)更深更透徹的理解。比如:能夠靈活的運(yùn)用循環(huán),switch語(yǔ)句,結(jié)構(gòu)體的定義、引用、使用,指針的定義、使用等。雖然對(duì)C語(yǔ)言編程還有許多不明白,但這段時(shí)間我真的獲易匪淺,原來(lái)理論課上一些沒弄懂知識(shí)點(diǎn)通過(guò)上機(jī)實(shí)踐差不多都弄懂了。課程設(shè)計(jì)也就是學(xué)以致用嘛,讓自己了解自己所學(xué)怎樣用于實(shí)際應(yīng)用中。正所謂實(shí)踐出真知,在實(shí)踐中我們才能發(fā)現(xiàn)自己所存在的問(wèn)題和不足。在編程過(guò)程中

31、總是出現(xiàn)這個(gè)或那個(gè)問(wèn)題,比如說(shuō)總是在scanf語(yǔ)句中少掉地址符&”,最終導(dǎo)致程序無(wú)法運(yùn)行。這也源于自己平時(shí)沒養(yǎng)成好的習(xí)慣,初心大意吧,以后得多多注意啊。在編程過(guò)程出現(xiàn)諸多問(wèn)題是免不了的,不過(guò)還好最終通過(guò)與同學(xué)討論或請(qǐng)教老師都一一解決了。為了與同學(xué)討論解決問(wèn)題,我甚至放棄了使用自己的電腦而去電子閱覽室上機(jī)編程。在這次課程設(shè)計(jì)中,我再一次深深地體會(huì)到了了與別人合作交流的重要性,正所謂眾人拾柴火焰高”。雖說(shuō)每個(gè)人獨(dú)立編程,但總少不了遇到問(wèn)題,遇到問(wèn)題就得解決啊。在與同學(xué)的交流討論中,取長(zhǎng)補(bǔ)短,不僅別人幫我解決了問(wèn)題,同樣我也幫別人解決了問(wèn)題。我感覺自己的程序還算編得不錯(cuò),清楚美觀,還許多特色。為了美

32、觀我特意把所有的界面上的菜單調(diào)到了中間。我自己定義了一個(gè)函數(shù)用于輸出數(shù)據(jù),而且是通過(guò)指針輸出的。所以說(shuō)整個(gè)程序所學(xué)的知識(shí)差不多我都用到了,用些知識(shí)可能不需要,但我還是想辦法把它用進(jìn)去,體現(xiàn)它的作用??墒沁z憾的是最后程序通過(guò)我的修修改改,最終的答辯卻出現(xiàn)了一些問(wèn)題,有些不能運(yùn)行。不過(guò)沒什么,現(xiàn)在問(wèn)題已經(jīng)解決了,答辯出問(wèn)題了,又何必在乎那個(gè)結(jié)果呢?應(yīng)該看重的是整個(gè)過(guò)程。雖然課程設(shè)計(jì)很復(fù)雜,枯燥乏味,但我從沒想到過(guò)放棄。高考都經(jīng)歷過(guò)來(lái)了,這又算得了什么呢?遇到困難時(shí),不要輕言放棄,有毅力能做好事情。當(dāng)然c語(yǔ)言課程設(shè)計(jì)確實(shí)很難,但是世上無(wú)難事只怕有心人,緊要關(guān)頭不放棄,絕望就會(huì)變成希望。任何困難都只不

33、過(guò)是紙老虎,相信自己就一定能成功。課程設(shè)計(jì)也就是學(xué)以致用嘛,讓自己了解自己所學(xué)怎樣用于實(shí)際應(yīng)用中。正所謂實(shí)踐出真知,在實(shí)踐中我們才能發(fā)現(xiàn)自己所存在的問(wèn)題和不足。C語(yǔ)言的學(xué)習(xí)更是為我們以后學(xué)習(xí)的微機(jī)原理以及單片機(jī)原理奠定了基礎(chǔ)。我們的專業(yè)是電子科學(xué)與技術(shù),主要是跟電子產(chǎn)品打交道,后面用到C語(yǔ)言的地方還有許多,所以說(shuō),學(xué)好C語(yǔ)言,為我們以后專業(yè)知識(shí)的學(xué)習(xí)有很大好處。在學(xué)習(xí)C語(yǔ)言中更使我體會(huì)到了學(xué)習(xí)計(jì)算機(jī)技術(shù)的樂趣,我將更加努力多學(xué),學(xué)好計(jì)算機(jī)技術(shù)。七參考文獻(xiàn):C語(yǔ)言程序設(shè)計(jì) 主編 世清 大學(xué) C語(yǔ)言程序設(shè)計(jì)實(shí)踐教程 主編 世清 大學(xué)八附件#include stdio.h#include strin

34、g.h#include conio.hint N=0;struct stu char ssdh4; /*宿舍棟號(hào)*/ int fjh; /*房間號(hào)*/ long *h; /*/ char name10; /*/ char *b4; /*性別*/ char bj12; /*班級(jí)*/ char phone12; /*/ int *q; /*校區(qū)*/ int sslb; /*宿舍類別*/ s40;void Re_file() FILE *fp; fp=fopen(G:課題2ss*k.t*t,r); while( fscanf(fp,%sn%dn%ldn%sn%sn%sn%sn%dn%dn,sN.ss

35、dh,&sN.fjh,&sN.*h,sN.name,sN.*b,sN.bj,sN.phone,&sN.*q,&sN.sslb)!=EOF) N+; fclose(fp); void Wr_file()int i; FILE *fp; fp=fopen(G:課題2newss*k.t*t,w); for(i=0;iN;i+) fprintf(fp,%sn%dn%ldn%sn%sn%sn%sn%dn%dn,si.ssdh,si.fjh,si.*h,,si.*b,si.bj,si.phone,si.*q,si.sslb); fclose(fp);void Print() /*輸出函數(shù)*/

36、struct stu *p;printf( *n); printf( 宿舍棟號(hào) 房間號(hào) * 性別 班級(jí) 校區(qū) 宿舍類別n); printf( *n);for(p=s;pssdh,p-fjh,p-*h,p-name,p-*b,p-bj,p-phone,p-*q,p-sslb);void Disp() /*顯示模塊*/int num;printf( *n); printf( * *n); printf( * 1.顯示學(xué)生信息 *n); printf( * *n); printf( * 2.退 出 *n); printf( * *n); printf( *n); printf(請(qǐng)選擇:); scan

37、f(%d,&num);switch(num)case 1:Print();case 2: printf(nn請(qǐng)按任意鍵退出!);getch();void Appe() /*追加模塊*/ int num; printf( *n); printf( * *n); printf( * 1.追加學(xué)生信息 *n); printf( * *n); printf( * 2.退 出 *n); printf( * *n); printf( *n); printf(nn 請(qǐng)輸入選項(xiàng):);scanf(%d,&num);switch(num)case 1: printf(請(qǐng)輸入數(shù)據(jù):n); printf( *n);

38、printf( 宿舍棟號(hào) 房間號(hào) * 性別 班級(jí) 校區(qū) 宿舍類別n); printf( *n);scanf(%s%d%ld%s%s%s%s%d%d,sN.ssdh,&sN.fjh,&sN.*h,sN.name,sN.*b,sN.bj,&sN.phone,&sN.*q,&sN.sslb);N+;printf(nn新數(shù)據(jù)如下表:nn);Print();printf(nn * 是否繼續(xù)追加 *n);printf(nn * 1.是 * 2.否 * nnn); printf(請(qǐng)輸入選項(xiàng):); scanf(%d,&num);switch(num)case 1:Appe();break; case 2:pr

39、intf( 按任意鍵返回主菜單!n);getch();return;case 2:printf( 按任意鍵返回主菜單!n);getch();break;void Modi() /*修改模塊*/ int j,num1,num,k,t; long *uehao;char *ingming4;int flag;printf( *n);printf( * *n);printf( * 1.按*查找并修改 *n);printf( * *n);printf( * 2.按查找并修改 *n);printf( * *n);printf( * 3. 退 出 *n);printf( * *n);printf( *n)

40、; printf(nn 請(qǐng)輸入你的選項(xiàng):);scanf(%d,&num1);flag=0;if(num1=1)printf(n 請(qǐng)輸入*:); scanf(%ld,&*uehao);for(j=0;jN;j+)if(sj.*h=*uehao)flag=1;k=j;break;if(num1=2)printf(n 請(qǐng)輸入:); scanf(%s,*ingming);for(j=0;jN;j+)if(strcmp(,*ingming)=0)flag=1; k=j;break;if(num1=3)printf(n 請(qǐng)按任意鍵退出!n);getch();return;if(flag=0)

41、printf(nn 查無(wú)此人!nn);if(flag=1)printf( *n); printf( * *n); printf( * 1.修改宿舍棟號(hào) *n); printf( * *n); printf( * 2.修改房間號(hào) *n); printf( * *n); printf( * 3.修改性別 *n); printf( * *n); printf( * 4.修改班級(jí) *n); printf( * *n); printf( * 5.修改 *n); printf( * *n); printf( * 6.修改校區(qū) *n); printf( * *n); printf( * 7.修改宿類別 *n

42、); printf( * *n); printf( * 8.退出 *n); printf( * *n); printf( *n);printf(請(qǐng)輸入選項(xiàng):);scanf(%d,&t);switch(t)case 1:printf(修改為:);scanf(%s,sk.ssdh);Print();break; case 2:printf(修改為:);scanf(%d,&sk.fjh);Print();break; case 3:printf(修改為:);scanf(%s,sk.*b);Print();break; case 4:printf(修改為:);scanf(%s,sk.bj);Print

43、();break; case 5:printf(修改為:);scanf(%s,sk.phone);Print();break; case 6:printf(修改為:);scanf(%d,&sk.*q);Print();break; case 7:printf(修改為:);scanf(%d,&sk.sslb);Print();break; case 8:printf(n按任意鍵退出!n);return;printf(nn * 是否繼續(xù)修改 *n); printf(nn * 1.是 * 2.否 * nnn); printf(請(qǐng)輸入選項(xiàng):); scanf(%d,&num);switch(num)ca

44、se 1: Modi();break;case 2:printf(n 按任意鍵返回主菜單!n);getch();break;void Dele() /*刪除模塊*/ int num,j,k,m,flag;long *uehao;char *ingming4;printf( *n);printf( * *n);printf( * 1.按*查找并刪除 *n);printf( * *n);printf( * 2.按查找并刪除 *n);printf( * *n);printf( * 3.退 出 *n);printf( * *n);printf( *n); printf(nn請(qǐng)輸入你的選項(xiàng):);scan

45、f(%d,&num);if(num=1)printf(nn請(qǐng)輸入*:);scanf(%ld,&*uehao);flag=0;for(j=0;jN;j+)if(sj.*h=*uehao)flag=1;k=j,m=1;if(flag=0)printf( 查無(wú)結(jié)果! 請(qǐng)按任意鍵退出!n);if(num=2)printf(nn請(qǐng)輸入:);scanf(%s,&*ingming);flag=0;for(j=0;jN;j+)if(strcmp(,*ingming)=0)flag=1;k=j,m=1;if(flag=0)printf(n 查無(wú)結(jié)果! 請(qǐng)按任意鍵退出!n);if(m=1)for(j

46、=k;jN-1;j+)sj=sj+1;N-;printf(刪除后的數(shù)據(jù)如下:n);Print();printf(n 按任意鍵下一步!n);getch(); printf(nn * 是否繼續(xù)刪除* *n); printf(nn * 1.是 * 2.否 * nnn); printf(nn請(qǐng)輸入選項(xiàng):); scanf(%d,&num);switch(num)case 1: Dele();break; case 2:printf(nn 按任意鍵返回主菜單!n);getch();break;if(num=3)printf(n 按任意鍵返回主菜單!n);getch();void Query() /*查詢模

47、塊*/ int num,m,flag;struct stu *p; long *uehao;char *ingming4;while(1)printf( *n);printf( * *n);printf( * 1.按*查詢 *n);printf( * *n);printf( * 2.按查詢 *n);printf( * *n);printf( * 3.退 出 *n);printf( * *n);printf( *n);printf(nn請(qǐng)輸入你的選項(xiàng):);scanf(%d,&num);switch(num)case 1:printf(nn請(qǐng)輸入要查詢的同學(xué)的*:);scanf(%ld,&*ueh

48、ao);for(p=s;p*h)flag=1;printf(n 所查詢的同學(xué)的信息如下:n);printf( *n); printf( 宿舍棟號(hào) 房間號(hào) * 性別 班級(jí) 校區(qū) 宿舍類別n); printf( *n);printf( %-8s%-7d%-8ld%-9s%-7s%-7s%-13s%-8d%-4dn,p-ssdh,p-fjh,p-*h,p-name,p-*b,p-bj,p-phone,p-*q,p-sslb);break;if(flag=0)printf( n 查無(wú)此人!n);break;case 2:printf(請(qǐng)輸入要查詢的同學(xué)的:); scanf(%s,*ingming);

49、for(p=s;pname)=0)flag=1;printf(n 所查詢的同學(xué)的信息如下:n); printf( *n); printf( 宿舍棟號(hào) 房間號(hào) * 性別 班級(jí) 校區(qū) 宿舍類別n); printf( *n);printf( %-8s%-7d%-8ld%-9s%-7s%-7s%-13s%-8d%-4dn,p-ssdh,p-fjh,p-*h,p-name,p-*b,p-bj,p-phone,p-*q,p-sslb);break;if(flag=0)printf(n 查無(wú)此人!n);break;case 3:printf(nn 按任意鍵返回主菜單!n);getch();break;if(

50、num=3)break;printf(nn *是否繼續(xù)查詢*n);printf(nn * 1.是 * 2.否(退出) * nnn);printf(請(qǐng)輸入選項(xiàng):);scanf(%d,&m);if(m=2)break;void Total() /*統(tǒng)計(jì)模塊*/ int j,t,*iaoqu,num=0,m,r,k=0,flag;char donghao4,banji12;struct stu p10;while(1)printf( *n);printf( * *n);printf( * 1.按校區(qū)、宿舍棟號(hào)統(tǒng)計(jì)該棟入住學(xué)生人數(shù) *n);printf( * *n);printf( * 2.按班級(jí)統(tǒng)計(jì)

51、入住*棟的人數(shù) *n);printf( * *n);printf( * 3.退出 *n);printf( * *n);printf( *n);printf(nn 請(qǐng)輸入選項(xiàng)n);scanf(%d,&t);switch(t) case 1:printf(n請(qǐng)輸入校區(qū)、宿舍棟號(hào):n);scanf(%d%s,&*iaoqu,donghao);flag=0,num=0,k=0;for(j=0;jN;j+) if(sj.*q=*iaoqu&strcmp(sj.ssdh,donghao)=0)flag=1; num+; pk=sj; k+;printf(n 住在%d校區(qū)、%s棟宿舍的有%d個(gè)同學(xué)n,*ia

52、oqu,donghao,num);printf(n 這些同學(xué)的信息如下:n); printf( *n); printf( 宿舍棟號(hào) 房間號(hào) * 性別 班級(jí) 校區(qū) 宿舍類別n); printf( *n); for(r=0;rk;r+)printf( %-8s%-7d%-8ld%-9s%-7s%-7s%-13s%-8d%-4dn,sr.ssdh,sr.fjh,sr.*h,,sr.*b,sr.bj,sr.phone,sr.*q,sr.sslb); if(flag=0)printf(nnn * 查無(wú)此信息! *nn);break;case 2:printf(n請(qǐng)輸入班級(jí)、宿舍棟號(hào):n);scanf(%s%s,ba

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論