用c语言编写一个旅游景点售票系统
时间: 2023-12-06 07:05:47 浏览: 370
旅 游 售 票 系 统 说 明 书
好的,我可以给你提供一个简单的旅游景点售票系统的C语言代码框架,你可以在此基础上进一步完善和改进。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SCENIC_SPOTS 100 // 假设最多存储100个景点信息
#define MAX_TICKET_TYPES 5 // 假设最多存储5种门票类型
// 景点信息结构体
typedef struct {
int id; // 景点编号
char name[50]; // 景点名称
char address[100]; // 景点地址
char introduction[200]; // 景点简介
} ScenicSpot;
// 门票类型结构体
typedef struct {
char name[50]; // 门票类型名称
float price; // 门票单价
} TicketType;
// 景点售票系统结构体
typedef struct {
ScenicSpot scenic_spots[MAX_SCENIC_SPOTS]; // 景点信息数组
TicketType ticket_types[MAX_TICKET_TYPES]; // 门票类型数组
int num_scenic_spots; // 景点数量
int num_ticket_types; // 门票类型数量
} TicketSystem;
// 初始化景点售票系统
void init_ticket_system(TicketSystem *ticket_system) {
ticket_system->num_scenic_spots = 0;
ticket_system->num_ticket_types = 0;
}
// 添加景点信息
void add_scenic_spot(TicketSystem *ticket_system, ScenicSpot scenic_spot) {
if (ticket_system->num_scenic_spots >= MAX_SCENIC_SPOTS) {
printf("Error: exceed max number of scenic spots.\n");
return;
}
ticket_system->scenic_spots[ticket_system->num_scenic_spots] = scenic_spot;
ticket_system->num_scenic_spots++;
}
// 添加门票类型
void add_ticket_type(TicketSystem *ticket_system, TicketType ticket_type) {
if (ticket_system->num_ticket_types >= MAX_TICKET_TYPES) {
printf("Error: exceed max number of ticket types.\n");
return;
}
ticket_system->ticket_types[ticket_system->num_ticket_types] = ticket_type;
ticket_system->num_ticket_types++;
}
// 显示景点信息
void show_scenic_spots(TicketSystem *ticket_system) {
printf("Scenic spots:\n");
for (int i = 0; i < ticket_system->num_scenic_spots; i++) {
printf("%d. %s, %s\n",
ticket_system->scenic_spots[i].id,
ticket_system->scenic_spots[i].name,
ticket_system->scenic_spots[i].address);
}
printf("\n");
}
// 显示门票类型
void show_ticket_types(TicketSystem *ticket_system) {
printf("Ticket types:\n");
for (int i = 0; i < ticket_system->num_ticket_types; i++) {
printf("%d. %s, %.2f yuan\n",
i+1,
ticket_system->ticket_types[i].name,
ticket_system->ticket_types[i].price);
}
printf("\n");
}
// 主函数
int main() {
TicketSystem ticket_system;
init_ticket_system(&ticket_system);
// 添加景点信息
ScenicSpot scenic_spot1 = {1, "Great Wall", "Beijing", "Great Wall is a famous scenic spot in Beijing."};
ScenicSpot scenic_spot2 = {2, "Terracotta Army", "Xi'an", "Terracotta Army is a famous scenic spot in Xi'an."};
add_scenic_spot(&ticket_system, scenic_spot1);
add_scenic_spot(&ticket_system, scenic_spot2);
// 添加门票类型
TicketType ticket_type1 = {"Adult", 100};
TicketType ticket_type2 = {"Student", 80};
add_ticket_type(&ticket_system, ticket_type1);
add_ticket_type(&ticket_system, ticket_type2);
// 显示景点信息和门票类型
show_scenic_spots(&ticket_system);
show_ticket_types(&ticket_system);
return 0;
}
```
这个代码框架实现了以下功能:
1. 定义了三个结构体:`ScenicSpot`(景点信息)、`TicketType`(门票类型)和`TicketSystem`(景点售票系统);
2. 定义了初始化景点售票系统的函数`init_ticket_system`,以及添加景点信息和门票类型的函数`add_scenic_spot`和`add_ticket_type`;
3. 定义了显示景点信息和门票类型的函数`show_scenic_spots`和`show_ticket_types`;
4. 在主函数中初始化景点售票系统、添加景点信息和门票类型,以及显示景点信息和门票类型。
你可以在此基础上进一步完善和改进,比如:
1. 实现售票功能,包括选择景点、选择门票类型、输入购票人信息等;
2. 实现查询功能,包括查询景点信息和门票信息等;
3. 实现管理功能,包括添加、删除、修改景点信息和门票信息等;
4. 实现文件读写功能,将景点信息和门票信息保存到文件中,以便下次打开程序时恢复数据。
希望以上代码和思路能够对你有所帮助!
阅读全文