C语言班车管理系统 - 添加、浏览、搜索、删除和修改班车信息
#include <stdio.h> #include <stdlib.h> #include <string.h>
#define MAX_BUS 100
struct Bus { char number[20]; char model[20]; int seats; char driver[20]; char departure_time[20]; char status[20]; };
struct Bus bus_list[MAX_BUS]; int bus_count = 0;
void addBus() { if (bus_count >= MAX_BUS) { printf('班车列表已满,无法添加更多班车。\n'); return; }
struct Bus new_bus;
printf('请输入班车号:');
scanf('%s', new_bus.number);
printf('请输入班车型号:');
scanf('%s', new_bus.model);
printf('请输入座位数:');
scanf('%d', &new_bus.seats);
printf('请输入司机姓名:');
scanf('%s', new_bus.driver);
printf('请输入发车时间:');
scanf('%s', new_bus.departure_time);
printf('请输入发车状态:');
scanf('%s', new_bus.status);
bus_list[bus_count++] = new_bus;
printf('班车信息已录入。\n');
}
void browseBusInfo() { if (bus_count == 0) { printf('当前无班车信息。\n'); return; }
printf('班车列表如下:\n');
printf('--------------------------------------------------------\n');
printf('班车号 型号 座位数 司机姓名 发车时间 发车状态\n');
printf('--------------------------------------------------------\n');
for (int i = 0; i < bus_count; i++) {
struct Bus bus = bus_list[i];
printf('% -10s%-10s%-10d%-14s%-14s%-10s\n', bus.number, bus.model, bus.seats, bus.driver, bus.departure_time, bus.status);
}
printf('--------------------------------------------------------\n');
}
void searchByDepartureTime() { char departure_time[20];
printf('请输入要查询的发车时间:');
scanf('%s', departure_time);
int found = 0;
printf('查询结果如下:\n');
printf('--------------------------------------------------------\n');
printf('班车号 型号 座位数 司机姓名 发车时间 发车状态\n');
printf('--------------------------------------------------------\n');
for (int i = 0; i < bus_count; i++) {
struct Bus bus = bus_list[i];
if (strcmp(bus.departure_time, departure_time) == 0) {
printf('% -10s%-10s%-10d%-14s%-14s%-10s\n', bus.number, bus.model, bus.seats, bus.driver, bus.departure_time, bus.status);
found = 1;
}
}
if (!found) {
printf('未找到符合条件的班车信息。\n');
}
printf('--------------------------------------------------------\n');
}
void searchByDriverName() { char driver_name[20];
printf('请输入要查询的司机姓名:');
scanf('%s', driver_name);
int found = 0;
printf('查询结果如下:\n');
printf('--------------------------------------------------------\n');
printf('班车号 型号 座位数 司机姓名 发车时间 发车状态\n');
printf('--------------------------------------------------------\n');
for (int i = 0; i < bus_count; i++) {
struct Bus bus = bus_list[i];
if (strcmp(bus.driver, driver_name) == 0) {
printf('% -10s%-10s%-10d%-14s%-14s%-10s\n', bus.number, bus.model, bus.seats, bus.driver, bus.departure_time, bus.status);
found = 1;
}
}
if (!found) {
printf('未找到符合条件的班车信息。\n');
}
printf('--------------------------------------------------------\n');
}
void deleteBus() { char number[20];
printf('请输入要删除的班车号:');
scanf('%s', number);
int found = 0;
for (int i = 0; i < bus_count; i++) {
if (strcmp(bus_list[i].number, number) == 0) {
found = 1;
// 将后面的班车信息向前移动
for (int j = i; j < bus_count - 1; j++) {
bus_list[j] = bus_list[j + 1];
}
bus_count--;
printf('班车信息已删除。\n');
break;
}
}
if (!found) {
printf('未找到指定班车号的班车信息。\n');
}
}
void modifyBus() { char number[20];
printf('请输入要修改的班车号:');
scanf('%s', number);
int found = 0;
for (int i = 0; i < bus_count; i++) {
if (strcmp(bus_list[i].number, number) == 0) {
found = 1;
struct Bus modified_bus;
printf('请输入修改后的班车型号:');
scanf('%s', modified_bus.model);
printf('请输入修改后的座位数:');
scanf('%d', &modified_bus.seats);
printf('请输入修改后的司机姓名:');
scanf('%s', modified_bus.driver);
printf('请输入修改后的发车时间:');
scanf('%s', modified_bus.departure_time);
printf('请输入修改后的发车状态:');
scanf('%s', modified_bus.status);
bus_list[i] = modified_bus;
printf('班车信息已修改。\n');
break;
}
}
if (!found) {
printf('未找到指定班车号的班车信息。\n');
}
}
int main() { int choice;
while (1) {
printf('班车管理系统\n');
printf('1. 录入班车信息\n');
printf('2. 浏览班车信息\n');
printf('3. 按发车时间查询\n');
printf('4. 按司机姓名查询\n');
printf('5. 删除班车信息\n');
printf('6. 修改班车信息\n');
printf('0. 退出\n');
printf('请输入选项:');
scanf('%d', &choice);
switch (choice) {
case 1:
addBus();
break;
case 2:
browseBusInfo();
break;
case 3:
searchByDepartureTime();
break;
case 4:
searchByDriverName();
break;
case 5:
deleteBus();
break;
case 6:
modifyBus();
break;
case 0:
printf('谢谢使用,再见!\n');
exit(0);
default:
printf('无效的选项,请重新输入。\n');
break;
}
printf('\n');
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/o1A3 著作权归作者所有。请勿转载和采集!