# C语言停车系统 **Repository Path**: stone_scx/c-parking-system ## Basic Information - **Project Name**: C语言停车系统 - **Description**: C语言停车系统,复习C语言 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-07-12 - **Last Updated**: 2023-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [toc] # 停车场管理项目 ## 数据存储 系统配置:全局变量(方便全局使用),配置文件(方便系统初始化时加载信息) 用户信息:链表(记录停车场已有的用户),文件(方便系统初始化时加载信息) 停车场星系:链表(记录停车场中的车),数组(一维数组模拟二维平面停车场),文件(方便系统初始化时加载信息) ## 功能分析 一个停车场管理系统是一个用来管理和控制停车场的运行和收费的软件系统。它可以提供以下功能: - 自动发放和收取停车票,根据不同类型的车辆和停车时间计算停车费用。 - 实时监测和显示停车场的空余车位,方便客户找到合适的停车位置。 - 支持多种支付方式,如现金、信用卡、移动支付等。 - 支持多层停车场,每层有多个区域和车位,可以根据车辆大小分配不同类型的车位。 - 支持预约停车功能,让客户提前在线或电话预定一个固定的车位,保证有足够的空间。 - 支持会员制度,让常客享受优惠价格和专属服务。 - 支持数据分析和报告功能,让停车场管理者了解停车场的使用情况和收入情况,优化运营策略。 ## 详细设计 ### 数据结构 #### 停车场 记录车的车牌号,车在哪,车停进来的时间 #### 用户 记录用户名,密码,已经结账的时长,账号余额 #### 记账 什么时间-谁-人还是车-多少钱 ### 界面 1. 管理员登录界面 2. 系统配置信息加载界面及系统环境初始化界面 3. 系统功能界面 4. 用户管理界面 5. 车辆场管理界面 ### 进出场登记车位分配系统 1. 一共$x*y$个车位 2. 车位按序分配 3. 停一个车少一个车位 4. 走一个车多一个车位 ### 车位计费系统 1. 定义计费标准(系统初始化定义,可以通过修改文件或在程序中使用相关功能进行修改) 2. 计算停车时长(根据入场时间与出场时间进行计算) 3. 扣除卡内余额(谁开走车谁扣款) 4. 查询车辆位置 ### 用户系统 1. 新建用户 2. 用户销户 3. 用户充值 ### 账目统计系统(未实现) 根据时间戳,统计一定时间范围内的账目,分为用户预充值金额与停车场实际盈利 # Study ==**`system("pause");`**== 为了实现函数暂停以确认目标信息,我在一开始使用`getchar()`函数读取任意字符,可是使用回车将信息输给缓冲区,缓冲区的回车不会自动消失,而是会留在缓冲区中,等待被读取。比如说,输入`123\n456\n789\n`,那么缓冲区中就有`123\n456\n789\n`这10个字符。如果想用`getchar`函数读取缓冲区的回车,需要用3个`getchar`函数,每个`getchar`函数都会读取一个回车,并返回\n的ASCII码。 最后,我找到了`windows`系统函数`system(“pause”)`system(“pause”);函数是调用操作系统的暂停命令,使得程序在执行到这一句时,暂停运行,并在屏幕上显示“Pressanykeytocontinue...”(按任意键继续)或“请按任意键继续..”的提示信息,等待用户按下任意键后,程序才会继续执行。`system(“pause”)`;函数的优点是可以让用户看清楚程序的运行结果,避免程序一闪而过。它通常用在程序的末尾或者某些关键位置。该函数在`linux`中对应版本为`pause()` **==键盘读写与文件读写==** 在键盘读写与文件读写时常常需要读取多种不同类型,为了检查方便,可以在程序中统一读为字符串,然后编写转换函数进行转换,同时还可以方便做输入检查