文档库 最新最全的文档下载
当前位置:文档库 › C语言 车票管理系统源程序

C语言 车票管理系统源程序

#include

#include /*时间库函数*/

#include /*调用系统函数*/

#include /*串操作及内存操作函数*/

#include

#include

#define N 80 /*宏定义多条记录*/

void maipiao(int s,int t); /*函数定义*/

float times(int k);

int hour(int k)

{

switch(k)

{

case 1:

return 07;break;

case 2:

return 10;break;

case 3:

return 13;break;

case 4:

return 16;break;

case 5:

return 19;break;

case 6:

return 21;break; /*d到闽清一天的发车时间小时段*/ case 7:

return 07;break;

case 8:

return 11;break;

case 9:

return 15;break;

case 10:

return 19;break;

case 11:

return 23;break; /*d到长乐一天的发车时间小时段*/ case 12:

return 07;break;

case 13:

return 11;break;

case 14:

return 15;break;

case 15:

return 19;break;

case 16:

return 23;break; /*d到连江一天的发车时间小时段*/ case 17:

return 07;break;

case 18:

return 11;break;

case 19:

return 16;break;

case 20:

return 20;break; /*d到永泰一天的发车时间小时段*/ case 21:

return 07;break;

case 22:

return 12;break;

case 23:

return 17;break;

case 24:

return 22;break; /*d到福清一天的发车时间小时段*/ case 25:

return 07;break;

case 26:

return 14;break;

case 27:

return 19;break;

case 28:

return 22;break; /*d到罗源一天的发车时间小时段*/ }

} /*开车时间段*/ int minute(int k)

{

switch(k)

{

case 1:

return 00;break;

case 2:

return 00;break;

case 3:

return 00;break;

case 4:

return 00;break;

case 5:

return 00;break;

case 6:

return 00;break; /*d到闽清一天的发车时间分钟段*/ case 7:

return 00;break;

case 8:

return 00;break;

case 9:

return 00;break;

case 10:

return 00;break;

case 11:

return 00;break; /*d到长乐一天的发车时间分钟段*/ case 12:

return 00;break;

case 13:

return 00;break;

case 14:

return 00;break;

case 15:

return 00;break;

case 16:

return 00;break; /*d到连江一天的发车时间分钟段*/ case 17:

return 00;break;

case 18:

return 30;break;

case 19:

return 00;break;

case 20:

return 30;break; /*d到永泰一天的发车时间分钟段*/ case 21:

return 00;break;

case 22:

return 30;break;

case 23:

return 00;break;

case 24:

return 30;break; /*d到福清一天的发车时间分钟段*/ case 25:

return 30;break;

case 26:

return 00;break;

case 27:

return 30;break;

case 28:

return 30;break; /*d到罗源一天的发车时间分钟段*/ }

} /*开车时间段*/ void wap(int k)

{

switch(k)

{

case 1:

printf("闽清");break;

case 2:

printf("长乐");break;

case 3:

printf("连江");break;

case 4:

printf("永泰");break;

case 5:

printf("福清");break;

case 6:

printf("罗源");break;

}

} /*输入终点站的函数*/

int shijian()

{

struct tm *ptr;

time_t lt;

lt =time(NULL);

ptr=gmtime(<);

printf(ctime(<));

return 0;

} /*输出当前时间的函数*/

float times(int k)

{

float t;

if(k==1)

t=1.5;

if(k==2)

t=3.0;

if(k==3||k==4)

t=4.0;

if(k==5||k==6)

t=4.5;

return t;

} /*输入行车时间的函数*/ int number(int k)

{

int f;

if(k==1||k==2)

f=30;

if(k==3||k==4)

f=40;

if(k==5||k==6)

f=45;

return f;

} /*输入最大载客量的函数*/ int nownumber(int k,int i)

{

int n=0;

char filename[10];

switch(i)

{

case 1:

strcpy(filename,"qiu1.txt");break;

case 2:

strcpy(filename,"qiu2.txt");break;

case 3:

strcpy(filename,"qiu3.txt");break;

case 4:

strcpy(filename,"qiu4.txt");break;

case 5:

strcpy(filename,"qiu5.txt");break;

case 6:

strcpy(filename,"qiu6.txt");break;

case 7:

strcpy(filename,"qiu7.txt");break;

case 8:

strcpy(filename,"qiu8.txt");break;

case 9:

strcpy(filename,"qiu9.txt");break;

case 10:

strcpy(filename,"qiu10.txt");break;

case 11:

strcpy(filename,"qiu11.txt");break;

case 12:

strcpy(filename,"qiu12.txt");break;

case 13:

strcpy(filename,"qiu13.txt");break;

case 14:

strcpy(filename,"qiu14.txt");break;

case 15:

strcpy(filename,"qiu15.txt");break;

strcpy(filename,"qiu16.txt");break;

case 17:

strcpy(filename,"qiu17.txt");break;

case 18:

strcpy(filename,"qiu18.txt");break;

case 19:

strcpy(filename,"qiu19.txt");break;

case 20:

strcpy(filename,"qiu20.txt");break;

case 21:

strcpy(filename,"qiu21.txt");break;

case 22:

strcpy(filename,"qiu22.txt");break;

case 23:

strcpy(filename,"qiu23.txt");break;

case 24:

strcpy(filename,"qiu24.txt");break;

case 25:

strcpy(filename,"qiu25.txt");break;

case 26:

strcpy(filename,"qiu26.txt");break;

case 27:

strcpy(filename,"qiu27.txt");break;

case 28:

strcpy(filename,"qiu28.txt");break;

case 29:

strcpy(filename,"qiu29.txt");break;

}

FILE *fp;

if((fp=fopen(filename,"rt+"))==NULL)

{

printf("cannot open file,strike any key exit!");

exit(1);

}

fscanf(fp,"%d",&n);

n=n+k;

rewind(fp);

fprintf(fp,"%d",n); //将输入数组里面的数据写到文本里

fclose(fp);

return n;

} /*现在已定票人数*/ int tangci(int k)

{

switch(k)

{

case 1:

x=6;break;

case 2:

x=5;break;

case 3:

x=5;break;

case 4:

x=4;break;

case 5:

x=4;break;

case 6:

x=4;break;

default:

x=0;break;

}

return x;

} /*确定每个地方一天行车趟次的函数*/

void jiemian()

{

printf("********************************************************************* ***********\n");

printf("******************************欢迎来到车票查询系统******************************");

printf("\n");

printf("| ★★★a: 进入班次一览★★★|\n");

printf("| ★★★b: 进入查询班次★★★|\n");

printf("| ★★★c: 进入终点站查询★★★|\n");

printf("| ★★★d: 售票★★★|\n");

printf("| ★★★e: 退票★★★|\n");

printf("| ★★★f: 增加班次★★★|\n");

printf("********************************************************************* ***********\n");

printf("\n请选择(a-e):☆☆☆");

} /*界面函数*/

void banci(int s,int t)

{

system("cls"); /*清屏*/

int i,flag=1,m,k=1,o=0; /*定义一些要用的数据*/

printf(" 车票管理系统");

printf("\n");

printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态");

printf("\n");

for(i=1;i<=N;i++)

{

if(flag)

{

m=i+tangci(k)-1;

flag=0;

} /*计算同一个终点站的班次范围*/

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i)); /*进行页面的调整,美观*/

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(k);

printf(" %lf ",times(k));

printf("%d ",number(k));

printf("%d ",nownumber(0,i));

if(s

printf("未发出");

else if(t

printf("未发出");

else

printf("已发出");

printf("\n");

if(i==m)

{

flag=1;

k++;

}

if(k>6)

break;

}

} /*班次一览*/

void chaxun1(int s,int t)

{

system("cls");

int i,k=0,n,o=0;

printf("\n请输入要查询的班次i:");

scanf("%d",&i);

n=i;

while(n>0)

{

k++;

n=n-tangci(k);

}

printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i));

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(k);

printf(" %f ",times(k));

printf("%d ",number(k));

printf("%d ",nownumber(0,i));

if(s

printf("未发出");

else if(t

printf("未发出");

else

printf("已发出");

printf("\n");

printf("返回重新查询:3,输入其他返回:\n");

scanf("%d",&n);

while(n==3) /*循环*/

{

system("cls");

printf("\n请输入要查询的班次i:");

scanf("%d",&i);

printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i));

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(k);

printf(" %f ",times(k));

printf("%d ",number(k));

printf("%d ",nownumber(0,i));

if(s

printf("未发出");

else if(t

printf("未发出");

else

printf("已发出");

printf("\n");

printf("返回重新查询:3,输入其他返回:\n");

scanf("%d",&n);

}

} /*按班次查询*/

void chaxun2(int s,int t)

{

system("cls");

int i,k=1,m,j,l=0,o=0;

printf("请输入你要查询的终点站:\n");

printf("1:闽清.2:长乐.3:连江.4:永泰.5:福清.6:罗源.\n");

scanf("%d",&m);

for(j=1;j

k=k+tangci(j);

for(j=1;j<=m;j++)

l=l+tangci(j);

printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");

for(i=k;i<=l;i++)

{

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i));

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(m);

printf(" %f ",times(m));

printf("%d ",number(m));

printf("%d ",nownumber(0,i));

if(s

printf("未发出");

else if(t

printf("未发出");

else

printf("已发出");

printf("\n");

}

printf("重新查询请输入11,直接买票请输入12,输入其他退出!:\n");

scanf("%d",&m);

while(m==11)

{

k=1;

l=0;

printf("请输入你要查询的终点站:\n");

printf("1:闽清.2:长乐.3:连江.4:永泰.5:福清.6:罗源.\n");

scanf("%d",&m);

for(j=1;j

k=k+tangci(j);

for(j=1;j<=m;j++)

l=l+tangci(j);

printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");

for(i=k;i<=l;i++)

{

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i));

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(m);

printf(" %f ",times(m));

printf("%d ",number(m));

printf("%d ",nownumber(0,i));

if(s

printf("未发出");

else if(t

printf("未发出");

else

printf("已发出");

printf("\n");

}

printf("重新查询请输入11,直接买票请输入12,输入其他退出!:\n");

scanf("%d",&m);

}

if(m==12)

maipiao(s,t);

} /*按终点站查询*/

void zengban()

{

system("cls");

int k,i;

char stu1[10],stu2[10];

printf("由于班次不够,所以需要增加班次:\n");

printf("这个是工作人员所进,请输入密码:\n");

scanf("%s",stu1);

while(strcmp(stu1,"qiu")!=0);

{

printf("密码输入有误,请重新输入:\n");

scanf("%s",stu1);

}

printf("输入所要增加班次的班次i:");

scanf("%d",&i);

printf("请输入所要增加班次的重点站:\n");

printf("1:闽清.2:长乐.3:连江.4:永泰.5:福清.6:罗源.\n");

scanf("%d",&k);

printf("请输入发车时间:\n");

scanf("%s",&stu2);

printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");

printf("%d ",i);

printf("%s ",stu2);

printf(" 闽侯");

wap(k);

printf(" %f ",times(k));

printf(" %d ",number(k));

printf("%d ",nownumber(0,i));

printf("未发出");

printf("\n");

}

void maipiao(int s,int t)

{

system("cls");

int m,i,k=0,n,o=0,log;

printf("欢迎先生或者小姐前来买票\n");

printf("请输入您需要购买票的班次i:\n");

scanf("%d",&i);

n=i;

while(n>0)

{

k++;

n=n-tangci(k);

}

printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i));

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(k);

printf(" %f ",times(k));

printf("%d ",number(k));

printf("%d ",nownumber(0,i));

if(s

{

printf("未发出");

log=1;

}

else if(t

{

printf("未发出");

log=1;

}

else

{

printf("已发出");

log=0;

}

printf("\n");

if(number(k)>=nownumber(0,i)&&log==1)

{

printf("请输入你要定的票的数量m:\n");

scanf("%d",&m);

nownumber(m,i);

while(number(k)

{

nownumber(-m,i);

printf("这班车已订满,请重新订票:\n");

printf("请输入您需要购买票的班次i:\n");

scanf("%d",i);

n=i;

while(n>0)

{

k++;

n=n-tangci(k);

}

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i));

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(i);

printf(" %f ",times(k));

printf("%d ",number(k));

printf("%d ",nownumber(0,i));

if(s

{

printf("未发出");

log=1;

}

else if(t

{

printf("未发出");

log=1;

}

else

{

printf("已发出");

log=0;

}

printf("\n");

}

printf("你已成功订票!");

}

while(number(k)

{

printf("此班不能订票,请重新输入所要定的班次i:\n");

scanf("%d",&i);

n=i;

k=0;

while(n>0)

{

k++;

n=n-tangci(k);

}

printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i));

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(k);

printf(" %f ",times(k));

printf("%d ",number(k));

printf("%d ",nownumber(0,i));

if(s

{

printf("未发出");

log=1;

}

else if(t

{

printf("未发出");

log=1;

}

else

{

printf("已发出");

log=0;

}

printf("\n");

if(number(k)>=nownumber(0,i)&&log==1)

{

printf("请输入你要定的票的数量m:\n");

scanf("%d",&m);

nownumber(m,i);

while(number(k)

{

printf("这班车已订满,请重新订票:\n");

printf("请输入您需要购买票的班次i:\n");

scanf("%d",i);

n=i;

while(n>0)

{

k++;

n=n-tangci(k);

}

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i));

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(i);

printf(" %f ",times(k));

printf("%d ",number(k));

printf("%d ",nownumber(0,i));

if(s

{

printf("未发出");

log=1;

}

else if(t

{

printf("未发出");

log=1;

}

else

{

printf("已发出");

log=0;

}

printf("\n");

}

printf("你已成功订票!");

}

}

} /*订票的函数*/

void tuipiao(int s,int t)

{

system("cls");

int i,n,k=0,x,log,o=0;

printf("请输入你所订票的班次i:\n");

scanf("%d",&i);

n=i;

while(n>0)

{

k++;

n=n-tangci(k);

}

printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");

if(i>=10)

printf("%d ",i);

else

printf("%d ",i);

if(hour(i)>=10)

printf("%d ",hour(i));

else

printf("%d%d ",o,hour(i));

if(minute(i)>=10)

printf("%d",minute(i));

else

printf("%d%d",o,minute(i));

printf(" 闽侯");

wap(k);

printf(" %f ",times(k));

printf("%d ",number(k));

printf("%d ",nownumber(0,i));

if(s

{

printf("未发出");

log=1;

}

else if(t

{

printf("未发出");

log=1;

}

else

{

printf("已发出");

log=0;

}

printf("\n");

if(log==1)

{

printf("你真的要退票吗? 是:请输入1, 否:请输入0\n");

scanf("%d",&x);

if(x==1)

{

nownumber(-1,i);

printf("你已退票成功!");

}

}

else

printf("此班不能退票!");

} /*退票函数*/

void main()

{

system("color E"); /*改变颜色*/

int log=1,n,s,t,log2=0;

char x;

jiemian(); /*调用界面函数*/

shijian(); /*调用时间函数*/

scanf("%c",&x);

printf("请输入上述时间的时辰:");

scanf("%d",&s);

printf("请输入上述时间的分钟:");

scanf("%d",&t);

while(log) /*循环*/

{

if(x=='a')

banci(s,t); /*调用班次的函数,班次一览的函数*/ if(x=='b')

chaxun1(s,t); /*按班次查询的函数*/

if(x=='c')

chaxun2(s,t); /*按终点站查询的函数*/

if(x=='d')

maipiao(s,t); /*买票的函数*/

if(x=='e')

tuipiao(s,t); /*退票的函数*/ if(x=='f')

zengban(); /*增加班次*/ printf("\n");

printf("返回主界面:请输入1:\n");

printf("退出:0\n");

scanf("%d",&n);

if(n==1)

{

system("cls");

jiemian();

scanf("%c",&x);

}

else if(n==0)

break;

}

}

相关文档
相关文档 最新文档