C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告3_第1頁
C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告3_第2頁
C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告3_第3頁
C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告3_第4頁
C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告3_第5頁
已閱讀5頁,還剩175頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、文檔從互聯(lián)網(wǎng)中收集,己重新修正排版,word格式支持編輯,如有幫助歡迎下載支持。課程設(shè)計(jì)報(bào)告題目:樓盤查詢系統(tǒng)課程名稱:C語言課程設(shè)計(jì)專業(yè)班級(jí):信息安全1302班學(xué) 號(hào):姓 名:指導(dǎo)教師:報(bào)告日期:2014.09計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院Iword格式支持編輯,如有幫助歡迎下載支持。任務(wù)書題目:樓盤查詢系統(tǒng)一、主要內(nèi)容建立樓盤樓盤信息系統(tǒng),提供創(chuàng)建、編輯和綜合查詢等基本業(yè)務(wù)管理和服務(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)曹計(jì)昌,盧萍,李開.C語言程序設(shè)計(jì),北京:科學(xué)出版社,2013李開,盧萍,

2、曹計(jì)昌.C語言實(shí)驗(yàn)與課程設(shè)計(jì),北京:科學(xué)出版社,20113. C程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì),杭州:浙江大學(xué)出版社,2007,,C語言課程設(shè)計(jì),北京:電子工業(yè)出版社,2006四、基本要求只能使H1C語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀。要有用戶界面。要求至少采用教材p215-p216類似的簡(jiǎn)易菜單;鼓勵(lì)采用文本 菜單界面甚至采用圖形菜單界面。必須使用結(jié)構(gòu)和十字交叉鏈表等數(shù)據(jù)結(jié)構(gòu)。使用文件保存數(shù)據(jù)。鼓勵(lì)自行增加新功能。設(shè)計(jì)測(cè)試的模擬數(shù)據(jù),完成系統(tǒng)測(cè)試。撰寫課程設(shè)計(jì)報(bào)告(要求正規(guī)雙面打印,A4幅面)內(nèi)容包括:題目、系統(tǒng)功能 模塊結(jié)構(gòu)圖、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說明、程序結(jié)構(gòu)(畫流程圖)、各模塊的功能、 試

3、驗(yàn)結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果)、體會(huì)、參考文獻(xiàn)和附錄:程序清單。課程 設(shè)計(jì)報(bào)告封面統(tǒng)一格式,標(biāo)準(zhǔn)格式詳見本科生課程設(shè)計(jì)規(guī)范化要求。課程設(shè)計(jì)資料(包括課程設(shè)計(jì)報(bào)告、源程序、目標(biāo)程序和測(cè)試用例等)刻錄光 盤。31引言1.1 課題背景和意義1.2 國(guó)內(nèi)外研究現(xiàn)狀1.3 主要研究工作2系統(tǒng)需求分析與總體設(shè)計(jì)2.1 系統(tǒng)需求2.2 系統(tǒng)設(shè)計(jì)3系統(tǒng)詳細(xì)設(shè)計(jì)3.1 有關(guān)數(shù)據(jù)結(jié)構(gòu)的定義.3.2 主要算法設(shè)計(jì)4系統(tǒng)實(shí)現(xiàn)與測(cè)試4.1 系統(tǒng)實(shí)現(xiàn)4.2 系統(tǒng)測(cè)試5總結(jié)與展望5.1 全文總結(jié)5.2 工作展望體會(huì)參考文獻(xiàn)附錄源程序代碼錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。49錯(cuò)誤!未定義書簽。1錯(cuò)誤!未定義書簽。826錯(cuò)

4、誤!未定義書簽。錯(cuò)誤!未定義書簽。49錯(cuò)誤!未定義書簽。511引言1.1 課題背景和意義中國(guó)有句俗話,衣食住行。在現(xiàn)在樓價(jià)居高不下的大背景下,一間屬于自己的 房子應(yīng)該是不少老百姓為之奮斗的目標(biāo)。在信息較為閉塞的從前,買房者挑選房屋 的渠道單一,總歸是從別人或者中介口中聽說有這么一套房子,然后呼朋喚友地去 實(shí)地考察。但科技飛速發(fā)展的今天,信息時(shí)代的我們有了更多的選擇。其中一個(gè)較 受歡迎的渠道就是通過樓盤查詢系統(tǒng)獲知房屋的具體信息,更為方便快捷地比較房 屋間的差異,用最短的時(shí)間和最少的精力挑到自己滿意的住宅。界面簡(jiǎn)潔,操作簡(jiǎn) 單,購房者只需比照菜單選擇自己需要的功能就能實(shí)現(xiàn)信息查詢。樓盤查詢系統(tǒng)的

5、出現(xiàn),為廣大購房者帶來了便利,也是時(shí)代進(jìn)步的表現(xiàn),首先 方便了房地產(chǎn)開發(fā)公司將自己的房子推向更廣大的市場(chǎng),其次對(duì)于購房者而言,避 免了一些被中介公司渾水摸魚的情況,更大程度上能保證獲得真實(shí)的樓房信息,某 種程度上也能控制二手房?jī)r(jià)格虛高的情況。1.2 國(guó)內(nèi)外研究現(xiàn)狀國(guó)內(nèi):國(guó)內(nèi)的樓盤查詢系統(tǒng)多為網(wǎng)站,功能較齊全,一般有新盤新房的推薦, 二手房信息的整理,出租房的詳細(xì)信息,商業(yè)地產(chǎn)信息,房產(chǎn)估價(jià),購房者和售房 者的互動(dòng)板塊,還有房地產(chǎn)專家答疑。國(guó)外:國(guó)外的樓盤查詢系統(tǒng)更趨于專門化,商業(yè)廣告相對(duì)較少,查詢功能也較 完備,界面較之中國(guó)的更為簡(jiǎn)潔大方。如Trulia是美國(guó)房地產(chǎn)搜索引擎,用戶可以根 據(jù)郵政

6、編碼搜索特定區(qū)域的待售房屋,也可以搜索全美范圍內(nèi)的相關(guān)信息。Trulia能 夠幫助用戶從成百上千的房地產(chǎn)中介網(wǎng)站上搜尋正在出售的房屋,出租房屋以及房 產(chǎn)資訊。Trulia的地圖部分使用的正是Google Mbps,它根據(jù)用戶選擇房屋的類型和地 理位置,顯示出滿足要求的房屋列表并依靠Google的API生成特定的圖象,以便用戶 獲取更多詳細(xì)信息。13課程設(shè)計(jì)的主要研究工作課程設(shè)計(jì)時(shí)教學(xué)實(shí)踐的一個(gè)重要環(huán)節(jié),它要求學(xué)生自己利用所學(xué)的知識(shí)去解決一些 問題。如樓盤查詢系統(tǒng)的設(shè)計(jì)。L首先需要設(shè)計(jì)功能,簡(jiǎn)單來說就是自己的系統(tǒng)能實(shí)現(xiàn)怎樣的功能,能給用戶帶來什 么便利。2 .接下來確定自己的系統(tǒng)大致的結(jié)構(gòu),根據(jù)

7、功能或者其他劃分出不同的模塊。3 .然后設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和文件格式,你想要有哪些數(shù)據(jù)項(xiàng)來豐富你的系統(tǒng),讓購房者獲 得更多有價(jià)值的信息。4 .設(shè)計(jì)界面,盡量整潔大方,操作簡(jiǎn)單快捷易上手,關(guān)注人機(jī)互動(dòng)。5 .選擇圖形庫實(shí)現(xiàn)自己的界面設(shè)計(jì)。6 .利用所學(xué)知識(shí)設(shè)計(jì)算法實(shí)現(xiàn)功能。7 .各模塊的拼裝,調(diào)試,數(shù)據(jù)測(cè)試。8 .邀請(qǐng)用戶體驗(yàn)系統(tǒng),尋求意見和建議。1762系統(tǒng)需求分析與總體設(shè)計(jì)2.1 系統(tǒng)需求分析樓盤查詢系統(tǒng)界面需要盡可能地簡(jiǎn)單,菜單或者操作口令或者提示需要盡可能 簡(jiǎn)潔明了,便于上手操作。樓盤里面應(yīng)該還包括樓棟,樓棟里包括房屋,實(shí)現(xiàn)從大 到小,具體落實(shí)到戶,讓購房者對(duì)于房屋有個(gè)整體的了解。從功能上說,

8、樓盤查詢 系統(tǒng)應(yīng)該包括以下幾方面:能夠?qū)⑺袠潜P信息顯示在主界面,查看具體信息,添 加項(xiàng),刪除項(xiàng),插入項(xiàng),編輯基本信息,搜索符合特定條件的項(xiàng),統(tǒng)計(jì)購房者關(guān)注 的數(shù)據(jù),保存更新的信息,安全退出。從具體信息的角度而言,樓盤需要包括樓盤 編號(hào),樓盤具體名稱,樓盤地址,樓盤開發(fā)商和物業(yè)管理公司,建筑面積,綠化率, 擁有樓棟數(shù)目等信息。樓棟需要有樓棟編號(hào),擁有樓層數(shù)目,建筑面積,戶型,所 屬樓盤等信息。房屋應(yīng)該包括房屋編號(hào),房屋所在樓層,價(jià)格,居住面積,公攤率, 是否售出,是否為二手房等具體信息。2.2 系統(tǒng)總體設(shè)計(jì)樓盤查詢系統(tǒng)應(yīng)該能夠滿足基本信息錄入,修改和刪除的需要,能夠組合條件 進(jìn)行房屋的篩選查詢

9、,數(shù)據(jù)的存儲(chǔ)和加載,統(tǒng)計(jì)相關(guān)數(shù)據(jù)等。系統(tǒng)結(jié)構(gòu)圖如下:主界面上分為文件,查看,查找,統(tǒng)計(jì),數(shù)據(jù)維護(hù)五項(xiàng)主菜單。其下各自有自 項(xiàng)。各菜單項(xiàng)下功能如下:3系統(tǒng)詳細(xì)設(shè)計(jì)3.1 有關(guān)數(shù)據(jù)結(jié)構(gòu)的定義(1)系統(tǒng)中要處理的數(shù)據(jù)有:樓盤:樓盤編號(hào)int,樓盤名稱char*,地址char*,開發(fā)商char*,物業(yè)公司char*, 建筑面積int,綠化率int,樓棟數(shù)量int樓棟:樓棟編號(hào)int,樓層數(shù)int目,建筑面積int,是否是別墅int房屋:房屋編號(hào)int,所在樓層int,價(jià)格float,實(shí)用面積int,公攤率int,是否售出int,是否是二手房int處理數(shù)據(jù)數(shù)據(jù)項(xiàng)數(shù)據(jù)類型樓盤樓盤編號(hào)int樓盤名稱char

10、 *地址char *開發(fā)商char *物業(yè)公司char *建筑面積int綠化率int樓棟數(shù)量int樓棟樓棟編號(hào)int建筑面積int樓層數(shù)目int是否別墅gboolean房屋房屋編號(hào)int所在樓層int價(jià)格float實(shí)用面積int公攤率int是否售出gboolean是否是二手gboolean(2)樓盤信息表,樓棟信息表和房屋信息表在內(nèi)存中構(gòu)成三項(xiàng)十字交叉鏈表: 樓盤信息表指向下一信息點(diǎn)的同時(shí)也指向樓棟信息表,樓棟信息表指向下一信息點(diǎn)的同時(shí)也指向房屋信息表,房屋信息表指向下一房屋信息點(diǎn)。 圖形如下:3.2主要算法設(shè)計(jì)加載文件遍歷信息信息查詢丫,NP_house!=NULL>結(jié)束、 Y 1P_

11、house=p_hous4>tiN他判斷'/N/ 輸出符合條件 /添加信息刪除信息插入信息信息統(tǒng)計(jì)4系統(tǒng)實(shí)現(xiàn)與測(cè)試4.1系統(tǒng)實(shí)現(xiàn)該系統(tǒng)使用了圖形庫GTK+3.0,使用操作系統(tǒng)windows 8.1進(jìn)行開發(fā),使用編譯 軟件codeblockso按照C99標(biāo)準(zhǔn)進(jìn)行開發(fā)<> 變量:typedef struct struc_0int num;/房屋編號(hào)/int floor;/所在樓層/float prince; /房屋價(jià)格/int rate; /公攤率/int is_sold; /是否銷售/int is_second_hand; /是否二手/int area; /房屋面積/s

12、truct struc_0 * next; /指向下一房屋結(jié)點(diǎn)的指針/struct struc_0 * prev; /指向上一房屋結(jié)點(diǎn)的指針/)hose; /定義房屋變量/ typedef struct struc_l (int num;/樓棟編號(hào)/int num.floor; /擁有層數(shù)/int area; /建筑面積/intis_villa"是否別墅 /struct struc_l * next; /指向下一樓棟結(jié)點(diǎn)/struct struc_l * prev; /指向上一樓棟結(jié)點(diǎn)/hose * P.hose; /指向房屋的指針/ building; /定義樓棟變量/typede

13、f struct struc_2(int num;/樓盤編號(hào)/char * name;/樓盤名稱/char * location; /樓盤地址/char * developer; /開發(fā)商/char * compain; /物業(yè)管理公司/int area; /建筑面積/int gree_rate; /樓盤綠化率/int num_building; /擁有樓棟數(shù)/struct struc_2 * next; /指向下一房屋結(jié)點(diǎn)的指針/struct struc_2 * prev; /指向上一房屋結(jié)點(diǎn)的指針/building * P_building; /指向樓棟的指針/)premises; /定義

14、樓盤變量/函數(shù):主函數(shù):int main (int argc, char *argv)程序入口函數(shù)static GtkTreeView * create_premises_treeview() 程序主界面調(diào)用,生成一個(gè)帶有過反器的列表框。static gboolean fun_premises(GtkTreeModel *model,GtkTreeIter *itengpointer data)查找菜單調(diào)用函數(shù),在列表框架中顯示符合條件的信息。static void premises_get_selection( GtkWidget * widget,GdkEventButtonevent.G

15、tkWidget * premises_menu ) 處理右鍵單擊和左鍵單擊重件的函數(shù)。static void search_for_premises( GtkWidget * widget,gpointer data)根據(jù)用戶鍵入的7學(xué)信息,搜索符合條件的大學(xué)并且顯示在主界面。static void on_search_premises_button_clicked( GtkWidget * widget,GtkWidget *window)處理查找樓盤中復(fù)選框選中事件。void show_all_preinises_info() 顯示所有底加信息。static premises * get

16、_selected_premises() 獲取在主界面選中石樓盤的結(jié)點(diǎn)。static void premises_see_building() 查看界面里查看樓A選項(xiàng)。static void premises_add_info()增加樓盤信息,顯示于主界面。static void preniises_remove_info()刪除選中樓盤信息,并于與界面更新。static void premises_edit_info()編輯選中樓盤信息,結(jié)金編輯后更新于主界面。static void premises_inserOnfo()在選中的選項(xiàng)之上房入新的樓盤信息,結(jié)束編輯后更新于主界面。void

17、get_statistic_profile( GtkWidget * widget, premises * head ) 打開保疝好的dat數(shù)據(jù)文件,并顯示于主界面。樓盤函數(shù):void edit_preniises_info( premises * head )編輯選后后樓盤信息,結(jié)束后更新于主界面。static void premises_save_data( premises * head )結(jié)束編輯后保存輸入后京樓盤信息。static void premises_on_window_destroy( GtkWidget * widget,gpointer data ) 關(guān)閉窗口后收回內(nèi)生

18、。static void to_prev_premises_info( GtkWidget * widget,premises * head )修改樓盤界而打開后,實(shí)現(xiàn)點(diǎn)擊上一個(gè)樓盤可修改編輯上一個(gè)樓盤的基本信息。static void premises_edit_bui_info( GtkWidget * widget.premises * head )在主界面右鍵后修改樓底信息。static void to_next_premises_info( GtkWidget * widget.premises * head ) 在樓盤信息修改窗口單擊卡一個(gè)可以修改下一個(gè)樓盤的基本信息。static

19、 void premises_finalize( GtkWidget * widget,premises * head )在樓盤信息修改窗口編輯樓盤基本信息結(jié)束后點(diǎn)擊結(jié)束編輯,退出修改窗口釋放一些內(nèi)存。樓棟函數(shù):static void building_save_data( building * head );結(jié)束編輯后保存輸入后防樓棟信息。static void building_on_window_destroy( GtkWidget * widget,gpointer data );關(guān)閉窗口后收回內(nèi)存。static void to_prev_building_info( GtkWidge

20、t * widget,building * head );修改樓棟界而打開后,實(shí)現(xiàn)點(diǎn)擊上一個(gè)樓棟可修改編輯上一個(gè)樓棟的基本信息。static void building_edit_hose_info( GtkWidget * widget,building * head );在樓棟界面右鍵后修改房屋宿息。static void to_next_building_info( GtkWidget * widget,building * head );在樓棟信息修改窗口單擊下一個(gè)可以修改下一個(gè)樓棟的基本信息。static void building_finalize( GtkWidget * wid

21、get,building * head );在樓棟信息修改窗口編輯樓棟基本信息結(jié)束后點(diǎn)擊結(jié)束編輯,退出修改窗口釋放一些內(nèi)存。房屋函數(shù):static void hose_save_data( hose * head );結(jié)束編輯后保忌輸人后的房屋信息。static void hose_on_window_destroy( GtkWidget * widget,gpointer data );在房屋信息修次窗口編輯房屋基本信息結(jié)束后點(diǎn)擊結(jié)束編輯,退出修改窗口釋放一些內(nèi)存。static void to_prev_hose_info( GtkWidget * widgetjiose * head );

22、修改房屋界擊打異后,實(shí)現(xiàn)點(diǎn)擊上一個(gè)房屋可修改編輯上一個(gè)房屋的基本信息。static void to_next_hose_info( GtkWidget * widget,hose * head );修改房屋界而打笄后,實(shí)現(xiàn)點(diǎn)擊下一個(gè)房屋可修改編輯下一個(gè)房屋的基本信息。static void hose_finalize( GtkWidget * widget,hose * head );在房屋信息修改窗口編輯房屋基本信息結(jié)束后點(diǎn)擊結(jié)束編輯,退出修改窗口釋放一 些內(nèi)存。文件函數(shù):void new_file( GtkWidget * widget,premises * head )主界面文件菜單中新

23、建功能,用于實(shí)現(xiàn)新建樓盤信息。void on_close_file( GtkWidget * widget,premises * head )主界面文件橐單中關(guān)閉文件功能,用于關(guān)閉文件,清理內(nèi)存等操作。void open_file( GtkWidget * widget.premises * head )主界面文祥菜單中打開功能,用于打開之前保存的dat文件數(shù)據(jù)。void save_file( GtkWidget * widget,premises * head )主界面文祥菜單中保存功能,用于保存編輯完成的信息。void save_file_as( GtkWidget * widget,pr

24、emises * head )主界面文彳牛翥單中另存為功能,用于按指定路徑保存編輯完成的信息。void close_file( premises * head )主界面文存菜單中退出功能,用于關(guān)閉系統(tǒng),清理內(nèi)存等操作。static int select_file( int flag )選擇要打開或親另存為的文件名。premises * create_premises()創(chuàng)建新的樓盤結(jié)點(diǎn)并且初始化。building * create_building()創(chuàng)建新的樓棟結(jié)點(diǎn)并且初始化。hose * create_hose()創(chuàng)建新的房應(yīng)結(jié)點(diǎn)并且初始化。static premises * find_p

25、remises_head( premises * head )尋找樓盤信息鏈表而頭指針。static premises * getfilecontent()讀取需打開的樓盤文件并鏈接。void abort_exe( GtkWidget * widget,premises * head )退出系統(tǒng)柒保存數(shù)據(jù)時(shí)彈出窗口進(jìn)行數(shù)據(jù)未保存的提醒。查找函數(shù):void search_for_building( GtkWidget * widget,premises * head )搭建好樓盤搜索界面的基本框架。static void search_for_building_start(GtkWidget *

26、 widget,premises * head)查找樓棟前進(jìn)行而施并初始就保存符合搜索條件的信息的鏈表的結(jié)點(diǎn)。static void search_buiIding_get_resu 11( premises * head)進(jìn)行比較后得出窺索結(jié)果。static void search_building_show_result()將查詢所獲結(jié)果皂示在主界面static void search_building_get_selection( GtkWidget * widget,GdkEventButton * event,gpointer data)“查找”菜單中“查找樓棟”模塊調(diào)用的函數(shù),用于

27、創(chuàng)建保存符合搜索條件的信息的 鏈表。static void search_see_hose()在房屋信息窗口中,實(shí)現(xiàn)響應(yīng)在列表框上發(fā)生的鼠標(biāo)點(diǎn)擊事件。void search_for_hose( GtkWidget * widget, premises * head )搭建好房屋搜索界面的基本框架。static void search_for_hose_start( GtkWidget * widget.premises * head )查找房屋前進(jìn)行創(chuàng)建并初始化保存符合搜索條件的信息的鏈表的結(jié)點(diǎn)。static void search_hose_get_result( premises * he

28、ad )進(jìn)行比較后得出窺索結(jié)果。static void search_hose_show_result()將查詢所獲結(jié)果顯示雇主界加上。static search_result * create_search_result()創(chuàng)建新鏈表保存搜索所得信息。窗口搭構(gòu)函數(shù):void see_window_building( premises * head )查看樓棟彈出窗口搭構(gòu)。static void on_bui_windovv_destroy( GtkWidget * widget.gpointer data )關(guān)閉窗口后收回內(nèi)存。static void bui_get_selection( G

29、tkWidget * widget,GdkEventButton * event,gpointerdata )在樓棟信息展示窗口,實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊事件。static building * bui_get_selected_node()用戶點(diǎn)擊選中想要查看的樓棟后,獲取所選樓棟信息結(jié)點(diǎn)。static void bui_seeiose()樓棟信息界面選中某房屋后彈出該房屋的信息窗口的搭構(gòu)。static void bui_add_info()樓棟界面中添加新的樓棟信息并更新顯示。static void bui_remove_info()樓棟界面里刪除選中樓棟并更新顯示。static void bui_i

30、nsert_info()在所選的樓棟之下插入新的樓棟信息并更新顯示。static void bui_edit_info()在樓棟彈出窗口修改樓棟基本信息并更新到樓棟界面。void show_all_bu i_i nfo()將所有的樓棟信息展示于樓棟界面。房屋信息窗口搭構(gòu)函數(shù):void see_hose_window( premises * pre_head,building * bui.head)房屋基本信息彈出窗口基本構(gòu)造。static void on_hose_window_destroy( GtkWidget * widget.gpointer data ) 關(guān)閉窗口后收回內(nèi)存。stat

31、ic void hose_get_selection( GtkWidget * widget,GdkEventButton * event,gpointerdata )在房屋信息展示窗口,實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊事件。static hose * hose_get_selected_node()用戶點(diǎn)擊選中想要查看的房屋后,獲取所選房屋信息結(jié)點(diǎn)。static void hose_add_info()房屋界面中添加新的房屋信息并更新顯示。static void hose_remove_info()房屋界面里刪除選中樓棟并更新顯示。static void hose_insert_info()在所選的房屋之下插入

32、新的房屋信息并更新顯示。static void hose_edit_info()在房屋彈出窗口修改房屋基本信息并更新到房屋界面。void show_all_hose_info()將所有的房屋信息展示于房屋界面。程序詳見附錄。4.2系統(tǒng)測(cè)試常用軟件測(cè)試方法:1 .頁面鏈接檢查:每一個(gè)鏈接是否都有對(duì)應(yīng)的頁面,并且頁面之間切換正確。2 .相關(guān)性檢查:刪除/增加一項(xiàng)會(huì)不會(huì)對(duì)其他項(xiàng)產(chǎn)生影響,如果產(chǎn)生影響,這些影響 是否都正確。3.檢查按鈕的功能是否正確:如update, cancel, delete, save等功能是 否正確。4 .字符串長(zhǎng)度檢查:輸入超出需求所說明的字符串長(zhǎng)度的內(nèi)容,看系統(tǒng)是否檢查字

33、 符串長(zhǎng)度,會(huì)不會(huì)出錯(cuò).5 .字符類型檢查:在應(yīng)該輸入指定類型的內(nèi)容的地方輸入其他類型的內(nèi)容(如在應(yīng)該 輸入整型的地方輸入其他字符類型),看系統(tǒng)是否檢查字符類型,會(huì)否報(bào)錯(cuò).6 .檢查:輸入內(nèi)容包括各種標(biāo)點(diǎn)符號(hào),特別是空格,各種,回車鍵.看系統(tǒng)處理是否正確.7 .中文字符處理:在可以輸入中文的系統(tǒng)輸入中文,看會(huì)否出現(xiàn)亂碼或出錯(cuò).8 .檢查帶出信息的完整性:在查看信息和update信息時(shí),查看所填寫的信息是不是全 部帶出.,帶出信息和添加的是否一致9 .信息重復(fù):在一些需要命名,且名字應(yīng)該唯一的信息輸入重復(fù)的名字或ID,看系統(tǒng) 有沒有處理,會(huì)否報(bào)錯(cuò),重名包括是否區(qū)分大小寫,以及在輸入內(nèi)容的前后輸入

34、空格,系 統(tǒng)是否作出正確處理.10 .檢查刪除功能:在一些可以一次刪除多個(gè)信息的地方,不選擇任何信息,按"",看系 統(tǒng)如何處理,會(huì)否出錯(cuò);然后選擇一個(gè)和多個(gè)信息,進(jìn)行刪除,看是否正確處理.11 .檢查添加和修改是否一致:檢查添加和修改信息的要求是否一致,例如添加要求 必填的頂,修改也應(yīng)該必填;添加規(guī)定為整型的項(xiàng),修改也必須為整型.12 .檢查修改重名:修改時(shí)把不能重名的項(xiàng)改為已存在的內(nèi)容,看會(huì)否處理,報(bào)錯(cuò).同時(shí), 也要注意,會(huì)不會(huì)報(bào)和自己重名的錯(cuò).13 .重復(fù)提交表單:一條已經(jīng)成功提交的紀(jì)錄,back后再提交,看看系統(tǒng)是否做了 處理。14 .檢查多次使用back鍵的情況:在

35、有back的地方,back,回到原來頁面,再back,重復(fù) 多次,看會(huì)否出錯(cuò).15 . search檢查:在有search功能的地方輸入系統(tǒng)存在和不存在的內(nèi)容,看search結(jié)果 是否正確.如果可以輸入多個(gè)search條件,可以同時(shí)添加合理和不合理的條件,看系統(tǒng) 處理是否正確.16 .輸入信息位置:注意在光標(biāo)停留的地方輸入信息時(shí),光標(biāo)和所輸入的信息會(huì)否跳 到別的地方. 17.上傳下載文件檢查:上傳下教文件的功能是否實(shí)現(xiàn),上傳文件是否 能打開。對(duì)上傳文件的格式有何規(guī)定,系統(tǒng)是否有解釋信息,并檢查系統(tǒng)是否能夠 做到。18 .必填項(xiàng)檢查:應(yīng)該填寫的項(xiàng)沒有填寫時(shí)系統(tǒng)是否都做了處理,對(duì)必填項(xiàng)是否有提 示

36、信息,如在必填項(xiàng)前加*19 .快捷鍵檢查:是否支持,如Ctrl+C Ctrl+V Backspace等,對(duì)一些不允許輸入信 息的字段,如選人,選日期對(duì)快捷方式是否也做了限制。20 .回車鍵檢查:在輸入結(jié)束后直接按回車鍵,看系統(tǒng)處理如何,會(huì)否報(bào)錯(cuò).樓盤系統(tǒng)數(shù)據(jù)測(cè)試:(1)添加信息:該模塊實(shí)現(xiàn)添加新的樓盤或樓棟或房屋的功能。單擊添加信息結(jié)束編輯后保存后關(guān)閉再重新打開插入信息:在所選項(xiàng)之下插入新的信息項(xiàng)。選中一項(xiàng)后,直接在數(shù)據(jù)維護(hù)中實(shí)現(xiàn)或者右鍵選擇插入信息實(shí)現(xiàn)。彈出窗口,鍵入信息,然后結(jié)束編輯。刪除信息刪除選中的項(xiàng)。選中需要?jiǎng)h除的信息,郵件或者直接在數(shù)據(jù)維護(hù)中實(shí)現(xiàn)。單擊刪除后。(4)編輯信息:實(shí)現(xiàn)修

37、改詳細(xì)信息。選中需要修改的項(xiàng)后右鍵或者在數(shù)據(jù)維護(hù)中編輯信息中實(shí)現(xiàn)。單擊編輯信息,彈出窗口,修改需要編輯的項(xiàng)。結(jié)束編輯。(5)查找:實(shí)現(xiàn)單一條件或者多條件查找。單擊查找菜單項(xiàng),選擇想要查找的模塊。以房屋為例。彈出窗口首先,單一條件搜索,以樓盤名稱,房屋價(jià)格,是否售出為例單擊搜索單擊搜索單擊搜索組合條件搜索,以價(jià)格和是否售出,地址和價(jià)格為例單擊搜索單擊搜索.搜索結(jié)果-1房屋編號(hào)所在樓層價(jià)格(萬元/平米)面積1平方米)公掘率 已售出£2121.1000001685 %統(tǒng)計(jì):統(tǒng)計(jì)別墅,經(jīng)濟(jì)適用房(0.5萬每平方米),商品房(既不是經(jīng)濟(jì)適用房也 不是別墅)的數(shù)量。選擇菜單中的統(tǒng)計(jì),統(tǒng)計(jì)房屋信息

38、。綜合上述幾個(gè)功能的實(shí)現(xiàn),數(shù)據(jù)測(cè)試環(huán)節(jié)順利通過。5總結(jié)與展望7.1全文總結(jié)(1)根據(jù)樓盤系統(tǒng)的基本需要,設(shè)計(jì)功能。(2)設(shè)計(jì)簡(jiǎn)潔易操作的界面,選擇恰當(dāng)?shù)膱D形庫。(3)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和文件格式,詳細(xì)刻畫樓盤或者樓棟或房屋的特性。(4)用C語言實(shí)現(xiàn)先前設(shè)計(jì)的功能,編寫代碼并且編譯調(diào)試。(5)將模塊拼接,構(gòu)成完整系統(tǒng)。(6)上網(wǎng)查詢樓盤的具體信息,為系統(tǒng)錄入數(shù)據(jù)。(7)進(jìn)行數(shù)據(jù)測(cè)試,修改bug。(8)與同學(xué)交流,完善程序。7.2工作展望在今后的研究中,圍繞著如下幾個(gè)方面開展工作(1)繼續(xù)熟悉GTK+,增加對(duì)其他類型的庫的了解。(2)不斷精進(jìn)自己C語言的水平,并且有意識(shí)地去稍微接觸其他面向?qū)ο蟮恼Z 言。

39、(3)設(shè)計(jì)系統(tǒng)時(shí)考慮功能更齊全,界面設(shè)計(jì)更合理。(4)數(shù)據(jù)測(cè)試方面加強(qiáng)對(duì)數(shù)據(jù)實(shí)際情況的查實(shí),用真是數(shù)據(jù)進(jìn)行數(shù)據(jù)測(cè)試可靠 性更高。(5)不斷向他人學(xué)習(xí),積極和同學(xué)討論,傾聽他人的想法。體會(huì)這次課程設(shè)計(jì)是學(xué)習(xí)C語言以來第一次嘗試的大項(xiàng)目,不同于以前的小程序小 算法,系統(tǒng)的內(nèi)部是換換相扣的,無論哪個(gè)細(xì)微的地方出了很小問題,都會(huì)最直接 地反映出來。這次也是第一次嘗試代碼量如此高的程序,相比以前的小程序,覺得 較為吃力和辛苦,這也讓我明白很多看起來很簡(jiǎn)單的程序后面都是程序員的心血。 此次課設(shè)我前前后后總共重做了三次。第一次是按照書本上的例子,一筆一劃地模 仿,但在編譯過程中出現(xiàn)太多錯(cuò)誤,于是舍棄。第二次

40、,自己設(shè)計(jì)了功能和界面, 然后根據(jù)書上給出的一次實(shí)現(xiàn)界面的函數(shù)開始了代碼編寫。第二次的作品比較成功, 文本界面功能較齊全。但只放在了 U盤里,在打印的途中我將U盤遺失了,所以第 二次的作品也無法面世。在課程設(shè)計(jì)檢查的時(shí)候,我發(fā)現(xiàn)別人設(shè)計(jì)的界面與自己的 差異很明顯,按照課本上來的是文本界面,但是有能力的學(xué)生都不約而同得選擇了 在上網(wǎng)上自學(xué)GTK+之類的圖形庫設(shè)計(jì)了圖形界面。羨慕之余我也有點(diǎn)心動(dòng),就向同 班的大神請(qǐng)教,大神推薦了一些資料,不厭其煩地回答和提供一些幫助使我的第三 次作品成形。讓我對(duì)編程有了新的看法,其實(shí)編程不一定是自己悶著頭在那想算法 敲代碼,他還可以是相互交流,互相幫助的。在和別人

41、交流的過程中,我了解到自 己對(duì)于計(jì)算機(jī)無論是哪個(gè)方面的了解都很匱乏,也缺少一些鉆研的熱情。所以從今天起,我要學(xué)會(huì)利用互聯(lián)網(wǎng)這個(gè)強(qiáng)有力的工具進(jìn)行自我的學(xué)習(xí)和提升,積 極和別人交流討論,不要怕去嘗試。先把對(duì)于計(jì)算機(jī)的態(tài)度矯正過來再加強(qiáng)自己各 方面的能力。教訓(xùn):對(duì)于重要信息要及時(shí)備份,并且需要在電腦上留底。課本很重要但它不能教會(huì)你所有,你需要擁有更多的學(xué)習(xí)途徑??梢赃M(jìn)行模仿創(chuàng)新,但是照本宣科亳無益處。參考文獻(xiàn)1劉云生.現(xiàn)代數(shù)據(jù)庫技術(shù).北京:國(guó)防工業(yè)出版社,2001.3846陽小華,劉振宇,厚敏生等.元搜索引擎系統(tǒng)合成算法的約束條件.軟件學(xué)報(bào),2002,13(7):1264-12703 Rogic S

42、, Mackworth A K, Ouellette F B. Evaluation of gene-finding programs on maniinaliaii sequences. Genome Res., 2001, 11(5): 817-8324 Krogli A. Two metliods for improving perfbnnance of an HMM and tlieir application for gene-findmg. In: Gaasterland T, Karp P, Kaiplus K, et al., eds. Proc. Int. Conf. Int

43、ell. Syst. Mol. Biol., Menlo Park CA: AAAI Press, 1997, 5:1791865孫良.一種分布式智能信息檢索系統(tǒng)的研究與實(shí)現(xiàn):碩士學(xué)位論文.浙江大學(xué),2002.43-476 URL: -abstracts.html附錄程序清單#ifndef MANJLINCLUDED define MAIN_H_INCLUDED #include<gtk/gtk. h> #include<malloc. h> #include<string. h> #include<stdio. h>define SAVE 1d

44、efine OPEN 0enum(PREMISES.NUM,PREMISES.NAME,PREMISES.LOCATION,PREXISES_DEVELOPER,PREMISES.COMPAIN,PREMISES.AREA,PREMISES GREEN RATE,PREMISES.BUILDING.NUM,NUM_PREMISES_COLUMNS, );enum(BUILDING JO,BUILDING NUM FLOOR,BUILDING.AREA,BUILDING.IS.VILLA,BUILDING.BELONGED,NUM_BUILDING_COLUMNS, ;enum(HOSE.NUM

45、,HOSE_AREA,HOSE.FLOOR,HOSE.PRINCE,HOSE.RATE,HOSE IS SOLD,HOSE IS SECOND HAND,HOSE BELONGED PRE,HOSE.BELONGED.BUI,NUM HOSE COLUMNS,;typedef struct struc_0 (int num;int floor;float prince;int rate;int is_sold;int is second hand;int area;struct struc_0 * next;struct struc_0 * prev;) hose;typedef struct

46、 struc_l(int num;int num_floor;int area;int is_villa;struct struc_l * next;struct struc_l * prev;hose * P_hose;? building;typedef struct struc_2(int num;char * name;char * location;char * developer;char * compain;int area;int gree_rate;int num_building;struct struc_2 * next;struct struc_2 * prev;bui

47、lding * P_building;:premises;typedef struct struc_3GtkEntry * entry_name;GtkEntryentry_location;GtkEntryentry_deve1oper;GtkEntryentry_compain;GtkEntryentry_area_low, * entry_area_high;GtkEntryentry_rate_low, * entry_rate_high;:filter_data_premises;typedef struct struct_4GtkWidget * treeview;GtkTreeM

48、odel * tree_model;GtkTreelter iter;? tree_data;typedef structstruct 5GtkEntryentry_num;GtkEntryentry_name;GtkEntryentry_location;GtkEntryentry_developer;GtkEntryentry_compain;GtkEntryentry_area;GtkEntry* entry_green_rate;GtkEntry * entry_num_buiIding;GtkWidget * window;? premises_edit_widget;typedef

49、 struct struct_6GtkEntry * entry_num;GtkEntry * entry_floor;GtkEntry * entry_area;GtkCheckButton * checkbutton;GtkWidget * window;:building_edit_widget;typedef structstruct 7GtkEntryentry_num;GtkEntryentry_floor;GtkEntryentry_prince;GtkEntryentry_rate;GtkEntryentry_area;GtkCheckButton * check_is_sol

50、d;GtkCheckButton * check_is_second_hand;GtkWidget * window; hose_edit_widget;typedef struct struct_8premises * Ppremises;building * Pbuilding;hose * Phose;struct struct_8 * next;struct struct_8 * prev;? search_result;typedef struct struct_9GtkEntryentry_name;GtkEntryentry_location;GtkEntryentry_deve

51、1oper;GtkEntryentry_compain;GtkEntryentry_num_floor_low, * entry_num_f1oor_high;GtkEntryentry_area_low, * entry_area_high;GtkCheckButton * check is villa;GtkWidget * window;) search_building_widget;typedef structstruct 10GtkEntryentry_name;GtkEntryentry_location;GtkEntryentry_developer;GtkEntryentry

52、_compain;GtkEntryentry_num_floor_low, * entry_num_f1oor_high;GtkEntryentry_area_low, * entry_area_high;GtkEntryentry_floor_low, * entry_floor_high;GtkEntryentry_price_low, * entry_price_high;GtkEntryentry_hose_area_low, * entry_hose_area_high;GtkEntryentry_rate_low, * entry_rate_high;GtkCheckButton

53、* check is villa;GtkCheckButton * check is second;GtkCheckButton * check is sold;GtkWidget * window; search_hose_widget;extern premises* create_premises();extern buildingextern hoseextern voidextern voidextern voidextern voidextern voidextern voidextern voidextern voidbui_head);extern voidextern voidextern void

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論