主题:[讨论]谁能帮我解决一下这个问题:总是执行 link.exe 时出错...
这是我做的一个泊车计费系统原型,有点乱,解决完问题再修改正解~求大神指点,到底是哪里出问题了!
-------------------我是分割线--------------------------------
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
clock_t start[100];
clock_t end[100];
struct p
{
char no[9];//车牌
int pos,num;//pos,0代表没车,1代表有车;num代表位置
double fee;//费率
};
typedef struct p p;
extern p position[100];//定义外部变量
int situation();//查询剩余车位函数
void search();//搜索车辆信息
void istatus();//根据车位查询该车位是否有车
void check();//停车登记函数
void getting();//提车结算函数
void exit();
int main()
{
int i;
char b[16]="123456",c[16],count=0;
printf("Please enter your passwords\n");
do
{
gets(c);
if(strcmp(b,c))
{
printf("Your password is wrong!\n");
}
else
{
printf("Welcome!\n");
count=1;
}
}while(count!=1);
printf("1、查询剩余车位\n2、查询车辆\n3、查询车位状态\n4、停车登记5、提车结算\n");
scanf("%d",&i);
if(i==1)
situation();
else if(i==2)
search();
else if(i==3)
istatus();
else if(i==4)
check();
else if(i==5)
getting();
return 0;
}
int situation()//停车状况,查询剩余车位
{
int i=0,count=0;
for(i=0;i<100;i++)
{
if(position[i].pos=='\0')
count++;
}
printf("车位剩余%d个\n",count);
return count;
}
void search()//定义按车牌搜索车辆函数
{
int i=0;
char number[9];
printf("Please input the car number\n");
gets(number);
for(i=0;i<100;i++)
{
if(strcmp(position[i].no,number))
{
printf("车位%d",i);
}
}
}
void istatus()//定义查询车位状况函数
{
int i;
scanf("%d",&i);
if(i)
{
printf("此车位有车\n");
}
else
printf("此车位没车\n");
}
void check()//定义停车登记函数
{
int i;
char ch,ch1;
FILE *fp;
if(situation())
printf("没有空余车位!\n");
for(i=0;i<100;i++)
{
if(position[i].pos=='\0')
{
printf("%d号车位可停车\n");
}
break;
}
fp=fopen("D:\\泊车管理系统日志.xls","wb");
if(!fp)
{
printf("file cannot be opened\n");
exit(1);
}
printf("Enter records:\n");
for(i;i<100;i++)
{
printf("continue?(Y\N)\n");
ch=getchar();
getchar();//(跳过回车)
if(ch=='N')
break;
gets(position[i].no);
position[i].pos=1;
position[i].num=i;
printf("车型(B\S)\n");
gets(ch1);
if(ch1=='B')
position[i].fee=7;
else
position[i].fee=5;
fwrite(&position,sizeof(position),1,fp);
}
fclose(fp);
start[i]=clock();
}
void getting()//定义提车收费函数
{
int n;
double cost,t;
char a;
printf("Please input your car numbers!\n");
gets(a);
for(n=0;n<100;n++)
{
if(strcmp(position[n].no,a)==0)
break;
}
end[n]=clock();
t=(end[n]-start[n])*1.0/CLOCKS_PER_SEC;
cost=(t/3600)*position[n].fee;
printf("Please pay %lf yuan\n",cost);
}
[em8][em8][em8]
-------------------我是分割线--------------------------------
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
clock_t start[100];
clock_t end[100];
struct p
{
char no[9];//车牌
int pos,num;//pos,0代表没车,1代表有车;num代表位置
double fee;//费率
};
typedef struct p p;
extern p position[100];//定义外部变量
int situation();//查询剩余车位函数
void search();//搜索车辆信息
void istatus();//根据车位查询该车位是否有车
void check();//停车登记函数
void getting();//提车结算函数
void exit();
int main()
{
int i;
char b[16]="123456",c[16],count=0;
printf("Please enter your passwords\n");
do
{
gets(c);
if(strcmp(b,c))
{
printf("Your password is wrong!\n");
}
else
{
printf("Welcome!\n");
count=1;
}
}while(count!=1);
printf("1、查询剩余车位\n2、查询车辆\n3、查询车位状态\n4、停车登记5、提车结算\n");
scanf("%d",&i);
if(i==1)
situation();
else if(i==2)
search();
else if(i==3)
istatus();
else if(i==4)
check();
else if(i==5)
getting();
return 0;
}
int situation()//停车状况,查询剩余车位
{
int i=0,count=0;
for(i=0;i<100;i++)
{
if(position[i].pos=='\0')
count++;
}
printf("车位剩余%d个\n",count);
return count;
}
void search()//定义按车牌搜索车辆函数
{
int i=0;
char number[9];
printf("Please input the car number\n");
gets(number);
for(i=0;i<100;i++)
{
if(strcmp(position[i].no,number))
{
printf("车位%d",i);
}
}
}
void istatus()//定义查询车位状况函数
{
int i;
scanf("%d",&i);
if(i)
{
printf("此车位有车\n");
}
else
printf("此车位没车\n");
}
void check()//定义停车登记函数
{
int i;
char ch,ch1;
FILE *fp;
if(situation())
printf("没有空余车位!\n");
for(i=0;i<100;i++)
{
if(position[i].pos=='\0')
{
printf("%d号车位可停车\n");
}
break;
}
fp=fopen("D:\\泊车管理系统日志.xls","wb");
if(!fp)
{
printf("file cannot be opened\n");
exit(1);
}
printf("Enter records:\n");
for(i;i<100;i++)
{
printf("continue?(Y\N)\n");
ch=getchar();
getchar();//(跳过回车)
if(ch=='N')
break;
gets(position[i].no);
position[i].pos=1;
position[i].num=i;
printf("车型(B\S)\n");
gets(ch1);
if(ch1=='B')
position[i].fee=7;
else
position[i].fee=5;
fwrite(&position,sizeof(position),1,fp);
}
fclose(fp);
start[i]=clock();
}
void getting()//定义提车收费函数
{
int n;
double cost,t;
char a;
printf("Please input your car numbers!\n");
gets(a);
for(n=0;n<100;n++)
{
if(strcmp(position[n].no,a)==0)
break;
}
end[n]=clock();
t=(end[n]-start[n])*1.0/CLOCKS_PER_SEC;
cost=(t/3600)*position[n].fee;
printf("Please pay %lf yuan\n",cost);
}
[em8][em8][em8]