存包练习

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

  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

 

你可能感兴趣的:(包)