車票管理系統(tǒng)_第1頁
車票管理系統(tǒng)_第2頁
車票管理系統(tǒng)_第3頁
車票管理系統(tǒng)_第4頁
車票管理系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要C是一種計算機程序設(shè)計語言,可以作為系統(tǒng)設(shè)計語言編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序,因此它的應(yīng)用范圍廣闊。本系統(tǒng)是根據(jù)學校圖書管理工作的需要,通過C語言開發(fā)一個圖書管理系統(tǒng)來實現(xiàn)對圖書信息進行有效、準確的管理。整個系統(tǒng)從簡便、實用的要求出發(fā),完成圖書管理的全過程,包括圖書信息的采集,圖書的插入、刪除、借閱、歸還、顯示、輸出等功能。本文主要介紹了本課題的開發(fā)背景,所要完成的功能和開發(fā)的過程。系統(tǒng)的說明了系統(tǒng)的設(shè)計思路、總體設(shè)計、各個功能模塊的設(shè)計與實現(xiàn)方法。關(guān)鍵詞:圖書管理系統(tǒng), C語言,信息采集模塊目 錄1 設(shè)計目的及內(nèi)容要求11.1 設(shè)計目的1

2、1.2 內(nèi)容要求12 系統(tǒng)結(jié)構(gòu)設(shè)計23 系統(tǒng)詳細設(shè)計33.1 系統(tǒng)主界面設(shè)計33.2 定義 構(gòu)造方法33.3 定義 方法34運行結(jié)果及分析4總 結(jié)6參考文獻7源程序81系統(tǒng)背景意義1.1系統(tǒng)開發(fā)目的 隨著經(jīng)濟的發(fā)展,交通運輸越來越便捷,為了提高效率,減輕勞動強度,設(shè)計開發(fā)高效的汽車信息查詢系統(tǒng)就顯得頗為重要。汽車售票管理中包含許多內(nèi)容,有訂票管理問題,車票發(fā)布問題,用戶登錄問題等等。這次C#大作業(yè)利用VS2012開發(fā)工具和SQL Server2008數(shù)據(jù)庫系統(tǒng)來汽車票務(wù)信息管理系統(tǒng)。該系統(tǒng)主要目的是實現(xiàn)車站網(wǎng)上售票工作,可以滿足普通用戶售票的基本要求,包括登錄、查詢、訂票、退票等模塊

3、。 1.2同類產(chǎn)品概況車票管理涵蓋了我們出行的方方面面,全國目前有多家網(wǎng)站經(jīng)營汽車票的銷售管理,比如暢途網(wǎng)、坐車網(wǎng)、12308等,這些網(wǎng)站主要面向全國用戶,與多家售票站點合作,多是一些大城市之間的客車,縣級之間的汽車信息很少有。而目前從總體上看大部分的中小汽車站官網(wǎng)已經(jīng)有了訂票功能,彌足了它們的不足。購票流程也是大同小異,用戶登錄之后選擇始發(fā)站、目的站、出發(fā)日期,查閱車票信息,確定后付款即可,這時個人中心即有了自己的購票信息,若要退票則選擇退訂即可,操作步驟流暢,個人體驗也較好。1.3與同類產(chǎn)品的比較這次的車票訂購管理系統(tǒng)實現(xiàn)了與同類產(chǎn)品一樣的查票、購票、退票的基本功能,優(yōu)點是操作簡單,已經(jīng)能

4、滿足票務(wù)管理的需求,退票也遵循了原子性操作,退票之后系統(tǒng)將之添加到票庫中。當然缺點是此次系統(tǒng)主要是票務(wù)管理的模擬,在細節(jié)上無法與同類產(chǎn)品相比較,比如缺少了注冊用戶,購票付款,退票返錢的環(huán)節(jié),而且是一款window下的客戶端產(chǎn)品,少了同類產(chǎn)品網(wǎng)頁版的靈活性,當然其他系統(tǒng)如Linux,mac OS是無法運行本系統(tǒng)的。2. 系統(tǒng)主要設(shè)計 2.1系統(tǒng)總體功能模塊 車票主要劃分為三個部分:用戶管理,車票查詢,車票管理三個功能模塊。車票管理系統(tǒng)用戶管理模塊車票查詢模塊車票管理模塊三個模塊完成各自的功能。用戶管理模塊用戶登錄信息提示密碼驗證 用戶管理模塊:用戶可以根據(jù)自己的帳號密碼進行系統(tǒng)的登錄,若登錄失敗

5、系統(tǒng)則給出提示信息。 車票查詢模塊,用戶可以選擇出發(fā)日期,出發(fā)站,目的站來查詢車票信息并訂購自己的車票。車票訂購車票查詢模塊車票查詢系統(tǒng)提示信息輸入車票管理模塊:用于對用戶已經(jīng)訂購車票的管理。車票管理模塊車票退訂 程序流程圖主要如下所示:開始登錄界面檢查正確性NY系統(tǒng)主界面車票退訂車票訂購車票查詢結(jié)束退出 2.2數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫設(shè)計了三張表,users,ticket和myticket表。 users表示用戶表,存儲系統(tǒng)中存在的用戶名和密碼,如下所示: ticket表存儲汽車班次的詳細信息,含有始發(fā)站,終點站,車次,發(fā)車時間,到達時間,票價,剩余票數(shù)等信息,如下:表名:ticket mytic

6、ket表記錄所有用戶訂購的汽車車票信息,含有用戶名,出發(fā)站,到站,出發(fā)日期,票價等信息,如下:表名:myticket出發(fā)日期各個實體間的依賴關(guān)系如下:用戶名用戶名我的車票表密碼查閱票價用戶表車次始發(fā)站購票終點站票數(shù)車票表到達時間出發(fā)時間票價 2.3使用的主要技術(shù)本次C#大作業(yè)使用了sql server2008來實現(xiàn)數(shù)據(jù)庫的設(shè)計,VS2012來實現(xiàn)系統(tǒng)的編碼。用了數(shù)據(jù)庫及數(shù)據(jù)庫表的創(chuàng)建技術(shù),C#模塊化編程,在系統(tǒng)與數(shù)據(jù)庫之間用了三層架構(gòu),將數(shù)據(jù)庫連接進行了封裝,避免了代碼的冗雜并實現(xiàn)了完全對對象的操作,面向?qū)ο蟮脑O(shè)計思想也得到了很好的應(yīng)用,在代碼編寫過程中還運用了調(diào)試技術(shù)。 2.4系統(tǒng)的安全性

7、系統(tǒng)設(shè)計了登錄界面,每個合法用戶有用戶名及一個密碼,只有當用戶輸入正確的用戶名及密碼組合后才能夠?qū)W生信息進行操作,否則給出登錄的錯誤提示信息。代碼中也設(shè)置了各種語法檢查,避免不必要的異常拋出。3. 系統(tǒng)實現(xiàn) 3.1系統(tǒng)主要類的設(shè)計本次系統(tǒng)設(shè)計用了三個類User,Ticket和Myticket。User類主要對應(yīng)于數(shù)據(jù)庫里的users表,成員有用戶id,用戶名userName,用戶密碼password;UserPrivate int userId;Private string userName;Private string password;Ticket類對應(yīng)于ticket表,成員有始發(fā)站st

8、artStation,終點站arriveStation,車次carNumber等等;TicketPrivate string startStation;Private string arriveStation;Private string carNumber;Private string startTime;Private string arriveTime;Private int tickePrice;Privatec int poll; Myticket類設(shè)計對應(yīng)于數(shù)據(jù)庫中myticket表格中的數(shù)據(jù),成員有用戶名uname,出發(fā)站goStation,到達站toStation,出發(fā)日期go

9、Date,票價ticNum,車次carNu;MyticketPrivate string uname;Private string goStation;Private string toStation;Private string goDate;Private int ticNum;Private string carNum; 在類的設(shè)計中,以上三個類的每個成員都進行了重構(gòu)和封裝字段操作,方便其他函數(shù)的調(diào)用與訪問,三個類封裝在了以Model命名的類庫中,其他類庫使用只需添加引用即可,方便了操作。 3.2功能模塊設(shè)計與實現(xiàn)本系統(tǒng)主要設(shè)計了四個模塊,如下圖:Model模塊包含了本次程序所需要的所有

10、類,有Ticket,User和Myticket,他們在前面類設(shè)計已經(jīng)盡心了詳細的介紹。DAL模塊負責數(shù)據(jù)庫的連接,含有四個C#文件,DBHelperForsql主要實現(xiàn)底層數(shù)據(jù)庫的連接,包含增刪改查函數(shù),UserService實現(xiàn)用戶登錄時連接數(shù)據(jù)庫用戶名和密碼的檢查,TicketService實現(xiàn)了查詢數(shù)據(jù)庫中的車票信息,可以向數(shù)據(jù)庫中添加和減少車票,MyticketService實現(xiàn)向個人用戶的數(shù)據(jù)庫車票中添加刪除等操作。BLL模塊是DAL模塊與TicketManager模塊之間的連接層,實現(xiàn)了DAL模塊每個類中定義的函數(shù),在TicketManager模塊中可以直接調(diào)用。TicketMan

11、ager模塊是系統(tǒng)的主模塊,由三個Form窗體組成,第一個窗體位登錄窗口,檢查用戶登錄名密碼的正確性并給出錯誤提示,登錄進去之后直接跳轉(zhuǎn)至購票查詢主窗體,在主窗體中點擊“我的購票信息”可以進入第三個已購票信息窗體,在這里可以點擊退訂進行退票。結(jié)果演示如下:首先運行會進入登錄頁面,在窗口中輸入用戶名和密碼,比如密碼輸入錯誤,會給出彈窗信息,正確輸入之后,會進入訂票系統(tǒng)主界面,在窗口中選擇日期,始發(fā)站和終點站點擊查詢,這時會顯示出車次信息,選擇好自己的車次點擊訂票若還有剩余車票則會顯示出訂票成功,此時顯示剩余票數(shù)為32,這是在點擊“我的訂票信息”,會彈出已經(jīng)訂購過的車票,選擇自己訂購的車票點擊“退

12、訂”按鈕,會將已經(jīng)購買的車票返回給系統(tǒng),這時再在主界面點擊查詢,會發(fā)現(xiàn)票數(shù)剩余33??偨Y(jié)此次的車票管理系統(tǒng)首先實現(xiàn)了用戶的登錄驗證,并在安全性方面給與了一定的考慮,在界面功能上也基本實現(xiàn)了購票流程的模擬。在界面設(shè)計上竭盡所能做到排版簡潔美觀,操作簡單易上手,已經(jīng)能滿足票務(wù)管理的需求, 對大部分的用戶來說可以熟練的使用本系統(tǒng)。當然此次系統(tǒng)畢竟是票務(wù)管理 的模擬,在很多細節(jié)的把握上還是很難與商業(yè)化的大型購票網(wǎng)站相提并論, 比如靈活性,移植性問題等,而且也無法實現(xiàn)網(wǎng)銀的真正接入付款,在這些 方面還是需要在以后的開發(fā)過程中多多考慮的。 本次的C#大作業(yè)花費了周六周日兩天時間來完成代碼的編寫與測試,又用

13、了周一周二兩個下午進行文檔的編寫,雖然耗費了不少時間,但最終還是自己一個人完成了這個小項目,盡管功能不是那么完善,但付出汗水之后確實 有不少的收獲,希望在以后的時間里能多加鍛煉自己的代碼編寫能力,在后續(xù)可以添加更多的功能。C#這門課之后才感覺所傳非虛,雖然有點難上手 ,但老師大部分會按著推薦教材按部就班的講,蔣老師的課確實很獨特,通過一個個工程案例來讓我們體會其中運用的技術(shù)。上了兩周之后我對這種以前沒有體驗過的教課方式產(chǎn)生了極大興趣,盡管課堂上有時候會跟不上節(jié)奏,但感覺學到了很多東西,印象最深的就是編程序的三層架構(gòu),以前只是知道但并不會運用到實際的編碼中,通過第16周的學習我感覺自己的水平亟需

14、提高。最后,學習這門課對我最大的收獲是:動手寫程序比只看課本不實踐重要得多參考文獻1 Bruce Eckel.Java編程思想. 北京:機械工業(yè)出版社,20072 龔永罡,陳昕.Java程序設(shè)計M. 北京:清華大學出版社,20093 劉兆宏,鄭莉,陳建等. Java語言程序設(shè)計案例教程M.北京:清華大學出版社,20084 王舜燕、鐘珞.Java編程方法學M.北京:北京郵電大學出版社,2008源代碼:#include<stdio.h> /宏定義函數(shù)#include<string.h> /串操作及內(nèi)存操作函數(shù)#include<stdlib.h> /調(diào)用系統(tǒng)函數(shù)#

15、include<time.h> /時間庫函數(shù) #include<conio.h> /輸入輸出函數(shù)#define N 1000 /宏定義多條記錄typedef struct TICKET /定義新結(jié)構(gòu)體TICKETchar num10; /車次編號char hour3; /時間,小時char min3; /分鐘char from10; /起始站char to10; /終點站float hours; /車程實際時間int max; /最大車載容量int now; /已售票數(shù)CLASS;int class_num=0; /初始班次總數(shù)為0 CLASS recordsN; /

16、多條記錄int system_time(); /系統(tǒng)時間void NewMessage(); /新紀錄*錄入函數(shù)*void ShowTable1(); /線框調(diào)用1,不用沒次輸 void ShowTable2(int i); /線框調(diào)用2,不用沒次輸 void Display(); /顯示所有函數(shù)void add(); /增加記錄void save(); / 保存函數(shù)void load(); / 按班次查詢函數(shù)void search(); /查詢函數(shù)void change(); /修改函數(shù)* void quit(); / /退出函數(shù)*void Ticketorder(); / /*售票函數(shù)*

17、void Ticketdelete(); /刪除函數(shù)*int menu_select(); /菜單函數(shù)*int whether(int); /判斷時間是否超出函數(shù)*void find(char s1,char s2); /查詢函數(shù)/s1為班次/s2為終點站void deletemessage(); /刪除函數(shù)int findnum(char s1); /班次查詢函數(shù)void get(int,int); /修改及增加班次*char *menu="*歡迎使用車票查詢系統(tǒng)*","n*MENU功能菜單*","n 1. 錄入班次 ","

18、;n 2. 顯示所有班次 ","n 3. 查詢班次 ","n 4. 增加班次 ","n 5. 售票 ","n 6. 退票 ","n 7. 修改班次 ","n 8. 刪除班次 ","n 9. 退出 " /*主函數(shù)*/void main()system("cls"); /刷屏while(1) /菜單函數(shù)循環(huán)switch(menu_select() /菜單函數(shù)*case 1: NewMessage();break; /新紀錄*錄入函

19、數(shù)*case 2: Display();break; / /顯示case 3: search();break; /查找函數(shù)*case 4: add();break; / /增加記錄case 5: Ticketorder();break; /*售票函數(shù)*case 6: Ticketdelete();break; /刪除函數(shù)*case 7: change();break; /修改函數(shù)*case 8: deletemessage();break; /選擇調(diào)用刪除函數(shù)case 9: quit();break; /退出函數(shù)*/*菜單函數(shù)*/int menu_select() /菜單函數(shù)*char s5;

20、 /定義要輸入的數(shù)字功能int c,i; system("cls"); /刷屏 system("color 09");/改變顏色 for(i=0;i<11;i+)printf("%s",menui); /輸出菜單各項) i=0; while(c<0|c>9) /判斷是否是1到9的命令printf("n"); /輸出換行 printf("*"); printf("n請選擇(1-9):");scanf("%s",s);c=atoi(s); /

21、atoi將字符串轉(zhuǎn)換成一個整數(shù)值 /輸出菜單面return c; /返回請求 /*錄入函數(shù)*/void NewMessage() /*錄入函數(shù)* int i=0,j=5,h; /char s5;FILE *fp; /定義文件型指針變量system("cls"); /刷屏if(fp=fopen("d:車票管理系統(tǒng)0.dat","rb")!=NULL) /fopen打開文件 printf("車票信息已經(jīng)存在請選擇增加功能!n");printf("任意輸入則返回菜單n");scanf("%s

22、",s);i=1; /通過是1if(i=0) system("cls"); /刷屏printf("請輸入要錄入班次總數(shù):n");scanf("%d",&class_num); /指向班次指針system("cls"); /刷屏for(i=0;i<class_num;i+) system("cls"); /刷屏printf("請輸入第%d個班次信息:n",i+1);h=-1;for(;h!=i;) /循環(huán)輸出printf("請輸入班次:n&qu

23、ot;);scanf("%s",recordsi.num);for(h=0;h<i;h+)if(strcmp(recordsh.num,recordsi.num)=0) /判斷字符串比較是否相等, 待比較的字符串 printf("輸入錯誤!該班次已存在!n");break; /返回get(i,j); /修改及增加班次*j=5;save(); /調(diào)用保存函數(shù)/*顯示所有函數(shù)*/void Display() /顯示所有函數(shù)int i,j;system("cls"); /刷屏load(); / 調(diào)用按班次查詢函數(shù)ShowTable1(

24、); /線框調(diào)用1,不用沒次輸 for(i=0,j=0;i<class_num;i+,j+=2) /按班次順序輸出 printf("n|-|-|-|-|-|-|-|n");if(whether(i) /判斷時間是否超出函數(shù)*printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",recordsi.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);else pri

25、ntf("|%10s| 已發(fā)車 |%10s|%10s|%8.1f|%8d|%8d|",recordsi.num,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);ShowTable2(j); /線框調(diào)用2printf("n按任意鍵繼續(xù).n");getch(); /從控制臺讀取一個字符,但不顯示在屏幕上/*打印表頭*/void ShowTable1() /線框調(diào)用1,不用沒次輸int i=2;system("cls"); /刷屏printf("

26、;*MESSAGE車程信息*n");printf("n|-|-|-|-|-|-|-|n"); printf("n| 班次 | 發(fā)車時間 | 起點站 | 終點站 |行車時間|額定載量| 已售票 |n");/*打印表尾*/void ShowTable2(int i) /線框調(diào)用2。不用沒次輸。printf("n|-|-|-|-|-|-|-|n");/*查找函數(shù)11*/void search() /查詢調(diào)用int i;char s110='0',s210='0'system("cls&qu

27、ot;); /刷屏printf("1. 按班次查詢n");printf("2. 按終點站查詢n");printf("3. 退出n");printf("請選擇(1-3):n");scanf("%d",&i);load(); / 調(diào)用按班次查詢函數(shù)switch(i) /多分枝選擇語句 case 1: printf("請輸入要查詢的班次:n"); /s1為班次scanf("%s",s1);find(s1,s2); /調(diào)用查找函數(shù)222 2 break;c

28、ase 2:printf("請輸入要查詢終點站:n"); /s2為終點站scanf("%s",s2);find(s1,s2); /調(diào)用查找函數(shù)222 2 break; case 3: break;default : printf("輸入錯誤!n");break;printf("按任意鍵繼續(xù).n");getch(); /從控制臺讀取一個字符,但不顯示在屏幕上void find(char s1,char s2)int i,h=0,m;ShowTable1(); /調(diào)用線框1if(s20='0')m=1;

29、 /1為無條件執(zhí)行else m=0;for(i=0;i<class_num;i+)if(strcmp(s1,recordsi.num)=0|strcmp(s2,recordsi.to)=0) /判斷字符串比較是否相等, 待比較的字符串 printf("n|-|-|-|-|-|-|-|n");printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",recordsi.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,r

30、ecordsi.max,recordsi.now);h+=2;if(m=1)break;ShowTable2(h); /調(diào)用線框2if(h=0)printf("要查找的班次不存在!n");/*增加函數(shù)*/void add() / /增加記錄int i,j=5;load(); / 調(diào)用按班次查詢函數(shù)system("cls"); /刷屏printf("1. 增加班次n");printf("2. 返回n");printf("請選擇(1-2)n");scanf("%d",&i

31、);if(i=1)system("cls"); /刷屏printf("1. 請輸入要增加的班次:n");scanf("%s",recordsclass_num.num);for(i=0;i<class_num;i+)if(strcmp(recordsclass_num.num,recordsi.num)=0)/判斷字符串比較是否相等, 待比較的字符串 判斷車次沒重復 printf("輸入錯誤!n");getch(); /從控制臺讀取一個字符,但不顯示在屏幕上break;if(i=class_num) get(

32、i,j); /修改及增加班次*class_num+; /使班次數(shù)加1save(); /調(diào)用保存函數(shù)/*售票函數(shù)*/void Ticketorder() /*售票函數(shù)*int i;char num10;system("cls"); /刷屏printf("1. 售票n");printf("2. 返回n");printf("請選擇(1-2):n");scanf("%d",&i);if(i=1)load(); / 調(diào)用按班次查詢函數(shù)search(); /查找函數(shù)*printf("請輸入

33、要訂票的班次(若無請輸入0):n");scanf("%s",num);for(i=0;i<class_num;i+)if(strcmp(num,recordsi.num)=0)/判斷字符串比較是否相等, 待比較的字符串 if(recordsi.max>recordsi.now&&whether(i)=1) /判斷時間是否超出函數(shù)*并且*沒超出最大客量recordsi.now+; /使已售的暑假1printf("通向%s班次為%s的票訂票成功!n",recordsi.to,recordsi.num);save(); /

34、調(diào)用保存函數(shù)getch(); /從控制臺讀取一個字符,但不顯示在屏幕上break;elseprintf("該班次已滿或已發(fā)出!n");getch(); /從控制臺讀取一個字符,但不顯示在屏幕上/*退票刪除函數(shù)*/void Ticketdelete() /刪除函數(shù)*int i;char num10;system("cls"); /刷屏printf("1. 退票n");printf("2. 返回n");printf("請選擇(1-2)n:");scanf("%d",&i)

35、;if(i=1)system("cls"); /刷屏load(); / 調(diào)用按班次查詢函數(shù)printf("請輸入要退票的班次:n");scanf("%s",num);i=findnum(num); /調(diào)用班次查詢函數(shù)if(strcmp(num,recordsi.num)=0) /判斷字符串比較是否相等 待比較的字符串 if(whether(i) /判斷時間是否超出函數(shù)*printf("確定(Y/N)?");scanf("%s",num);if(num0='y'|num0='

36、;Y') recordsi.now-; /使已售票加1printf("退票成功!n");save(); /調(diào)用保存函數(shù)getch(); /從控制臺讀取一個字符,但不顯示在屏幕上elseprintf("該班車已發(fā)出,無法退票!n");getch(); /從控制臺讀取一個字符,但不顯示在屏幕上if(i=class_num)printf("輸入錯誤!n");getch(); /從控制臺讀取一個字符,但不顯示在屏幕上/*修改函數(shù)*/void change() /修改函數(shù)*char num10,s10;int h=0,j=13,i;lo

37、ad(); / 調(diào)用按班次查詢函數(shù)system("cls"); /刷屏printf("請輸入要修改的班次:n");scanf("%s",num);i=findnum(num); /調(diào)用班次查詢函數(shù) if(i=class_num)printf("輸入錯誤,無此班次!n");getch(); /從控制臺讀取一個字符,但不顯示在屏幕上elseprintf("確定修改(Y/N)?n");scanf("%s",s);if(s0='y'|s0='Y')ge

38、t(i,j); /修改及增加班次*save(); /調(diào)用保存函數(shù)/*刪除函數(shù)*/void deletemessage() /刪除班次信息int i,h=0;char num10;system("cls"); /刷屏printf("1. 刪除班次n");printf("2. 返回n");printf("請選擇(1-2):n");scanf("%d",&i);if(i=1)system("cls"); /刷屏printf("請輸入要刪除的班次:n");

39、scanf("%s",num);i=findnum(num); /調(diào)用班次查詢函數(shù)if(i=class_num)printf("輸入錯誤,無此班次!n");getch(); /從控制臺讀取一個字符,但不顯示在屏幕上elseprintf("確定?(y/n)n");scanf("%s",num);if(num0='y'|num0='Y')for(;i<class_num-1;i+) recordsi=recordsi+1;class_num-; /班次總數(shù)減1save(); /調(diào)用

40、保存函數(shù)printf("刪除成功!n");getch();/*按班次查詢函數(shù)*/int findnum(char s1) /查找班次 int i,h=0;ShowTable1(); /線框調(diào)用1,不用沒次輸 for(i=0;i<class_num;i+)if(strcmp(s1,recordsi.num)=0) /判斷字符串比較是否相等,如果符合則輸出車次等信息 printf("|-|-|-|-|-|-|-|n");printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",recordsi

41、.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);h+=2; /加2使輸出的框架合適break;ShowTable2(h); /調(diào)用框架2return i;void save() /保存函數(shù)FILE *fp1,*fp2; /文件行指針if(fp1=fopen("d:車票管理系統(tǒng).dat","wb")=NULL) /打開文件、為輸出打開一個二進制文件printf("文件打開錯誤!n");e

42、xit(0);if(fp2=fopen("d:車票管理系統(tǒng)0.dat","wb")=NULL) /打開文件、為輸出打開一個二進制文件printf("文件打開錯誤!n");exit(0);fwrite(&class_num,sizeof(int),1,fp2); /寫入文件信息fwrite(records,sizeof(CLASS),class_num,fp1);fclose(fp1);fclose(fp2); /關(guān)閉文件/*按班次查詢函數(shù)*/void load() /按班次查詢函數(shù)FILE *fp1,*fp2;if(fp1=fopen("d:車票管理系統(tǒng).dat","rb")=NULL)system("cls"); /刷屏printf("文件打開錯誤!n");getch(); /從控制臺讀取一個字符,但不顯示在屏幕上 exit(0);if(fp2=fopen("d:車票管理系統(tǒng)0.dat","rb")=NULL)system("cls"); /刷屏prin

溫馨提示

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

評論

0/150

提交評論