《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告-景點(diǎn)查詢系統(tǒng).docx

上傳人:good****022 文檔編號(hào):116539643 上傳時(shí)間:2022-07-05 格式:DOCX 頁數(shù):69 大?。?76.39KB
收藏 版權(quán)申訴 舉報(bào) 下載
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告-景點(diǎn)查詢系統(tǒng).docx_第1頁
第1頁 / 共69頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告-景點(diǎn)查詢系統(tǒng).docx_第2頁
第2頁 / 共69頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告-景點(diǎn)查詢系統(tǒng).docx_第3頁
第3頁 / 共69頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告-景點(diǎn)查詢系統(tǒng).docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告-景點(diǎn)查詢系統(tǒng).docx(69頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、課 程 設(shè) 計(jì) 報(bào) 告題目: 景點(diǎn)查詢系統(tǒng) 課程名稱: C語言程序設(shè)計(jì) 專業(yè)班級(jí): 信息安全201302班 學(xué) 號(hào): 姓 名: 指導(dǎo)教師: 報(bào)告日期: 2014年10月10日 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 任務(wù)書一、主要內(nèi)容建立國內(nèi)景點(diǎn)信息系統(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)1曹計(jì)昌,盧萍,李開. C語言程序設(shè)計(jì),北京:科學(xué)出版社,20132李開,盧萍,曹計(jì)昌. C語言實(shí)驗(yàn)與課程設(shè)計(jì),北京:科學(xué)出版社,20113張引. C程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì),

2、 杭州: 浙江大學(xué)出版社,20074黃明,梁旭,萬洪莉. C語言課程設(shè)計(jì),北京: 電子工業(yè)出版社,2006四、系統(tǒng)功能系統(tǒng)主要是提供景點(diǎn)信息的快速查詢、檢索和統(tǒng)計(jì)。應(yīng)該具有按城市、按景區(qū)等查詢景點(diǎn)信息;組合條件檢索景點(diǎn)信息;按城市等統(tǒng)計(jì)景點(diǎn)情況等。五、系統(tǒng)數(shù)據(jù)系統(tǒng)主要涉及“城市”、“景區(qū)”和“景點(diǎn)”3類信息?!俺鞘小毙畔⒂沙鞘芯幪?hào)、城市名稱、景區(qū)級(jí)別、監(jiān)督電話和咨詢電話等數(shù)據(jù)項(xiàng)目組成,“景區(qū)”信息由景區(qū)編號(hào)、景區(qū)名稱、景區(qū)地址、門票價(jià)格、開放時(shí)間和咨詢電話等數(shù)據(jù)項(xiàng)目組成,“景點(diǎn)”信息由景點(diǎn)號(hào)、景點(diǎn)名稱、景點(diǎn)位置、瀏覽時(shí)間和景點(diǎn)特點(diǎn)等數(shù)據(jù)項(xiàng)目組成。在磁盤上,建議采用3個(gè)文件分別存儲(chǔ)“城市”、“景

3、區(qū)”和“景點(diǎn)”的數(shù)據(jù)。在“景區(qū)”信息中增加城市編號(hào),在“景點(diǎn)”信息中增加城市編號(hào)和景區(qū)編號(hào)。華中科技大學(xué)計(jì)算機(jī)學(xué)院C語言程序設(shè)計(jì)課程設(shè)計(jì)目 錄任務(wù)書II目 錄I1 引言11.1 課題背景和意義11.2 國內(nèi)外研究現(xiàn)狀11.3 課程設(shè)計(jì)的主要研究工作12 系統(tǒng)需求分析與總體設(shè)計(jì)22.1 系統(tǒng)需求分析22.2 系統(tǒng)總體設(shè)計(jì)23 系統(tǒng)詳細(xì)設(shè)計(jì)23.1 有關(guān)數(shù)據(jù)結(jié)構(gòu)的定義33.2 主要算法設(shè)計(jì)34 系統(tǒng)實(shí)現(xiàn)與測(cè)試134.1 系統(tǒng)實(shí)現(xiàn)134.2 系統(tǒng)測(cè)試165 總結(jié)與展望235.1 全文總結(jié)235.2 工作展望23體會(huì)24參考文獻(xiàn)25附錄 程序清單26I華中科技大學(xué)計(jì)算機(jī)學(xué)院C語言程序設(shè)計(jì)課程設(shè)計(jì)1 引

4、言1.1 課題背景和意義在現(xiàn)代的社會(huì)中,由于人們?cè)絹碓蕉嗟年P(guān)注到了旅游帶來的好處,外出旅游就成為了一種時(shí)尚的方式。面對(duì)眾多的旅游景點(diǎn),選擇就成為了人們所面臨的一大問題,在日常使用中, 我們常常會(huì)無法快速的了解到某一景點(diǎn)的詳細(xì)信息。鑒于以上的種種要求,我們就需要一個(gè)能方便查詢我們想要的信息的軟件。我的課設(shè)就是基于以上的種種要求。1.2 國內(nèi)外研究現(xiàn)狀目前國內(nèi)外對(duì)于旅游方面的發(fā)展都是很迅速地。在景點(diǎn)的查詢方面,國內(nèi)外也是有許多優(yōu)秀的軟件。1.3 課程設(shè)計(jì)的主要研究工作深入探討有關(guān)方面的問題,掌握開發(fā)一個(gè)軟件所需要的能力,對(duì)目前某些軟件需要修改的地方做出自己的改進(jìn),并自主編譯出一款相應(yīng)的軟件系統(tǒng)。2

5、 系統(tǒng)需求分析與總體設(shè)計(jì)2.1 系統(tǒng)需求分析對(duì)于大多數(shù)用戶來說,他們最想要了解的就是各旅游景點(diǎn)的門票、開放時(shí)間、交通、簡(jiǎn)介等相關(guān)信息。于是,本軟件就著重從這些方面出發(fā)來滿足用戶的需求。2.2 系統(tǒng)總體設(shè)計(jì)本系統(tǒng)注重查詢的功能,用戶可以根據(jù)省、市、景區(qū)、景點(diǎn)等方式來對(duì)所要尋找的信息進(jìn)行查詢。同樣,由于信息會(huì)有部分更新,所以,也提供了修改和添加功能,讓用戶可以更方便的處理這款軟件。具體程序結(jié)構(gòu)見圖1。幫助主題關(guān)于系統(tǒng)清屏景點(diǎn)插入景點(diǎn)修改景點(diǎn)刪除數(shù)據(jù)保存數(shù)據(jù)加載數(shù)據(jù)備份數(shù)據(jù)恢復(fù)圖1城市景點(diǎn)查詢景點(diǎn)詳細(xì)城市查詢省區(qū)查詢查詢主過程文件編輯幫助3 系統(tǒng)詳細(xì)設(shè)計(jì)3.1 有關(guān)數(shù)據(jù)結(jié)構(gòu)的定義數(shù)據(jù)結(jié)構(gòu)及用法說明:

6、處理的數(shù)據(jù):省、市、景點(diǎn)、景區(qū)的名稱以及其相應(yīng)的分級(jí),以結(jié)構(gòu)體存儲(chǔ)。struct ss /景點(diǎn)結(jié)構(gòu)體 char name50; /省、市、景點(diǎn)名稱 int flag; /級(jí)別 struct ss * right; struct ss * down;*head;因表述能力有限,故直接采用圖來說明:圖2 本程序采用如圖2的方式來構(gòu)建十字鏈表。3.2 主要算法設(shè)計(jì)模塊1:創(chuàng)建鏈表。此次所用的創(chuàng)建方法是用三個(gè)函數(shù)的嵌套及遞歸完成的,具體程序如下:struct ss *creat1() /生成景點(diǎn)名稱 int t=0,bo=0; char c=0; struct ss * loc_head=NULL;

7、loc_head=(struct ss *) malloc (sizeof(struct ss);while(c=fgetc(fin)!=n) if(c=.) loc_head-namet=0; loc_head-flag=3; loc_head-down=NULL; loc_head-right=creat1(); return loc_head; loc_head-namet+=c; struct ss *creat2() /生成城市名稱 int t=0; char c; struct ss * loc_head=NULL; loc_head=(struct ss *) malloc (s

8、izeof(struct ss); loc_head-namet=0; while(c=fgetc(fin)!=*) if(c!=:) loc_head-namet+=c; while(c=fgetc(fin)!=:) loc_head-namet+=c; loc_head-namet=0; loc_head-flag=2; loc_head-right=creat1(); /遞歸生成下一級(jí)景點(diǎn)名 loc_head-down=creat2(); /遞歸生成同級(jí)城市名 return loc_head; struct ss *creat3() /生成省區(qū)名稱 int t=0;char c;stru

9、ct ss * loc_head=NULL;loc_head=(struct ss *) malloc (sizeof(struct ss);while(c=fgetc(fin)!=EOF) if(c=*) while(c=fgetc(fin)!=n) loc_head-namet+=c; if(c=n) loc_head-namet=0; loc_head-flag=1; loc_head-right=creat2(); /遞歸生成下一級(jí)城市名 loc_head-down=creat3(); /遞歸生成同級(jí)的省名 return loc_head; 程序運(yùn)行時(shí),首先調(diào)用creat3(),接下來

10、在生成省名后,會(huì)直接進(jìn)入下一級(jí)的生成,這個(gè)完全是考慮數(shù)據(jù)讀入而設(shè)計(jì)的讀入方式,下面附上部分?jǐn)?shù)據(jù):*河北承德:避暑山莊.秦皇島:山海關(guān)景區(qū).北戴河風(fēng)景名勝區(qū).保定:安新白洋淀景區(qū).保定:野三坡景區(qū).石家莊:西柏坡景區(qū).清西陵.唐山市: 清東陵.南湖景區(qū).說明:程序運(yùn)行時(shí),先生成省會(huì)名,然后后成城市名,然后生成景點(diǎn)名,景點(diǎn)名結(jié)束會(huì),再次生成城市名,然后景點(diǎn)名,依次下去,直到生成結(jié)束。模塊2:遍歷鏈表遍歷采用的方式是深度搜索的方法。具體程序如下:int x=1; /控件遞歸結(jié)束 struct ss *found,*father; /在遞歸中記錄下位置 struct ss *search (struc

11、t ss *loc_head,char s) /定位查找目標(biāo) struct ss *p; p=loc_head; if(p!=NULL&p!=0 xa&p!=0 x2a&x=1&p!=-1) if(strcmp(p-name,s)=0) x=0; found=p; return p; else father=p; search(p-right,s); search(p-down,s); return NULL;int searchdata(struct ss *loc_head,char s) /整合上面的search函數(shù)便于操作 x=1;search(loc_head,s);if(x=0)

12、return 1;else return 0;說明:在查找的過程中,x為控制變量,判斷是否繼續(xù)查找,father、found分別表示所查數(shù)據(jù)的父結(jié)點(diǎn)及所查數(shù)據(jù),使用深度搜索將整個(gè)鏈表遍歷。模塊3:數(shù)據(jù)刪除void deletedata(struct ss *loc_head,char s) /刪除數(shù)據(jù) if(searchdata(loc_head,s)=1) father-right=found-right; free(found); else printf(NOT FOUND!n);說明:先匹配所查信息,如果滿足要求則刪除,重點(diǎn)是查找。模塊4:數(shù)據(jù)添加void adddata(struct

13、ss *loc_head,char t) /添加數(shù)據(jù) struct ss *add; add=(struct ss *) malloc (sizeof(struct ss); add-right=found-right; add-flag=found-flag; add-down=NULL; strcpy(add-name,t); found-right=add;說明:先匹配所查信息,然后在所要求位置添加新的信息,重點(diǎn)同樣是查找。模塊5:數(shù)據(jù)保存void savessj(struct ss *loc_head)struct ss *p=loc_head;int i=0;if(p!=NULL&p

14、!=0 xa&p!=0 x2a&x=1&p!=-1) if(p-flag=1) fprintf(fin,*%sn,p-name); else if(p-flag=2) fprintf(fin,%s:,p-name); else if(p-flag=3&p-right!=0 xa) fprintf(fin,%s.,p-name); else fprintf(fin,%s.n,p-name); savessj(p-right); savessj(p-down); 說明:數(shù)據(jù)保存采用了與創(chuàng)建鏈表相同的方式,用深度遍歷的方式遍歷鏈表,同時(shí)將其存儲(chǔ)到相應(yīng)文件中。模塊6:詳細(xì)信息輸出為節(jié)省內(nèi)存空間,詳細(xì)信

15、息未讀入程序中,只是在需要時(shí)才進(jìn)行匹配輸出。void detail(struct ss *loc_head,char s) /詳細(xì)信息輸出 FILE *fout;int len=0,t=100;char c50,q,o;struct ss * p=loc_head;fout=fopen(data2.txt,r);while(slen+);while(1) q=fgetc(fout); if(q=EOF) printf(NOT FOUNDn); getch(); ClearScreen(); return ; else if(q=*) fgetc(fout); fgets(c,len,fout)

16、; t=compare(c,s); if(compare(c,s)=1) /puts(c); ClearScreen(); printf(%s,c); while(o=fgetc(fout)!=*) putchar(o); printf(n按任意鍵繼續(xù).n); getch(); ClearScreen(); return ; 說明:該模塊本身就采用了模糊查找的模式,只需要前一部分的名字即可匹配成功,同時(shí),如上所說,考慮到信息量太大的因素,故此文件單獨(dú)列出,并未在一開始直接讀入程序,只是在需要是進(jìn)行查找輸出。模塊7、8、9:省區(qū)名查詢、城市名查詢、城市景點(diǎn)名查詢。從正常角度來考慮,一般用戶都會(huì)是

17、,先看所在省區(qū),然后再選城市,接著看城市里的景點(diǎn)名,然后再來詳細(xì)了解這個(gè)景點(diǎn)。因此,我設(shè)計(jì)了這些功能查詢模塊。BOOL SearchSheng()struct ss *p;p=head;while(p!=-1) printf(%-10s,p-name); p=p-down; printf(n按任意鍵繼續(xù).n); getch(); ClearScreen(); return TRUE;BOOL SearchCity()char s50;struct ss *p;ClearScreen(); printf(請(qǐng)輸入所要查的省份、直轄市或自治區(qū)n);gets(s);if(searchdata(head

18、,s)=1) p=found-right; else printf(NOT FOUNDn); return TRUE; if(found-flag=2) printf(請(qǐng)選擇城市景點(diǎn)查詢n); printf(按任意鍵繼續(xù)n); getch(); ClearScreen(); return TRUE; else if(p-name0=0) p=p-right; while(p!=0 xa) printf(%sn,p-name); p=p-right; else while(p!=0 x2a) printf(%-10s,p-name); p=p-down; printf(n按任意鍵繼續(xù).n); g

19、etch(); ClearScreen(); return TRUE;BOOL SearchJingdian()char s50;struct ss *p;ClearScreen(); printf(請(qǐng)輸入所要查詢的城市n);gets(s);if(searchdata(head,s)=1) p=found; else printf(NOT FOUNDn按任意鍵繼續(xù)n); getch(); ClearScreen(); return TRUE; if(found-flag=1) printf(請(qǐng)選擇城市查詢n); printf(按任意鍵繼續(xù)n); getch(); ClearScreen();

20、return TRUE; else p=p-right; while(p!=0 xa) printf(%sn,p-name); p=p-right; printf(按任意鍵繼續(xù).n); getch(); ClearScreen(); return TRUE;說明:這幾個(gè)模塊的重點(diǎn)同樣都是在遍歷上,只要解決了這個(gè)問題,這幾個(gè)功能都比較容易設(shè)計(jì)好。模塊10:幫助文件BOOL AboutSys(void)BOOL bRet = TRUE;ScreenFresh();printf(ntt 【* Programming Instructions *】n);Delay(); printf( tn);Del

21、ay();printf( t 系統(tǒng)支持快捷鍵操作,簡(jiǎn)單的鼠標(biāo)操作和鍵盤操作; n);Delay();printf( t 本系統(tǒng)大量使用了標(biāo)注,盡量使程序明了易懂; n);Delay();printf( t 運(yùn)用較多的結(jié)構(gòu),用三方向的十字交叉鏈表儲(chǔ)存信息; n);Delay();printf( t 運(yùn)用數(shù)組,指針,結(jié)構(gòu)與聯(lián)合及文件輸入輸出,控制臺(tái)等知識(shí)。n);Delay();printf( t 系統(tǒng)主要提供景點(diǎn)信息的快速查詢、檢索; n);Delay();printf( t 本程序有景點(diǎn)信息查詢,信息錄入,修改,刪除等功能. n);Delay();printf( n);Delay();print

22、f( 【參考文獻(xiàn)】:tttttt n 1曹計(jì)昌,盧萍,李開. C語言程序設(shè)計(jì),北京:科學(xué)出版社,2008; n);Delay();printf( 2李開,盧萍,曹計(jì)昌. C語言實(shí)驗(yàn)與課程設(shè)計(jì),北京:科學(xué)出版社,2011;n); printf( n); return bRet;說明:為了使用戶能更好的使用本軟件。模塊11:界面及其它相關(guān)部分 (這里過于散亂,程序在后面一起附上)4 系統(tǒng)實(shí)現(xiàn)與測(cè)試4.1 系統(tǒng)實(shí)現(xiàn)這部分可首先敘述一下你的系統(tǒng)實(shí)現(xiàn)的軟硬件環(huán)境;根據(jù)3.1的設(shè)計(jì),用C語言定義各種數(shù)據(jù)類型;程序代碼部分在這里不需要給出來,只需要敘述清楚在系統(tǒng)中包括哪些函數(shù),各函數(shù)的說明,如何利用這些函數(shù)

23、實(shí)現(xiàn)系統(tǒng)各模塊的功能,以及函數(shù)間的調(diào)用關(guān)系(也可用附加圖表示出來)。程序詳見附錄。一、軟硬件環(huán)境,如下圖:二、函數(shù)說明: /*框架函數(shù)的聲明*/void TextInterface(void);/*系統(tǒng)界面初始化*/void ClearScreen(void); /*清屏*/void ShowMenu(void); /*顯示主菜單欄*/void PopMenu(int num); /*彈出下拉菜單*/void PopOn(SMALL_RECT *, WORD, LABEL_BUNDLE *, HOT_AREA *); /*彈出窗口屏幕信息維護(hù)*/void PopOff(void); /*關(guān)閉彈

24、出窗口*/void DrawBox(SMALL_RECT *parea); /*繪制子菜單邊框*/void LocateSubMenu(int num, SMALL_RECT *parea); /* 彈出菜單定位*/void MarkMainMenu(int num); /* 標(biāo)記被選中的主菜單項(xiàng)*/void MarkSubMenu(int num); /* 標(biāo)記被選中的子菜單項(xiàng)*/void SetMainHotArea(void); /* 給主菜單欄設(shè)置熱區(qū)*/void RunSystem(void); /* 系統(tǒng)功能模塊的選擇和運(yùn)行*/void CloseSys(); /* 關(guān)閉系統(tǒng)并退出

25、*/void ShowTime(void); /* 動(dòng)態(tài)顯示系統(tǒng)時(shí)間*/inline void Gotoxy(COORD pos);/* 將光標(biāo)置于坐標(biāo)pos處*/inline void Delay(void);/* 時(shí)間暫延0.05s*/inline void ScreenFresh(void);/* 刷屏函數(shù)*/void Start(void);/* 進(jìn)入歡迎界面*/void WriteKeyWord(char *str,COORD pos);/* 將關(guān)鍵字顯示出來*/int MyStrstr(char *s,char *t);/* 在s串中查找t串*/*功能函數(shù)模塊函數(shù)的聲明*/BOOL

26、 ExeFunction(int main_menu_num, int sub_menu_num);struct ss *creat1() /生成景點(diǎn)名稱struct ss *creat2() /生成城市名稱struct ss *creat3() /生成省區(qū)名稱struct ss *search (struct ss *loc_head,char s) /定位查找目標(biāo)void deletedata(struct ss *loc_head,char s) /刪除數(shù)據(jù)void adddata(struct ss *loc_head,char t) /添加數(shù)據(jù)void savessj(struct

27、ss *loc_head) /存儲(chǔ)數(shù)據(jù)int compare(char a,char b) /匹配字符串void detail(struct ss *loc_head,char s) /詳細(xì)信息輸出BOOL SearchSheng() /省份信息查詢BOOL SearchCity() /城市信息查詢BOOL SearchJingdian() /城市景點(diǎn)名查詢BOOL ExitSys(void); /退出系統(tǒng) BOOL Theme(void); /主題BOOL AboutSys(void); /幫助 BOOL Clear(void); /清屏BOOL RestoreData(); /存儲(chǔ) BOO

28、L BackupData(); /數(shù)據(jù)恢復(fù)具體運(yùn)行方式見下圖: NY創(chuàng)建鏈表歡迎界面(主題)菜單界面初始化退出系統(tǒng)?選擇相應(yīng)功能并運(yùn)行結(jié)束開始4.2 系統(tǒng)測(cè)試首先敘述一下常用的軟件測(cè)試方法,在選擇幾個(gè)主要的功能模塊(自行掌握數(shù)量,關(guān)鍵要體現(xiàn)你的水平的一些模塊)描述測(cè)試過程,(1)先明確模塊的功能、設(shè)計(jì)目標(biāo)等(2)分析、敘述如何選取測(cè)試數(shù)據(jù)(3)運(yùn)行結(jié)果(這時(shí)可用截圖)(4)分析運(yùn)行結(jié)果、確認(rèn)程序滿足該模塊的設(shè)計(jì)目標(biāo)。測(cè)試方法:黑盒:這種方法是把測(cè)試對(duì)象看做一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。黑盒測(cè)試又叫做功

29、能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。 白盒:此方法把測(cè)試對(duì)象看做一個(gè)透明的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。系統(tǒng)測(cè)試:1、 歡迎界面2、數(shù)據(jù)保存3、數(shù)據(jù)加載4、數(shù)據(jù)備份5、數(shù)據(jù)恢復(fù)6、退出7、插入景點(diǎn)8、省區(qū)查詢9、城市查詢10、城市景點(diǎn)名查詢11、景點(diǎn)詳細(xì)信息查詢12、幫助主題13、關(guān)于系統(tǒng)14、清屏5 總結(jié)與展望5.1 全文總結(jié)對(duì)自己的工作做個(gè)總結(jié),主要工作如下:(1)學(xué)習(xí)了界面的制作,能簡(jiǎn)單運(yùn)用文本界面來完成一些相應(yīng)的任務(wù),并能對(duì)

30、其進(jìn)行一定的修改。(2)熟悉并掌握了鏈表的用法。(3)學(xué)習(xí)了有關(guān)遍歷的各種方法,學(xué)到了許多數(shù)據(jù)結(jié)構(gòu)的知識(shí)。(4)了解了一款軟件制作的過程,對(duì)軟件的制作有了一定的基礎(chǔ)。5.2 工作展望在今后的研究中,圍繞著如下幾個(gè)方面開展工作。(1)對(duì)于主界面的優(yōu)化問題。文本界面看起來還是不那么舒服,在以后還是要向圖形界面發(fā)展,UI這一塊兒還是很重要的。(2)多寫,多做,熟練運(yùn)用自己所學(xué)的知識(shí),將所學(xué)知識(shí)融會(huì)貫通。并且能在以后的時(shí)間里,做出更好的,讓自己滿意的作品。 體會(huì)首先,最大的體會(huì)就是開發(fā)一款軟件不容易??!為了完成這款軟件,我們需要研究有關(guān)界面的知識(shí),還要研究鏈表的知識(shí),數(shù)據(jù)結(jié)構(gòu)的知識(shí),以及其它的很多東西

31、??此埔粋€(gè)很簡(jiǎn)單的東西,真正做起來的時(shí)候就會(huì)發(fā)現(xiàn)有許多的困難之處。別的不說,就是一寫長了,人就可能會(huì)糊掉,就可能不知道自己前面是怎么想的了。不過也正是這樣,我總結(jié)的方法就是:1、多做注釋。這樣有利于程序的閱讀;2、程序?qū)懙臅r(shí)候要擺整齊;3、寫函數(shù)一個(gè)一個(gè)的調(diào)。這一點(diǎn)感觸頗深,一個(gè)大一點(diǎn)的程序,會(huì)有很多的函數(shù),如果開始不調(diào)好的話,到后面組合之后再來就很尷尬了。其次,另一個(gè)大的體會(huì)就是基礎(chǔ)一定要打好,如果沒有一個(gè)好的基礎(chǔ)的話,說來完成一個(gè)大的軟件純屬扯淡。參考文獻(xiàn)1 劉云生. 現(xiàn)代數(shù)據(jù)庫技術(shù). 北京: 國防工業(yè)出版社,2001.38462 陽小華,劉振宇,譚敏生等.元搜索引擎系統(tǒng)合成算法的約束條件

32、.軟件學(xué)報(bào),2002,13(7):126412703 Rogic S, Mackworth A K, Ouellette F B. Evaluation of gene-finding programs on mammalian sequences. Genome Res., 2001, 11(5): 8178324 Krogh A. Two methods for improving performance of an HMM and their application for gene-finding. In: Gaasterland T, Karp P, Karplus K, et al

33、., eds. Proc. Int. Conf. Intell. Syst. Mol. Biol., Menlo Park, CA: AAAI Press, 1997, 5:1791865 孫良.一種分布式智能信息檢索系統(tǒng)的研究與實(shí)現(xiàn):碩士學(xué)位論文.浙江大學(xué),2002.43476 URL: http:/www.ietf.org/1id-abstracts.html附錄 程序清單程序中適當(dāng)加些注釋以提高可讀性。宋體,五號(hào),行間距為固定12磅。/*景點(diǎn)查詢系統(tǒng)2014年7月*/#include #include #include #include #include #define SCR_ROW

34、25 /*屏幕行數(shù)*/#define SCR_COL 80 /*屏幕列數(shù)*/FILE *fin; /讀入文件 FILE *beifen1; /備份文件 struct ss /景點(diǎn)結(jié)構(gòu)體 char name50; /省市名稱 int flag; /級(jí)別 struct ss * right; struct ss * down;*head;/*屏幕窗口信息鏈結(jié)點(diǎn)結(jié)構(gòu)*/typedef struct layer_node char LayerNo; /*彈出窗口層數(shù)*/ SMALL_RECT rcArea; /*彈出窗口區(qū)域坐標(biāo)*/ CHAR_INFO *pContent; /*彈出窗口區(qū)域字符單元原

35、信息存儲(chǔ)緩沖區(qū)*/ char *pScrAtt; /*彈出窗口區(qū)域字符單元原屬性值存儲(chǔ)緩沖區(qū)*/ struct layer_node *next; /*指向下一結(jié)點(diǎn)的指針*/ LAYER_NODE;/*標(biāo)簽束結(jié)構(gòu)*/typedef struct label_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) */typedef struct hot_area SMALL_RECT *pArea; /*熱區(qū)定位數(shù)組首地址*/ char *pSor

36、t; /*熱區(qū)類別(按鍵、文本框、選項(xiàng)框)數(shù)組首地址*/ char *pTag; /*熱區(qū)序號(hào)數(shù)組首地址*/ int num; /*熱區(qū)個(gè)數(shù)*/ HOT_AREA;/*主菜單名數(shù)組*/char *ga_main_menu = 文件(F), 編輯(E),查詢(I),幫助(H);/*子菜單名數(shù)組*/char *ga_sub_menu = S 數(shù)據(jù)保存, L 數(shù)據(jù)加載,A 數(shù)據(jù)備份,F 恢復(fù)備份,X 退出 Alt+X , 1插入景點(diǎn),2修改景點(diǎn),3刪除景點(diǎn) , F 省區(qū)查詢, A 城市查詢,L 城市景點(diǎn)查詢, C 景點(diǎn)詳細(xì)查詢 , T 幫助主題 F1,A 關(guān)于系統(tǒng), C 清屏 Alt+C;char

37、* gp_scr_att = NULL; /*存放屏幕上字符單元屬性值的緩沖區(qū)*/int ga_sub_menu_count = 5, 3, 4, 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,表示未選中*/HANDLE gh_std_out; /*標(biāo)準(zhǔn)輸出設(shè)備句柄*/HANDLE gh_std_in; /*標(biāo)準(zhǔn)輸入設(shè)備句柄*/struct ss * loc_head=NULL; /*主鏈頭指針*/LAYER_NODE * gp_top_la

38、yer = NULL; /*彈出窗口信息鏈鏈頭*/CHAR_INFO * gp_buff_menubar_info = NULL; /*存放菜單條屏幕區(qū)字符信息的緩沖區(qū)*/DWORD len; /*指向變量的指針,用來存放字符的實(shí)際數(shù)目*/*框架函數(shù)的聲明*/void TextInterface(void);/*系統(tǒng)界面初始化*/void ClearScreen(void); /*清屏*/void ShowMenu(void); /*顯示主菜單欄*/void PopMenu(int num); /*彈出下拉菜單*/void PopOn(SMALL_RECT *, WORD, LABEL_BUN

39、DLE *, HOT_AREA *); /*彈出窗口屏幕信息維護(hù)*/void PopOff(void); /*關(guān)閉彈出窗口*/void DrawBox(SMALL_RECT *parea); /*繪制子菜單邊框*/void LocateSubMenu(int num, SMALL_RECT *parea); /* 彈出菜單定位*/void MarkMainMenu(int num); /* 標(biāo)記被選中的主菜單項(xiàng)*/void MarkSubMenu(int num); /* 標(biāo)記被選中的子菜單項(xiàng)*/void SetMainHotArea(void); /* 給主菜單欄設(shè)置熱區(qū)*/void Run

40、System(void); /* 系統(tǒng)功能模塊的選擇和運(yùn)行*/void CloseSys(); /* 關(guān)閉系統(tǒng)并退出*/void ShowTime(void); /* 動(dòng)態(tài)顯示系統(tǒng)時(shí)間*/inline void Gotoxy(COORD pos);/* 將光標(biāo)置于坐標(biāo)pos處*/inline void Delay(void);/* 時(shí)間暫延0.05s*/inline void ScreenFresh(void);/* 刷屏函數(shù)*/void Start(void);/* 進(jìn)入歡迎界面*/void WriteKeyWord(char *str,COORD pos);/* 將關(guān)鍵字顯示出來*/int

41、 MyStrstr(char *s,char *t);/* 在s串中查找t串*/*namet=0; loc_head-flag=3; loc_head-down=NULL; loc_head-right=creat1(); return loc_head; loc_head-namet+=c; struct ss *creat2() /生成城市名稱 int t=0; char c; struct ss * loc_head=NULL; loc_head=(struct ss *) malloc (sizeof(struct ss); loc_head-namet=0; while(c=fget

42、c(fin)!=*) if(c!=:) loc_head-namet+=c; while(c=fgetc(fin)!=:) loc_head-namet+=c; loc_head-namet=0; loc_head-flag=2; loc_head-right=creat1(); loc_head-down=creat2(); return loc_head; struct ss *creat3() /生成省區(qū)名稱 int t=0;char c;struct ss * loc_head=NULL;loc_head=(struct ss *) malloc (sizeof(struct ss);

43、while(c=fgetc(fin)!=EOF) if(c=*) while(c=fgetc(fin)!=n) loc_head-namet+=c; if(c=n) loc_head-namet=0; loc_head-flag=1; loc_head-right=creat2(); loc_head-down=creat3(); return loc_head; int x=1; /控件遞歸結(jié)束 struct ss *found,*father; /在遞歸中記錄下位置 struct ss *search (struct ss *loc_head,char s) /定位查找目標(biāo) struct

44、ss *p; p=loc_head; if(p!=NULL&p!=0 xa&p!=0 x2a&x=1&p!=-1) if(strcmp(p-name,s)=0) x=0; found=p; return p; else father=p; search(p-right,s); search(p-down,s); return NULL;int searchdata(struct ss *loc_head,char s) /整合上面的search函數(shù)便于操作 x=1;search(loc_head,s);if(x=0) return 1;else return 0; void deletedat

45、a(struct ss *loc_head,char s) /刪除數(shù)據(jù) if(searchdata(loc_head,s)=1) father-right=found-right; free(found); else printf(NOT FOUND!n);BOOL DeleteData() /函數(shù)入口 char s50;printf(請(qǐng)輸入要?jiǎng)h除的景點(diǎn)名稱n);gets(s);deletedata(head,s); return TRUE; void adddata(struct ss *loc_head,char t) /添加數(shù)據(jù) struct ss *add; add=(struct s

46、s *) malloc (sizeof(struct ss); add-right=found-right; add-flag=found-flag; add-down=NULL; strcpy(add-name,t); found-right=add;BOOL AddData()FILE *out;char s50,t50,c;printf(添加在哪個(gè)景點(diǎn)后?n); gets(s);if(searchdata(head,s)=1) out=fopen(data2.txt,a+); printf(請(qǐng)輸入景點(diǎn)名:n); gets(t); adddata(head,t); fprintf(out,*n%sn,t); printf(請(qǐng)輸入詳細(xì)信息,以*結(jié)束n); while(c=getchar()!=*) fputc(c,out); fputc(n,out); fputc(*,out); fputc(n,out); close(out); printf(添加成功n); else printf(NOT FOUND!n); printf(按任意鍵繼續(xù)

展開閱讀全文
溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!