存包练习

要求:根据提示存取包裹,并可随时退回主菜单。

  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 #include<time.h>
  4 #define N 28
  5 void menu();
  6 void insert();
  7 void del();
  8 void password(int id);
  9 int box[N]={0},sum=0;
 10 int main()
 11 {
 12     int x;
 13     while(1)
 14     {
 15         menu();
 16         scanf("%d",&x);
 17         fflush(stdin);//清理内存
 18         switch(x)
 19         {
 20         case 1:insert();break;
 21         case 2:del();break;
 22         case 0:exit(0);
 23         }
 24     }
 25     return 0;    
 26 }
 27 void del()
 28 {
 29     int id,pa;
 30     while(1)
 31     {
 32         printf("取箱号:");
 33         scanf("%d",&id);
 34         fflush(stdin);
 35         if(id==0) return;
 36         if(box[id-1]==0) printf("箱子为空,重找!\n");
 37         else break;
 38     }
 39     while(1)
 40     {
 41         printf("您的密码:");
 42         scanf("%d",&pa);
 43         fflush(stdin);
 44         if(pa==0) return;
 45         if(pa!=box[id-1]) printf("密码错误,重输,必要时联系管理员!\n"); 
 46         else break;
 47     }
 48     box[id-1]=0;
 49     sum--;
 50 }
 51 void insert()
 52 {
 53     int id;
 54     srand((unsigned)time(NULL));
 55     while(1)
 56     {
 57         printf("箱号:");
 58         scanf("%d",&id);
 59         fflush(stdin);
 60         if(id==0) return;
 61         //查找id是否已存在
 62         if(box[id-1]!=0) printf("该箱已满,重选!\n");
 63         else break;
 64     }
 65     sum++;
 66     do
 67     {
 68         box[id-1]=rand();
 69     }while(box[id-1]<10000);//得到5位密码
 70     password(id);
 71     printf("密码:%d\n",box[id-1]);
 72     system("pause");
 73 }
 74 void password(int id)
 75 {
 76     FILE *fp;
 77     //取当前系统时间
 78     time_t t=time(NULL);
 79     char *time=ctime(&t);
 80     fp=fopen("password.txt","a");
 81     fprintf(fp,"id=%d,password=%d,time=%s",id,box[id-1],time);
 82     fclose(fp);
 83 }
 84 void menu()
 85 {
 86     system("cls");
 87     int i,j,count=0;
 88     printf("\t\t\t┌──────────────┐\n");
 89     printf("\t\t\t│      超市存=★=包系统      │\n");
 90     printf("\t\t\t├──────────────┤\n");
 91     for(j=0;j<N/7;j++)
 92     {
 93         //箱子
 94         printf("\t\t\t│");
 95         for(i=j*7;i<j*7+7;i++)
 96         {    
 97             if(box[i]==0) printf("");
 98             else printf("");
 99         }
100         printf("│\n");
101         //箱号
102         printf("\t\t\t│");
103         for(i=j*7;i<j*7+7;i++)
104         {
105             printf(" %2d ",i+1);
106         }
107         printf("│\n");
108     }
109     printf("\t\t\t├──────────────┤\n");
110     printf("\t\t\t│【1】存包【2】取包【0】退出 │\n");
111     printf("\t\t\t│     请按照相应提示操作     │\n");
112     printf("\t\t\t│         并记住密码         │\n");
113     printf("\t\t\t│    忘记密码与管理员联系    │\n");
114     printf("\t\t\t└──────────────┘\n");
115     printf("                                  已经存包:%d\n",sum);
116     printf("                                  剩余数:%d\n",28-sum);
117     printf("按相应数字键,回车确认:");
118 }
View Code

 

posted @ 2013-07-16 17:59  狂盗一枝梅  阅读(232)  评论(0编辑  收藏  举报