600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 火车售票系统c语言编程 基于C语言实现简单的12306火车售票系统.pdf

火车售票系统c语言编程 基于C语言实现简单的12306火车售票系统.pdf

时间:2021-01-17 11:34:01

相关推荐

火车售票系统c语言编程 基于C语言实现简单的12306火车售票系统.pdf

基基于于C语语言言实实现现简简单单的的12306火火车车售售票票系系统统

程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为:

入班次信息

浏览班次信息

按班次号查询

按终点站查询

按余票数量排序保存

售票

退票

更新班次信息

退出系统

所有的班次信息保存在number.dat文件中,排序过后的保存在sort.dat中 (.dat是一种二进制文件)。

在编写的过程中我觉得在判断火车的状态比较值得深究。这里假设火车主要有四种状态:

1.未发车

2.已发车

3.停止检票

4.停止退票

在程序中,思路是将代表发车时间的字符串转化为整型,再和系统现在的时间进行大小比较,主要采用if判断各种情况。其中ati

me代表的是发车时间的整型数,btime代表的是系统时间的整型数,具体实现如下:

if(atime<=btime) //已经发车

return 1;

if(((atime-btime<=30)&&(atime-btime>5)&&(atime/100==btime/100))||(((atime%100+(60-btime

%100))<=30)&&(atime%100+(60-btime%100))>5&&(atime/100-btime/100==1))) //距发车半小时以内

,停止退票,%表示取余

return 2;

if(((atime-btime<=5)&&(atime/100==btime/100))||((atime%100+(60-btime%100)&&(atime/100-b

time/100==1))<=5)) //距发车前五分钟内停止检票

return 3;

return 0; //可以办理购退票

在判断退票时如果两个时间的小时数是一样的,则它们的分钟数如果相差在30之内即半小时之内或者发车时间的小时和系统时

间的小时相差一个1,并且发车时间的分钟数小于30,系统时间的分钟大于30,则它们之间也就相差在30之内,此时代表停止退

票。

判断检票和上面思想大致相同。

为了参考研究,贴上代码:

#in lude

#in lude

#in lude< onio.h>

#in lude

#in lude "time.h"

//班次信息表

#define SIZELIMIT 10 //每班次的具体信息的字符个数限制在10以内

#define MAXNUM 1000 //设定最多只能 入1000个车次信息

typedef stru t ardbase //定义一个关于班次信息的结构体,取名为CardBase

{

har C_ID[SIZELIMIT];//班次

har C_TIME[SIZELIMIT];//发车时间

har C_ANAME[SIZELIMIT];//起点站

har C_BNAME[SIZELIMIT];//终点站

har C_USETIME[SIZELIMIT];//行车时间

har C_MAXNUM[SIZELIMIT];//额定载量

har C_REMAINNUM[SIZELIMIT];//余票数量

}CardBase;

int bNum=0;//记 班次数

CardBase BList[MAXNUM];//班次列表

//读取班次信息

void read ardbasefile()

{

FILE *fp;

//打开文件失败则创建文件

if((fp=fopen("./number.dat","r"))==NULL)

{

//初次运行创建文件

if ((fp=fopen("./number.dat","w"))==NULL)

{

exit(0); //返回

}

else

{

f lose(fp);

}

return ;

}

/*文件位置指针移动到文件末尾*/

fseek(fp,0,2);//重定位文件内部位置指针

/* int fseek( FILE *stream, long offset, int origin );

第一个参数stream为文件指针

第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移

第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET

SEEK_SET: 文件开头

SEEK_CUR: 当前位置

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。