题目
1、需求分析
车辆信息要用文件存储,因而要提供文件的输入输出操作;当车离开时,要删除文件中该车的信息,因而要提供文件的删除操作;另外还要提供现实操作和用键盘式菜单实现功能选择。
2、总体设计
整个管理系统可以设计为停车模块、取车模块、车辆信息浏览模块。
3、详细设计
停车场用二位数组实现park[2][6]; //2层,每层有6个车位
每辆车的信息用结构体来实现,设立车信息结构体:
Struct carInfo
{
Int carNo; //车牌号
Int layerNo; //层号
Int parkNo; //车位号
Int time; //停车时间
}CInfo;
(1)停车模块
对车辆信息赋值,分配前检查车位使用情况(按行查找park数组,元素为0表示车位为空,则允许分配)。把新添加的车辆信息以追加的方式用fwrite写入汽车信息文件,并更改汽车信息文件中其他汽车信息的停车时间(停车时间加5)。
(2)取车模块
计算费用(停车费用=停车时间*0.2元),从文件中删除该车信息。并将该车位对应的二位数组变量设为0,表示该车位可用。输出提示信息:是否输出停车费用总计?(Y/N)如果选择Y,则输出停车费用,否则回到上级菜单。
(3)车辆信息浏览模块
输出车辆信息文件中的记录。
另外,用户按Esc键退出系统。
我的解答思路和尝试过的方法
#include<stdio.h>
#include<stdlib.h>
int main(){
struct Carinfo{
int carNo; //车牌号
int layerNo; //层号
int parkNo; //车位号
int time; //停车时间
int flag; //是否有空位
};
int o;//o为识别到的操作
printf("--------------------------------\n");
printf(" *欢迎使用智能停车场管理系统*");
printf("\n--------------------------------\n");
printf("\n本系统分为三个模块:\n1.停车模块\n2.取车模块\n3.车辆信息浏览模块\n");
printf("如果需要退出本系统,请按Esc\n");
printf("请输入对应的数字来实现需要的操作:");
scanf("%s",&o);
if(o=1)
printf("\n模块输入成功,将进入停车模块");
//parking();
else if(o=2)
printf("\n模块输入成功,将进入取车模块");
//taking();
else if(o=3)
printf("\n模块输入成功,将进入车辆信息浏览模块");
// searching();
我想要达到的结果:系统能正常运行