




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、學號10212811135武漢理工大學華夏學院課 程 設 計課程名稱 數據結構題 目基于c語言的航空訂票系統的設計與實現 -訂票模塊專 業 軟件工程 班 級 軟件1111班 姓 名 . 成 績 指導教師 黃啟荃 2012 年6月18日至2012年6月21日課程設計任務書設計題目:基于c語言的航空訂票系統的設計與實現-訂票模塊設計目的1. 學會分析研究數據對象的特性;2. 學會數據的組織方法;3. 選擇合適的數據的邏輯結構和存儲結構以及相應操作,把現實世界中的問題轉換為計算機內部的表示和處理; 4. 提高學生的程序設計能力、 提高算法設計質量與程序設計素質 ; 設計任務 (在規定的時間內完成下列
2、任務) 本項目旨在通過一個簡化的航空訂票系統項目,使學生在完成對c程序設計語言和基本數據結構與算法課程的學習后,綜合運用所學到的語法和算法知識,構建一個接近實際應用場景的軟件系統,以達到復習和鞏固前期課程內容并為后續課程奠定基礎的目的。 本系統要求實現訂票功能模塊,訂票功能模塊通過航班號普通用戶可以在輸入自己姓名和身份證號后,完成訂票操作。(訂票情況可以存在一個數據文件中,結構自己設定)如果該航班已經無票,可以提供相關可選擇航班; 具體要完成的任務是: a. 編制完成上述問題的c語言程序、進行程序調試并能得出正確的運行結果。 b. 寫出規范的課程設計說明書;時間安排 (第19周6.18至6.2
3、5)第一天 布置課程設計任務,講授vc安裝,程序結構、數組、函數、文件;第二天 查閱資料,講授排序,查詢算法實現;了解航空售票管理系統的需求; 第三天 講授快速排序、最短路徑問題、哈希查找的算法實現,準備程序第四天 完成訂票模塊的設計與實現,上機調試程序,教師驗收; 第五天 提交課程設計報告,下午4點前提交課程設計報告及文檔至綜合樓712。具體要求課程設計報告按統一通用格式書寫,具體內容包括: 設計任務與要求 總體方案與說明 軟件主要模塊的流程圖 源程序清單與注釋 問題分析與解決方案 小結與體會附錄: 源程序(必須有簡單注釋) 使用說明 參考資料指 導 教 師 簽 名: 2012 年 6月 1
4、5日教研室主任(或責任教師)簽名: 2012 年 6月 16日數據結構課程設計報告 1.設計任務與要求1.1設計任務全面熟悉、掌握c語言和數據結構基本知識。掌握c程序設計中的一系列問題,把c語言與數據結構和實際結合起來,增強對不同問題的一些處理。掌握分析結果的若干有效方法,進一步提高上機動手能力這次設計任務是通過一個簡化的航空訂票系統項目,使學生在完成對c程序設計語言和基本數據結構與算法課程的學習后,綜合運用所學到的語法和算法知識,構建一個接近實際應用場景的軟件系統,以達到復習和鞏固前期課程內容并為后續課程奠定基礎的目的。1.2設計要求這設計要求實現訂票功能模塊,訂票功能模塊通過航班號普通用戶
5、可以在輸入自己姓名和身份證號后,完成訂票操作。(訂票情況可以存在一個數據文件中,結構自己設定)如果該航班已經無票,可以提供相關可選擇航班。編制完c語言程序后進行程序調試并能得出正確的運行結果且寫出規范的課程設計明書。2.總體方案填寫具體內容 在這次課設中,我們需要運用到很多函數,包括文件的打開,結構體的運用,函數與函數之間的互相調用,并且,還涉及到基本的輸入輸出,另外,還涉及到的一個顯示界面問題,這是就需要運用printf這個標準輸出函數,為我們的乘客設計一個選擇界面和提示,在這個整體中,大多數的函數都是我們用戶自定義的函數,所以,在運用時需要先定義后使用。我們總體的設計方案(僅僅對于訂票系統
6、而言)是當用戶輸入航班號訂票,當訂票成功時,則將該用戶的信息存儲到原來的訂票記錄中,并將該航班的剩余票數時,系統會自動檢查此航班,如果存在此航班,則再次檢查該航班是否還有票, 如果沒有該航班,則顯示一個提示信息“本航班還未開通,請選擇其他航班”, 如果有票,則輸入身份證號和姓名,并把此次訂票的記錄記錄在一個文本文件(即pass.dat)里,如果沒有票了,則顯示 “沒票了,是否需要其他航班(y/n)”當點擊“y”時,繼續上述操作,直到結束減一即可,這樣就完成了訂票了。3.詳細設計撰寫具體內容(詳細設計包括主要模塊的流程圖)3.1 其實,對于程序的主要設計,在方案中已經做了具體說明了,這里只需對做
7、一個簡單的陳述。 (1)輸入航班號 (2)判斷航班號是否存在,并做相應操作 (3)判斷是否還有剩票,并作相應的操作 (4) 輸入身份證號和姓名 (5)記錄用戶的訂票信息 3.1.6退出訂票系統 3.2部分程序流程圖如圖1所示開始1!=0航班查詢機票查詢訂票退票管理員操作a d c b aplane.m_left=0plane.m_planeid=0 id=0請輸入航班號 1!=0輸入(n-訂票-)int id=0;char c airplane plane=0passenger pass=0航班查詢的操作機票查詢的操作退票系統的操作 退出 5管理員操作 0 4 3 2 1 乘客的輸入選擇 d
8、c b無票,是否訂其他航班(y/n)(y/n)plane=plane_check_id(id,0)航班不存在c!=y& c!=y請輸入您的身份證號碼 請輸入您的姓名輸出用戶的姓名,身份證號,航班號,出發地,目的地和出發時間是否確定(y/n) e輸出文件出錯輸出姓名,身份證號和航班號fd=null打開文件并par pssengeass=0pass.m_planeid=plane.m_planeid輸出乘客的票號c=y|c=y e1!=0以讀的方式打開問件輸出乘客的姓名,身份證號,航班號和票號關閉文件沒有找到相應的記錄圖1航空訂票系統訂票模塊流程圖4.源程序清單與注釋 /*/ #include*
9、/訂票系統:航班和用戶信息 * #ifndef _infor_h #define _infor_h /機票信息 typedef struct int m_planeid;/航班號 char m_from10;/出發城市 char m_to10;/到達城市 char m_date10;/出發日期 int m_left;/剩余票數 int m_capacity;/容量 float m_price;/價格 int m_rebate;/打折 airplane; /用戶信息 typedef struct char m_id20;/身份證號 char m_name20;/姓名 int m_planeid;
10、/航班號 char m_ticketnum15;/票號 int m_isflog;/0確認訂票,1取消訂票 passenger; #endif/_infor_h int main() menu(); void menu()int c;while(1)printf(n-menu-n);printf(t1航班查詢n);printf(t2機票查詢n);printf(t3訂票n);printf(t4退票n);printf(t0退出n);printf(-n);printf(t5管理員操作n);printf(-n);printf(請輸入:);scanf( %d,&c);switch(c)case 1:pl
11、ane_check();break;case 2:user_check();break;case 3:book_ticket();break;case 4:return_ticket();break;case 5: char name20=0;char passwd20=0;printf(n 請輸入管理員用戶名和密碼:n);printf(測試:admin 1234);scanf( %s %s,name,passwd);if(strcmp(name,admin)=0&strcmp(passwd,passwd)=0)elseprintf(沒有權限!n);break;case 0:return ;v
12、oid book_ticket()/訂票系統int id=0;char c;airplane plane=0;passenger pass=0;printf(n-訂票-n);while(1)printf(請輸入航班號:(0退出訂票)n);scanf( %d,&id);if(0=id) break;plane=plane_check_id(id,0);if(plane.m_planeid=0)printf(航班不存在n);continue;if(plane.m_left=0)printf(無票,是否定其它航班(y/n)n);scanf( %c,&c);if(c!=y&c!=y)break;els
13、e continue;printf(請輸入你的身份證號n);scanf( %s,pass.m_id);printf(請輸入你的姓名:n);scanf( %s,pass.m_name);showticket(&plane,&pass);printf(是否確定(y/n)n);scanf( %c,&c);if(c=y|c=y)if(c=y|c=y)ticket(pass.m_ticketnum);printf(%sn,pass.m_ticketnum);pass.m_planeid=plane.m_planeid;showalluser();break;printf(-訂票結束-n);void sh
14、owalluser()/顯示所有用戶int r=0;file* fd=fopen(userdat,r);passenger pass=0;if(null=fd)printf(%s open error!n,userdat);return ;printf(nuser:n);printf(|%10s|%20s|planeid|%20sn,name,id,ticketnum);while(1)r=fread(&pass,sizeof(pass),1,fd);if(r=0)break;printf(|%10s|%20s|%7d|%20sn,pass.m_name,pass.m_id,pass.m_pl
15、aneid,pass.m_ticketnum); break;fclose(fd);5.問題分析與解決方案首先,我當時遇到的第一個問題就是如何在“窗體”上顯示乘客的選擇和一些提示信息,然而,我遇到的第二個問題就是不知道如何存儲乘客信息和如何打印出航班信息,作為航班的訂票系統來說,很大一部分內容就是保存乘客訂票成功后的信息,對于這兩個問題,后來在老師的講解下,我搞懂了,對于如何在“窗體”上顯示一些信息,解決方案是用printf這個標準函數在“窗體”上輸出即可,而對于第二個問題,我們則用到了文件的打開和存儲(因為我在學c的時候老師基本沒講,所以不知道怎么做了),打開用到了fopen函數,而存儲則用
16、到了fread和fwrite等用于存儲的函數,在編程時遇到了一個難點就是函數的調用,因為這里面涉及到很多自定義函數的定義和聲明,所以,運用起來很不熟,后來這個問題在老師的帶領下也得到了很好的解決。6.小結與體會 在這一周將盡四天的時間里,在我們指導老師肖老師的帶領下我們進行航空訂票系統的課程設計,在這期間我學到了很多。 我們還是大一的學生,只學過一些基礎的知識,并未接觸到我們的專業課。這次的編程主要是以c語言來編寫,結合數據結構的知識。這幾天老師和們一起復習了c的知識,讓我們能夠更加熟練的應用c中的運算符,結構體和數組等內容。同時老師也告訴我一些書本上的誤區,如:整形數據在十六位機上是占兩個字
17、節,但是在三十二位機上是占四個字節的。我們現在用的基本上是三十二位的機子,所以書上所說的整形數據占兩個字節是一個誤區。 航空訂票系統由航班錄入,查詢,訂票和退票這四個模塊組成。由于知識的有限,老師帶領我們進行各個模塊的編譯。在這期間,老師不斷地對程序和各個模塊進行修改,編譯,試調,運行,期間也遇到了很多的問題: (1)由于知識的有限,在編寫是老師采用了相對簡單的基礎語言,代替了較為復雜的語句,是我們更加的容易理解,但同時也降低了運行的效率。 (2)在程序開始設計時,如果函數定義的數據類型出現了問題,對函數的定義不清楚,字符的不正確定義都會造成后期大量的糾錯工作。 (3)有時忘記c的一些規范使用
18、在試調過程中會出現一些不易發現的錯誤。定的可靠性和穩定性。 經過這次實習我對試調掌握得更加熟練,意識到程序語言的規范性以及我們在編程時要有嚴謹的態度。在編程序時適當的加一些注解,以便增加程序的可讀性,是的自己在讀時覺得更加簡單容易。同時在這里我也非常感謝肖老師對我們的指導,她在給我們上課時非常的認真仔細,也很幽默風趣。在她的講解下,我們理解了此次編程的基本不過這也提醒我們在編寫程序是要認真仔細。 附錄1使用說明1. 主界面: 2進入用戶平臺(1) 查詢航班 (2)訂票界面(3)返回主界面附錄2 參考文獻: 1 范策 等.算法與數據結構(c語言版)北京:機械工業出版社,2004. 2 張乃孝,數據結構與算法學習輔導及習題詳解北京:電子工業出版社,2004. 3 唐策善,李龍澎,黃劉生.數據結構用c語言描述
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 景觀設計畢業答辯方案匯報
- 《上海汽車展》課件
- 醫學微生物學試題庫含答案(附解析)
- 保育員(高級)考試題含參考答案解析
- 8月化學檢驗員(初級)考試題+參考答案解析
- 中學生物教育教學研究
- 《海爾品牌戰略案例》課件
- 藥品倉儲庫房貨架光滑度測試考核試卷
- 電力儀表的節能技術考核試卷
- 調味品與文化傳承的結合考核試卷
- 西安外國語大學
- 空間信息技術基礎與前沿-河南理工大學中國大學mooc課后章節答案期末考試題庫2023年
- HEYTEA喜茶品牌產品介紹PPT模板
- 常見顱腦急癥的CT、MRI診斷
- 各種傳染病診斷標準
- 油氣集輸管線管道工程試運投產保駕方案
- 出國舉辦經濟貿易展覽會審批管理辦法
- 2016哈弗h6運動版維修手冊與電路圖1406線束01機艙
- 2023年新華保險校園招聘筆試參考題庫附帶答案詳解
- 高等學校英語應用能力考試A級
- 新生兒心律失常課件
評論
0/150
提交評論