回 帖 发 新 帖 刷新版面

主题:[讨论]谁能帮我解决一下这个问题:总是执行 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]

回复列表 (共6个回复)

沙发

最好把错误信息贴出来。

板凳


您们运行一次把。我感觉是编译器的问题

3 楼

什么编译器错误,gets你都用错了,gets里面你都传了一个字符进去
1.printf("车型(B\S)\n"); 
   gets(ch1); 
    if(ch1=='B'
2.char a; 
printf("Please input your car numbers!\n"); 
gets(a);

4 楼


gets不是可以输入字符么?

5 楼

gets是输出字符串的。。。。
您倒是挺不客气,我们手头没有开发工具没有编译器,只有人脑。请问如何帮你跑?把错误信息一贴出来,错误往往就明了了。为何就不贴呢?还挺有指挥欲的啊,“您们就运行一次吧”。您觉得怎样来得快?

6 楼


sorry...我感觉编的有点乱,重新编一个,晚上传

我来回复

您尚未登录,请登录后再回复。点此登录或注册