简单的旅游景点售票系统C语言代码
时间: 2023-10-09 16:04:28 浏览: 91
C语言课程设计汽车售票系统代码.
4星 · 用户满意度95%
下面是一个简单的旅游景点售票系统的C语言代码,包含景点信息的存储和查询、售票和退票功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIGHTS 100 // 最大景点数量
struct sight { // 景点结构体
char name[20]; // 景点名称
int price; // 门票价格
int rest_tickets; // 剩余票数
};
struct sight sights[MAX_SIGHTS]; // 景点数组
int num_sights = 0; // 景点数量
// 添加景点
void add_sight(char name[], int price, int tickets) {
if (num_sights == MAX_SIGHTS) {
printf("添加失败:已达到最大景点数量!\n");
return;
}
strcpy(sights[num_sights].name, name);
sights[num_sights].price = price;
sights[num_sights].rest_tickets = tickets;
num_sights++;
printf("添加成功!\n");
}
// 查询景点信息
void query_sight(char name[]) {
int i;
for (i = 0; i < num_sights; i++) {
if (strcmp(sights[i].name, name) == 0) {
printf("%s 的门票价格为 %d 元,余票数量为 %d 张。\n", name, sights[i].price, sights[i].rest_tickets);
return;
}
}
printf("未找到名为 %s 的景点!\n", name);
}
// 购买门票
void buy_ticket(char name[], int num) {
int i;
for (i = 0; i < num_sights; i++) {
if (strcmp(sights[i].name, name) == 0) {
if (sights[i].rest_tickets >= num) {
sights[i].rest_tickets -= num;
printf("购买成功!共花费 %d 元。\n", sights[i].price * num);
} else {
printf("购买失败:余票不足!\n");
}
return;
}
}
printf("未找到名为 %s 的景点!\n", name);
}
// 退回门票
void return_ticket(char name[], int num) {
int i;
for (i = 0; i < num_sights; i++) {
if (strcmp(sights[i].name, name) == 0) {
sights[i].rest_tickets += num;
printf("退票成功!共返还 %d 元。\n", sights[i].price * num);
return;
}
}
printf("未找到名为 %s 的景点!\n", name);
}
int main() {
int choice;
char name[20];
int price, tickets, num;
while (1) {
printf("请输入操作代码:\n");
printf("1. 添加景点\n");
printf("2. 查询景点信息\n");
printf("3. 购买门票\n");
printf("4. 退回门票\n");
printf("5. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入景点名称、门票价格和余票数量:\n");
scanf("%s %d %d", name, &price, &tickets);
add_sight(name, price, tickets);
break;
case 2:
printf("请输入景点名称:\n");
scanf("%s", name);
query_sight(name);
break;
case 3:
printf("请输入景点名称和购票数量:\n");
scanf("%s %d", name, &num);
buy_ticket(name, num);
break;
case 4:
printf("请输入景点名称和退票数量:\n");
scanf("%s %d", name, &num);
return_ticket(name, num);
break;
case 5:
return 0;
default:
printf("无效的操作代码!\n");
}
}
}
```
这个代码实现了一个简单的菜单式交互界面,通过键入不同的操作代码来执行添加、查询、购买和退回门票等功能。用户输入的参数包括景点名称、门票价格和余票数量,以及购票或退票的数量。注意,这个代码并没有考虑并发访问和交易安全等问题,仅供参考。
阅读全文