中文字幕伊人,国产一级大片黄,www.五月丁香,一级国厂毛片,www.av有码午夜天堂,77女神黄色网,91黄色视频在线观看20分钟

當(dāng)前位置:  > 航空百科

航空訂票系統(tǒng)數(shù)據(jù)庫課程設(shè)計

作者: 發(fā)布時間: 2022-09-11 14:02:09

簡介:】本篇文章給大家談?wù)劇逗娇沼喥毕到y(tǒng)數(shù)據(jù)庫課程設(shè)計》對應(yīng)的知識點,希望對各位有所幫助。本文目錄一覽:
1、飛機(jī)訂票系統(tǒng)設(shè)計


2、任務(wù): 航空客運定票的業(yè)務(wù)活動包括:查詢航線、

本篇文章給大家談?wù)劇逗娇沼喥毕到y(tǒng)數(shù)據(jù)庫課程設(shè)計》對應(yīng)的知識點,希望對各位有所幫助。

本文目錄一覽:

飛機(jī)訂票系統(tǒng)設(shè)計

#include stdio.h

#include string.h

#include conio.h

#include ctype.h

#include stdlib.h

#include malloc.h

#include math.h//overflow

#define ok 1

typedef struct Yidingkehu

{//單鏈表

char name[15];//已訂票的客戶姓名

int dingpiaoshu;//已訂票數(shù)量

struct Yidingkehu *next1;//

}Yidingkehu,*Link;

typedef struct Weidingkehu

{//單鏈隊

char name[15];//預(yù)訂票的客戶姓名

int yudingpiao;// 要訂票數(shù)量

struct Weidingkehu *next2;//下一個鏈隊結(jié)點指針

}Weidingkehu,*Qptr;

typedef struct Hangxian

{//創(chuàng)建一個含有六個信息的結(jié)構(gòu)體

char hangbanhao[15];//航班號-

char feijihao[15];//飛機(jī)號

int feixingriqi;//起飛時間

int chenkerenshu;//座位數(shù)

int yupiao;//余票

char zhongdianzhai[15];//降落城市

struct Hangxian *next;//指向下一個鏈結(jié)點的指針

struct Yidingkehu *yiding;//定義一個指向已訂票客戶的頭結(jié)點指針

struct Weidingkehu *yudingqueue;

}Hangxian,*Linklist;

Linklist InitLinklist();//01

int InsertLinklist(Linklist head1);//02

void hbhchaxun();//通過航班號查詢

void mddchaxun();//通過目的地查詢

void lurugongneng();//初始化錄入功能

void chaxungongnen();//查詢功能

void dingpiaogongnen();//訂票功能

void tuipiaogongnen();//退票功能

void main()

{

int n;

do{ //打印主界面

printf("\t 歡迎使用航空客運訂票系統(tǒng)\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t==1. 錄入功能 ==\n");

printf("\t==2. 查詢功能 ==\n");

printf("\t==3. 訂票功能 ==\n");

printf("\t==4. 退票功能 ==\n");

printf("\t==5. 退出 ==\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t請選擇:");

scanf("%d",n);printf("\n");

switch(n)

{

case 1: lurugongneng();//錄入功能

break;

case 2: chaxungongnen();//查詢功能

break;

case 3: dingpiaogongnen();//訂票功能

break;

case 4:tuipiaogongnen();//退票功能

break;

default :exit(0);//退出

}

}while(n==1||n==2||n==3||n==4);

}

void lurugongneng()//初始化的單鏈表*********************************************************錄入功能

{

Linklist p;

//int m,n;

if(!p) exit(OVERFLOW);

printf("\t請依次輸入下面幾項內(nèi)容:\n\n");//這里的輸入采用一個個單獨輸入,避免了亂賦值的現(xiàn)象

printf("航班號\n");

gets(p-hangbanhao);//這里的二個gets主要是因為在回車鍵的輸入,其中的第一個是來接收上次的回車

gets(p-hangbanhao);

printf("飛機(jī)號\n");

gets(p-feijihao);

printf("終點站\n");

gets(p-zhongdianzhai);

printf("飛行日期\n");

scanf("%d",p-feixingriqi);

printf("乘客總數(shù)\n");

scanf("%d",p-chenkerenshu);

printf("余票數(shù)\n");

scanf("%d",p-yupiao);

}

void chaxungongnen()//******************************************************************查詢功能

{

int n;

printf("\t 查 找 航 線 信 息 \n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t==1. 通過目的地查詢 ==\n");

printf("\t==2. 通過航班號查詢 ==\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t請選擇:");

scanf("%d",n);

printf("\n");//格式化

switch(n)

{

case 1:mddchaxun();

break;

case 2:hbhchaxun();

break;

default :break;

}

}

void mddchaxun()//通過目的地查詢

{

char c[15];

int m;

Linklist p=L;

printf("\t請輸入要查詢的目的地:");

gets(c);

gets(c);//原因同上

do{

p=p-next;

if(p)

{

m=strcmpi((*p).zhongdianzhai,c);//如果==的話則m=0;

if(m==0)

{

printf("\t航班信息:\n");

printf("\t航班號:%s\n",p-hangbanhao);

printf("\t飛機(jī)號:%s\n",p-feijihao);

printf("\t飛行時間:周%d\n",p-feixingriqi);

printf("\t余票量:%d\n",p-yupiao);

}

}

else

{//如果不匹配的話就做

printf("\t對不起沒有你要找的目的地:\n\n"); m=0;

}

}while(m!=0);

}

void hbhchaxun()//通過目的地查詢

{

char c[15];

int m;

Linklist p=L;

printf("\t請輸入要查詢的航班號:");

gets(c); gets(c);printf("\n");

do{

p=p-next;

if(p)

{

m=strcmpi((*p).hangbanhao,c);//如果==的話則m=0;這里的(*p).與p-的作用是一樣的

if(m==0)

{

printf("\t航班信息:\n");

printf("\t航班號:%s\n",p-hangbanhao);

printf("\t飛機(jī)號:%s\n",p-feijihao);

printf("\t飛行時間:周%d\n",p-feixingriqi);

printf("\t余票量:%d\n\n",p-yupiao);

}

}

else

{//如果不匹配的話就做

printf("\t對不起沒有你要找的航班號:\n"); m=0;

}

}while(m!=0);

}

void dingpiaogongnen()//***************************************************************訂票功能

{

char c[15];

int m=1,piao,ydpiao=0,yd=0,n;//

gets(c);

printf("請輸入終點站名:"); gets(c); printf("\n");

p=L-next;

if(p) {

do{//查找一下,是否有這個航班

if(!p)

{

printf("對不起,沒有你要找的航班:\n\n");

goto loop1;

}

m=strcmpi(p-zhongdianzhai,c);

if(m==0)

{

printf("航班信息:\n");

printf("航班號:%s\n",p-hangbanhao);

printf("飛機(jī)號:%s\n",p-feijihao);

printf("飛行時間:周%d\n",p-feixingriqi);

printf("余票量:%d\n",p-yupiao);}

else p=p-next;

}while(m!=0);

if(m==0)

{

do{

printf("\n請輸入你要訂的票數(shù):"); scanf("%d",piao);

if(piao=p-yupiao)

{

h=p-yiding;

if(h)

{

h1=h;

h=h-next1;

h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));

printf("請輸入你的名字:");

gets(h-name);gets(h-name);

h-dingpiaoshu=piao;

h-next1=h1-next1;

h1-next1=h;

p-yupiao=p-yupiao-piao;

printf("訂票成功:\n"); m=2;

}

}

else

{

printf("余票量:%d\n",p-yupiao);

printf("對不起,余票 %d 張不足,不能完成訂票\n\n",p-yupiao);

printf(" 是否要重新訂票?\n");

printf("需要請輸入1 否則請按2 預(yù)訂請輸入3 : ");

scanf("%d",m);

printf("\n");

if(m==3) goto loop3;

}

}while(m==1);

}

}

else if(!p)

{

loop3: struct Weidingkehu *q3;

printf("對不起,該航班的票已售完\n");

q.front=p-yudingqueue;

if(q.front==q.rear) printf("沒有人預(yù)訂票,是否要預(yù)訂?\n");

else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");

printf("預(yù)訂請輸入1 否則輸入2 : ");

scanf("%d",n);

printf("\n");

if(n==1)

{

printf("請輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???

printf("請輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);

q3-next2=NULL;

q.rear-next2=q3;

q.rear=q3;

printf(" 你已經(jīng)預(yù)訂了 !\n");

}

}

loop1:;

}

void tuipiaogongnen()//***************************************************************退票功能

{

}

以上回答你滿意么?

任務(wù): 航空客運定票的業(yè)務(wù)活動包括:查詢航線、客票預(yù)定和辦理退票等。試設(shè)計一個航空客運定票系統(tǒng),以使

基于你的題目任務(wù): 航空客運定票的業(yè)務(wù)活動包括:查詢航線、客票預(yù)定...,

需要為你提供一份適用于初學(xué)者的代碼么,

如有具體需求,可以我們聯(lián)系,

給我留一個你的問題和Email,

有可能幫你,不過絕對救急,

請用BaiduHi為我留言,

此回復(fù)對于所有需求和和來訪者有效,

ES:\\6EFA1AF43DC5DC9144E8526DA54036D6

軟件工程航空公司機(jī)票預(yù)定系統(tǒng)

軟件工程課程設(shè)計

一、 課程設(shè)計題目:

航空公司機(jī)票預(yù)訂系統(tǒng)。

二、 課程設(shè)計內(nèi)容簡要分析:

航空公司為方便旅客,需開發(fā)一個機(jī)票預(yù)定系統(tǒng)。為便于旅客由旅行社代替航空公司負(fù)責(zé)為旅客定票,旅行社把預(yù)定機(jī)票的旅客信息,包括姓名、性別、工作單位、身份證號碼、旅行時間、旅行目的地,輸入機(jī)票預(yù)定系統(tǒng)的客戶端程序,系統(tǒng)經(jīng)過查詢航空公司內(nèi)的航班數(shù)據(jù)服務(wù)器后,為旅客安排航班,印出取票通知。旅客在飛機(jī)起飛前一天憑取票通知和帳單交款后取票,系統(tǒng)校對無誤后即印出機(jī)票給旅客。

要求系統(tǒng)能有效、快速、安全、可靠和無誤的完成上述操作。并要求客戶機(jī)的界面要簡單明了,易于操作,服務(wù)器程序利于維護(hù)。

三、主要設(shè)計過程:

1、問題定義:

航空運輸現(xiàn)在已經(jīng)逐漸成為我國運輸事業(yè)的重要手段,但是對于航空運輸來說,天氣或人為的種種的因素,會給航空機(jī)票的預(yù)定和退訂帶來困難,特別是對于機(jī)票的預(yù)定和退訂的條理性、及時性和準(zhǔn)確性,也同樣帶來巨大的困難。

對以上的問題,完全可以建立一套完整的航空公司機(jī)預(yù)定系統(tǒng),來對信息進(jìn)行錄入、查詢、訂票、退票等日常管理工作,盡量少的人員介入和數(shù)據(jù)冗余,以簡練實用為基礎(chǔ),實現(xiàn)信息管理計算機(jī)化,提高工作效率和信息化水平。

2、可行性分析:

可行性分析對系統(tǒng)的開發(fā)至關(guān)重要,可以大幅減少不必要的損失,保證系統(tǒng)開發(fā)的順利進(jìn)行??梢詮募夹g(shù)可行性、經(jīng)濟(jì)可行性、操作可行性三方面進(jìn)行系統(tǒng)可行性分析:

2.1、技術(shù)可行性:

這些年來,計算機(jī)技術(shù)的發(fā)展異常迅猛,而絕大多數(shù)的企業(yè)和單位,都已經(jīng)把計算機(jī)作為信息和數(shù)據(jù)處理、保存和管理的重要工具。

Java是Sun Microsystem公司的James Gosling開發(fā)的編程語言。它以C++為基礎(chǔ),但是卻是一個全新的軟件開發(fā)語言。Java是一個簡單,面象對象、分布式、解釋性、強壯、安全,與系統(tǒng)無關(guān)、可移植、高性能、多線程和動態(tài)的語言,利用Java就可以編制出程序接口好、圖形界面優(yōu)美的管理系統(tǒng)。同時,微軟公司開發(fā)的SOL Server 2000,為數(shù)據(jù)庫的開發(fā)和管理帶來了極大的方便。

2.2、經(jīng)濟(jì)可行性:

一方面,對于新系統(tǒng)的開發(fā)和研究,不需要花費更多的費用,而且對于人員的培訓(xùn),不同樣不需要花費很多;另一方面,航空公司的原有服務(wù)器和計算機(jī)系統(tǒng),同樣可以用來使用,不需要更新系統(tǒng)。

2.3、操作可行性:

對于用Java開發(fā)的本系統(tǒng),通過簡單的學(xué)習(xí)就可以熟練操作,同時,對于票務(wù)的管理,也同樣因為本系統(tǒng)的高效性、及時性和方便性而易于管理。

通過以上的分析,航空公司機(jī)票預(yù)定系統(tǒng)在經(jīng)濟(jì)上、技術(shù)上、操作上都是可行的。

3、 需求分析:

需求分析階段的主要目標(biāo)是準(zhǔn)確了解用戶對未來軟件的系統(tǒng)結(jié)構(gòu)的需求,是發(fā)現(xiàn)、求精、建模、規(guī)格說明和復(fù)審過程。

在需求分析中,可以采用主要流程和數(shù)據(jù)流程圖來描述。

3.1、該系統(tǒng)主要要完成的流程為:

a) 錄入:可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)

b) 查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達(dá)城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;

c) 訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;

d) 退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;客戶資料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號。

3.2、數(shù)據(jù)流程圖:

數(shù)據(jù)流程圖是描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)歷的變換。是一種能全面描述信息系統(tǒng)邏輯模型的主要工具,也是系統(tǒng)分析人員與用戶進(jìn)行交流的有效手段。

旅客的訂票流程圖如下:

旅客取票的流程圖如下:

訂票旅客清單

打印機(jī)票

旅客信息查詢

旅客

旅客

售出機(jī)票信息

4、概要設(shè)計:

4.1、本系統(tǒng)的設(shè)計總框圖:

說明:本系統(tǒng)共分為兩大子系統(tǒng):客戶定票系統(tǒng)和后臺管理系統(tǒng)。

客戶服務(wù)系統(tǒng)包含三個子系統(tǒng):

1、查詢系統(tǒng)(實現(xiàn)查詢功能)

2、定票系統(tǒng)(實現(xiàn)定票功能)

3、退票系統(tǒng)(實現(xiàn)退票和修改功能)

后臺處理系統(tǒng)包含三個子系統(tǒng):

1、航班信息查詢 (實現(xiàn)航班信息的查詢功能)

2、航班信息修改(實現(xiàn)航班信息的修改、新增、刪除功能)

3、乘客信息查詢(實現(xiàn)乘客信息的查詢)

兩大系統(tǒng)共用兩個數(shù)據(jù)文件:航班基本信息文件和客戶定票信息文件。

4.2、客戶定票系統(tǒng)的概要設(shè)計:

說明:

1)查詢:用戶可以通過輸入航班號單關(guān)鍵字查詢,飛機(jī)的起降地點和飛機(jī)的起飛時間雙關(guān)鍵字查詢兩種方式進(jìn)行查詢。(注:結(jié)構(gòu)圖里查詢和訂票之間的連線表示客戶可以由查詢界面直接進(jìn)入訂票界面)

2)訂票:客戶可以直接從主界面直接進(jìn)入訂票界面,也可以從航班信息查詢界面通過事件觸發(fā)進(jìn)入訂票界面。客戶在訂票界面內(nèi)填寫客戶基本信息和所定航班的關(guān)鍵信息,然后由提交事件進(jìn)行信息有效性判斷。如果數(shù)據(jù)有效,則修改航班基本信息,新增客戶信息。

3)退票和修改:在客戶正確輸入交易單號,乘客姓名,身份證號的前提下,系統(tǒng)確定數(shù)據(jù)有效性,客戶擁有退票或修改交易的權(quán)限。此時對航班基本信息數(shù)據(jù)文件和客戶訂票信息文件進(jìn)行數(shù)據(jù)項的刪除或修改。

4)客戶修改的主要作用:當(dāng)客戶對于所定機(jī)票的航班號,數(shù)量,等級等內(nèi)容需要修改時,可啟動此功能。

同時,為方便客戶修改過程能準(zhǔn)確的了解航班基本信息,在客戶退票界面加入了查詢按鈕??梢酝ㄟ^事件觸發(fā)進(jìn)入相關(guān)界面。

4.3、后臺管理系統(tǒng)的概要設(shè)計:

說明:

1) 航班信息修改:管理人員可以通過輸入航班號與日期查詢該航班的基本信息 ??稍诓樵兊慕Y(jié)果上進(jìn)行修改,也可刪除該條信息。所有數(shù)據(jù)修改都應(yīng)在數(shù)據(jù)文件中完成,在界面上顯示出來。

2) 航班信息錄入:管理人員可以通過輸入新的航班信息新加一條航班的基本信息。

3) 乘客信息查詢:管理人員可以通過輸入交易單號碼,乘客姓名,乘客身份證號查詢乘客的基本信息。

4.4、機(jī)票預(yù)訂系統(tǒng)的邏輯模型如下:

航班機(jī)票信息

旅行時間

姓名

性別

旅行地點

身份證號碼

工作單位

旅客

1

價格

航空公司

取票通知

帳單

訂票

1 1

時間

旅行社

合適航班機(jī)票

N

訂票旅客清單

售出機(jī)票信息

可售機(jī)票

等級

5、詳細(xì)設(shè)計:

5.1、主界面程序流程圖設(shè)計:

說明:在主界面,可以設(shè)置四個按鈕以供選擇:查詢、訂票、退票和退出。

選擇不同的按鈕觸發(fā)不同事件。

5.2、查詢系統(tǒng)程序流程圖設(shè)計:

5.3、訂票系統(tǒng)程序流程圖設(shè)計:

5.4、 退票系統(tǒng)流程流程圖設(shè)計:

6、實現(xiàn)和單元測試:

6.1、編碼:

航班信息鏈表類核心代碼:

public class FlightList implements Serializable

{

public FlightListNode firstNode; // 第一架航班的信息表

public FlightListNode lastNode; // 最后一架航班的信息表

public String name;

public int numberOfRecords; // 全天起落航班的總記錄

public FlightList( String s )

{

name = s;

firstNode = lastNode = null;

}

public boolean exist( String sFlightNo, Date date ) //判斷含傳入航班號和日期的結(jié)點是否存在

{

FlightListNode current = firstNode; // 航班信息的第一個結(jié)點

while( current != null)

{

if( current.data.flightNum.equals( sFlightNo )

current.data.date.equals( date ) )

return false;

else

current = current.next; //當(dāng)前航班號不存在時轉(zhuǎn)入下一個結(jié)點

}

return true;

}

public void insertAtFront( FlightInfo insertItem ) //在鏈?zhǔn)撞迦虢Y(jié)點

{

if( isEmpty() )

firstNode = lastNode = new FlightListNode( insertItem );

else

firstNode = new FlightListNode( insertItem, firstNode );

return numberOfRecords ++;

}

public void insertAtBack( FlightInfo insertItem ) //在鏈尾插入結(jié)點

{

if( isEmpty() )

firstNode = lastNode = new FlightListNode( insertItem );

else

lastNode = lastNode.next = new FlightListNode( insertItem );

return numberOfRecords ++;

}

public void delete( FlightInfo deleteItem ) //刪除航班信息結(jié)點

{

FlightListNode deleteNode = new FlightListNode( deleteItem );

FlightListNode current = firstNode;

if( isEmpty() )

throw new EmptyListException( name );

FlightListNode temp = firstNode;

int flag = 0 ;

while( current != null )

{

if( current.data.flightNum.equals( deleteNode.data.flightNum ))

{

if( flag == 0 )

{

firstNode = firstNode.next;

}

temp.next = current.next;

break;

}

else

{

temp = current;

current = current.next;

flag ++;

}

}

numberOfRecords --;

}

}

7、軟件維護(hù):

維護(hù)方面主要為對服務(wù)器上的數(shù)據(jù)庫數(shù)據(jù)進(jìn)行維護(hù)??墒褂?SQL SERVER 2000的數(shù)據(jù)庫維護(hù)功能機(jī)制。例如,定期為數(shù)據(jù)庫進(jìn)行Backup,維護(hù)管理數(shù)據(jù)庫死鎖問題和維護(hù)數(shù)據(jù)庫內(nèi)數(shù)據(jù)的一致性等。

三、 主要參考文獻(xiàn):

1 張海潘. 軟件工程導(dǎo)論. 北京:清華大學(xué)出版社,2005

2 趙松濤. SQL Server 2000系統(tǒng)管理實錄. 北京:電子工業(yè)出版社, 2006

3 宋波. Java Web應(yīng)用與開發(fā)教程. 北京:清華大學(xué)出版社,2006

4 孫衛(wèi)琴. Java面向?qū)ο缶幊? 北京:電子工業(yè)出版社,2006

c語言程序設(shè)計飛機(jī)訂票系統(tǒng)

呵呵 這個也是我在網(wǎng)上搜的 挺不錯 沒有錯誤

#includestdio.h //標(biāo)準(zhǔn)輸入、輸出頭文件

#includestring.h //包含字符串函數(shù)處理頭文件

#includestdlib.h //包含動態(tài)存儲與釋放函數(shù)頭文件

#define N 10000

struct air //定義結(jié)構(gòu)體數(shù)組

{

int num;

char start[20];

char over[20];

char time[10];

int count;

}s[N];

int i;

int m=0;

#define PRINT "%-d%12s%12s%10s%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //定義輸出格式

void input(); //輸入航班信息

void print(); //輸出航班信息

void save(); //保存航班信息

void read(); //讀取航班信息

void search(); //查找航班信息

void shanchu(); //刪除航班信息

void dingpiao(); //訂票信息

void tuipiao(); //退票信息

void xiugai(); //修改信息

void main()

{

int j;

printf(" ★---您好,歡迎進(jìn)入中國民航管理系統(tǒng)!---★\n");

printf("================================================================================\n");

do

{

printf(" -------- ☆ 1.輸入航班信息 ☆-------- \n\n"

" -------- ☆ 2.瀏覽航班信息 ☆-------- \n\n"

" -------- ☆ 3.修改航班信息 ☆-------- \n\n"

" -------- ☆ 4.查找航班信息 ☆-------- \n\n"

" -------- ☆ 5.刪除航班信息 ☆-------- \n\n"

" -------- ☆ 6.訂票信息 ☆-------- \n\n"

" -------- ☆ 7.退票信息 ☆-------- \n\n"

" -------- ☆ 0.退出 ☆-------- \n\n");

printf("================================================================================\n");

printf("請在0-7中選擇以回車鍵結(jié)束:\n\n");

scanf("%d",j);

switch(j)

{

case 1: input();//調(diào)用輸入模塊

break;

case 2:print();//調(diào)用打印模塊

break;

case 3:xiugai();//調(diào)用修改模塊

break;

case 4:search();//調(diào)用查找模塊

break;

case 5:shanchu(); //調(diào)用刪除模塊

break;

case 6:dingpiao();//調(diào)用訂票模塊

break;

case 7:tuipiao();//調(diào)用退票模塊

break;

case 0:;

break;

}

}while(j!=0); //判斷結(jié)束

printf("謝謝使用,再見!\n");

}//主函數(shù)結(jié)束

void input()//打印模塊程序

{

char f[]="2008china"; //設(shè)置密碼

int y;

printf("請輸入密碼并以回車鍵結(jié)束:\n\n");

scanf("%s",f); //讀取密碼

if(strcmp(f,"2008china")==0)

{

printf("請依次輸入航班信息(機(jī)票數(shù)位0結(jié)束輸入):\n\n"

"完成輸入信息請鍵入w以回車鍵結(jié)束\n\n"); //打印提示信息

printf("--------------------------------------------------------------------------\n");

for(i=0;iN;i++)

{

printf("請輸入航班號:\n");

scanf("%d",s[i].num); //讀取航班號

printf("請輸入起始站:\n");

scanf("%s",s[i].start);//讀取起始站

printf("請輸入終點站:\n");

scanf("%s",s[i].over);//讀取終點站

printf("請輸入時間:\n");

scanf("%s",s[i].time);//讀取時間

printf("請輸入機(jī)票數(shù)(機(jī)票數(shù)為0結(jié)束輸入):\n",m);

scanf("%d",s[i].count);//讀取機(jī)票數(shù)

m++;

printf("第%d個信息已經(jīng)輸完是否繼續(xù)?按任意鍵繼續(xù),按 0結(jié)束",m);

scanf("%d",y);

if(y==0)

{

save();//將結(jié)構(gòu)體信息存盤

print();//輸出輸入的航班信息

break;

}

}

}

else

printf("輸入密碼錯誤!請檢查您的密碼是否正確!謝謝!再見!\n\n");

}

void save()//保存模塊程序

{

FILE *fp,*fp1;//定義文件指針

if((fp=fopen("chen.dat","wb"))==NULL)//打開文件并判斷是否出錯

{

printf("創(chuàng)建文件失敗!\n\n");//打印出錯提示

getchar();

return;

}

if((fp1=fopen("hao.dat","wb"))==NULL)//打開文件并判斷是否出錯

{

printf("創(chuàng)建文件失敗!\n\n");//打印出錯提示

getchar();

return;

}

for(i=0;im;i++)

if(fwrite(s[i],sizeof(struct air),1,fp)==0)//向文件寫入數(shù)據(jù),并判斷是否出錯

printf("向文件輸入數(shù)據(jù)失敗!\n\n");

fprintf(fp1,"%d",m);

fclose(fp);//關(guān)閉文件

fclose(fp1);//關(guān)閉文件

}

void read()//從文件讀取信息模塊

{

FILE *fp,*fp1;//定義文件指針

if((fp=fopen("chen.dat","rb"))==NULL)//打開文件,并判斷是否出錯

{

printf("出錯,請檢查文件是否存在,按任意鍵返回住菜單");//打印出錯提示

getchar();

}

if((fp1=fopen("hao.dat","rb"))==NULL)//打開文件并判斷是否出錯

{

printf("創(chuàng)建文件失敗!\n\n");//打印出錯提示

getchar();

return;

}

fscanf(fp1,"%d",m);

fclose(fp1);//關(guān)閉文件

for(i=0;im;i++)

{

fread(s[i],sizeof(air),1,fp);//從文件中讀取信息

}

fclose(fp);//關(guān)閉文件

}

void print()//打印模塊

{

char w[10];

read();//調(diào)用讀取文件函數(shù)

printf("航班號 起始站 終點站 時間 機(jī)票數(shù)\n");

for(i=0;im;i++)

{

printf(PRINT);//打印信息

}

printf("請按任意鍵回車鍵結(jié)束返回上層菜單以:\n");

scanf("%s",w);

}

void search()//查詢模塊

{

char name1[20];

char name2[20];

char ii[10];

int n,no;

do

{

printf("請選擇查找方式:\n\n");//打印查詢方式菜單

printf("1.按航班號查找\n\n"

"2.按終點站查找\n\n"

"3.按航線查找\n\n"

"0.返回\n\n");

printf("請在0-3中選擇:\n\n"

"按其他鍵以回車鍵結(jié)束返回主菜單:\n\n");

scanf("%d",n);//讀取查找方式

if(n==0)

break;

switch(n)

{

case 1:

printf("請輸入航班號:\n");

scanf("%d",no);//航班號

break;

case 2:

printf("請輸入終點站名稱:\n");

scanf("%s",name2);//讀取終點站

break;

case 3:

printf("請輸入起始站名稱:\n");

scanf("%s",name1);//讀取起始站

printf("請輸入終點站名稱:\n");

scanf("%s",name2);//終點站

break;

}

read();//調(diào)用讀取函數(shù)

for(i=0;im;i++)

{

if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)//按終點站起始站判斷輸出條件

{

printf("\n查找航班信息成功!\n");

printf("航班號 起始站 終點站 時間 機(jī)票數(shù)\n");

printf(PRINT);//打印信息

break;

}

if(s[i].num==no)//按航班號判斷輸出條件

{

printf("\n查找航班信息成功!\n");

printf("航班號 起始站 終點站 時間 機(jī)票數(shù)\n");

printf(PRINT);//打印信息

break;

}

}

no=0;//將航班號賦值為0

printf("沒有您需要的信息或查找完畢:\n\n"

"是否繼續(xù)查找?請鍵入yes或no以回車鍵結(jié)束\n");

scanf("%s",ii);

}while(strcmp(ii,"yes")==0);//判斷結(jié)束

}

void shanchu()//刪除模塊

{

char name1[20];

char name2[20];

char ii[10];

char f[]="2008china";//設(shè)置密碼

int no,n;

printf("請輸入密碼并以回車鍵結(jié)束:\n\n");

scanf("%s",f);//讀取密碼

if(strcmp(f,"2008china")==0) //判斷密碼是否正確

{

do

{

printf("請選擇刪除以方式回車鍵結(jié)束:\n\n");//打印刪除方式菜單

printf("*1.按航班號刪除\n\n"

"*2.按航線刪除\n\n"

"*0.返回\n\n");

printf("請在0-2中選擇以回車鍵結(jié)束:\n");

scanf("%d",n);//讀取刪除方式

if(n==0)

break; //跳出循環(huán)

switch(n)

{

case 1:

printf("請輸入航班號:\n");

scanf("%d",no);//讀取航班號

read();//調(diào)用讀取函數(shù)

break;//跳出循環(huán)

case 2:

printf("請輸入起始站 名稱:\n");

scanf("%s",name1);//讀取起始站

printf("請輸入終點站名稱:\n");

scanf("%s",name2);//讀取終點站

read();//調(diào)用讀取函數(shù)

break;//跳出循環(huán)

}

for(i=0;im;i++)

{

if(s[i].num==no||strcmp(s[i].start,name1)==0strcmp(s[i].over,name2)==0)//判斷輸入信息是否存在

{

s[i]=s[m-1];

m--;

}

}

printf("查找完畢或沒有這個信息\n\n");

printf("是否繼續(xù)刪除\n");

printf("請鍵入yes或no以回車鍵結(jié)束\n");

scanf("%s",ii); //讀取是否繼續(xù)信息

save(); //調(diào)用讀取函數(shù)

if(!strcmp(ii,"yes")) //判斷是否繼續(xù)刪除

printf("請按任意鍵以回車鍵結(jié)束返回上層菜單:\n");

break;

}while(n!=1n!=2n!=3n!=4n!=0); //判斷結(jié)束

}

else

printf("對不起密碼錯誤!您不是管理員,不能使用此項功能!謝謝!再見!\n\n");

}

void dingpiao()//訂票模塊

{

int n;

char a[10];

do

{

search();//調(diào)用查詢模塊

printf("請輸入您要訂的機(jī)票數(shù)以回車鍵結(jié)束:\n");

scanf("%d",n);//讀取所訂機(jī)票數(shù)

if(n0)

{

printf("請輸入有效的機(jī)票數(shù)!\n");//判斷機(jī)票數(shù)是否出錯

break;

}

if(s[i].count!=0s[i].count=n)//判斷是否出錯

{

s[i].count=s[i].count-n;

save();//調(diào)用保存函數(shù)

printf("訂票成功!\n\n");

break;

}

if(s[i].countn)//判斷是否出錯

{

printf("請輸入有效的機(jī)票數(shù):\n");

break;

}

printf("是否繼續(xù)? 請輸入yes或no以回車鍵結(jié)束:\n");//判斷是否繼續(xù)訂票

scanf("%s",a);

}while(!strcmp(a,"yes"));//判斷結(jié)束

}

void tuipiao()//退票模塊

{

int n;

char a[10];

do

{

search();//調(diào)用查詢模塊

printf("請輸入您要退的機(jī)票數(shù)目:\n");

scanf("%d",n);//輸入所退票數(shù)

if(n0) //判斷票數(shù)是否有效

printf("請輸入有效的機(jī)票數(shù)!\n");

s[i].count=s[i].count+n;

save(); //調(diào)用保存模塊

printf("退票成功!\n\n");

printf("是否繼續(xù)? 請鍵入yes或no以回車鍵結(jié)束:\n\n");//判斷是否繼續(xù)退票

scanf("%s",a);

}while(!strcmp(a,"yes"));//判斷并跳出循環(huán)

getchar();

}

void xiugai() //修改模塊

{

struct xiu //定義結(jié)構(gòu)體

{

int no;

char name1[20];

char name2[20];

char time[20];

int count;

}x[1];

char j[10];

char f[]="2008china";//設(shè)置密碼

int n;

printf("請輸入密碼并以回車鍵結(jié)束:\n\n");

scanf("%s",f);//讀取密碼

if(strcmp(f,"2008china")==0)//判斷是否出錯

{

read();//調(diào)用讀取模塊

do

{

printf( "請選擇修改方式:\n\n"

"*1,按航班號修改:\n\n"

"*2,按航線修改: \n\n");

printf("請在1---2中修改以回車鍵結(jié)束:\n\n");

scanf("%d",n);//讀取修改方式

switch(n)

{

case 1:printf("請輸入航班號:\n");

scanf("%d",x[0].no);//讀取航班號

break;

case 2:printf("請輸入起始站:\n");

scanf("%s",x[0].name1);//讀取起始站

printf("請輸入終點站:\n");

scanf("%s",x[0].name2);//讀取終點站

break;

}

for(i=0;im;i++)

{

if(strcmp(s[i].over,x[0].name1)==0strcmp(s[i].over,x[0].name2)==0)//判斷輸出條件

{

printf("航班號 起始站 終點站 時間 機(jī)票數(shù)\n");

printf(PRINT);

break;

}

if(s[i].num==x[0].no)//判斷輸出條件

{

printf("航班號 起始站 終點站 時間 機(jī)票數(shù)\n");

printf(PRINT);

break;

}

}

x[0].no=0; //將結(jié)構(gòu)體中的號為零

printf("請輸入新航班號、起始站、終點站、時間(星期幾)、機(jī)票數(shù):\n");

scanf("%d%s%s%s%d",x[0].no,x[0].name1,x[0].name2,x[0].time,x[0].count);//定義輸入格式

s[i].num=x[0].no;//替換航班號

strcpy(s[i].start,x[0].name1);//替換其始站

strcpy(s[i].over,x[0].name2);//替換終點站

strcpy(s[i].time,x[0].time);//替換時間

s[i].count=x[0].count;//替換機(jī)票數(shù)

save();//調(diào)用保存模塊

printf("是否繼續(xù)?請鍵入yes或no以回車鍵結(jié)束:\n\n");

scanf("%s",j);

}while(strcmp(j,"yes")==0); //判斷結(jié)束

}

else

printf("對不起密碼錯誤!您不是管理員,不能使用此項功能!謝謝!再見!\n\n");

}

C語言的題目---試設(shè)計一個航空客運訂票系統(tǒng)

白癡,這個問題至少200分,我以前的比這個簡單的200分也沒人回答

#include stdio.h

#include string.h

#include conio.h

#include ctype.h

#include stdlib.h

#include malloc.h

#include math.h//overflow

#define ok 1

typedef struct Yidingkehu

{//單鏈表

char name[15];//已訂票的客戶姓名

int dingpiaoshu;//已訂票數(shù)量

struct Yidingkehu *next1;//

}Yidingkehu,*Link;

typedef struct Weidingkehu

{//單鏈隊

char name[15];//預(yù)訂票的客戶姓名

int yudingpiao;// 要訂票數(shù)量

struct Weidingkehu *next2;//下一個鏈隊結(jié)點指針

}Weidingkehu,*Qptr;

typedef struct Hangxian

{//創(chuàng)建一個含有六個信息的結(jié)構(gòu)體

char hangbanhao[15];//航班號-

char feijihao[15];//飛機(jī)號

int feixingriqi;//起飛時間

int chenkerenshu;//座位數(shù)

int yupiao;//余票

char zhongdianzhai[15];//降落城市

struct Hangxian *next;//指向下一個鏈結(jié)點的指針

struct Yidingkehu *yiding;//定義一個指向已訂票客戶的頭結(jié)點指針

struct Weidingkehu *yudingqueue;

}Hangxian,*Linklist;

Linklist InitLinklist();//01

int InsertLinklist(Linklist head1);//02

void hbhchaxun();//通過航班號查詢

void mddchaxun();//通過目的地查詢

void lurugongneng();//初始化錄入功能

void chaxungongnen();//查詢功能

void dingpiaogongnen();//訂票功能

void tuipiaogongnen();//退票功能

void main()

{

int n;

do{ //打印主界面

printf("\t 歡迎使用航空客運訂票系統(tǒng)\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t==1. 錄入功能 ==\n");

printf("\t==2. 查詢功能 ==\n");

printf("\t==3. 訂票功能 ==\n");

printf("\t==4. 退票功能 ==\n");

printf("\t==5. 退出 ==\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t請選擇:");

scanf("%d",n);printf("\n");

switch(n)

{

case 1: lurugongneng();//錄入功能

break;

case 2: chaxungongnen();//查詢功能

break;

case 3: dingpiaogongnen();//訂票功能

break;

case 4:tuipiaogongnen();//退票功能

break;

default :exit(0);//退出

}

}while(n==1||n==2||n==3||n==4);

}

void lurugongneng()//初始化的單鏈表*********************************************************錄入功能

{

Linklist p;

//int m,n;

if(!p) exit(OVERFLOW);

printf("\t請依次輸入下面幾項內(nèi)容:\n\n");//這里的輸入采用一個個單獨輸入,避免了亂賦值的現(xiàn)象

printf("航班號\n");

gets(p-hangbanhao);//這里的二個gets主要是因為在回車鍵的輸入,其中的第一個是來接收上次的回車

gets(p-hangbanhao);

printf("飛機(jī)號\n");

gets(p-feijihao);

printf("終點站\n");

gets(p-zhongdianzhai);

printf("飛行日期\n");

scanf("%d",p-feixingriqi);

printf("乘客總數(shù)\n");

scanf("%d",p-chenkerenshu);

printf("余票數(shù)\n");

scanf("%d",p-yupiao);

}

void chaxungongnen()//******************************************************************查詢功能

{

int n;

printf("\t 查 找 航 線 信 息 \n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t==1. 通過目的地查詢 ==\n");

printf("\t==2. 通過航班號查詢 ==\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t請選擇:");

scanf("%d",n);

printf("\n");//格式化

switch(n)

{

case 1:mddchaxun();

break;

case 2:hbhchaxun();

break;

default :break;

}

}

void mddchaxun()//通過目的地查詢

{

char c[15];

int m;

Linklist p=L;

printf("\t請輸入要查詢的目的地:");

gets(c);

gets(c);//原因同上

do{

p=p-next;

if(p)

{

m=strcmpi((*p).zhongdianzhai,c);//如果==的話則m=0;

if(m==0)

{

printf("\t航班信息:\n");

printf("\t航班號:%s\n",p-hangbanhao);

printf("\t飛機(jī)號:%s\n",p-feijihao);

printf("\t飛行時間:周%d\n",p-feixingriqi);

printf("\t余票量:%d\n",p-yupiao);

}

}

else

{//如果不匹配的話就做

printf("\t對不起沒有你要找的目的地:\n\n"); m=0;

}

}while(m!=0);

}

void hbhchaxun()//通過目的地查詢

{

char c[15];

int m;

Linklist p=L;

printf("\t請輸入要查詢的航班號:");

gets(c); gets(c);printf("\n");

do{

p=p-next;

if(p)

{

m=strcmpi((*p).hangbanhao,c);//如果==的話則m=0;這里的(*p).與p-的作用是一樣的

if(m==0)

{

printf("\t航班信息:\n");

printf("\t航班號:%s\n",p-hangbanhao);

printf("\t飛機(jī)號:%s\n",p-feijihao);

printf("\t飛行時間:周%d\n",p-feixingriqi);

printf("\t余票量:%d\n\n",p-yupiao);

}

}

else

{//如果不匹配的話就做

printf("\t對不起沒有你要找的航班號:\n"); m=0;

}

}while(m!=0);

}

void dingpiaogongnen()//***************************************************************訂票功能

{

char c[15];

int m=1,piao,ydpiao=0,yd=0,n;//

gets(c);

printf("請輸入終點站名:"); gets(c); printf("\n");

p=L-next;

if(p) {

do{//查找一下,是否有這個航班

if(!p)

{

printf("對不起,沒有你要找的航班:\n\n");

goto loop1;

}

m=strcmpi(p-zhongdianzhai,c);

if(m==0)

{

printf("航班信息:\n");

printf("航班號:%s\n",p-hangbanhao);

printf("飛機(jī)號:%s\n",p-feijihao);

printf("飛行時間:周%d\n",p-feixingriqi);

printf("余票量:%d\n",p-yupiao);}

else p=p-next;

}while(m!=0);

if(m==0)

{

do{

printf("\n請輸入你要訂的票數(shù):"); scanf("%d",piao);

if(piao=p-yupiao)

{

h=p-yiding;

if(h)

{

h1=h;

h=h-next1;

h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));

printf("請輸入你的名字:");

gets(h-name);gets(h-name);

h-dingpiaoshu=piao;

h-next1=h1-next1;

h1-next1=h;

p-yupiao=p-yupiao-piao;

printf("訂票成功:\n"); m=2;

}

}

else

{

printf("余票量:%d\n",p-yupiao);

printf("對不起,余票 %d 張不足,不能完成訂票\n\n",p-yupiao);

printf(" 是否要重新訂票?\n");

printf("需要請輸入1 否則請按2 預(yù)訂請輸入3 : ");

scanf("%d",m);

printf("\n");

if(m==3) goto loop3;

}

}while(m==1);

}

}

else if(!p)

{

loop3: struct Weidingkehu *q3;

printf("對不起,該航班的票已售完\n");

q.front=p-yudingqueue;

if(q.front==q.rear) printf("沒有人預(yù)訂票,是否要預(yù)訂?\n");

else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");

printf("預(yù)訂請輸入1 否則輸入2 : ");

scanf("%d",n);

printf("\n");

if(n==1)

{

printf("請輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???

printf("請輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);

q3-next2=NULL;

q.rear-next2=q3;

q.rear=q3;

printf(" 你已經(jīng)預(yù)訂了 !\n");

}

}

loop1:;

}

void tuipiaogongnen()//***************************************************************退票功能

{

}

關(guān)于《航空訂票系統(tǒng)數(shù)據(jù)庫課程設(shè)計》的介紹到此就結(jié)束了。

尚華空乘 - 航空資訊_民航新聞_最新航空動態(tài)資訊
備案號:滇ICP備2021006107號-341 版權(quán)所有:蓁成科技(云南)有限公司    網(wǎng)站地圖
本網(wǎng)站文章僅供交流學(xué)習(xí),不作為商用,版權(quán)歸屬原作者,部分文章推送時未能及時與原作者取得聯(lián)系,若來源標(biāo)注錯誤或侵犯到您的權(quán)益煩請告知,我們將立即刪除。