C语言设计图书登记系统与停车场管理系统的实例分享
简介
C语言是一种通用的、高效的计算机编程语言,被广泛应用于数字设计、操作系统、游戏开发和应用软件等领域。本文将分享两个基于C语言的实例,分别是图书登记系统和停车场管理系统,介绍其设计思路、代码实现和运行效果。
图书登记系统
设计思路
图书登记系统是一个简单的管理系统,主要实现以下功能:
- 登记新书籍
- 查询书籍信息
- 修改书籍信息
- 删除书籍信息
在使用该系统之前,需要用户先进行身份登录,登录成功后即可开始使用。系统数据包括书籍名称、作者、出版社、定价等信息,使用C语言的结构体数据结构进行存储和操作。
代码实现
下面是几个关键函数的代码:
登录函数
该函数用来检查输入的用户名和密码是否匹配,仅当匹配成功时允许用户登录。
int login()
{
char username[20];
char password[20];
printf("请输入用户名: ");
scanf("%s", username);
printf("请输入密码: ");
scanf("%s", password);
if (strcmp(username, "admin") == 0 && strcmp(password, "admin123") == 0)
{
printf("登录成功!\n");
return 1;
}
else
{
printf("用户名或密码错误!\n");
return 0;
}
}
添加书籍函数
该函数用来添加新书籍的信息,将输入的内容存储到结构体数组中。
void add_book()
{
printf("请输入书籍名称: ");
scanf("%s", books[count].name);
printf("请输入作者姓名: ");
scanf("%s", books[count].author);
printf("请输入出版社名称: ");
scanf("%s", books[count].publisher);
printf("请输入书籍定价: ");
scanf("%f", &books[count].price);
printf("添加成功!\n");
count++;
}
修改书籍信息函数
该函数用来根据输入的书籍名称查找书籍,并将指定的信息进行修改。
void modify_book()
{
char bookname[20];
printf("请输入要修改的书籍名称: ");
scanf("%s", bookname);
int i;
for (i = 0; i < count; i++)
{
if (strcmp(books[i].name, bookname) == 0)
{
printf("请输入新的书籍名称: ");
scanf("%s", books[i].name);
printf("请输入新的作者姓名: ");
scanf("%s", books[i].author);
printf("请输入新的出版社名称: ");
scanf("%s", books[i].publisher);
printf("请输入新的书籍定价: ");
scanf("%f", &books[i].price);
printf("修改成功!\n");
return;
}
}
printf("未找到该书籍!\n");
}
显示全部书籍函数
该函数用来遍历结构体数组,显示系统中所有的书籍信息。
void show_all_books()
{
printf("图书名称\t作者\t出版社\t定价\n");
int i;
for (i = 0; i < count; i++)
{
printf("%s\t%s\t%s\t%.2f\n", books[i].name, books[i].author, books[i].publisher, books[i].price);
}
}
运行效果
下面是一个简单的演示,展示如何使用图书登记系统进行添加书籍、修改书籍和查看全部书籍功能:
请输入用户名: admin
请输入密码: admin123
登录成功!
1.添加书籍 2.查询书籍 3.修改书籍 4.删除书籍 5.查看全部书籍
请选择功能:1
请输入书籍名称: C++ Primer
请输入作者姓名: Stanley B.Lippman
请输入出版社名称: 人民邮电出版社
请输入书籍定价: 98.50
添加成功!
1.添加书籍 2.查询书籍 3.修改书籍 4.删除书籍 5.查看全部书籍
请选择功能:3
请输入要修改的书籍名称: C++ Primer
请输入新的书籍名称: C++ Primer Plus
请输入新的作者姓名: Vincent Moffatt
请输入新的出版社名称: 机械工业出版社
请输入新的书籍定价: 108.00
修改成功!
1.添加书籍 2.查询书籍 3.修改书籍 4.删除书籍 5.查看全部书籍
请选择功能:5
图书名称 作者 出版社 定价
C++ Primer Plus Vincent Moffatt 机械工业出版社 108.00
停车场管理系统
设计思路
停车场管理系统实现了对停车场的管理,主要实现以下功能:
- 车辆入库
- 车辆出库
- 查询停车位状态
- 查询停车费用
车辆停放需要输入车牌号和停车时刻,物理上停车场可以看作是一个线性结构,这里使用C语言的链表数据结构进行存储和操作。
代码实现
下面是几个关键函数的代码:
车辆入库函数
该函数用来向链表中添加车辆的信息,并更新链表数量和当前时间。
void enter_car()
{
if (n >= maxsize)
{
printf("停车场已满!\n");
return;
}
printf("请输入车牌号: ");
scanf("%s", cars[n].name);
printf("请输入进入停车场的时间(小时): ");
scanf("%d", &cars[n].enter_time);
printf("车辆%s已入库!\n", cars[n].name);
n++;
current_time++;
}
车辆出库函数
该函数用来根据输入的车牌号查找车辆,并计算出费用。
void exit_car()
{
char carname[20];
printf("请输入要出库的车牌号: ");
scanf("%s", carname);
int i, index = -1;
for (i = 0; i < n; i++)
{
if (strcmp(cars[i].name, carname) == 0)
{
index = i;
break;
}
}
if (index == -1)
{
printf("未找到该车辆!\n");
return;
}
printf("请输入离开停车场的时间(小时): ");
scanf("%d", &cars[index].exit_time);
int cost = (cars[index].exit_time - cars[index].enter_time) * unit_price;
printf("停车费用为%d元!\n", cost);
int j;
for (j = index; j < n - 1; j++)
{
cars[j] = cars[j+1];
}
n--;
current_time++;
}
查询停车位状态函数
该函数遍历链表,统计当前停车场内的车辆数量和空位数量。
void query_status()
{
int i, count = 0;
for (i = 0; i < maxsize; i++)
{
if (cars[i].name[0] == '\0')
count++;
}
printf("停车场共%d个车位,当前空余%d个车位,已停车%d辆车!\n", maxsize, count, n);
}
查询停车费用函数
该函数遍历链表,计算出当前车场内每辆车的停车费用。
void query_cost()
{
int i;
printf("车牌号\t停车时间\t费用\n");
for (i = 0; i < n; i++)
{
int cost = (current_time - cars[i].enter_time) * unit_price;
printf("%s\t%d\t\t%d\n", cars[i].name, cars[i].enter_time, cost);
}
}
运行效果
下面是一个简单的演示,展示如何使用停车场管理系统进行车辆入库、车辆出库、查询停车位状态和查询停车费用功能:
1.车辆入库 2.车辆出库 3.查询停车位状态 4.查询停车费用
请选择功能:1
请输入车牌号: 京A12345
请输入进入停车场的时间(小时): 8
车辆京A12345已入库!
1.车辆入库 2.车辆出库 3.查询停车位状态 4.查询停车费用
请选择功能:1
请输入车牌号: 京B67890
请输入进入停车场的时间(小时): 9
车辆京B67890已入库!
1.车辆入库 2.车辆出库 3.查询停车位状态 4.查询停车费用
请选择功能:2
请输入要出库的车牌号: 京A12345
请输入离开停车场的时间(小时): 12
停车费用为120元!
1.车辆入库 2.车辆出库 3.查询停车位状态 4.查询停车费用
请选择功能:3
停车场共10个车位,当前空余8个车位,已停车1辆车!
1.车辆入库 2.车辆出库 3.查询停车位状态 4.查询停车费用
请选择功能:4
车牌号 停车时间 费用
京B67890 9 30
1.车辆入库 2.车辆出库 3.查询停车位状态 4.查询停车费用
请选择功能:2
请输入要出库的车牌号: 京B67890
请输入离开停车场的时间(小时): 13
停车费用为40元!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言设计图书登记系统与停车场管理系统的实例分享 - Python技术站