當前位置:成語大全網 - 書法字典 - 用C語言寫壹個模擬火車票管理系統。

用C語言寫壹個模擬火車票管理系統。

# include & ltstdio.h & gt

# include & ltstring.h & gt

# include & ltstdlib.h & gt

# include & lttime.h & gt

# include & ltconio.h & gt

#定義N 1000

typedef結構票證

{

字符編號【10】;

char hour【3】;

char min【3】;

char from【10】;

char to【10】;

浮動時間;

int max

int now

}類;

int class _ num = 0;

類記錄【N】;

int system _ time();

void new message();

void showtable 1();

void show table 2(int I);

void顯示();

void add();

void save();

空載荷();

void search();

void change();

void quit();

void ticket order();

void ticket delete();

int menu _ select();

int wheel(int);

void find(char s 1【】,char S2【】);

void delete message();

int find num(char s 1【】);

void get(int,int);

char * menu【】= { * * * * * * * * * * * * *歡迎使用票務管理系統* * * * * * * * * * * * * *“,

“\ n * * * * * * * * * * * * * *菜單功能菜單* * * * * * * * * * * * * * * *,

“\n 1。輸入班次“,

\n 2。顯示所有航班”,

\n 3。檢查頻率“,

\n 4。增加頻率“,

\n 5。門票銷售”,

\n 6。退款”,

\n 7。修改班次“,

“n 8。刪除班次“,

\n 9。退出“};

/* *主要功能* */

void main()

{

系統(“cls”);

while(1)

{

開關(menu_select())

{

case 1:new message();打破;

情況二:Display();打破;

案例三:搜索();打破;

情況四:add();打破;

案例五:ticket order();打破;

案例六:ticket delete();打破;

案例七:變更();打破;

案例8:delete message();打破;

案例九:退出();打破;

}

}

}

/* *菜單功能* */

int menu_select()

{

char s【5】;

int c,I;

系統(“cls”);

for(I = 0;我& lt11;i++)

{

printf(“% s“,menu【I】));

}

I = 0;

printf(“\ n“);

printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *“);

printf(“\ n請選擇(1-9):“);

scanf(“% s“,s);

c = atoi(s);

while(我& lt0 | | i & gt9)

{

printf(“\ n“);

printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *“);

printf(“\ n請選擇(1-9):“);

scanf(“% s“,s);

c = atoi(s);

}

返回c;

}

void NewMessage()

{

int i=0,j=5,h;

char s【5】;

FILE * fp

系統(“cls”);

if((FP = fopen(“d:number . dat“,“rb“))!=NULL)

{

Printf(“車票信息已經存在,請選擇添加功能!\ n ");

Printf(“任何輸入都將返回菜單\ n“);

scanf(“% s“,s);

I = 1;//Pass是1

}

如果(i==0)

{

系統(“cls”);

Printf(“請輸入要輸入的總班次數:\ n“);

scanf(“% d“,& ampclass _ num);

系統(“cls”);

for(I = 0;我& ltclass _ numi++)

{

系統(“cls”);

Printf(“請輸入%d班次的信息:\n“,I+1);

h =-1;

for(;h!= I;)

{

Printf(“請輸入班次:“);

scanf(“% s”),記錄【I】。num);

for(h = 0;h & lt我;h++)

if(strcmp(records【h】。num,記錄【I】。num)= 0)

//判斷字符串比較是否相等,以及要比較的字符串。

{

Printf(“輸入錯誤!此班次已經存在!\ n ");

打破;

}

}

get(I,j);

j = 5;

}

save();

}

}

void Display()//顯示所有函數。

{

int i,j;

系統(“cls”);//刷屏

load();//按shift調用查詢函數。

show table 1();//線框調用1,,,每次都不會輸。

for(I = 0,j = 0;我& ltclass _ numI++,j+= 2)////按移位順序輸出。

{

printf(“\ n |-|-|-|-|-|-|-| \ n“);

如果(是否)

printf(“| % 10s | % 5s:%-4s | % 10s | % 10s | % 8.1f | % 8d | % 8d |“,記錄【I】。num,記錄【I】。小時,

記錄【I】。min,記錄【I】。來自,記錄【I】。到,記錄【我】。小時,

記錄【I】。馬克斯,記錄【I】。現在);

其他

printf(“| % 10s | Departed | % 10s | % 10s | % 8.1f | % 8d |“,記錄【I】。num,

記錄【I】。來自,記錄【I】。到,記錄【我】。小時、記錄【I】。馬克斯,記錄【I】。現在);

}

showtable 2(j);//線框調用2

printf(“\ n按任意鍵繼續...\ n“);

getch();/////從控制臺讀取字符,但不在屏幕上顯示。

}

/* *打印頁眉* */

void ShowTable1()

{

int I = 2;

系統(“cls”);

printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。

printf(“\ n |-|-|-|-|-|-|-| \ n“);

printf(“\ n |班次|發車時間|始發站|終點站|旅行時間|額定載客量|售出車票| \ n“);

}

void showtable 2(int I)

{

printf(“\ n |-|-|-|-|-|-|-| \ n“);

}

無效搜索()

{

int I;

char s 1【10】= {‘\ 0‘},S2【10】= {‘\ 0‘};

系統(“cls”);

printf(“1。按班次查詢\n“)

printf(“2。終端查詢\ n“);

printf(“3。exit \ n“);

Printf(“請選擇(1-3):\ n“);

scanf(“% d“,& amp我);

load();

開關(壹)

{

Case 1: printf(“請輸入要查詢的班次:“);

scanf(“% s“,s 1);

find(s 1,S2);

打破;

情況2: printf(“請輸入要查詢的終端:“);

scanf(“% s“,S2);

find(s 1,S2);

打破;

案例三:破局;

默認值:printf(“輸入錯誤!\ n ");

打破;

}

Printf(“按任意鍵繼續...\ n ");

getch();

}

void find(char s 1【】,char s2【】

{

int i,h=0,m;

show table 1();

if(S2【0】= =‘\ 0‘)

m = 1;

else m = 0;

for(I = 0;我& ltclass _ numi++)

if(strcmp(s 1,records【I】。num)= = 0 | | strcmp(S2,records【I】。to)= 0)

{

printf(“\ n |-|-|-|-|-|-|-| \ n“);

printf(“| % 10s | % 5s:%-4s | % 10s | % 10s | % 8.1f | % 8d | % 8d |“,記錄【I】。num,記錄【I】。小時,記錄【I】。最小,

記錄【I】。來自,記錄【I】。到,記錄【我】。小時、記錄【I】。馬克斯,記錄【I】。現在);

h+= 1;

if(m = = 1)

打破;

}

顯示表2(h);

如果(h==0)

Printf(“您要查找的班次不存在!\ n ");

}

/* *添加功能* */

void add()

{

int i,j = 5;

load();

系統(“cls”);

printf(“1。增加頻率“);

printf(“2。return \ n“);

Printf(“請選擇(1-2)\ n“);

scanf(“% d“,& amp我);

if(I = = 1)

{

系統(“cls”);//刷屏

printf(“1。請輸入要添加的班次:“);

scanf(“% s”),記錄【class_num】。num);

for(I = 0;我& ltclass _ numi++)

if(strcmp(records【class _ num】。num,記錄【I】。num)= 0)

//判斷字符串比較是否相等,並判斷待比較的字符串不重復。

{

Printf(“輸入錯誤!\ n ");

getch();/////從控制臺讀取字符,但不在屏幕上顯示。

打破;

}

if(I = = class _ num)

{

get(I,j);////修改並增加頻率*

class _ num++;///班次數加1。

save();//調用保存函數

}

}

}

/* *票務功能* */

void ticket order()//*票務功能

{

int I;

字符編號【10】;

系統(“cls”);//刷屏

printf(“1。門票銷售\ n“);

printf(“2。return \ n“);

Printf(“請選擇(1-2):\ n“);

scanf(“% d“,& amp我);

if(I = = 1)

{

load();//加載函數

search();//查找函數

Printf(“請輸入您要預訂的航班(如果不是,請輸入0:)“;

scanf(“% s“,num);

for(I = 0;我& ltclass _ numi++)

if(strcmp(num,records【I】。num)= = 0)//判斷字符串比較是否相等,以及要比較的字符串。

if(記錄【I】。max & gt記錄【I】。現在& amp& amp是否(I)= = 1)

//判斷時間是否超過功能且未超過最大載客量。

{

記錄【I】。現在++;///將售出的門票加1。

Printf(“航班%s至%s的機票已成功預訂!\n”,記載【I】。到,記錄【我】。num);

save();//調用保存函數

getch();/////從控制臺讀取字符,但不在屏幕上顯示。

打破;

}

其他

{

Printf(“航班已滿或已發送!\ n ");

getch();/////從控制臺讀取字符,但不在屏幕上顯示。

}

}

}

/* *退款功能* */

void ticket Delete()//刪除函數*

{

int I;

字符編號【10】;

系統(“cls”);//刷屏

printf(“1。退款\ n“);

printf(“2。return \ n“);

Printf(“請選擇(1-2)\ n:“);

scanf(“% d“,& amp我);

if(I = = 1)

{

系統(“cls”);//刷屏

load();//按shift調用查詢函數。

Printf(“請輸入要退款的航班:\ n“);

scanf(“% s“,num);

I = find num(num);//調用班次查詢函數

if(strcmp(num,records【I】。num)= = 0)//判斷字符串比較是否等於要比較的字符串。

if(where(I))//判斷時間是否超過函數* * *

{

Printf(“確定(是/否)?”);

scanf(“% s“,num);

if(num【0】= =‘Y‘| | num【0】= =‘Y‘)

{

記錄【I】。現在-;//將售出的門票減少1。

Printf(“退款成功!\ n ");

save();//調用保存函數

getch();//從控制臺讀取字符,但不在屏幕上顯示。

}

}

其他

{

Printf(“公交車已發送,因此無法退款!\ n ");

getch();/////從控制臺讀取字符,但不在屏幕上顯示。

}

if(I = = class _ num)

{printf(“輸入錯誤!\ n ");

getch();/////從控制臺讀取字符,但不在屏幕上顯示。

}

}

}

字數結束了。。。。