最终项目 停车场管理系统

  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\n",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("\n\n\n\n\n\n\t\t\t        感谢您的使用!");
 69                      Sleep(200);
 70                      for(j=0; j<=1; j++)
 71                      {
 72                          printf("                            \n");
 73                          printf("                            \n");
 74                          printf("                            \n");
 75                          printf("                            \n");
 76                          printf("                            \n");
 77                          printf("\t\t          ★★★★★            ★★★★★\n");
 78                          printf("\t\t        ☆☆       ☆☆      ☆☆       ☆☆\n");
 79                          printf("\t\t      ★★           ★★  ★★           ★★\n");
 80                          printf("\t\t     ☆☆                ☆                ☆☆\n");
 81                          printf("\t\t     ★★                                  ★★\n");
 82                          printf("\t\t      ☆☆                                ☆☆\n");
 83                          printf("\t\t       ★★         Thank you!          ★★\n");
 84                          printf("\t\t         ☆☆                          ☆☆\n");
 85                          printf("\t\t           ★★                      ★★\n");
 86                          printf("\t\t             ☆☆                  ☆☆\n");
 87                          printf("\t\t               ★★              ★★\n");
 88                          printf("\t\t                 ☆☆          ☆☆\n");
 89                          printf("\t\t                   ★★      ★★\n");
 90                          printf("\t\t                     ☆☆  ☆☆\n");
 91                          printf("\t\t                        ★★\n");
 92                          Sleep(500);
 93                          system("cls");
 94                          printf("\n\n\n\n\n");
 95                          printf("\t\t             ★★★             ★★★\n");
 96                          printf("\t\t          ☆☆   ☆☆        ☆☆    ☆☆\n");
 97                          printf("\t\t        ★★        ★★  ★★         ★★\n");
 98                          printf("\t\t       ☆☆             ☆              ☆☆\n");
 99                          printf("\t\t        ★★                           ★★\n");
100                          printf("\t\t         ☆☆         Thank you!      ☆☆\n");
101                          printf("\t\t           ★★                      ★★\n");
102                          printf("\t\t             ☆☆                  ☆☆\n");
103                          printf("\t\t               ★★              ★★\n");
104                          printf("\t\t                 ☆☆          ☆☆\n");
105                          printf("\t\t                   ★★      ★★\n");
106                          printf("\t\t                     ☆☆  ☆☆\n");
107                          printf("\t\t                        ★★\n");
108                          Sleep(400);
109                          system("cls");
110  
111                          printf("                            \n");
112                          printf("                            \n");
113                          printf("                            \n");
114                          printf("                            \n");
115                          printf("                            \n");
116                          printf("\t\t\t      ★★★    ★★★\n");
117                          printf("\t\t\t   ☆☆      ☆      ☆☆\n");
118                          printf("\t\t\t ★★                  ★★\n");
119                          printf("\t\t\t  ☆☆                 ☆☆\n");
120                          printf("\t\t\t   ★★              ★★\n");
121                          printf("\t\t\t     ☆☆          ☆☆\n");
122                          printf("\t\t\t       ★★      ★★\n");
123                          printf("\t\t\t         ☆☆  ☆☆\n");
124                          printf("\t\t\t            ★★\n");
125                          Sleep(400);
126                          system("cls");
127  
128                          printf("                            \n");
129                          printf("                            \n");
130                          printf("                            \n");
131                          printf("                            \n");
132                          printf("                            \n");
133                          printf("                            \n");
134                          printf("\t\t        ★ ☆  ☆ ★\n");
135                          printf("\t\t      ☆     ★     ☆\n");
136                          printf("\t\t       ★          ★\n");
137                          printf("\t\t         ☆      ☆ \n");
138                          printf("\t\t           ★  ★\n");
139                          printf("\t\t             ☆\n");
140                          Sleep(400);
141                          system("cls");
142  
143                          printf("                            \n");
144                          printf("                            \n");
145                          printf("                            \n");
146                          printf("                            \n");
147                          printf("                            \n");
148                          printf("                             \n");
149                          printf("\t\t    ★★ ★★  ★★ ★★\n");
150                      printf("\t\t  ☆☆       ☆       ☆☆\n");
151                      printf("\t\t ★★                  ★★\n");
152                      printf("\t\t  ☆☆   Thank you!    ☆☆\n");
153                      printf("\t\t   ★★              ★★\n");
154                      printf("\t\t     ☆☆          ☆☆\n");
155                      printf("\t\t       ★★      ★★\n");
156                      printf("\t\t         ☆☆  ☆☆\n");
157                      printf("\t\t            ★★\n");
158                          Sleep(400);
159                          system("cls");
160                      }
161  
162                      printf("\n\n\n\n\n\n\n\n\n\t\t        感谢您的使用!\n\n\n");
163  
164                      printf("\t\t    ★★ ★★  ★★ ★★\n");
165                      printf("\t\t  ☆☆       ☆       ☆☆\n");
166                      printf("\t\t ★★                  ★★\n");
167                      printf("\t\t  ☆☆    Thank you!   ☆☆\n");
168                      printf("\t\t   ★★              ★★\n");
169                      printf("\t\t     ☆☆          ☆☆\n");
170                      printf("\t\t       ★★      ★★\n");
171                      printf("\t\t         ☆☆  ☆☆\n");
172                      printf("\t\t            ★★\n");
173                      printf("\n\n\t\t本软件项目组成员:徐* 吴**\n\n\t\t\t\t  冯** 王**");
174                      printf("\n\n\t\t");
175                      exit(0);
176                  }
177  
178                  break;//退出系统
179              default:{
180                  system("cls");
181                  printf("\n\n\n\n\n\t\t\t输入错误!\n\n\t\t\t");
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("\t\t   ┌───────────────┐\n");
195      printf("\t\t   │       尊敬的管理员!         │\n");
196      printf("\t\t   │欢迎您使用小型停车场管理系统!│\n");
197      printf("\t\t   └───────────────┘\n");
198      printf("\t\t┌──────────────────┐\n");
199      for(j=0;j<N/9;j++)
200      {
201          printf("\t\t│");
202          for(i=j*9;i<j*9+9;i++)
203          {
204              if(place[i]==-1) printf("");
205              else printf("");
206          }
207          printf("│\n");
208  
209          printf("\t\t│");
210          for(i=j*9;i<j*9+9;i++)
211          {
212              printf(" %2d ",i+1);
213          }
214          printf("│\n");
215      }
216      printf("\t\t└──────────────────┘\n");
217      printf("\t\t┌──────────────────┐\n");
218      printf("\t\t│       当前还剩余%d个车位!          │\n",N-count);
219      printf("\t\t│【1】停车记录    【2】取车记录      │\n");
220      printf("\t\t│【3】现金充值    【4】显示余额      │\n");
221      printf("\t\t│【5】盈利查询    【6】用户注册记录  │\n");
222      printf("\t\t│【7】调整停车单价【8】数据备份      │\n");
223      printf("\t\t│【9】用户注销记录【0】退出          │\n");
224      printf("\t\t└──────────────────┘\n");
225      printf("\n\n\t\t按相应数字键,回车确认: ");
226  }
227  
228  void parking()//停车记录
229  {
230      int id,i,f1,f2=0,a;
231      if(count==N)
232      {
233          printf("当前车位已满!\n");  return;
234      }
235      while(1)
236      {
237          f1=0;
238          while(1)
239          {
240              printf("\n\t\t请将输入器递给会员,并提醒会员输入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("\n\n\n\n\n\n\n\n\n\n\n\t\t\t没有该id。\n\n\t\t\t如果不是会员,请提醒车主先注册!\n\n\t\t\t输入'1'重新输入,输入'0'退出!\n\n");
251                  printf("\t\t\t请输入:");
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("\n\t\t输入错误!请提醒会员重新输入\n");
265                  f1=1;
266                  break;
267              }
268          }
269          if(f1)
270              continue;
271          if(user[id].money<=0)
272          {
273              system("cls");
274              printf("\n\n\n\n\n\t\t\t余额不足,请提醒会员充值!\n\n\n\t\t\t");
275              system("pause");
276          }
277          for(i=0; i<N; i++)
278          {
279              if(place[i]==-1)
280              {
281                  printf("\n\t\t请提醒该会员此车可停在%d号车位!\n\n",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("\t\t");
295      system("pause");
296  }
297  
298  void take()//取车记录
299  {
300      int id,i,t,a;
301      while(1)
302      {
303          printf("\n\t\t请将输入器递给会员,并提醒会员输入id:");
304          scanf("%d",&id);
305          fflush(stdin);
306          if(id>=1&&id<=y&&user[id].flag)
307              break;
308          else
309          {
310              printf("\n\t\t没有该id。\n\n\t\t如果不是会员,请提醒车主先注册!\n\n\t\t输入'1'重新输入,输入'0'退出!\n\n");
311              printf("\t\t请输入:");
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("\n\n\n\n\n\n\n\n\n\t\t该会员没有存车!\n");
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("\n\t\t该会员车已离开!\n\n\t\t%d车位已空!\n",i+1);
345          break;
346      }
347      printf("\n\t\t");
348      system("pause");
349  }
350  
351  void amoney()//现金充值
352  {
353      int id,x;
354      printf("\n\t\t请将输入器递给会员,并提醒会员输入id: ");
355      scanf("%d",&id);
356      fflush(stdin);
357      if(user[id].flag)
358      {
359          printf("\n\t\t请提醒会员,输入充值的钱数: ");
360          scanf("%d",&x);
361          fflush(stdin);
362          user[id].money+=x;
363          printf("\n\t\t");
364          system("pause");
365          system("cls");
366          printf("\n\n\t\t                ¥\n");
367            printf("\t\t              ¥¥¥\n");
368            printf("\t\t            ¥¥¥¥¥\n");
369            printf("\t\t          ¥¥¥¥¥¥¥\n");
370            printf("\t\t        ¥¥¥¥¥¥¥¥¥\n");
371            printf("\t\t      ¥¥¥¥¥¥¥¥¥¥¥\n");
372            printf("\t\t    ¥¥¥¥¥¥¥¥¥¥¥¥¥\n");
373            printf("\t\t  ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n");
374            printf("\t\t¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n");
375          printf("\n\n\t\t充值成功!\n\n\t\t请提醒该会员的余额为:%d\n\n",user[id].money);
376          printf("\n\t\t");
377          system("pause");
378      }
379  }
380  
381  void show()//显示会员信息
382  {
383      int id;
384      printf("\n\t\t请将输入器递给会员,并提醒会员输入id:");
385      scanf("%d",&id);
386      fflush(stdin);
387      if(user[id].flag)
388      {
389          system("cls");
390           printf("\n\n\t\t                ¥\n");
391            printf("\t\t              ¥¥¥\n");
392            printf("\t\t            ¥¥¥¥¥\n");
393            printf("\t\t          ¥¥¥¥¥¥¥\n");
394            printf("\t\t        ¥¥¥¥¥¥¥¥¥\n");
395            printf("\t\t      ¥¥¥¥¥¥¥¥¥¥¥\n");
396            printf("\t\t    ¥¥¥¥¥¥¥¥¥¥¥¥¥\n");
397            printf("\t\t  ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n");
398            printf("\t\t¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n");
399          printf("\n\n\t\t请提示该会员信息。\n\n");
400          printf("\t\tid  姓名   电话        车牌号  余额\n\n");
401          printf("\t\t%d   %s   %s   %s   %d\n",user[id].id,user[id].name,user[id].tele,user[id].num,user[id].money);
402          printf("\n\t\t");
403          system("pause");
404      }
405  }
406  
407  void profit()//盈利查询
408  {
409      printf("\n\t\t总盈利额为:%.0lf元\n\n",sum);
410      printf("\t\t");
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("\n\t\t请递给车主输入器,并提醒车主填写基本信息!\n");
425      printf("\n\t\t姓名:\t"); scanf("%s",user[id].name);
426      fflush(stdin);
427      printf("\n\t\t电话:\t"); scanf("%s",user[id].tele);
428      fflush(stdin);
429      printf("\n\t\t车牌号:\t"); 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\n",user[id].id,user[id].name,user[id].tele,user[id].num,user[id].money);
435      fclose(fp);
436      system("cls");
437  
438      printf("\n\n\t\t\n");
439      printf("\t\t\t      .----------. \n");
440      printf("\t\t\t     (            )\n");
441      printf("\t\t\t   _(.-. _...._ .-.)\n");
442      printf("\t\t\t  (_)`-' __()__ `-'(_)\n");
443      printf("\t\t\t (....__|LESTER|__....)\n");
444      printf("\t\t\t  | |    ~~~~~~    | |\n");
445      printf("\t\t\t  `-'              `-'\n");
446      printf("\n\n\n\t\t\t\t注册成功!\n\n");
447      printf("\t\t\t提醒该会员,该会员编号为:%d\n",id);
448      printf("\n\t\t\t");
449      system("pause");
450  }
451  
452  void adjust()//调整停车单价
453  {
454      int p;
455      printf("\n\t\t请输入调整后的停车价格:");
456      scanf("%d",&p);
457      fflush(stdin);
458      price=p;
459      system("cls");
460            printf("\n\n\t\t                ¥\n");
461            printf("\t\t              ¥¥¥\n");
462            printf("\t\t            ¥¥¥¥¥\n");
463            printf("\t\t          ¥¥¥¥¥¥¥\n");
464            printf("\t\t        ¥¥¥¥¥¥¥¥¥\n");
465            printf("\t\t      ¥¥¥¥¥¥¥¥¥¥¥\n");
466            printf("\t\t    ¥¥¥¥¥¥¥¥¥¥¥¥¥\n");
467            printf("\t\t  ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n");
468            printf("\t\t¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n");
469            printf("\n\n\t\t\t调整成功!\n\n\t\t调整后的价格为每小时%d元!\n",p);
470            printf("\n\t\t");
471      system("pause");
472  }
473  
474  void backup()//数据备份
475  {
476      int i,j;
477      system("cls");
478      printf("\n\n\t\t欢迎进入数据备份系统!\n\n");
479      char ch[2];
480      char s[25];
481      char str[] = "copy d:\\data.txt ";
482      printf("\n\t\t请输入需要备份的磁盘(如:c,d,e,f):  ");
483      scanf("%s",ch);
484      fflush(stdin);
485      for(i=0; i<=10; i++)//用循环和图形模拟缓冲过程
486      {
487          system("cls");
488          printf("\n\n\n\n\n\n\n\n\n\n\t\t正在进行数据备份,请稍候 ……\n\n");
489          printf("\t\t\t  已完成%d%%\n\n\t\t",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("\n\n\n\t\t");
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("\n\t\t");
504      printf("\t\t");
505      system("pause");
506  }
507  
508  void del()//用户注销记录
509  {
510      int id;
511      printf("\n\t\t请将输入器递给会员,并提醒会员输入id:");
512      scanf("%d",&id);
513      fflush(stdin);
514      user[id].flag=0;
515      x--;
516      system("cls");
517      printf("\n\n\t\t\n");
518      printf("\t\t\t      .----------. \n");
519      printf("\t\t\t     (            )\n");
520      printf("\t\t\t   _(.-. _...._ .-.)\n");
521      printf("\t\t\t  (_)`-' __()__ `-'(_)\n");
522      printf("\t\t\t (....__|LESTER|__....)\n");
523      printf("\t\t\t  | |    ~~~~~~    | |\n");
524      printf("\t\t\t  `-'              `-'\n");
525      printf("\n\n\n\t\t\t请提醒,用户已注销!\n\n");
526      printf("\t\t\t");
527      system("pause");
528  }
529  

 

posted @ 2013-07-19 15:24  水门  阅读(655)  评论(0编辑  收藏  举报