《C语言程序设计》课程设计 -- 火车票票务管理系统


前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:https://www.captainbed.cn/oy

设计一个火车票票务管理系统,要求实现车票查询、车票购买、车票退订等功能。使用文件来存储所有车票的信息,这些车票信息用一个结构体数组来存取;使用另一个结构体变量来存储乘客已购买车票的信息。

1、要求设计一个火车票票务信息管理程序,实现车票查询、车票购买、车票退订和退出程序,从而完成系统所需功能;
2、用文件来存储所有车票信息,分别用不同的结构体来存取所有车票信息和乘客已购买车票信息;
3、用下标法或指针法来实现对车票信息的存取、显示、查询、增加、删除等操作;
4、系统运行界面如图1所示。

在这里插入图片描述
三、数据结构及文件
1、结构体:定义两个结构体分别存取所有车票的信息和乘客已购买车票的信息。

    //定义火车车次结构体类型
typedef struct Ticket
{
	char trainnum[20];        /*车次*/
	char soursta[20];         /*起点站*/
	char deststa[20];         /*终点站*/
	float price;              /*价格*/
	int number;               /*剩余车票数量*/
	char deptime[20];         /*始发时间*/
	char arrtime[20];         /*到站时间*/
}TRAIN;
//定义已买车票结构体类型
struct buyticket
{
	char name[20];            /*姓名*/
	char trainnum[20];        /*车次*/
	char soursta[20];         /*起点站*/
	char deststa[20];         /*终点站*/
	float price;              /*价格*/
	char deptime[20];         /*始发时间*/
	char arrtime[20];         /*到站时间*/
	int buynum;               /*购买数量*/
};

2、文件:新建一个文件存储所有车票的信息,文件traininfo.txt(示例)的内容如图2所示。

在这里插入图片描述

四、函数定义
源程序中包括的函数如表1所示。
表1 源程序中的函数及其功能

函数原型	功能说明
void menu(int *flag,TRAIN *pticket,struct buyticket *pbuyticket)	打印主菜单
void showticket(int *flag,TRAIN *pticket,struct buyticket *pbuyticket)	显示所有车票信息
void showbuyticket(struct buyticket *pbuyticket)	显示已购买车票信息
void check(int *flag,TRAIN *pticket,struct buyticket *pbuyticket)	查询车票
void buy(int *flag,TRAIN *pticket,struct buyticket *pbuyticket)	购买车票
void returnticket(int *flag,TRAIN *pticket,struct buyticket *pbuyticket)	退订车票
void readfile(TRAIN *pticket)	读文件
void writefile(TRAIN *pticket)	写文件
void main( )	主函数

五、部分函数
1、读文件函数

//从traininfo.txt中读取所有车票的信息到数组train[5]中
void readfile(TRAIN *pticket)
{
	FILE *fp;
	int i;
	if((fp=fopen("d:\\traininfo.txt","r"))==NULL)
	{
		printf("文件traininfo.txt打开错误.\n");
		exit(0);
	}
	for(i=0;i<5;i++)
		fscanf(fp,"%s%s%s%f%d%s%s",(pticket+i)->trainnum,(pticket+i)->
soursta,(pticket+i)->deststa,&(pticket+i)->price,&(pticket+i)->number,
(pticket+i)->deptime,(pticket+i)->arrtime);
	fclose(fp);	
}

2、写文件函数

//将修改后的车票信息保存到文件traininfo.txt中
void writefile(TRAIN *pticket)
{
	FILE *fp;
	int i;
	if((fp=fopen("d:\\traininfo.txt","w"))==NULL)
	{
		printf("文件traininfo.txt打开错误.\n");
		exit(0);
	}
	for(i=0;i<5;i++)
		fprintf(fp,"%-8s%-10s%-10s%-12.1f%-12d%-12s%-12s\n",(pticket+i)->
trainnum,pticket->soursta,(pticket+i)->deststa,(pticket+i)->price,
(pticket+i)->number,(pticket+i)->deptime,(pticket+i)->arrtime);
	fclose(fp);	
}

3、主函数

void main()
{
	TRAIN train[5];
	int flag;
	struct buyticket ticket;
	menu(&flag,train,&ticket);
}

六、源代码

关注+评论获取,我会发送到你的邮箱,或者私信我!
编写的程序效果如下所示:

在这里插入图片描述
在这里插入图片描述

  • 22
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 61
    评论
评论 61
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值