火車票管理系統(tǒng)—課程設計附源代碼_第1頁
火車票管理系統(tǒng)—課程設計附源代碼_第2頁
火車票管理系統(tǒng)—課程設計附源代碼_第3頁
火車票管理系統(tǒng)—課程設計附源代碼_第4頁
火車票管理系統(tǒng)—課程設計附源代碼_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 計算機科學與技術系信息管理與信息系統(tǒng)專業(yè)程序設計綜合課程設計報告 (2013/2014學年 第一學期)學生姓名: 學生班級: 學生學號: 指導教師: 2013年1月8日目 錄第一章 課程設計的目的和要求11.1課程設計的目的11.2 課程設計的基本要求1第二章 課程設計任務內(nèi)容22.1 簡介22.2 功能說明2第三章 詳細設計說明33.1 模板設計圖33.2 主函數(shù)流程圖43.3 子函數(shù)流程圖5第四章 編碼與調(diào)試74.1 軟件使用說明74.2 運行結(jié)果及截圖7第五章 課程設計心得與體會11附錄一 參考文獻12附錄二 程序清單13附錄三 錄入文件27火車票管理系統(tǒng)第一章 課程設計的目的和要求

2、高級語言課程設計的主要目的是培養(yǎng)學生能夠提高綜合應用語言的能力,通過課程設計的訓練,使學生能及時鞏固已學的知識,補充未學的但有必要的內(nèi)容,掌握應用計算機解決實際問題的基本方法,熟悉程序開發(fā)的全過程,提高綜合應用語言的能力。高級語言程序設計的主要任務是要求學生遵循軟件開發(fā)過程的基本規(guī)范,運用結(jié)構(gòu)程序設計的方法按照課程設計的題目要求,分析,編寫,調(diào)試和測試高級語言程序及編寫設計報告。1.1課程設計的目的 1.鞏固和掌握高級語言程序設計基本概念; 2.掌握基本的程序設計方法; 3.掌握開發(fā)軟件所需的需求定義能力; 4.提高書寫程序設計說明文檔的能力; 5.提高綜合運用高級語言的能力,強化編程和調(diào)試能

3、力。1.2 課程設計的基本要求 1.根據(jù)所給的課程設計題目,分析課程設計題目的要求; 2.對系統(tǒng)功能模塊進行分析,寫出詳細的設計說明文檔; 3.編寫程序代碼,調(diào)試所編寫程序使其能正確運行; 4.設計完成的軟件便于操作和使用; 5.設計完成后提交課程設計報告。 第二章 課程設計任務內(nèi)容 2.1 簡介 火車票管理系統(tǒng):是為廣大群眾開發(fā)的,幫助人們查詢車次信息,訂票和退票,大大節(jié)約了人們的時間,是鐵路營運公司所需要的全部功能的一個綜合的管理系統(tǒng)。2.2 功能說明(1)錄入班次信息:信息用文件保存,可不定時地增加班次數(shù)據(jù)。(2)瀏覽班次信息:可顯示出所有班次當前狀總(如果當前系統(tǒng)時間超過了某班次的發(fā)車

4、時間,則顯示“此班已發(fā)出”的提示信息)。(3)查詢路線:可按班次號查詢 ,可按終點站查詢。(4)售票和退票功能:A:當查詢出已定票人數(shù)小于額定載量且當前系統(tǒng)時間小于發(fā)車時間時才能售票,自動更新已售票人數(shù)。B:退票時,輸入退票的班次,當本班車未發(fā)出時才能退票,自動更新已售票人數(shù)。(5)刪除功能:該功能可以刪除錄入的錯誤信息。(6)訂購功能:該功能可以方便旅客提前預定。第三章 詳細設計說明3.1 模板設計圖 火車票管理系統(tǒng) 錄入班次信息 瀏覽班次信息 查看行車路線 選擇訂票或退票圖3-1函數(shù)功能模板圖3.2 主函數(shù)流程圖開始 顯示一系列功能操作輸入所要操作的編號 根據(jù)所需操作選擇,調(diào)用各功能函數(shù)模

5、塊 1 2 3 4 錄入班次信息瀏覽班次信息售票或退票查詢行車路線顯示結(jié)果 繼續(xù) 是 否 結(jié)束 圖3-2主函數(shù)流程圖3.3 子函數(shù)流程圖 開始 開始所需查詢的車次添加班次信息是否存在是否存在 是 否 否 錄入班次成功 是 按終點站 1 2按班次號 結(jié)束 圖3-3 錄入班次流程圖輸出所需信息 結(jié)束 圖3-4 查詢車次函數(shù)流程圖 開始所需訂票的車次是否存在 否 是 1 2按終點站按班次號是否發(fā)車 是 否 訂票成功請您及時上車車已發(fā)出請您明天再來 結(jié)束 圖3-5 訂票函數(shù)流程圖 第四章 編碼與調(diào)試4.1 軟件使用說明打開軟件后,會出現(xiàn)一個主頁面,這時候你首先要把火車票信息調(diào)用出來,這款軟件具備很多功

6、能,例如用鍵盤操作頁面;可以更改班次信息;瀏覽班次信息;訂票;退票等等,并且能夠隨時退出系統(tǒng)得功能。這款軟件簡單易操作,希望大家會喜歡。4.2 運行結(jié)果及截圖1、 進入系統(tǒng)頁面錄入班次信息 圖4-1 錄入班次信息圖2、瀏覽錄入班次信息 圖4-2 瀏覽班次信息圖3、 查詢你乘車需要的信息(1) 按班次查詢 圖4-3 班次查詢圖(2) 按終點站查詢 圖4-4 班次查詢圖 4、 訂票與退票(1) 訂票成功 圖4-5 訂票成功圖(2) 訂票失敗 圖4-6 訂票失敗圖(3) 退票成功 圖4-7 退票成功圖 (4) 退票失敗 圖4-8 退票失敗圖5、 退出系統(tǒng) 圖4-9 退出系統(tǒng)圖 第五章 課程設計心得與

7、體會三周的課程設計結(jié)束了,我終于完成了這次高級語言課程設計,并且認真完成了課程設計報告。在這次的課程設計中不僅檢驗了我所學習的知識,也培養(yǎng)了自己的耐心。課程設計是我們專業(yè)課程知識綜合應用的實踐訓練,也是我們邁向社會,從事職業(yè)工作前一個必不少的過程”千里之行始于足下”,通過這次課程設計,我深深體會到這句千古名言的真正含義通過這次課程設計,本人在多方面都有所提高。通過這次火車票系統(tǒng)設計,綜合運用本專業(yè)所學課程的理論,鞏固與擴充了高級語言設計等課程所學的內(nèi)容,掌握高級語言設計的方法和步驟,掌握了高級語言設計的基本的概念,了解了高級語言的基本結(jié)構(gòu),提高了編程能力,繪圖能力,熟悉了規(guī)范和標準,同時各科相

8、關的課程都有了全面的復習,獨立思考的能力也有了提高。 在這次設計過程中,大大激發(fā)了我編程的興趣,在設計的過程中亦遇到了許多困難,我會向同學和學長尋求幫助,在交流中共同進步,也體現(xiàn)出自己設計程序的能力以及綜合運用知識的能力,體會了學以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學習的不足和薄弱環(huán)節(jié),從而加以彌補。 附錄一 參考文獻 1 張海藩編著.軟件工程導論(第四版)M .清華大學出版社.2006.5. 2 Roger S.Pressman.軟件工程-實踐者的研究方法.機械工業(yè)出版社.1990 3 張敬等編著.軟件工程教程.北京航空航天大學出版社.2003.7. 4 Steve magu

9、ire. Writing Clean Code(姜靜波等譯).電子工業(yè)出版社.1993 5譚浩強著.<<C+程序設計>>.清華大學出版社 6嚴蔚敏.吳偉民編著.<<數(shù)據(jù)結(jié)構(gòu)(C語言版)>>.清華大學出版社 附錄二 程序清單以下是火車票管理系統(tǒng)的完整程序清單:#include<stdio.h>#include<stdlib.h>#include<dos.h>#include<time.h>#include<conio.h>#include<string.h>const int

10、MAX=20;const int N=50;const int MAXFILENAME=100;enum FALSE,TRUE;struct timeint hour;int minutes;struct ticketint SerialNumber;struct time SetOut;char DeparturePointMAX;char TerminalPointMAX;float LastTime; int FixNumber;int FixedNumber;carN;int RecordNumber;int FLAG=FALSE;/*/int ShowMessage(void); /

11、載入原始數(shù)據(jù)void mainmenu(void); /主菜單void InsertMessage(void); /錄入班次信息void SearchMenu(void); /查詢路線子菜單void SearchByNumber(void); /按班次號查詢void SearchByAddress(void); /按終點站查詢void TicketManagement(void); /車票售出與退回void TicketOrder(void); /售票void TicketDelete(void); /退票void exit(void); /退出該系統(tǒng)void SaveRecord(ticke

12、t x); /儲存信息到文件中/*/int main(void)do mainmenu();while(FLAG=FALSE);return 0;void mainmenu(void)system("color 1f");system("mode con: cols=140 lines=130");char functionNumber;printf(" 車票管理系統(tǒng)nn");printf(" 日期:2011/1/3/22:57n");printf("=n");printf(" 1.錄

13、入班次信息tn");printf(" 2.瀏覽班次信息tn");printf(" 3.查詢行車路線tn");printf(" 4.售票與退票系統(tǒng)tn");printf(" 5.退出該系統(tǒng)tn");printf("=n");printf("請選擇你所需要的功能:");scanf("%c",&functionNumber);switch(functionNumber) case '1': InsertMessage(); pr

14、intf("n按任意鍵回主菜單.n"); getchar(); getchar(); break; case '2': RecordNumber=ShowMessage(); printf("n按任意鍵回主菜單.n"); getchar(); getchar(); break; case '3': SearchMenu(); printf("n按任意鍵回主菜單.n"); getchar(); getchar(); break; case '4': TicketManagement();

15、getchar(); getchar(); break; case '5':FLAG=TRUE;exit();break; default: printf("輸入錯誤,請確保你的輸入為1-5.n"); printf("按任意鍵回主菜單.n"); getchar(); getchar(); /switch endsFLAG=FALSE;void InsertMessage(void)FILE *fp;char filenameMAXFILENAME;int i;printf("請輸入文件名或者文件路徑名:");scanf

16、("%s",filename);if(fp=fopen(filename,"r")=NULL) printf("文件%s不可讀,請確認文件%s存在或者文件路徑正確.nn",filename,filename); mainmenu();for(i=RecordNumber;!feof(fp)&&!ferror(fp);i+)fscanf(fp,"%d%d%d",&cari.SerialNumber,&cari.SetOut.hour,&cari.SetOut.minutes);

17、fscanf(fp,"%s%s%f%d%d",&cari.DeparturePoint,&cari.TerminalPoint,&cari.LastTime,&cari.FixNumber,&cari.FixedNumber); SaveRecord(*(car+i);RecordNumber=i;/*輸出更新后的訂票記錄*/printf("班次t發(fā)車時間t起點t終點t行車時間(小時)t額定載量t已定票人數(shù)n");for(i=0;i<RecordNumber;i+)printf("%dt%d:%dt

18、t",cari.SerialNumber,cari.SetOut.hour,cari.SetOut.minutes); printf("%st%stt%.1ft %dtt%dn",cari.DeparturePoint,cari.TerminalPoint,cari.LastTime,cari.FixNumber,cari.FixedNumber);fclose(fp);int ShowMessage(void)int i;FILE *fp;if(fp=fopen("add.txt","r")=NULL) printf(&q

19、uot;讀取數(shù)據(jù)失敗,請檢查文件add.txt是否存在.n"); exit(-1);for(i=RecordNumber;!feof(fp)&&!ferror(fp);i+)fscanf(fp,"%d%d%d",&cari.SerialNumber,&cari.SetOut.hour,&cari.SetOut.minutes);fscanf(fp,"%s%s%f%d%d",&cari.DeparturePoint,&cari.TerminalPoint,&cari.LastTime

20、,&cari.FixNumber,&cari.FixedNumber);int count=i;printf("班次t發(fā)車時間t起點t終點t 行車時間(小時)t額定載量t已定票人數(shù)n");for(i=0;i<count;i+)printf("%dt%d:%dtt",cari.SerialNumber,cari.SetOut.hour,cari.SetOut.minutes); printf("%st%stt%.1ft %dtt%dt",cari.DeparturePoint,cari.TerminalPoint,

21、cari.LastTime,cari.FixNumber,cari.FixedNumber); /*調(diào)用系統(tǒng)時間實現(xiàn)的功能:如果車已發(fā)出,則打出提示"此車已發(fā)出",但是此處有錯誤*/ time_t tval; struct tm *now; tval = time(NULL); now = localtime(&tval);if(now->tm_hour=cari.SetOut.hour&&now->tm_min>cari.SetOut.minutes)|(now->tm_hour>cari.SetOut.hour) p

22、rintf("此車已發(fā)出"); printf("n");return count;void SearchMenu(void)system("color 1f");system("mode con: cols=140 lines=130");char functionNumber;printf(" 查詢子菜單n");printf("=n");printf(" 1.按班次號查詢tn");printf(" 2.按終點站查詢tn");print

23、f(" 3.返回主菜單tn");printf("=n");printf("請選擇你所需要的功能:");scanf("%*c%c",&functionNumber);switch(functionNumber) case '1':SearchByNumber();break; case '2':SearchByAddress();break; case '3': getchar(); mainmenu(); break; default: printf(&quo

24、t;輸入錯誤,請確保你的輸入為1-3.n"); printf("按任意鍵回查詢子菜單.n"); getchar(); getchar(); SearchMenu();void SearchByNumber(void)int SearchNumber;printf("請輸入要查詢的班次號:");scanf("%d",&SearchNumber);printf("班次t發(fā)車時間t起點t終點t行車時間(小時)t額定載量t已定票人數(shù)n");printf("%dt%d:%dtt",car

25、SearchNumber-1.SerialNumber,carSearchNumber-1.SetOut.hour,carSearchNumber-1.SetOut.minutes);printf("%st%stt%.1ft %dtt%dn",carSearchNumber-1.DeparturePoint,carSearchNumber-1.TerminalPoint,carSearchNumber-1.LastTime,carSearchNumber-1.FixNumber,carSearchNumber-1.FixedNumber);void SearchByAddr

26、ess(void)int i;char AddressMAX;printf("請輸入終點站的名稱:");scanf("%s",&Address);printf("班次t發(fā)車時間t起點t終點t行車時間(小時)t額定載量t已定票人數(shù)n");for(i=0;i<RecordNumber;i+) /對比終點站記錄,找到并輸出 if(strcmp(Address,cari.TerminalPoint)=0) printf("%dt%d:%dtt",cari.SerialNumber,cari.SetOut.ho

27、ur,cari.SetOut.minutes); printf("%st%stt%.1ft %dtt%dn",cari.DeparturePoint,cari.TerminalPoint,cari.LastTime,cari.FixNumber,cari.FixedNumber); void TicketManagement(void)char functionNumber;system("color 1f");system("mode con: cols=140 lines=130");printf(" 訂票與退票菜單n&

28、quot;);printf("=n");printf(" 1.訂票tn");printf(" 2.退票tn");printf(" 3.返回主菜單.n");printf("=n");printf("選擇你需要的功能:");scanf("%*c%c",&functionNumber);switch(functionNumber) case '1': TicketOrder(); /getchar(); /getchar(); break

29、; case '2':TicketDelete();break; case '3': getchar(); mainmenu(); break; default: printf("輸入錯誤,請確保你的輸入為1-3.n"); printf("按任意鍵回主菜單.n"); getchar(); getchar(); mainmenu(); void TicketOrder(void)int i;printf("請輸入要訂購的車票的班次:");scanf("%d",&i);if(i&

30、lt;0|i>RecordNumber) printf("對不起,今天沒有這趟車,請明天再來,謝謝使用!n"); printf("按任意鍵回主菜單.n"); getchar();/getchar(); TicketManagement();time_t tval; struct tm *now; tval = time(NULL); now = localtime(&tval);if(now->tm_hour=cari.SetOut.hour&&now->tm_min<cari.SetOut.minutes

31、)|(now->tm_hour<cari.SetOut.hour) if(cari.FixedNumber<cari.FixNumber) (cari.FixedNumber)+; printf("你的訂票成功,請按時上車,謝謝使用!n"); else printf("對不起,今天的這趟車的票已賣完,請明天再來,謝謝合作!n"); else printf("對不起,今天的這趟車已發(fā)出,請明天再來,謝謝合作!n");printf("班次t發(fā)車時間t起點t終點t行車時間(小時)t額定載量t已定票人數(shù)n"

32、;);printf("%dt%d:%dtt",cari-1.SerialNumber,cari-1.SetOut.hour,cari-1.SetOut.minutes);printf("%st%stt%.1ft %dtt%dn",cari-1.DeparturePoint,cari-1.TerminalPoint,cari-1.LastTime,cari-1.FixNumber,cari-1.FixedNumber);/printf("按任意鍵回主菜單.n");/getchar();getchar();void TicketDelete(void)int i;printf("請輸入要退購的車票的班次:");scanf("%d",&i);if(i<0|i>RecordNumber) printf("對不起,今天沒有這趟車,無法完成退票.謝謝使用!n"); getchar(); /getchar(); TicketManagement(); getchar();tim

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論