#include
#include
#include
#include
#include
typedef struct node
{
int num;
int password;
struct node *next;
}Node,*Linklist;
shuchu(Linklist LK,Linklist LM) /*输出所有箱子情况界面*/
{
Linklist p,q;
p=LK->next;
q=LM->next;
while(p) /*空箱*/
{
printf(" ******
");
printf(" * *
");
printf(" * *
");
printf(" ******
");
if(p->password) printf(" 红色
");
else printf(" 蓝色
");
p=p->next;
}
while(q) /*满箱*/
{
printf(" ******
");
printf(" * *
");
printf(" * *
");
printf(" ******
");
if(q->password) printf(" 红色
");
else printf(" 蓝色
");
q=q->next;
}
}
cunbao(Linklist LK,Linklist LM) /*存包*/
{
Linklist p,q;
srand((unsigned)time(NULL));
q=LM->next;
p=LK->next;
if(!p) /*判断箱子是否已空*/
{
printf("箱满,请稍侯!
");
return;
}
while(p->password=rand()�0000 100000) /*生成密码*/
{
if(!q) break;
q=LM->next;
while((p->password!=q->password))
{
q=q->next;
if(!q) break;
}
if(!q) break;
}
q=LM; /*空箱满想的链接*/
while(q->next)
{
q=q->next;
}
LK->next=p->next;
q->next=p;
p->next=NULL;
shuchu(LK,LM);
printf(" 申请成功!您的密码是:");
printf("%d
",p->password);
}
qubao(Linklist LK,Linklist LM) /*取包*/
{
Linklist p,q,t;
int n;
q=LM->next;
t=LM;
p=LK;
printf("请输入您的密码:
");
scanf("%d",&n);
while(q&&(q->password!=n))
{
q=q->next;
t=t->next;
}
if(!q) /*判断密码是否正确*/
{
printf("您输入的密码错误!
");
return;
}
q->password=0;
t->next=q->next;
q->next=LK->next;
LK->next=q;
shuchu(LK,LM);
}
void main()
{
Linklist LK,LM,p,q;
int i=0,n,j;
LK=(Linklist)malloc(sizeof(Node)); /*生成链表*/
p=LK;
while(inum=0;
q->password=0;
printf(" ******
");
printf(" * *
");
printf(" * *
");
printf(" ******
");
if(q->password) printf(" 红色
");
else printf(" 蓝色
");
p->next=q;
p=p->next;
i ;
}
p->next=NULL;
LM=(Linklist)malloc(sizeof(Node));
LM->next=NULL;
do /*主界面*/
{
printf(" ★==尊敬的客户,您好!==★
");
printf(" ==========================================================
");
printf(" 1,存包
");
printf(" 2,取包
");
printf(" 0,退出
");
printf(" ==========================================================
");
printf("请输入序号执行您的操作:
");
scanf("%d",&n);
switch(n)
{
case 1:cunbao(LK,LM); break;
case 2:qubao(LK,LM); break;
case 0:break;
}
}while(n);
}。
全部