票務員管理程序(定稿)
票務管理控制程序
文件編號版本/修改狀態(tài)
1目的
規(guī)范票務工作,為公司提供規(guī)范、美觀、清晰的門票、單據(jù),保證日常經(jīng)營及重大活動期間所需用門票、單據(jù)及經(jīng)營所需用各類票據(jù)。2適用范圍
本程序適用于公司的票務崗位。3工作職責
3.1貫徹執(zhí)行公司政策,遵守公司財務制度,刻苦學習,努力提高自身的業(yè)務水平。
3.2嚴禁非工作人員進入票庫,搞好規(guī)定區(qū)域內的崗位衛(wèi)生工作。3.3嚴守公司機密,未經(jīng)許可不向他人提供任何數(shù)據(jù)。3.4經(jīng)相關部門審批后印制門票、收費票據(jù)或其他票據(jù)。(可根據(jù)要求自印或聯(lián)系印刷廠印制)
3.5根據(jù)單位需求購買手工填開發(fā)票以及定額發(fā)票。3.6負責領用、保管門票、發(fā)票以及其他票據(jù)。3.7負責每日登記票務管理明細賬。3.8負責發(fā)票的繳銷工作。
3.9負責每月盤點各類票據(jù)庫存量并填制相關盤點表。4票務工作流程4.1印制門票、票據(jù)
4.1.1印制門票:印制門票前,需由美工人員提供門票票樣,經(jīng)公司領導審核同意后填寫發(fā)票自印審批表、發(fā)票自印申請書,加票務管理控制程序
文件編號版本/修改狀態(tài)
蓋本公司公章后,經(jīng)地稅局征管處審批同意后,憑地稅局批文,通知印制單位印制門票。
4.1.2印制票據(jù):印制收費票據(jù)或其他票據(jù),其格式和數(shù)量需經(jīng)本部門經(jīng)理審核同意并報批后,方可由印刷廠印刷。
4.1.3購買發(fā)票:購買發(fā)票時,需由票務員和收銀主管一起憑本單位發(fā)票領購簿、上次申購并已使用過的發(fā)票存根,由主管地稅局或國稅局審核并簽署意見后,方可到地稅局發(fā)票所或國稅局發(fā)票所購買發(fā)票。購買發(fā)票要及時,以保證各業(yè)務部門使用。4.2門票入庫流程
4.2.1票務組持樣票及審批數(shù)量驗收并登記印制門票的類別、數(shù)量、碼段,填寫《票據(jù)入庫單》
4.2.2驗收時,須票務組、收入審核會計、供應商同時在場簽字,并各取一聯(lián)作為留底查詢、記賬及付款憑據(jù)。4.3門票及票據(jù)制作
4.3.1門票打碼:門票印回后,需用專用設備,給每張預制票制作條形碼,所制作條碼必須清晰、美觀。
4.3.2其他票據(jù)制作:根據(jù)公司規(guī)定,需給門票或其他票據(jù)加蓋日期章、收費專用章或其他標識。4.4門票及其他票據(jù)的保管和領用:
4.4.1門票、發(fā)票或其他票據(jù)印回或購回后,需由票務管理員按照票據(jù)入庫單的項目填寫票據(jù)入庫單;領用時,由票務管理員填寫票務申領單,由領用人和票務管理員雙方簽字確認;票據(jù)交回票務管理控制程序
文件編號版本/修改狀態(tài)
時,由票務管理員驗收后,填寫票據(jù)交回驗收單。每日根據(jù)當天所發(fā)生的業(yè)務登記票務管理明細賬;每月末盤點一次,需部門第一負責人在場,并在盤點表上簽字確認。
4.4.2門票、有價票據(jù)的領用和使用:每天上班后,由收銀領班到票庫領取一定數(shù)量的門票。領用時,應由票務管理員對類別、本數(shù)、起止號碼等內容進行詳細登記,領用人在清點核實后簽字領出。財務部以外的部門領用時,應填寫票務申領表,經(jīng)相關部門領導簽字后,注明實領數(shù)量并簽字確認,由領用人當面清點后領出。
4.4.3發(fā)票的領用:各相關部門因經(jīng)營需要而領用發(fā)票,由相關部門經(jīng)理簽字后,方可由領用人清點核實后簽字領出。4.5發(fā)票的使用
4.5.1嚴禁偽造、買賣、重用、轉借、轉讓、涂改、撕毀和為他人代開發(fā)票。
4.5.2發(fā)票使用前,應先清點檢查,如有缺聯(lián)、少份、缺號、錯號等問題,應整本退回,否則責任自負。
4.5.3填開發(fā)票時,必須按發(fā)票順序依次使用,采用復寫紙全份一次性復寫,保證全聯(lián)內容一致,并寫明對方具體單位名稱,開票時間、明細等內容。正確書寫大、小寫金額和開票人全稱,小寫金額前加“¥”,大寫未填部分封頂,填寫后,必須在發(fā)票聯(lián)加蓋“發(fā)票專用章”,否則視為無效。作廢的發(fā)票,應整份保存,并注明“作廢”字樣。票務管理控制程序
文件編號版本/修改狀態(tài)
4.5.4發(fā)票領用人對所領用的發(fā)票負責,若發(fā)生遺失和被盜,應及時報告財務經(jīng)理,并查明原因,登報聲明作廢,報主管稅務機關處理。如發(fā)生偽造、買賣、重用、轉借、轉讓、涂改、撕毀和為他人代開,分拆填寫等行為的,將依《中華人民共和國發(fā)票管理辦法》的規(guī)定,處以一萬元以下的罰款。
4.5.5對使用完的發(fā)票,使用人應在票務員處及時辦理繳銷手續(xù)。4.6檢查與獎罰
4.6.1領班、票庫進行經(jīng)常性檢查,并在領班檢查、交接記錄本上登記,每周將檢查結果匯總上報主管4.6.2主管每周到各點進行兩次集中檢查。
4.6.3主要檢查內容:勞動紀律、崗位衛(wèi)生、員工服務態(tài)度、安全設施完好狀況。
4.6.4對檢查中發(fā)現(xiàn)的違紀員工按《公司員工獎罰制度》予以處罰。票務管理控制程序
文件編號版本/修改狀態(tài)
4.7流程圖
設計人員地稅局是印制單位收銀主管審核并簽字確認是票務員留取一聯(lián)存檔提供票樣審批印制門票是是是公司領導是票務員填寫發(fā)票自印審批表、發(fā)票自印申請書票務員是票務員填寫《票據(jù)入庫單》票務員根據(jù)《票據(jù)入庫單》登記明細賬審核審核數(shù)量票務管理控制程序
文件編號版本/修改狀態(tài)
5相關文件與記錄5.1《票務申領表》5.2《票據(jù)交回驗收單》5.3《票據(jù)入庫單》5.4《發(fā)票領用存明細表》
擴展閱讀:機票票務管理程序的設計與實現(xiàn)
武漢理工大學《數(shù)據(jù)結構》課程設計說明書
機票票務管理程序的設計與實現(xiàn)
1緒論
1.1選題目的和意義
隨著社會發(fā)展的不斷進步,民航事業(yè)的壯大,人們消費水平的提高,乘坐民航的消費者也越來越多,旅游也逐漸成為普通老百姓的生活組成部分,飛機票預訂查詢系統(tǒng)在各機票預定網(wǎng)點中的作用也越顯重要。目前,我國一些旅行社和酒店的機票預定還停留在人工處理階段,這已經(jīng)嚴重制約了工作效率,在計算機技術高速發(fā)展的今天,有必要引入高效的計算機系統(tǒng),來協(xié)助處理機票預訂工作。因此,開發(fā)機票票務管理系統(tǒng)勢在必行。
1.2系統(tǒng)模擬與簡化
為了易于實現(xiàn)但不失仿真性,對問題做如下簡化:
1.在初始機票的所有城市共有:武漢、北京、西安、廣州、青島、濟南六個城市。因此所有的機票組合共有30種。
2.機票只有單程票,不考慮聯(lián)程票和往返票。
3.假設航班無限,即不存在票售完的情況。票的數(shù)量不作限制。4.訂票能訂未來任意時間的票。不對時間進行檢查。
1.3可行性分析
1.3.1前提要求
安全與保密要求:管理員享有對機票信息庫和定票信息庫的管理與修改,旅客只享有對訂票信息庫的部分修改(訂票與退票)以及機票信息庫的查詢。
1.3.2目標
1武漢理工大學《數(shù)據(jù)結構》課程設計說明書
系統(tǒng)實現(xiàn)后,大大提高機票預定服務效率。降低售票服務中的錯誤發(fā)生率,減少信息交流的煩瑣過程及其帶來的開銷。
1.4系統(tǒng)的主要功能:
(1)票務管理人員對機票基本信息進行輸入,刪除,修改和查詢(2)旅客對票務信息進行查詢
(3)訂票處理,輸入機票和旅客的信息(4)退票處理
2需求分析
2.1性能需求
為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,機票預定系統(tǒng)應該滿足以下的性能需求:
2.1.1系統(tǒng)處理的準確性
系統(tǒng)處理的準確性是系統(tǒng)的基本性能。由于機票預訂系統(tǒng)的查詢功能對于整個系統(tǒng)的功能和性能完成舉足輕重。作為系統(tǒng)的很多數(shù)據(jù)來源,在系統(tǒng)開發(fā)過程中,必須采用一定的方法保證系統(tǒng)的準確性。
2.1.2系統(tǒng)的開放性和系統(tǒng)的可擴充性
機票預訂系統(tǒng)在開發(fā)過程中,應該充分考慮以后的可擴充性。用戶查詢的需求也會不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進行功能的調整和擴充。而要實現(xiàn)這一點,應通過系統(tǒng)的開放性來完成,既系統(tǒng)應是一個開放系統(tǒng),只要符合一定的規(guī)范,可以簡單的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。
2.1.3系統(tǒng)的易用性
機票預訂系統(tǒng)是直接面對使用人員的,而使用人員往往對計算機并不是非常熟
悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機交互界面。要實現(xiàn)這一點,就要
2武漢理工大學《數(shù)據(jù)結構》課程設計說明書
求系統(tǒng)應該盡量使用用戶熟悉的術語和中文信息的界面;針對用戶可能出現(xiàn)的使用問題,要提供足夠的幫助,縮短用戶對系統(tǒng)熟悉的過程。
2.2數(shù)據(jù)需求
2.2.1數(shù)據(jù)錄入處理的準確性與及時性
數(shù)據(jù)的輸入是否準確是數(shù)據(jù)處理的前提,錯誤的輸入會導致系統(tǒng)輸出的不正確和不可用,從而使系統(tǒng)的工作失去意義。數(shù)據(jù)的輸入來源是手工輸入。手工輸入要通過系統(tǒng)界面上的安排系統(tǒng)具有容錯性。
2.2.2數(shù)據(jù)的一致性與完整性
由于系統(tǒng)的數(shù)據(jù)是共享的,機票是共享數(shù)據(jù),所以如何保證這些數(shù)據(jù)的一致性,是系統(tǒng)必須解決的問題。因此必須在數(shù)據(jù)錄入處控制數(shù)據(jù)的去向,并且要求對數(shù)據(jù)完整性進行嚴格的約束。
2.2.3數(shù)據(jù)的共享與獨立性
整個機票預定系統(tǒng)的數(shù)據(jù)是共享的。然而,從系統(tǒng)開發(fā)的角度上看,共享會給設計和調試帶來困難。因此,應該提供靈活的配置,使各個分系統(tǒng)能夠獨立運行,而通過人工干預的手段進行系統(tǒng)數(shù)據(jù)的交換。這樣,也能提供系統(tǒng)的強壯性。
2.3數(shù)據(jù)字典
名字:旅客信息描述:旅客的個人信息屬性值:姓名和身份證號名字:原始機票信息描述:機票本身的信息屬性值:航班號、起飛地點、飛往地點、所屬公司、價格3
武漢理工大學《數(shù)據(jù)結構》課程設計說明書
名字:訂出的機票信息描述:旅客的機票信息,根據(jù)旅客的旅行時間和目的地確定屬性值:旅客信息、航班號、起飛地點、飛往地點、時間、所屬公司、價格3系統(tǒng)總體設計
3.1數(shù)據(jù)結構設計
對旅客個人信息的數(shù)據(jù)結構設計姓名
對機票原始信息的數(shù)據(jù)結構設計
身份證號出發(fā)城市目的城市航班號所屬航空公司票價
對已訂出機票的數(shù)據(jù)結構設計
游客信息出發(fā)城市目的城市姓名身份證號
航班號時間日期空公司所屬航票價4
武漢理工大學《數(shù)據(jù)結構》課程設計說明書
3.2物理結構設計
3.2.1旅客信息
1.旅客姓名PName
2.身份證號碼PID
3.2.2原始機票信息
出發(fā)城市目的城市
航班號所屬航空公司票價
3.2.3已訂出機票信息
1旅客信息
2出發(fā)城市
3目的城市4航班號5所屬航空公司
6出發(fā)日期3.2.4兩個鏈表的定義
typedefstruct_tagNode1現(xiàn)管理員刪除增加等功能
{TDepartCityTArriveCityTFlightNoTCompanyTPrice
PInfoTDepartCity
TArriveCityTFlightNoTCompanyTDate
//定義一個鏈表,用來存儲所有的票務信息,以便來實5
武漢理工大學《數(shù)據(jù)結構》課程設計說明書
struct_tagNode1*Next;TInfoAllTicketsInfo;
}AllTickets;
typedefAllTickets*PtrAllTickets;
typedefstruct_tagNode2//定義一個鏈表,用來存儲已訂出的票{
struct_tagNode2*Next;BookedTInfoBookedTicketInfo;
}BookedTickets;
typedefBookedTickets*PBookedTickets;
3.3主要函數(shù)功能設計
3.3.1數(shù)據(jù)初始化函數(shù)
從文件TicketInfo.txt中將所有原始機票的信息讀取到一個鏈表中PtrAllTicketsInitial()//將所有的票務信息讀取到內存中{
FILE*fp;//從文件中讀取機票的信息charch;
PtrAllTicketsphead,p1,p2,p;
phead=(PtrAllTickets)malloc(sizeof(AllTickets));p1=phead;
if((fp=fopen("d:\\\\TicketInfo.txt","rt"))==NULL){
printf("Erroropenfile!\\nPressanykeytoexit!\\n");getch();
6武漢理工大學《數(shù)據(jù)結構》課程設計說明書
exit(1);}else{
ch="a";
while(ch!=EOF){
fscanf(fp,"%s%s%s%s%s",p1->AllTicketsInfo.TDepartCity,p1->AllTicketsInfo.TArriveCity,p1->AllTicketsInfo.TFlightNo,p1->AllTicketsInfo.TCompany,p1->AllTicketsInfo.TPrice);
p2=(PtrAllTickets)malloc(sizeof(AllTickets));p1->Next=p2;p2->Next=NULL;p1=p2;ch=fgetc(fp);}}fclose(fp);returnphead;exit(0);}
3.3.2訂票功能的實現(xiàn)
voidGuestBookTickets()//Guest預定機票{
FILE*fp;charch;inttmp_n;
7武漢理工大學《數(shù)據(jù)結構》課程設計說明書
intflag_state=0;PBookedTicketspb1;PtrAllTicketsp=phead;
pb1=(PBookedTickets)malloc(sizeof(BookedTickets));pb1->Next=NULL;
printf("\\t\\t\\t\\t歡迎使用訂票系統(tǒng)!\\n\\n\\n");
printf("請輸入出發(fā)城市:");//選擇出發(fā)城市!scanf("%s",pb1->BookedTicketInfo.TDepartCity);printf("請輸入飛往城市:");
scanf("%s",pb1->BookedTicketInfo.TArriveCity);
while(p!=NULL)//航班號,飛行公司,價格等均確定。{
if(strcmp(p->AllTicketsInfo.TDepartCity,pb1->BookedTicketInfo.TDepartCity)==0&&strcmp(p->AllTicketsInfo.TArriveCity,pb1->BookedTicketInfo.TArriveCity)==0)
{strcpy(pb1->BookedTicketInfo.TPrice,p->AllTicketsInfo.TPrice);strcpy(pb1->BookedTicketInfo.TFlightNo,p->AllTicketsInfo.TFlightNo);strcpy(pb1->BookedTicketInfo.TCompany,p->AllTicketsInfo.TCompany);flag_state=1;}
p=p->Next;}
if(flag_state){
printf("請輸入要預定的票的日期:(格式為xxxxxxxx,如201*0808)\\n");//輸入飛行日期
scanf("%s",pb1->BookedTicketInfo.TDate);
8武漢理工大學《數(shù)據(jù)結構》課程設計說明書
printf("請輸入您的姓名:\\n");//輸入姓名scanf("%s",pb1->BookedTicketInfo.PassengerInfo.PName);
printf("請輸入您的身份證號碼:\\n");//輸入游客身份證號scanf("%s",pb1->BookedTicketInfo.PassengerInfo.PID);//游客訂票信息確認
printf("預定成功!以下是您的訂票信息確認單:\\n\\n");
printf("\\t\\t\\t姓名:%s\\n",pb1->BookedTicketInfo.PassengerInfo.PName);printf("\\t\\t\\t身份證號碼:%s\\n",pb1->BookedTicketInfo.PassengerInfo.PID);printf("\\t\\t\\t出發(fā)城市:%s\\n",pb1->BookedTicketInfo.TDepartCity);printf("\\t\\t\\t飛往城市:%s\\n",pb1->BookedTicketInfo.TArriveCity);printf("\\t\\t\\t航班號:%s\\n",pb1->BookedTicketInfo.TFlightNo);printf("\\t\\t\\t所屬航空公司:%s\\n",pb1->BookedTicketInfo.TCompany);printf("\\t\\t\\t日期:%s\\n",pb1->BookedTicketInfo.TDate);printf("\\t\\t\\t價格:%s\\n",pb1->BookedTicketInfo.TPrice);//將訂票的信息存到一個文件中//
if((fp=fopen("d:\\\\BookedTicketsInfo.txt","rt"))==NULL)//若文件不存在,則新建,若存在,則采用追加模式寫入
{if((fp=fopen("d:\\\\BookedTicketsInfo.txt","wt"))==NULL){
printf("文件創(chuàng)立失。\n無法寫入數(shù)據(jù)!");}else{
fprintf(fp,"%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\n",pb1->BookedTicketInfo.PassengerInfo.PName,pb1->BookedTicketInfo.PassengerInfo.PID,pb1->BookedTicketInfo.TDepartCity,pb1->BookedTicketInfo.TArriveCity,pb1->BookedTicketInfo.TFlightNo,pb1->BookedTicketInfo.TDate,pb1-9
武漢理工大學《數(shù)據(jù)結構》課程設計說明書
>BookedTicketInfo.TCompany,pb1->BookedTicketInfo.TPrice);
}}else{
fp=fopen("d:\\\\BookedTicketsInfo.txt","at");
fprintf(fp,"%s%s%s%s%s%s%s\\t%s\\n",pb1->BookedTicketInfo.PassengerInfo.PName,pb1->BookedTicketInfo.PassengerInfo.PID,pb1->BookedTicketInfo.TDepartCity,pb1->BookedTicketInfo.TArriveCity,pb1->BookedTicketInfo.TFlightNo,pb1->BookedTicketInfo.TDate,pb1->BookedTicketInfo.TCompany,pb1->BookedTicketInfo.TPrice);
}fclose(fp);}else{
printf("城市輸入有誤!\\n訂票失!\\n");}}
3.3.3退票功能的實現(xiàn)
voidGuestReturnTickets()//退票注意幾種特殊情況的處理1,刪除的為第一張票
{intflag_state=0;charPName[15];
charPID[20];charTFlightNo[10];
10武漢理工大學《數(shù)據(jù)結構》課程設計說明書
charTDate[10];//時間格式為:xxxxxxxx如201*80808
FILE*fp;//從文件中讀取機票的信息charch;
PBookedTicketshead,p1,p2,p,p_front,ptrtmp;//先將所有的訂票的信息存取到內存中
head=(PBookedTickets)malloc(sizeof(BookedTickets));p1=head;p_front=head;p=head;
if((fp=fopen("d:\\\\BookedTicketsInfo.txt","rt"))==NULL){
printf("沒有找到訂票數(shù)據(jù)!\\n");getch();exit(1);}else{
ch="a";
while(ch!=EOF){
fscanf(fp,"%s%s%s%s%s%s%s%s",p1->BookedTicketInfo.PassengerInfo.PName,p1->BookedTicketInfo.PassengerInfo.PID,p1->BookedTicketInfo.TDepartCity,p1->BookedTicketInfo.TArriveCity,p1->BookedTicketInfo.TFlightNo,p1->BookedTicketInfo.TDate,p1->BookedTicketInfo.TCompany,p1->BookedTicketInfo.TPrice);
p2=(PBookedTickets)malloc(sizeof(BookedTickets));p1->Next=p2;p2->Next=NULL;
11武漢理工大學《數(shù)據(jù)結構》課程設計說明書
p1=p2;ch=fgetc(fp);}}
fclose(fp);//輸入票務有關信息printf("請按下列提示輸入票務信息:\\n");
printf("\\t\\t\\t請輸入票的航班號:\\n");scanf("%s",TFlightNo);printf("\\t\\t\\t姓名:\\n");scanf("%s",PName);printf("\\t\\t\\t身份證號:\\n");scanf("%s",PID);while(p!=NULL)//查找符合條件的票{
if(strcmp(p->BookedTicketInfo.PassengerInfo.PName,PName)==0&&strcmp(p->BookedTicketInfo.TFlightNo,TFlightNo)==0&&strcmp(p->BookedTicketInfo.PassengerInfo.PID,PID)==0)
{ptrtmp=p_front;flag_state=1;}p_front=p;p=p->Next;}
if(flag_state){
if(ptrtmp==head)head=head->Next;elseptrtmp->Next=ptrtmp->Next->Next;p1=head;
if((fp=fopen("d:\\\\BookedTicketsInfo.txt","wt"))==NULL){
12武漢理工大學《數(shù)據(jù)結構》課程設計說明書
printf("Erroropenfile!\\nPressanykeytoexit!\\n");getch();exit(1);}else{
while(p1!=NULL){
fprintf(fp,"%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\n",p1->BookedTicketInfo.PassengerInfo.PName,p1->BookedTicketInfo.PassengerInfo.PID,p1->BookedTicketInfo.TDepartCity,p1->BookedTicketInfo.TArriveCity,p1->BookedTicketInfo.TFlightNo,p1->BookedTicketInfo.TDate,p1->BookedTicketInfo.TCompany,p1->BookedTicketInfo.TPrice);
p1=p1->Next;}}fclose(fp);exit(0);}
elseprintf("退票失!\\n");exit(1);}
3.3.4按航班號查詢功能的實現(xiàn)
PtrAllTicketsGuestAdminSearchTicketsFlightNo(){
intflag_state=0;
PtrAllTicketsp=phead,ptrtmp,p_front;
13武漢理工大學《數(shù)據(jù)結構》課程設計說明書
charTFlightNo[10];printf("請輸入航班號:");scanf("%s",TFlightNo);
while(p!=NULL)//航班號,飛行公司,價格等均確定。{
if(strcmp(p->AllTicketsInfo.TFlightNo,TFlightNo)==0){
printf("您查詢的機票詳細信息如下:\\n");
printf("\\t\\t\\t***********************************\\n");printf("\\t\\t\\t出發(fā)城市:%s\\n",p->AllTicketsInfo.TDepartCity);printf("\\t\\t\\t飛往城市:%s\\n",p->AllTicketsInfo.TArriveCity);printf("\\t\\t\\t航班號:%s\\n",p->AllTicketsInfo.TFlightNo);printf("\\t\\t\\t所屬航空公司:%s\\n",p->AllTicketsInfo.TCompany);printf("\\t\\t\\t價格:%s\\n",p->AllTicketsInfo.TPrice);printf("\\t\\t\\t***********************************\\n");flag_state=1;ptrtmp=p_front;}p_front=p;p=p->Next;}
if(!flag_state){
printf("航班號輸入有誤!沒有查詢到航班號為%s的票務信息!\\n",TFlightNo);}
returnptrtmp;}
14武漢理工大學《數(shù)據(jù)結構》課程設計說明書
3.3.5按地點查詢功能的實現(xiàn)
PtrAllTicketsGuestAdminSearchTicketsPlace()//注意刪除頭結點的特殊性{
intflag_state=0;
PtrAllTicketsp=phead,ptrtmp,p_front=phead;charTDepartCity[10];
charTArriveCity[10];
printf("請輸入出發(fā)城市:");scanf("%s",TDepartCity);
printf("請輸入飛往城市:");scanf("%s",TArriveCity);while(p!=NULL){
if(strcmp(p->AllTicketsInfo.TDepartCity,TDepartCity)==0&&strcmp(p->AllTicketsInfo.TArriveCity,TArriveCity)==0)
{printf("您查詢的機票詳細信息如下:\\n");
printf("\\t\\t\\t***********************************\\n");printf("\\t\\t\\t出發(fā)城市:%s\\n",p->AllTicketsInfo.TDepartCity);printf("\\t\\t\\t飛往城市:%s\\n",p->AllTicketsInfo.TArriveCity);printf("\\t\\t\\t航班號:%s\\n",p->AllTicketsInfo.TFlightNo);printf("\\t\\t\\t所屬航空公司:%s\\n",p->AllTicketsInfo.TCompany);printf("\\t\\t\\t價格:%s\\n",p->AllTicketsInfo.TPrice);printf("\\t\\t\\t***********************************\\n");flag_state=1;ptrtmp=p_front;}p_front=p;
15武漢理工大學《數(shù)據(jù)結構》課程設計說明書
p=p->Next;}
if(!flag_state){
printf("城市輸入有誤!沒有查詢到出發(fā)城市為%s,目的城市為%s的票務信息!\\n",TDepartCity,TArriveCity);
}returnptrtmp;}
3.3.6管理員對票務信息進行刪除的函數(shù)
voidAdminDeleteTInfo()//Admin刪除票務信息,注意刪除頭結點的特殊性{
PtrAllTicketsp,ptrtmp=phead;
FILE*fp;//將修改后的機票信息存儲inttmp_n;
charjudege;//確認是否刪除,值為y或nsystem("cls");
printf("請先選擇要刪除的票\\n");
printf("\\t\\t\\t\\t請選擇查詢方式\\n");printf("\\t\\t\\t\\t1.按地點查找\\n");printf("\\t\\t\\t\\t2.按航班號查找\\n");printf("\\t\\t\\t\\t0.退出\\n");
printf("\\t\\t\\t\\t按數(shù)字0-2選擇:");do{
scanf("%d",&tmp_n);if((tmp_n2))
16武漢理工大學《數(shù)據(jù)結構》課程設計說明書
{}printf("\\t\\t\\t\\t輸入有誤!請輸入數(shù)字0-2!\\n");printf("\\t\\t\\t\\t按數(shù)字0-2選擇:");
}while((tmp_n2));
switch(tmp_n){
case1:{
p=GuestAdminSearchTicketsPlace();if(p==phead)phead=p->Next;else{
p->Next=p->Next->Next;}
if((fp=fopen("d:\\\\TicketInfo.txt","wt"))==NULL){
printf("Erroropenfile!\\nPressanykeytoexit!\\n");getch();exit(1);}else{
ptrtmp=phead;while(ptrtmp!=NULL){
17武漢理工大學《數(shù)據(jù)結構》課程設計說明書
fprintf(fp,"%s\\t\\t%s\\t\\t%s\\t%s\\t%s\\n",ptrtmp->AllTicketsInfo.TDepartCity,ptrtmp->AllTicketsInfo.TArriveCity,ptrtmp->AllTicketsInfo.TFlightNo,ptrtmp->AllTicketsInfo.TCompany,ptrtmp->AllTicketsInfo.TPrice);
ptrtmp=ptrtmp->Next;}}fclose(fp);
break;
}case2:{
p=GuestAdminSearchTicketsFlightNo();p->Next=p->Next->Next;
if((fp=fopen("d:\\\\TicketInfo.txt","wt"))==NULL){
printf("Erroropenfile!\\nPressanykeytoexit!\\n");getch();exit(1);}else{
while(ptrtmp!=NULL){
fprintf(fp,"%s\\t\\t%s\\t\\t%s\\t%s\\t%s\\n",ptrtmp->AllTicketsInfo.TDepartCity,ptrtmp->AllTicketsInfo.TArriveCity,ptrtmp->AllTicketsInfo.TFlightNo,ptrtmp->AllTicketsInfo.TCompany,ptrtmp->AllTicketsInfo.TPrice);
ptrtmp=ptrtmp->Next;
18武漢理工大學《數(shù)據(jù)結構》課程設計說明書
}}break;fclose(fp);}
case0:{
exit(0);break;
}}exit(0);}
3.3.7管理員進行增加票務信息函數(shù)的實現(xiàn)
voidAdminInputTInfo()//Admin輸入票務信息,添加到文件尾{
FILE*fp;PtrAllTicketsprear;
prear=(PtrAllTickets)malloc(sizeof(AllTickets));prear->Next=NULL;
printf("請輸入需要增加的票務的信息:\\n\\n\\n");
printf("出發(fā)城市:");scanf("%s",prear->AllTicketsInfo.TDepartCity);printf("飛往城市:");scanf("%s",prear->AllTicketsInfo.TArriveCity);printf("航班號:");scanf("%s",prear->AllTicketsInfo.TFlightNo);printf("所屬航空公司:");scanf("%s",prear->AllTicketsInfo.TCompany);printf("票價:");scanf("%s",prear->AllTicketsInfo.TPrice);
19武漢理工大學《數(shù)據(jù)結構》課程設計說明書
if((fp=fopen("d:\\\\TicketInfo.txt","at"))==NULL){
printf("Erroropenfile!\\nPressanykeytoexit!\\n");getch();exit(1);}else{
fprintf(fp,"%s\\t\\t%s\\t\\t%s\\t%s\\t%s\\n",prear->AllTicketsInfo.TDepartCity,prear->AllTicketsInfo.TArriveCity,prear->AllTicketsInfo.TFlightNo,prear->AllTicketsInfo.TCompany,prear->AllTicketsInfo.TPrice);
}fclose(fp);exit(0);}
3.3.8管理員對票務信息進行修改的函數(shù)
voidAdminCorrectTInfo()//Admin修改票務信息{
PtrAllTicketsp,ptrtmp=phead;
FILE*fp;//將修改后的機票信息存儲inttmp_n;system("cls");
printf("請先選擇要修改的票\\n");
printf("\\t\\t\\t\\t請選擇查詢方式\\n");printf("\\t\\t\\t\\t1.按地點查找\\n");
20武漢理工大學《數(shù)據(jù)結構》課程設計說明書
printf("\\t\\t\\t\\t2.按航班號查找\\n");printf("\\t\\t\\t\\t0.退出\\n");
printf("\\t\\t\\t\\t按數(shù)字0-2選擇:");do{
scanf("%d",&tmp_n);if((tmp_n2)){}
printf("\\t\\t\\t\\t輸入有誤!請輸入數(shù)字0-2!\\n");printf("\\t\\t\\t\\t按數(shù)字0-2選擇:");
}while((tmp_n2));switch(tmp_n){
case1:{
p=GuestAdminSearchTicketsPlace();printf("請重新輸入該票務的信息!\\n");
printf("出發(fā)城市:");scanf("%s",p->Next->AllTicketsInfo.TDepartCity);printf("飛往城市:");scanf("%s",p->Next->AllTicketsInfo.TArriveCity);printf("航班號:");scanf("%s",p->Next->AllTicketsInfo.TFlightNo);
printf("所屬航空公司:");scanf("%s",p->Next->AllTicketsInfo.TCompany);
printf("票價:");scanf("%s",p->Next->AllTicketsInfo.TPrice);
if((fp=fopen("d:\\\\TicketInfo.txt","wt"))==NULL){
printf("Erroropenfile!\\nPressanykeytoexit!\\n");getch();exit(1);
21武漢理工大學《數(shù)據(jù)結構》課程設計說明書
}else{
while(ptrtmp!=NULL){
fprintf(fp,"%s\\t\\t%s\\t\\t%s\\t%s\\t%s\\n",ptrtmp->AllTicketsInfo.TDepartCity,ptrtmp->AllTicketsInfo.TArriveCity,ptrtmp->AllTicketsInfo.TFlightNo,ptrtmp->AllTicketsInfo.TCompany,ptrtmp->AllTicketsInfo.TPrice);
ptrtmp=ptrtmp->Next;}}fclose(fp);
break;
};case2:{
p=GuestAdminSearchTicketsFlightNo();
printf("請重新輸入該票務的信息!\\n");
printf("出發(fā)城市:");scanf("%s",p->Next->AllTicketsInfo.TDepartCity);printf("飛往城市:");scanf("%s",p->Next->AllTicketsInfo.TArriveCity);printf("航班號:");scanf("%s",p->Next->AllTicketsInfo.TFlightNo);
printf("所屬航空公司:");scanf("%s",p->Next->AllTicketsInfo.TCompany);
printf("票價:");scanf("%s",p->Next->AllTicketsInfo.TPrice);
if((fp=fopen("d:\\\\TicketInfo.txt","wt"))==NULL){
printf("Erroropenfile!\\nPressanykeytoexit!\\n");getch();
22武漢理工大學《數(shù)據(jù)結構》課程設計說明書
exit(1);}else{
while(ptrtmp!=NULL){
fprintf(fp,"%s\\t\\t%s\\t\\t%s\\t%s\\t%s\\n",ptrtmp->AllTicketsInfo.TDepartCity,ptrtmp->AllTicketsInfo.TArriveCity,ptrtmp->AllTicketsInfo.TFlightNo,ptrtmp->AllTicketsInfo.TCompany,ptrtmp->AllTicketsInfo.TPrice);
ptrtmp=ptrtmp->Next;}}break;fclose(fp);};}}exit(0);
case0:{exit(0);break;};
3.4數(shù)據(jù)結構與程序之間的關系
程序在對管理員對票務信息進行操作時需對數(shù)據(jù)結構進行查詢和修改,此過程中都需要對相應數(shù)據(jù)進行聯(lián)合查詢、修改。
3.5出錯輸出信息
程序在運行時主要會出現(xiàn)由于輸入信息,或無法滿足要求時產生的錯誤,出錯信息必
23武漢理工大學《數(shù)據(jù)結構》課程設計說明書
須給出相應的出錯原因。
例:“輸入有誤!請輸入數(shù)字0-2!”“還沒有任何預定票務的信息!”
“城市輸入有誤!沒有查詢到出發(fā)城市為xx,目的城市為xx的票務信息!”等。4系統(tǒng)的實現(xiàn)
4系統(tǒng)的實現(xiàn)
4.1程序主界面
4.2選擇以Administrator登錄
需要輸入密碼方可獲得權限,密碼為123456,共有3次輸入機會
24武漢理工大學《數(shù)據(jù)結構》課程設計說明書
4.3管理員登錄成功后
4.4選擇票務信息總覽
顯示所有票務信息
25武漢理工大學《數(shù)據(jù)結構》課程設計說明書
4.5選擇查詢航班信息
4.6選擇查詢已定出的票務信息
(此時沒有任何預定信息,于是程序給出相應提示)若已經(jīng)有人訂票,則如下圖:
26武漢理工大學《數(shù)據(jù)結構》課程設計說明書
4.7以Guest登錄
4.8選擇預定機票
根據(jù)相應提示輸入數(shù)據(jù)即可
BookedTicketInfo.txt中會自動將該信息存儲,如下圖
27武漢理工大學《數(shù)據(jù)結構》課程設計說明書
結語
該程序的開發(fā)是作為數(shù)據(jù)結構課程設計的內容,經(jīng)過此次實踐,我增長了不少知識,獲益匪淺。該程序的開發(fā)嚴格按照軟件工程的設計思想,從需求分析到總體設計,都是精細而完整的。程序具有高模塊化的特點,有較強的可讀性和可維護性。
由于本系統(tǒng)從開始的計劃到后來的具體實施的這段時間,無論在時間和細致程度來說都是有限的,所以程序真正投入使用還是會有很多不妥善的地方,難免會存在一些的不足的問題。希望老師能給予批評和指導。希望能在今后的不斷的學習中和努力中,把程序做得更好。
參考文獻
[1]王家華,《軟件工程》(第一版),沈陽:東北大學出版社,201*[2]田魯懷,《數(shù)據(jù)結構》,北京:電子工業(yè)出版社,201*[3]譚浩強,《C語言程序設計》,北京:清華大學出版社,201*[4]李春堡,《數(shù)據(jù)結構教程》,北京:清華大學出版社,201*
28友情提示:本文中關于《票務員管理程序(定稿)》給出的范例僅供您參考拓展思維使用,票務員管理程序(定稿):該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產生版權問題,請聯(lián)系我們及時刪除。