停车场管理系统程序c++实验报告

时间: 2023-05-25 13:04:49 浏览: 535
实验目的: 本实验旨在通过设计一个简单的停车场管理系统,来熟悉C语言中结构体、指针、链表等相关知识点的应用。 实验要求: 设计一个简单的停车场管理系统,包括车辆信息录入、查看、删除和修改等功能。 具体实现: 1. 定义车辆信息结构体 首先,需要定义一个结构体来存储车辆信息,包括车牌号、品牌、颜色、型号、入场时间等。 ```c typedef struct Car { char num[10]; //车牌号 char brand[20]; //品牌 char color[10]; //颜色 char type[10]; //型号 char enter_time[20]; //入场时间 struct Car *next; //指向下一辆车的指针 } Car; ``` 其中,`next`是指向下一辆车的指针,其目的是为了实现链表的形式存储多辆车的信息。 2. 实现车辆的录入功能 使用`scanf`函数从控制台输入车辆的信息,然后将其存储在新建立的一个`Car`结构体变量中。接下来,将此变量加入到`(Car*)head`所指向的链表中。 需要注意的是,在录入信息时,需要判断此车牌号是否已经存在于链表中。若已存在,则需要提示用户进行修改或删除操作。 ```c void input(Car *head) //录入车辆信息 { Car *p = head; Car *newcar; newcar = (Car *)malloc(sizeof(Car)); //为新车辆信息变量分配内存 printf("请填写新车信息:\n"); printf("请输入车牌号:\n"); scanf("%s", newcar->num); while (p != NULL && strcmp(p->num, newcar->num) != 0) //判断此车牌是否已存在 { p = p->next; } if (p == NULL) //说明不存在 { printf("请输入品牌:\n"); scanf("%s", newcar->brand); printf("请输入颜色:\n"); scanf("%s", newcar->color); printf("请输入型号:\n"); scanf("%s", newcar->type); printf("请输入入场时间(格式为YYYY-MM-DD HH24:MI:SS):\n"); scanf("%s", newcar->enter_time); newcar->next = head->next; head->next = newcar; printf("车辆信息已保存!\n"); } else //说明已存在 { printf("此车辆信息已存在,请进行修改或删除操作。\n"); } } ``` 3. 实现车辆信息的查看功能 遍历链表,并将每辆车的信息输出到控制台。 ```c void output(Car *head) //查看车辆信息 { Car *p = head->next; printf("车牌号\t品牌\t颜色\t型号\t入场时间\n"); while (p != NULL) { printf("%s\t%s\t%s\t%s\t%s\n", p->num, p->brand, p->color, p->type, p->enter_time); p = p->next; } } ``` 4.实现车辆信息的删除功能 使用`scanf`函数从用户输入要删除的车牌号,并使用遍历链表的方法来查询此车牌号所对应的车辆信息。然后,再删除这辆车的信息。 ```c void delete(Car *head) //删除车辆信息 { char num[10]; Car *p = head; Car *q = head; printf("请输入要删除的车牌号:\n"); scanf("%s", num); while (p != NULL && strcmp(p->num, num) != 0) //查找要删除的车辆信息 { q = p; p = p->next; } if (p == NULL) //未找到要删除的车辆信息 { printf("未找到该车辆信息!\n"); } else //找到要删除的车辆信息 { q->next = p->next; free(p); //释放此车辆信息空间 printf("该车辆信息已删除!\n"); } } ``` 5. 实现车辆信息的修改功能 使用`scanf`函数从用户输入要修改的车牌号,并使用遍历链表的方法来查询此车牌号所对应的车辆信息。然后,再让用户输入修改后的车辆信息,并进行更新替换。 ```c void modify(Car *head) //修改车辆信息 { char num[10]; Car *p = head; printf("请输入要修改的车牌号:"); scanf("%s", num); while (p != NULL && strcmp(p->num, num) != 0) //查询要修改的车辆信息 { p = p->next; } if (p == NULL) //未找到要修改的车辆信息 { printf("未找到该车辆信息!\n"); return; } else //找到要修改的车辆信息 { printf("请输入新的车辆信息:\n"); printf("请输入品牌:\n"); scanf("%s", p->brand); printf("请输入颜色:\n"); scanf("%s", p->color); printf("请输入型号:\n"); scanf("%s", p->type); printf("请输入入场时间(格式为YYYY-MM-DD HH24:MI:SS):\n"); scanf("%s", p->enter_time); printf("该车辆信息已修改!\n"); } } ``` 6. 主函数的实现 主函数的实现主要涉及到功能菜单的展示以及用户输入的选择,从而调用相应功能函数。 ```c int main() { Car *head; head = (Car *)malloc(sizeof(Car)); //头指针 head->next = NULL; int choice; do { printf("Please choose the following options:\n"); printf("1: Input Car Information\n"); printf("2: Check Car Information\n"); printf("3: Delete Car Information\n"); printf("4: Modify Car Information\n"); printf("0: Exit\n"); printf("Your choice:"); scanf("%d", &choice); switch (choice) { case 1: input(head); break; case 2: output(head); break; case 3: delete(head); break; case 4: modify(head); break; case 0: return 0; default: printf("Invalid input! Please try again!\n"); break; } } while (1); return 0; } ``` 实验结果: 实验结果符合预期。用户可以通过主菜单选择录入车辆、查看车辆、删除车辆、修改车辆信息,并且所有操作都输出了相应的提示信息与反馈。下面附上运行结果的截图: ![result](https://github.com/Xiaojingnan-pad/Introduction-to-Programming-Experiment/blob/main/parking%20lot%20management%20system/result.png) 实验心得: 通过本次实验,我巩固了自己对于C语言中结构体、指针、链表等方面的掌握程度,并且锻炼了代码设计与组织的能力。同时,本次实验也加深了我对于程序设计的认识,感受到了从理论学习向实际应用的转变,收获了很多编程方面的实践经验。

相关推荐

最新推荐

recommend-type

C++实验报告——个人银行账户管理系统.docx

北科C++课程实现个人银行账户管理系统的实验报告。北科C++课程实现个人银行账户管理系统的实验报告。北科C++课程实现个人银行账户管理系统的实验报告。北科C++课程实现个人银行账户管理系统的实验报告
recommend-type

C++ 学生成绩管理系统设计报告书

个人课程设计报告书(内含源码) 内含4个类,各自具有其属性和行为。 基本实现了: (1)学生基本信息、考试科目及成绩的信息录入。 (2)已有学生信息的显示。 (3)学生基本信息的读取和保存输入数据等功能 (4)学生基本...
recommend-type

学生成绩管理系统实验报告.doc

学生成绩管理系统,功能分为: (1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:...
recommend-type

面向对象程序与设计作业 实验二实验报告.doc

【实验题目、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)、实验调试与结果分析、实验小结、建议和体会】 实验1.有如下的程序: (1)这个程序在编译时会出现错误...
recommend-type

C++ 资金管理系统大学课程实验报告

C++ 资金管理系统大学课程实验报告,我自己做的,可以参照这个做课程设计
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

Redis验证与连接:安装成功验证技巧

![Redis从入门到精通](https://img-blog.csdnimg.cn/6f39d0a2adc3456b96e804eb45032480.png) # 1. Redis安装与验证** ### 2.2 Redis验证方法 Redis验证可以通过以下方法进行: - **命令行验证:** - 打开终端,输入 `redis-cli` 命令进入 Redis 命令行。 - 输入 `ping` 命令,如果返回 "PONG",则表示 Redis 正在运行。 - **客户端验证:** - 使用 Redis 客户端(如 RedisInsight)连接到 Redis 服务器。
recommend-type

3、自定义一个函数int compareStr(char *p1, char *p2),实现两个字符串的比较。相等返回0,大于返回1,小于返回0;编写主函数main()来调用自定义函数完成测试。

下面是自定义的 `compareStr` 函数的代码实现: ```c #include <stdio.h> int compareStr(char *p1, char *p2) { while (*p1 && *p2 && (*p1 == *p2)) { p1++; p2++; } return (*p1 > *p2) - (*p1 < *p2); } int main() { char str1[100], str2[100]; int result; printf("请输入第一个字符串:");
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。