编程题 求助

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:00:00
编程题

巨人航空公司的机群由座位容量为12的飞机组成。它每天飞行一个航班。按照下面的功能写一个座位预定程序:
1) 程序使用一个含12个结构的数组,每个结构要包括一个用于标识座位的编号、一个表示座位是否已分配出去的标记、座位预定人的姓名。
2) 程序显示下面的菜单:
To choose a function, enter its letter label:
a) Show number of empty seats
b) Show list of empty seats
c) Show alphabetical list of seats
d) Assign a customer to a seat assignment
e) Delete a seat assignment
f) Quit
3) 程序应能执行菜单中所给出的功能。选择d)和e)需要额外的输入,每一个选项都应当允许用户中止输入。
4) 执行完一个特定的功能之后,程序再次显示菜单,除非选择了f)
5) 每次运行程序都把数据保存到一个文件中。当出程序再次运行时,首先从文件载入数据(如果有的话)。

//写了两个半小时,看看效果吧,是否满足需求:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
int iSeatNum;
char AssignName[47];
char Flag;
}SEATNODE;

/* 全局 */
FILE *fp = NULL;
SEATNODE sSeatNode[12];

void Load_File(void)
{
int i = 0;
char LineStr[512] = {0};

memset(&sSeatNode, 0, sizeof(SEATNODE)*12);

if (NULL == (fp = fopen("info.txt", "r+")))
{
if (NULL == (fp = fopen("info.txt", "w+")))
{
printf("Open file failed.\nExit!\n");
exit(0);
}
/* 没有文件,写入默认数据 */
for (i = 0; i < 12; ++i)
{
memset(LineStr, 0, 512);
sprintf(LineStr, "N %2d \n", i+1);
fputs(LineStr, fp);