1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<windows.h> 5 #include<time.h> 6 #include<math.h> 7 #define N 36 8 int place[N]; 9 int x,y,price,count;//现在的会员人数;全部的会员人数;停车单价;已用车位数; 10 double sum;//盈利总额 11 12 void menu(); 13 void parking(); 14 void take(); 15 void amoney(); 16 void show(); 17 void profit(); 18 void regist(); 19 void adjust(); 20 void backup(); 21 void del(); 22 struct park 23 { 24 int id; 25 char name[30],tele[30],num[30]; 26 int money; 27 int flag; //记录该会员是否已经注销 28 time_t start ,end; 29 } user[2000]={ 30 {0,"00","00000000000","00000",0,1}, 31 {1,"徐*","4565554645","k1157",100,1}, 32 {2,"冯**","5462121312","k1158",100,1}, 33 {3,"王**","84855123223","k1159",100,1}, 34 {4,"吴**","145435523","k1160",100,1}, 35 {5,"ee","475786543","k1161",100,1}, 36 {6,"ff","4254213475","k1162",100,1}, 37 };//初始赋值 38 int main() 39 { 40 FILE *fp; 41 int i,x,j; 42 price=1; count=0; sum=0; y=6; x=y;//初始化数值 43 memset(place,-1,sizeof(place)); 44 while(1) 45 { 46 fp=fopen("D:\data.txt","w"); 47 for(i=1; i<=y; i++) 48 if(user[i].flag) 49 fprintf(fp,"%d %s %s %s %d ",user[i].id,user[i].name,user[i].tele,user[i].num,user[i].money); 50 fclose(fp); 51 menu(); 52 scanf("%d",&x); 53 fflush(stdin); //清理内存 54 switch(x) 55 { 56 case 1: parking(); break;//停车记录 57 case 2: take(); break;//取车记录 58 case 3: amoney(); break;//现金充值 59 case 4: show(); break;//显示余额 60 case 5: profit(); break;//盈利查询 61 case 6: regist(); break;//用户注册记录 62 case 7: adjust(); break;//调整停车单价 63 case 8: backup(); break;//数据备份 64 case 9:del(); break;//用户注销记录 65 case 0: 66 { 67 system("cls"); 68 printf(" 感谢您的使用!"); 69 Sleep(200); 70 for(j=0; j<=1; j++) 71 { 72 printf(" "); 73 printf(" "); 74 printf(" "); 75 printf(" "); 76 printf(" "); 77 printf(" ★★★★★ ★★★★★ "); 78 printf(" ☆☆ ☆☆ ☆☆ ☆☆ "); 79 printf(" ★★ ★★ ★★ ★★ "); 80 printf(" ☆☆ ☆ ☆☆ "); 81 printf(" ★★ ★★ "); 82 printf(" ☆☆ ☆☆ "); 83 printf(" ★★ Thank you! ★★ "); 84 printf(" ☆☆ ☆☆ "); 85 printf(" ★★ ★★ "); 86 printf(" ☆☆ ☆☆ "); 87 printf(" ★★ ★★ "); 88 printf(" ☆☆ ☆☆ "); 89 printf(" ★★ ★★ "); 90 printf(" ☆☆ ☆☆ "); 91 printf(" ★★ "); 92 Sleep(500); 93 system("cls"); 94 printf(" "); 95 printf(" ★★★ ★★★ "); 96 printf(" ☆☆ ☆☆ ☆☆ ☆☆ "); 97 printf(" ★★ ★★ ★★ ★★ "); 98 printf(" ☆☆ ☆ ☆☆ "); 99 printf(" ★★ ★★ "); 100 printf(" ☆☆ Thank you! ☆☆ "); 101 printf(" ★★ ★★ "); 102 printf(" ☆☆ ☆☆ "); 103 printf(" ★★ ★★ "); 104 printf(" ☆☆ ☆☆ "); 105 printf(" ★★ ★★ "); 106 printf(" ☆☆ ☆☆ "); 107 printf(" ★★ "); 108 Sleep(400); 109 system("cls"); 110 111 printf(" "); 112 printf(" "); 113 printf(" "); 114 printf(" "); 115 printf(" "); 116 printf(" ★★★ ★★★ "); 117 printf(" ☆☆ ☆ ☆☆ "); 118 printf(" ★★ ★★ "); 119 printf(" ☆☆ ☆☆ "); 120 printf(" ★★ ★★ "); 121 printf(" ☆☆ ☆☆ "); 122 printf(" ★★ ★★ "); 123 printf(" ☆☆ ☆☆ "); 124 printf(" ★★ "); 125 Sleep(400); 126 system("cls"); 127 128 printf(" "); 129 printf(" "); 130 printf(" "); 131 printf(" "); 132 printf(" "); 133 printf(" "); 134 printf(" ★ ☆ ☆ ★ "); 135 printf(" ☆ ★ ☆ "); 136 printf(" ★ ★ "); 137 printf(" ☆ ☆ "); 138 printf(" ★ ★ "); 139 printf(" ☆ "); 140 Sleep(400); 141 system("cls"); 142 143 printf(" "); 144 printf(" "); 145 printf(" "); 146 printf(" "); 147 printf(" "); 148 printf(" "); 149 printf(" ★★ ★★ ★★ ★★ "); 150 printf(" ☆☆ ☆ ☆☆ "); 151 printf(" ★★ ★★ "); 152 printf(" ☆☆ Thank you! ☆☆ "); 153 printf(" ★★ ★★ "); 154 printf(" ☆☆ ☆☆ "); 155 printf(" ★★ ★★ "); 156 printf(" ☆☆ ☆☆ "); 157 printf(" ★★ "); 158 Sleep(400); 159 system("cls"); 160 } 161 162 printf(" 感谢您的使用! "); 163 164 printf(" ★★ ★★ ★★ ★★ "); 165 printf(" ☆☆ ☆ ☆☆ "); 166 printf(" ★★ ★★ "); 167 printf(" ☆☆ Thank you! ☆☆ "); 168 printf(" ★★ ★★ "); 169 printf(" ☆☆ ☆☆ "); 170 printf(" ★★ ★★ "); 171 printf(" ☆☆ ☆☆ "); 172 printf(" ★★ "); 173 printf(" 本软件项目组成员:徐* 吴** 冯** 王**"); 174 printf(" "); 175 exit(0); 176 } 177 178 break;//退出系统 179 default:{ 180 system("cls"); 181 printf(" 输入错误! "); 182 system("pause"); 183 } 184 } 185 } 186 return 0; 187 } 188 189 void menu()//主菜单 190 { 191 int i,j; 192 system("cls"); 193 system("color 3F"); 194 printf(" ┌───────────────┐ "); 195 printf(" │ 尊敬的管理员! │ "); 196 printf(" │欢迎您使用小型停车场管理系统!│ "); 197 printf(" └───────────────┘ "); 198 printf(" ┌──────────────────┐ "); 199 for(j=0;j<N/9;j++) 200 { 201 printf(" │"); 202 for(i=j*9;i<j*9+9;i++) 203 { 204 if(place[i]==-1) printf(" ◇ "); 205 else printf(" ◆ "); 206 } 207 printf("│ "); 208 209 printf(" │"); 210 for(i=j*9;i<j*9+9;i++) 211 { 212 printf(" %2d ",i+1); 213 } 214 printf("│ "); 215 } 216 printf(" └──────────────────┘ "); 217 printf(" ┌──────────────────┐ "); 218 printf(" │ 当前还剩余%d个车位! │ ",N-count); 219 printf(" │【1】停车记录 【2】取车记录 │ "); 220 printf(" │【3】现金充值 【4】显示余额 │ "); 221 printf(" │【5】盈利查询 【6】用户注册记录 │ "); 222 printf(" │【7】调整停车单价【8】数据备份 │ "); 223 printf(" │【9】用户注销记录【0】退出 │ "); 224 printf(" └──────────────────┘ "); 225 printf(" 按相应数字键,回车确认: "); 226 } 227 228 void parking()//停车记录 229 { 230 int id,i,f1,f2=0,a; 231 if(count==N) 232 { 233 printf("当前车位已满! "); return; 234 } 235 while(1) 236 { 237 f1=0; 238 while(1) 239 { 240 printf(" 请将输入器递给会员,并提醒会员输入id:"); 241 scanf("%d",&id); 242 fflush(stdin); 243 if(id>=1&&id<=y&&user[id].flag) 244 { 245 break; 246 } 247 else 248 { 249 system("cls"); 250 printf(" 没有该id。 如果不是会员,请提醒车主先注册! 输入'1'重新输入,输入'0'退出! "); 251 printf(" 请输入:"); 252 scanf("%d",&a); 253 if(a) 254 continue; 255 else 256 return; 257 } 258 } 259 260 for(i=0; i<N; i++) 261 { 262 if(place[i]==id) 263 { 264 printf(" 输入错误!请提醒会员重新输入 "); 265 f1=1; 266 break; 267 } 268 } 269 if(f1) 270 continue; 271 if(user[id].money<=0) 272 { 273 system("cls"); 274 printf(" 余额不足,请提醒会员充值! "); 275 system("pause"); 276 } 277 for(i=0; i<N; i++) 278 { 279 if(place[i]==-1) 280 { 281 printf(" 请提醒该会员此车可停在%d号车位! ",i+1); //系统自动为会员分配车位 282 place[i]=id; 283 count++; 284 f2=1; 285 break; 286 } 287 else 288 continue; 289 } 290 if(f2) 291 break; 292 } 293 user[id].start = time(NULL); //记录当前系统时间为停车时间 294 printf(" "); 295 system("pause"); 296 } 297 298 void take()//取车记录 299 { 300 int id,i,t,a; 301 while(1) 302 { 303 printf(" 请将输入器递给会员,并提醒会员输入id:"); 304 scanf("%d",&id); 305 fflush(stdin); 306 if(id>=1&&id<=y&&user[id].flag) 307 break; 308 else 309 { 310 printf(" 没有该id。 如果不是会员,请提醒车主先注册! 输入'1'重新输入,输入'0'退出! "); 311 printf(" 请输入:"); 312 scanf("%d",&a); 313 if(a) 314 continue; 315 else 316 return; 317 } 318 } 319 while(1) 320 { 321 for(i=0; i<N; i++) 322 { 323 if(place[i]==id) 324 { 325 place[i]=-1; break; 326 } 327 } 328 if(i>=N) 329 { 330 system("cls"); 331 printf(" 该会员没有存车! "); 332 break; 333 } 334 count--; 335 user[id].end = time(NULL);//记录当前系统时间为取车时间 336 user[id].money-=(difftime(user[id].end ,user[id].start)/3600)*price;//用difftime计算时间差 337 sum+=difftime(user[id].end ,user[id].start)/3600; 338 t=sum; 339 if(sum-t>0) 340 { 341 sum=t+price; 342 user[id].money-=(price-1); 343 } //不足一个小时,按一个小时计费 344 printf(" 该会员车已离开! %d车位已空! ",i+1); 345 break; 346 } 347 printf(" "); 348 system("pause"); 349 } 350 351 void amoney()//现金充值 352 { 353 int id,x; 354 printf(" 请将输入器递给会员,并提醒会员输入id: "); 355 scanf("%d",&id); 356 fflush(stdin); 357 if(user[id].flag) 358 { 359 printf(" 请提醒会员,输入充值的钱数: "); 360 scanf("%d",&x); 361 fflush(stdin); 362 user[id].money+=x; 363 printf(" "); 364 system("pause"); 365 system("cls"); 366 printf(" ¥ "); 367 printf(" ¥¥¥ "); 368 printf(" ¥¥¥¥¥ "); 369 printf(" ¥¥¥¥¥¥¥ "); 370 printf(" ¥¥¥¥¥¥¥¥¥ "); 371 printf(" ¥¥¥¥¥¥¥¥¥¥¥ "); 372 printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥ "); 373 printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ "); 374 printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ "); 375 printf(" 充值成功! 请提醒该会员的余额为:%d ",user[id].money); 376 printf(" "); 377 system("pause"); 378 } 379 } 380 381 void show()//显示会员信息 382 { 383 int id; 384 printf(" 请将输入器递给会员,并提醒会员输入id:"); 385 scanf("%d",&id); 386 fflush(stdin); 387 if(user[id].flag) 388 { 389 system("cls"); 390 printf(" ¥ "); 391 printf(" ¥¥¥ "); 392 printf(" ¥¥¥¥¥ "); 393 printf(" ¥¥¥¥¥¥¥ "); 394 printf(" ¥¥¥¥¥¥¥¥¥ "); 395 printf(" ¥¥¥¥¥¥¥¥¥¥¥ "); 396 printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥ "); 397 printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ "); 398 printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ "); 399 printf(" 请提示该会员信息。 "); 400 printf(" id 姓名 电话 车牌号 余额 "); 401 printf(" %d %s %s %s %d ",user[id].id,user[id].name,user[id].tele,user[id].num,user[id].money); 402 printf(" "); 403 system("pause"); 404 } 405 } 406 407 void profit()//盈利查询 408 { 409 printf(" 总盈利额为:%.0lf元 ",sum); 410 printf(" "); 411 system("pause"); 412 } 413 414 void regist()//新用户注册记录 415 { 416 x++; 417 y++; 418 int id=y; 419 //id--; 420 user[id].id=id; 421 user[id].money=0; 422 user[id].flag=1; 423 424 printf(" 请递给车主输入器,并提醒车主填写基本信息! "); 425 printf(" 姓名: "); scanf("%s",user[id].name); 426 fflush(stdin); 427 printf(" 电话: "); scanf("%s",user[id].tele); 428 fflush(stdin); 429 printf(" 车牌号: "); scanf("%s",user[id].num); 430 fflush(stdin); 431 432 FILE *fp; 433 fp=fopen("D:\data.txt","a"); 434 fprintf(fp,"%d %s %s %s %d ",user[id].id,user[id].name,user[id].tele,user[id].num,user[id].money); 435 fclose(fp); 436 system("cls"); 437 438 printf(" "); 439 printf(" .----------. "); 440 printf(" ( ) "); 441 printf(" _(.-. _...._ .-.) "); 442 printf(" (_)`-' __()__ `-'(_) "); 443 printf(" (....__|LESTER|__....) "); 444 printf(" | | ~~~~~~ | | "); 445 printf(" `-' `-' "); 446 printf(" 注册成功! "); 447 printf(" 提醒该会员,该会员编号为:%d ",id); 448 printf(" "); 449 system("pause"); 450 } 451 452 void adjust()//调整停车单价 453 { 454 int p; 455 printf(" 请输入调整后的停车价格:"); 456 scanf("%d",&p); 457 fflush(stdin); 458 price=p; 459 system("cls"); 460 printf(" ¥ "); 461 printf(" ¥¥¥ "); 462 printf(" ¥¥¥¥¥ "); 463 printf(" ¥¥¥¥¥¥¥ "); 464 printf(" ¥¥¥¥¥¥¥¥¥ "); 465 printf(" ¥¥¥¥¥¥¥¥¥¥¥ "); 466 printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥ "); 467 printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ "); 468 printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ "); 469 printf(" 调整成功! 调整后的价格为每小时%d元! ",p); 470 printf(" "); 471 system("pause"); 472 } 473 474 void backup()//数据备份 475 { 476 int i,j; 477 system("cls"); 478 printf(" 欢迎进入数据备份系统! "); 479 char ch[2]; 480 char s[25]; 481 char str[] = "copy d:\data.txt "; 482 printf(" 请输入需要备份的磁盘(如:c,d,e,f): "); 483 scanf("%s",ch); 484 fflush(stdin); 485 for(i=0; i<=10; i++)//用循环和图形模拟缓冲过程 486 { 487 system("cls"); 488 printf(" 正在进行数据备份,请稍候 …… "); 489 printf(" 已完成%d%% ",i*10); 490 for(j=0; j<i; j++) 491 printf(" ■ "); 492 for(j=i+1; j<=10; j++) 493 printf(" □ "); 494 Sleep(400); 495 } 496 printf(" "); 497 498 strcat(str,ch); 499 char str1[] = ":\data2.txt"; 500 strcat(str, str1); 501 "copy d:\1.txt e:\data2.txt"; 502 system(str); 503 printf(" "); 504 printf(" "); 505 system("pause"); 506 } 507 508 void del()//用户注销记录 509 { 510 int id; 511 printf(" 请将输入器递给会员,并提醒会员输入id:"); 512 scanf("%d",&id); 513 fflush(stdin); 514 user[id].flag=0; 515 x--; 516 system("cls"); 517 printf(" "); 518 printf(" .----------. "); 519 printf(" ( ) "); 520 printf(" _(.-. _...._ .-.) "); 521 printf(" (_)`-' __()__ `-'(_) "); 522 printf(" (....__|LESTER|__....) "); 523 printf(" | | ~~~~~~ | | "); 524 printf(" `-' `-' "); 525 printf(" 请提醒,用户已注销! "); 526 printf(" "); 527 system("pause"); 528 } 529