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