C语言作业——飞机订票系统设计

这是一个使用C语言设计的飞机订票系统,包括80个座位,20排,功能涵盖订票、价格区分、座位布局及保存乘客信息到txt文件。系统支持自主和自动订票,并能在启动时加载之前的订票记录。
摘要由CSDN通过智能技术生成

飞机订票系统设计

题目

飞机订票系统设计

功能:

(1)本飞机共有80个坐位,分20排, 每排4个位子。编号为A, B,C, D。如10D表示10 排D座。A和D靠窗,19到20排为吸烟区。定上票的乘客需给出姓名和身份证号,最后要打印出乘客清单。

(2)订票:分为自主订票和系统自动订票;前10排比后10排价位高。自主订票:显示出所有未售出的位置,供用户选择。系统自动订票:用户选择低价位还是高价位,系统自动分配相应的位置。

(3)保存:将相关数据写入txt文件,便于存、取操作。进一步要求:每次登录时读取上次保存在txt文件中的订票记录。

结果图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实现代码

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>

struct Plane
{
   
	int p[20][4];//标记座位是否被购买 
	char  A[20];//座位号 
	char  B[20];//座位号 
	char  C[20];//座位号 
	char  D[20];//座位号 
};

Plane plane1;

void Chushihua()//初始化原始座位表 
{
   
	int i, j;
	char ch,n,name[30],id[25];
	for (i=0;i<20;i++)
		for (j=0;j<4;j++)
			plane1.p[i][j] = false; // 初始化所有位置为空
	
    FILE *p = fopen("xinxi.txt", "w");	//存储座位表 
    FILE *p2 = fopen("xinxi2.txt", "w");//0对应座位还在,1对应座位已出售 
    if(p2 == NULL)
    {
   
        printf("open error!\n");
    } 
    if(p == NULL)
    {
   
        printf("open error!\n");
    }   
	for (i=0;i<20;i++)
	{
   
		for (j=0;j<4;j++)
		{
   
			if (plane1.p[i][j] == false)
			{
   
				char a[100];
				sprintf(a,"%d",i+1); 
				fputs(a,p);
				fputc(j+65,p);
				fputs("\t",p);
				fputs("0",p2);
				fputs("\t",p2);
			}	
			else 
			{
   
				fputs("  \t",p);
				fputs("  \t",p2);
			}
		}
		fputs("\n",p);
		fputs("\n",p2);
	}
    fclose(p);
    fclose(p2);
    remove("yonghuxingxi.txt");
}

void Self_Order()//自主订票
{
   
	printf("\t\t========自主订票=======\t\t\n\n");
	printf("\t\t现有如下空位:\t\t\n\n");
				
	FILE *fp = fopen("xinxi.txt","r+");//打开文件 
    FILE *p = fopen("xinxi2.txt", "r");
	if(fp == NULL)
	{
   
		printf("read error!\n");
	}
	if(p == NULL)
	{
   
		printf("read error!\n");
	}
	int i = 0;
	char buf[999];//定义缓冲区,用于暂时存储数据 
	char buf1[999];//定义缓冲区,用于暂时存储数据 
	while(fgets(buf, 100, fp) != NULL)
	{
   
		fgets(buf1, 100, p);
		sscanf(buf1,"%d%d%d%d", &plane1.p[i][0], &plane1.p[i][1], &plane1.p[i][2], &plane1.p[i][3]);
		sscanf(buf,"%s%s%s%s", &plane1.A, &plane1.B, &plane1.C, &plane1.D)
本实验课题主要是要解决数据在文件中的读取,航班信息用文件保存,因而要提供文件的输入输出操作;航班信息浏览功能要提供现实操作;要查询的航线需要提供查找功能;存储客户信息和客户订票信息,并能浏览和查询客户订票信息;另外要提供键盘式选择菜单以实现功能选择。此实验需要在CodeBlocks等C语言编译平台上完成同时本实验要求所写的程序可以流畅的在编译平台上运行。首先为用户提供一个菜单,展示各个选项的功能,用户可输入一个选项(数字),执行相应的功能,通过运用switch语句对用户输入的数字进行处理判断出用户想要执行的操作。一共有9个选项,第3个和第6选项没有使用函数,其他模块别对应着一个函数。 航班信息的写入(定义FILE *fp指针),先将将航班次数写入文件,以结构体数组的形式来保存键盘上输入的每条航线相应的信息。然后再用fprintf函数的格式写入方式将数组中的数据写入文档中。 客户信息的写入(定义FILE *fp指针),先将将客户人数写入文件,以结构体数组的形式来保存键盘上输入的每位客户相应的信息。然后再用fprintf函数的格式写入方式将数组中的数据写入文档中。 航班信息的读取,先定义结构体数组,从文件中读取航班的航班号、起始终点站等信息写入到结构体数组fly中,在用fscanf函数的格式读取方式将文档中相应的数据保存在相应的结构体数组里定义的变量中。 用户信息的读取,先定义结构体数组,从文件中读取用户的证件号姓名等信息写入到结构体数组cus中,在用fscanf函数的格式读取方式将文档中相应的数据保存在相应的结构体数组里定义的变量中。 浏览的功能,是按不同的要求别将航班信息和客户信息序出来,然后按好的序输出出来。 查询显示等功能,可以通过读取得到的结构体数组,进行重写文档,打印等方式实现功能。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值