最终项目 停车场管理系统

  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  
原文地址:https://www.cnblogs.com/bfshm/p/3200629.html