# 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();/////從控制臺讀取字符,但不在屏幕上顯示。
}
}
}
字數結束了。。。。