@ -9,12 +9,12 @@ int class_num = 0; //
typedef struct car
typedef struct car
{
{
char number [ 10 ] ; //车次 编 号
char number [ 10 ] ; //车次 序 号
char hour [ 3 ] ; // 时间, , 小时
char hour [ 3 ] ; // 发车 时间小时
char min [ 3 ] ; // 分钟
char min [ 3 ] ; // 发车时间 分钟
char from [ 10 ] ; //起始站
char from [ 10 ] ; //起始站
char to [ 10 ] ; //终点站
char to [ 10 ] ; //终点站
float hours ; //车程 实际 时间
float hours ; //车程 时间
int max ; //最大车载容量
int max ; //最大车载容量
int bought ; //已售票数
int bought ; //已售票数
} CLASS ;
} CLASS ;
@ -134,7 +134,7 @@ void Scanf(int i, int j) //
}
}
void Save ( ) //文件保存函数
void Save ( ) //文件保存函数
{
{
FILE * fp1 , * fp2 ; //文件指针
FILE * fp1 , * fp2 ;
if ( ( fp1 = fopen ( " sql.txt " , " wb " ) ) = = NULL )
if ( ( fp1 = fopen ( " sql.txt " , " wb " ) ) = = NULL )
{
{
printf ( " 车次数据文件不存在 \n " ) ;
printf ( " 车次数据文件不存在 \n " ) ;
@ -173,14 +173,13 @@ void Load() //
fclose ( fp1 ) ;
fclose ( fp1 ) ;
fclose ( fp2 ) ;
fclose ( fp2 ) ;
}
}
int Judge ( int i ) //判断时间是否超出 函数***
int Judge ( int i ) //判断时间是否超出
{
{
struct tm * local ; //时间结构体
struct tm * local ; //时间结构体
time_t t ; //把当前时间给t
time_t t ; //把当前时间给t
t = time ( NULL ) ; //NULL在stdio.h中定义为0
local = localtime ( & t ) ; //获取当前系统时间
local = localtime ( & t ) ; /////获取当前系统时间
if ( local - > tm_hour < atoi ( records [ i ] . hour ) | | local - > tm_hour = = atoi ( records [ i ] . hour ) & & local - > tm_min < atoi ( records [ i ] . min ) )
if ( local - > tm_hour < atoi ( records [ i ] . hour ) | | local - > tm_hour = = atoi ( records [ i ] . hour ) & & local - > tm_min < atoi ( records [ i ] . min ) )
//atoi 将字符串转换成一个整数值
//atoi 函数 将字符串转换成一个整数值
return 1 ;
return 1 ;
else
else
return 0 ;
return 0 ;
@ -191,7 +190,7 @@ int FindCarByNum(char s1[]) //
ShowTableHead ( ) ;
ShowTableHead ( ) ;
for ( i = 0 ; i < class_num ; i + + )
for ( i = 0 ; i < class_num ; i + + )
{
{
if ( strcmp ( s1 , records [ i ] . number ) = = 0 ) //判断 字符串比较是否相等,如果符合则输出车次等 信息
if ( strcmp ( s1 , records [ i ] . number ) = = 0 ) //判断 数据文件中的车次号与输入车次号是否相等,如果符合则输出车次 信息
{
{
printf ( " |----------|----------|----------|----------|--------|--------|--------| \n " ) ;
printf ( " |----------|----------|----------|----------|--------|--------|--------| \n " ) ;
printf ( " |%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d| " , records [ i ] . number , records [ i ] . hour ,
printf ( " |%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d| " , records [ i ] . number , records [ i ] . hour ,
@ -205,16 +204,16 @@ int FindCarByNum(char s1[]) //
}
}
void Import ( )
void Import ( )
{
{
int i = 0 , j = 5 , h ; ////
int i = 0 , j = 5 , h ;
char s [ 5 ] ;
char s [ 5 ] ;
FILE * fp ; ////定义文件型指针变量
FILE * fp ;
system ( " cls " ) ;
system ( " cls " ) ;
if ( ( fp = fopen ( " num.txt " , " rb " ) ) ! = NULL ) //fopen打开文件
if ( ( fp = fopen ( " num.txt " , " rb " ) ) ! = NULL )
{
{
printf ( " 车次信息已经存在,请选择添加车次功能! \n " ) ;
printf ( " 车次信息已经存在,请选择添加车次功能! \n " ) ;
printf ( " 按下任意键,返回主菜单 \n " ) ;
printf ( " 按下任意键,返回主菜单 \n " ) ;
_getch ( ) ;
_getch ( ) ;
i = 1 ; //通过是1
i = 1 ;
}
}
if ( i = = 0 )
if ( i = = 0 )
{
{
@ -233,7 +232,7 @@ void Import()
scanf ( " %s " , records [ i ] . number ) ;
scanf ( " %s " , records [ i ] . number ) ;
for ( h = 0 ; h < i ; h + + )
for ( h = 0 ; h < i ; h + + )
if ( strcmp ( records [ h ] . number , records [ i ] . number ) = = 0 )
if ( strcmp ( records [ h ] . number , records [ i ] . number ) = = 0 )
//判断字符串 比较 是否相等, , 待比较的字符串
//判断字符串 是否相等
{
{
printf ( " 输入错误!该班次已存在! \n " ) ;
printf ( " 输入错误!该班次已存在! \n " ) ;
break ; ///返回
break ; ///返回
@ -299,17 +298,17 @@ void Refund()
printf ( " 请输入要退票的班次: \n " ) ;
printf ( " 请输入要退票的班次: \n " ) ;
scanf ( " %s " , num ) ;
scanf ( " %s " , num ) ;
i = FindCarByNum ( num ) ; //调用班次查询函数
i = FindCarByNum ( num ) ; //调用班次查询函数
if ( strcmp ( num , records [ i ] . number ) = = 0 ) //判断字符串比较是否相等 待比较的字符串
if ( strcmp ( num , records [ i ] . number ) = = 0 )
if ( Judge ( i ) ) //判断时间是否超出函数***
if ( Judge ( i ) ) //判断时间是否超出当前系统时间
{
{
printf ( " 确定(Y/N)? " ) ;
printf ( " 确定(Y/N)? " ) ;
scanf ( " %s " , num ) ;
scanf ( " %s " , num ) ;
if ( num [ 0 ] = = ' y ' | | num [ 0 ] = = ' Y ' )
if ( num [ 0 ] = = ' y ' | | num [ 0 ] = = ' Y ' )
{
{
records [ i ] . bought - - ; //使已售票加1
records [ i ] . bought - - ;
printf ( " 退票成功! \n " ) ;
printf ( " 退票成功! \n " ) ;
Save ( ) ;
Save ( ) ;
_getch ( ) ; //从控制台读取一个字符,但不显示在屏幕上
_getch ( ) ;
}
}
}
}
else
else
@ -366,7 +365,6 @@ void Find(char s1[], char s2[])
m = 0 ;
m = 0 ;
for ( i = 0 ; i < class_num ; i + + )
for ( i = 0 ; i < class_num ; i + + )
if ( strcmp ( s1 , records [ i ] . number ) = = 0 | | strcmp ( s2 , records [ i ] . to ) = = 0 )
if ( strcmp ( s1 , records [ i ] . number ) = = 0 | | strcmp ( s2 , records [ i ] . to ) = = 0 )
//判断字符串比较是否相等,, 待比较的字符串
{
{
printf ( " \n |----------|----------|----------|----------|--------|--------|--------| \n " ) ;
printf ( " \n |----------|----------|----------|----------|--------|--------|--------| \n " ) ;
printf ( " |%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d| " , records [ i ] . number , records [ i ] . hour , records [ i ] . min ,
printf ( " |%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d| " , records [ i ] . number , records [ i ] . hour , records [ i ] . min ,
@ -419,7 +417,7 @@ void Exploer() //
for ( i = 0 , j = 0 ; i < class_num ; i + + , j + = 2 )
for ( i = 0 , j = 0 ; i < class_num ; i + + , j + = 2 )
{
{
printf ( " \n |----------|----------|----------|----------|--------|--------|--------| \n " ) ;
printf ( " \n |----------|----------|----------|----------|--------|--------|--------| \n " ) ;
if ( Judge ( i ) ) //判断时间是否超出函数***
if ( Judge ( i ) )
printf ( " |%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d| " , records [ i ] . number , records [ i ] . hour ,
printf ( " |%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d| " , records [ i ] . number , records [ i ] . hour ,
records [ i ] . min , records [ i ] . from , records [ i ] . to , records [ i ] . hours ,
records [ i ] . min , records [ i ] . from , records [ i ] . to , records [ i ] . hours ,
records [ i ] . max , records [ i ] . bought ) ;
records [ i ] . max , records [ i ] . bought ) ;