C车票管理系统_c车票管理系统

2020-02-27 其他范文 下载本文

C车票管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c车票管理系统”。

#include

///宏定义函数

#include

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

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

///时间库函数

#include

///输入输出函数 #define N 1000

//宏定义多条记录 typedef struct TICKET

////定义新结构体TICKET {

}CLASS;int cla_num=0;

///初始班次总数为0

CLASS records[N];

// 多条记录 int system_time();

//系统时间

void NewMeage();

//新纪录*录入函数****** void ShowTable1();

//线框调用1,,不用没次输

char num[10];

//车次编号 char hour[3];

//时间,小时 char min[3];

//分钟 char from[10];

//起始站 char to[10];

//终点站 float hours;

//车程实际时间 int max;

//最大车载容量 int now;

//已售票数 void ShowTable2(int i);

//线框调用2,,不用没次输

void Display();

//显示所有函数 void add();

//增加记录 void save();

//

保存函数 void load();

// 按班次查询函数 void search();

//查询函数 void change();

//修改函数**

void quit();

////////// //退出函数****** void Ticketorder();

//

//*售票函数*** void Ticketdelete();

//删除函数* int menu_select();

//菜单函数* int whether(int);

////判断时间是否超出函数*** void find(char s1[],char s2[]);

//查询函数★//s1为班次//s2为终点站 void deletemeage();

//删除函数 int findnum(char s1[]);

//班次查询函数 void get(int,int);

//修改及增加班次* char *menu[]={“*****************欢迎使用车票查询系统*****************”, “n*******************MENU功能菜单***********************”, “n◤

1.录入班次

◥”, “n◆

2.显示所有班次

◆”, “n◆

3.查询班次

◆”, “n◆

4.增加班次

◆”, “n◆

5.售票

◆”, “n◆

6.退票

◆”, “n◆

7.修改班次

◆”, “n◆

8.删除班次

◆”, “n◣

9.退出

◢”};

/**************************主函数***************************/ void main(){

system(“cls”);

//刷屏

while(1)

//菜单函数循环 {

switch(menu_select())

//菜单函数* { case 1: NewMeage();break;

////新纪录*录入函数****** case 2: Display();break;

// //显示 case 3: search();break;

//查找函数** case 4: add();break;

// //增加记录 case 5: Ticketorder();break;

////*售票函数*** case 6: Ticketdelete();break;

//删除函数* case 7: change();break;

//修改函数** case 8: deletemeage();break;

//////选择调用删除函数 case 9: quit();break;

//////退出函数******

} } } /***********************菜单函数**************************/ int menu_select()

/////////菜单函数* {

char s[5];

///定义要输入的数字功能 int c,i;

system(“cls”);

//刷屏

system(“color 09”);//改变颜色

for(i=0;i

//输出菜单各项)

while(c9)

//判断是否是1到9的命令

{

printf(“n”);

///输出换行

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

printf(“n请选择(1-9):▁▂▃▄▆▇”);scanf(“%s”,s);

} c=atoi(s);

//atoi将字符串转换成一个整数值

}

///输出菜单面

return c;

////返回请求

/*******************************录入函数************************************/ void NewMeage()

//*录入函数****** {

int i=0,j=5,h;

//// char s[5];FILE *fp;

////定义文件型指针变量 system(“cls”);

//刷屏

if((fp=fopen(“d:车票管理系统0.dat”,“rb”))!=NULL)

//fopen打开文件

{

printf(“车票信息已经存在请选择增加功能!n”);

} if(i==0){

system(“cls”);

//刷屏

printf(“请输入要录入班次总数:n”);printf(“任意输入则返回菜单n”);scanf(“%s”,s);i=1;

//通过是1

scanf(“%d”,&cla_num);

//指向班次指针 system(“cls”);

//刷屏

for(i=0;i

{

system(“cls”);

//刷屏

printf(“请输入第%d个班次信息:n”,i+1);h=-1;

for(;h!=i;)

///循环输出 {

printf(“请输入班次:n”);scanf(“%s”,records[i].num);for(h=0;h

//判断字符串比较是否相等,待比较的字符串

在!n“);

}

}

break;

///返回

{

printf(”输入错误!该班次已存

}

}

}

get(i,j);

////修改及增加班次* j=5;

save();

//调用保存函数

/*******************************显示所有函数********************************/ void Display()

//显示所有函数 {

ur,records[i].min,printf(“n|----------|----------|----------|----------|--------|--------|--------|n”);

printf(“|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|”,records[i].num,records[i].hoif(whether(i))

//判断时间是否超出函数*** int i,j;system(“cls”);

//刷屏 load();

// 调用按班次查询函数

ShowTable1();

//线框调用1,,不用没次输

for(i=0,j=0;i

/////按班次顺序输出

{

records[i].from,records[i].to,records[i].hours, else

records[i].max,records[i].now);

printf(“|%10s| 已发车

|%10s|%10s|%8.1f|%8d|%8d|”,records[i].num,} /**********************************打印表头***********************************************/

void ShowTable1()

//线框调用1,,不用没次输 {

int i=2;system(“cls”);

//刷屏

printf(“**************************MESSAGE车程信息

records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);} ShowTable2(j);

//线框调用2 printf(”n按任意键继续....n“);getch();

/////从控制台读取一个字符,但不显示在屏幕上

**********************************n”);printf(“n|----------|----------|----------|----------|--------|--------|--------|n”);|n“);} printf(”n|

班次

| 发车时间 | 起点站

| 终点站

|行车时间|额定载量| 已售票

/***************************************打印表尾************************************************/

void ShowTable2(int i)

//线框调用2。不用没次输。{ } /**************************查找函数11**************************/ void search()

////查询调用 {

int i;char s1[10]={''},s2[10]={''};system(“cls”);

//刷屏 printf(“1.按班次查询n”);printf(“2.按终点站查询n”);printf(“3.退出n”);printf(“请选择(1-3):n”);scanf(“%d”,&i);load();

// 调用按班次查询函数

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

} switch(i)

//多分枝选择语句

{ case 1: printf(“请输入要查询的班次:n”);

//////s1为班次

case 2:

scanf(“%s”,s1);find(s1,s2);

/////调用查找函数222 2

break;printf(“请输入要查询终点站:n”);

/////s2为终点站 scanf(“%s”,s2);find(s1,s2);

/////调用查找函数222 2 break;

case 3: break;default : printf(“输入错误!n”);} printf(“按任意键继续....n”);getch();

///从控制台读取一个字符,但不显示在屏幕上 break;/********************************查询函数22*********************************/ void find(char s1[],char s2[]){

int i,h=0,m;ShowTable1();

////调用线框1

if(s2[0]=='')m=1;

///1为无条件执行

else m=0;for(i=0;i

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

printf(“|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|”,records[i].num,records[i].hoif(strcmp(s1,records[i].num)==0||strcmp(s2,records[i].to)==0)

{

////判断字符串比较是否相等,待比较的字符串

ur,records[i].min,records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);

} ShowTable2(h);

////调用线框2 if(h==0)

printf(“要查找的班次不存在!n”);

h+=2;if(m==1)

break;} /***********************增加函数****************************/ void add()

// //增加记录 { int i,j=5;load();

// 调用按班次查询函数

system(“cls”);

//刷屏

printf(“1.增加班次n”);printf(“2.返回n”);printf(“请选择(1-2)n”);scanf(“%d”,&i);if(i==1){

system(“cls”);

//刷屏

printf(“1.请输入要增加的班次:n”);

scanf(“%s”,records[cla_num].num);

for(i=0;i

if(strcmp(records[cla_num].num,records[i].num)==0)

//判断字符串比较是否相等,待比较的字符串车次没重复

{

printf(“输入错误!n”);

判断

在屏幕上

}

getch();

/////从控制台读取一个字符,但不显示

}

}

break;

if(i==cla_num)

{

}

get(i,j);

////修改及增加班次*

cla_num++;

///使班次数加1 save();

//调用保存函数

/********************************售票函数*****************************/ void Ticketorder()

//*售票函数*** {

int i;char num[10];system(“cls”);

//刷屏 printf(“1.售票n”);printf(“2.返回n”);printf(“请选择(1-2):n”);scanf(“%d”,&i);

if(i==1){

load();

// 调用按班次查询函数 search();

//查找函数**

printf(“请输入要订票的班次(若无请输入0):n”);scanf(“%s”,num);for(i=0;i

if(strcmp(num,records[i].num)==0)//判断字符串比较是否相等,待比较的字符串

大客量

{

records[i].now++;

///使

if(records[i].max>records[i].now&&whether(i)==1)

//判断时间是否超出函数***并且***没超出最已售的暑假1

printf(“通向%s班次为%s的票订票成功!n”,records[i].to,records[i].num);

save();

//调用保存函数 getch();

/////从控制台读取一个字符,但不显示在屏幕上

}

break;

else {

printf(“该班次已满或已发出!n”);getch();

/////从控制台读取一个字符,但不显示在屏幕上

} /****************************退票删除函数***************************************/ void Ticketdelete()

//删除函数* {

int i;char num[10];system(“cls”);

//刷屏 printf(“1.退票n”);printf(“2.返回n”);printf(“请选择(1-2)n:”);scanf(“%d”,&i);if(i==1){

system(“cls”);

//刷屏 load();

// 调用按班次查询函数 }

}

printf(“请输入要退票的班次:n”);scanf(“%s”,num);i=findnum(num);

//调用班次查询函数

if(strcmp(num,records[i].num)==0)//判断字符串比较是否相等 待比较的字符串

显示在屏幕上

if(whether(i))

//判断时间是否超出函数*** {

printf(“确定(Y/N)?”);scanf(“%s”,num);

if(num[0]=='y'||num[0]=='Y')

{

records[i].now--;

//使已售票加

printf(“退票成功!n”);

save();

//调用保存函数

getch();

//从控制台读取一个字符,但不

}

} else {

printf(“该班车已发出,无法退票!n”);

在屏幕上

}

getch();

/////从控制台读取一个字符,但不显示

}

}

if(i==cla_num){

printf(“输入错误!n”);

getch();

/////从控制台读取一个字符,但不显示在屏幕上 } /********************************修改函数*********************************/ void change()

//修改函数** {

char num[10],s[10];int h=0,j=13,i;load();

// 调用按班次查询函数 system(“cls”);

//刷屏 printf(“请输入要修改的班次:n”);scanf(“%s”,num);i=findnum(num);

//调用班次查询函数

if(i==cla_num){

printf(“输入错误,无此班次!n”);

} } else {

} getch();

///从控制台读取一个字符,但不显示在屏幕上

printf(“确定修改(Y/N)?n”);scanf(“%s”,s);if(s[0]=='y'||s[0]=='Y'){

}

get(i,j);

////修改及增加班次* save();

//调用保存函数

/*******************************删除函数**********************************/ void deletemeage()

//删除班次信息 {

int i,h=0;char num[10];system(“cls”);

//刷屏 printf(“1.删除班次n”);printf(“2.返回n”);printf(“请选择(1-2):n”);

scanf(“%d”,&i);if(i==1){

system(“cls”);

//刷屏 printf(“请输入要删除的班次:n”);scanf(“%s”,num);i=findnum(num);

//调用班次查询函数 if(i==cla_num){

} else {

printf(“确定?(y/n)n”);scanf(“%s”,num);

if(num[0]=='y'||num[0]=='Y'){

for(;i

records[i]=records[i+1];

printf(“输入错误,无此班次!n”);

getch();

///从控制台读取一个字符,但不显示在屏幕上

cla_num--;

////班次总数减1 save();

//调用保存函数

}

}

}

}

printf(“删除成功!n”);getch();/****************************按班次查询函数****************************/ int findnum(char s1[])

//查找班次

{

int i,h=0;ShowTable1();

//线框调用1,,不用没次输

for(i=0;i

//判断字符串比较是否相等,如果符合则输出车次等信息

ur, printf(“|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|”,records[i].num,records[i].hoprintf(“|----------|----------|----------|----------|--------|--------|--------|n”);{ i].now);

} records[i].min,records[i].from,records[i].to,records[i].hours,records[i].max,records[

}

}

h+=2;

///加2使输出的框架合适 break;ShowTable2(h);

///调用框架2 return i;/**************************************保存函数*******************************/ void save()

//////保存函数 {

进制文件

{

} if((fp2=fopen(“d:车票管理系统0.dat”,“wb”))==NULL)//打开文件、为输出打开一个printf(“文件打开错误!n”);exit(0);FILE *fp1,*fp2;

//文件行指针

if((fp1=fopen(“d:车票管理系统.dat”,“wb”))==NULL)//打开文件、为输出打开一个二二进制文件 {

}

} printf(“文件打开错误!n”);exit(0);fwrite(&cla_num,sizeof(int),1,fp2);

//写入文件信息 fwrite(records,sizeof(CLASS),cla_num,fp1);fclose(fp1);fclose(fp2);

///关闭文件

/*******************************按班次查询函数*******************************/ void load()

//按班次查询函数 {

FILE *fp1,*fp2;if((fp1=fopen(“d:车票管理系统.dat”,“rb”))==NULL){

} if((fp2=fopen(“d:车票管理系统0.dat”,“rb”))==NULL){

system(“cls”);

//刷屏 system(“cls”);

//刷屏 printf(“文件打开错误!n”);getch();

///从控制台读取一个字符,但不显示在屏幕上

exit(0);

}

} printf(“文件打开错误!n”);getch();

///从控制台读取一个字符,但不显示在屏幕上

exit(0);

//退出

fread(&cla_num,sizeof(int),1,fp2);

///读入信息 fread(records,sizeof(CLASS),cla_num,fp1);/////读入信息 fclose(fp1);fclose(fp2);

///文件关闭

/******************************退出函数***************************/ void quit()

//退出函数****** { char s[5];

printf(“确认退出?(Y/N)n”);

} /*************************修改及增加班次*******************************/ void get(int i,int j)

// 修改及增加班次*

{ for(;;)scanf(“%s”,s);if(s[0]=='y'||s[0]=='Y')exit(0);//程序中止执行,返回调用过程..state 0-正常中止非0-非正常 { printf(“请输入发车时间(xx xx)”);scanf(“%s%s”,records[i].hour,records[i].min);if((atoi(records[i].hour)=0)&&(atoi(records[i].min)=0))

} printf(“请输入起点站:n”);scanf(“%s”,records[i].from);printf(“请输入终点站:n”);scanf(“%s”,records[i].to);printf(“请输入行车时间:n”);scanf(“%f”,&records[i].hours);printf(“请输入额定载量:n”);scanf(“%d”,&records[i].max);for(;;){ else {

}

printf(“输入错误!n”);

getch();

/////从控制台读取一个字符,但不显示在屏幕上 break;

}

} printf(“请输入已售票数:n”);scanf(“%d”,&records[i].now);if(records[i].now

}

printf(“输入错误!n”);

getch();

/////从控制台读取一个字符,但不显示在屏幕上 break;/********************************判断时间是否超出函数**********************************/ int whether(int i)

//判断时间是否超出函数*** {

struct tm *local;

//时间结构体

time_t t;//把当前时间给t t=time(NULL);

//NULL在stdio.h中定义为0 local=localtime(&t);

/////获取当前系统时间

if(local->tm_hourtm_hour==atoi(records[i].hour)&&local->tm_min

//atoi将字符串转换成一个整数值 return 1;

} else return 0;

《C车票管理系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C车票管理系统
点击下载文档
相关专题 c车票管理系统 管理系统 车票 c车票管理系统 管理系统 车票
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文