用c语言单链表完成停车场收费管理系统代码,一共分为九个模块: 第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块——Menu()的功能是:显示选单。 第三个模块——CreateList()的功能是:创建表。 第四个模块——InsertList(L,i)的功能是:在表的任意位置插入新的数据记录,并返回选单。 第五个模块——LocateList()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。 第六个模块——AlterList()[的功能是:修改某条记录的信息(最好可以选择修改哪个数据项),如果未找到要修改的记录,则提示系统中无此记录,并返回选单。 第七个模块——DeleteList()的功能是:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。 第八个模块——PrintList()的功能是:显示所有记录。 第九个模块——Quit()的功能是:退出选单。 其中包括车牌号(char num[10])、驶入时间(int intime-24小时制)、驶出时间(int outtime-24小时制)、单价(int price)、车主联系方式(char phone[20]),除此之外还要指定车牌号的车主联系方式和计算某车牌号的停车费用。
时间: 2024-03-22 22:38:21 浏览: 92
以下是一个简单的停车场收费管理系统的单链表实现代码,包含上述九个模块的功能。其中,车辆信息以结构体形式存储,包含车牌号、驶入时间、驶出时间、单价和车主联系方式。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUM 10 // 车牌号最大长度
#define MAX_PHONE 20 // 车主联系方式最大长度
// 车辆信息结构体
typedef struct _car {
char num[MAX_NUM]; // 车牌号
int intime; // 驶入时间(24小时制)
int outtime; // 驶出时间(24小时制)
int price; // 单价
char phone[MAX_PHONE]; // 车主联系方式
struct _car *next; // 指向下一辆车的指针
} Car;
// 显示选单
void Menu() {
printf("Welcome to Parking Management System\n");
printf("===================================\n");
printf("1. Add a new car\n");
printf("2. Search a car by num\n");
printf("3. Modify a car's info\n");
printf("4. Delete a car\n");
printf("5. Print all cars\n");
printf("6. Quit\n");
printf("===================================\n");
}
// 创建表
Car *CreateList() {
Car *head = (Car *)malloc(sizeof(Car));
head->next = NULL;
return head;
}
// 在表的任意位置插入新的数据记录
void InsertList(Car *L, int i) {
int j = 0;
Car *p = L;
while (p && j < i-1) {
p = p->next;
j++;
}
if (!p || j > i-1) {
printf("Invalid position\n");
return;
}
Car *new_car = (Car *)malloc(sizeof(Car));
printf("Please enter the car's num:");
scanf("%s", new_car->num);
printf("Please enter the car's intime:");
scanf("%d", &new_car->intime);
printf("Please enter the car's outtime:");
scanf("%d", &new_car->outtime);
printf("Please enter the car's price:");
scanf("%d", &new_car->price);
printf("Please enter the car's phone:");
scanf("%s", new_car->phone);
new_car->next = p->next;
p->next = new_car;
printf("Add car successfully\n");
}
// 按要求查询相关的信息
void LocateList(Car *L) {
char num[MAX_NUM];
printf("Please enter the car's num you want to search:");
scanf("%s", num);
Car *p = L->next;
while (p) {
if (strcmp(p->num, num) == 0) {
printf("num:%s\tintime:%d\touttime:%d\tprice:%d\tphone:%s\n", p->num, p->intime, p->outtime, p->price, p->phone);
return;
}
p = p->next;
}
printf("No such car in the parking lot\n");
}
// 修改某条记录的信息
void AlterList(Car *L) {
char num[MAX_NUM];
printf("Please enter the car's num you want to modify:");
scanf("%s", num);
Car *p = L->next;
while (p) {
if (strcmp(p->num, num) == 0) {
int choice;
printf("Please choose which info you want to modify:\n");
printf("1. num\n2. intime\n3. outtime\n4. price\n5. phone\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Please enter the new num:");
scanf("%s", p->num);
break;
case 2:
printf("Please enter the new intime:");
scanf("%d", &p->intime);
break;
case 3:
printf("Please enter the new outtime:");
scanf("%d", &p->outtime);
break;
case 4:
printf("Please enter the new price:");
scanf("%d", &p->price);
break;
case 5:
printf("Please enter the new phone:");
scanf("%s", p->phone);
break;
default:
printf("Invalid choice\n");
break;
}
printf("Modify car successfully\n");
return;
}
p = p->next;
}
printf("No such car in the parking lot\n");
}
// 删除某条记录
void DeleteList(Car *L) {
char num[MAX_NUM];
printf("Please enter the car's num you want to delete:");
scanf("%s", num);
Car *p = L->next, *pre = L;
while (p) {
if (strcmp(p->num, num) == 0) {
pre->next = p->next;
free(p);
printf("Delete car successfully\n");
return;
}
pre = p;
p = p->next;
}
printf("No such car in the parking lot\n");
}
// 显示所有记录
void PrintList(Car *L) {
Car *p = L->next;
while (p) {
printf("num:%s\tintime:%d\touttime:%d\tprice:%d\tphone:%s\n", p->num, p->intime, p->outtime, p->price, p->phone);
p = p->next;
}
}
// 退出程序
void Quit() {
exit(0);
}
int main() {
Car *L = CreateList();
while (1) {
Menu();
int choice;
printf("Please choose an operation:");
scanf("%d", &choice);
switch (choice) {
case 1:
InsertList(L, 1);
break;
case 2:
LocateList(L);
break;
case 3:
AlterList(L);
break;
case 4:
DeleteList(L);
break;
case 5:
PrintList(L);
break;
case 6:
Quit();
break;
default:
printf("Invalid choice\n");
break;
}
}
return 0;
}
```
阅读全文