关于读取自己设置的密码的问题

Mr_Leslie 2016-05-07 11:34:45
大家好,我在设计一个超市存包柜的程序,想做到在存包的时候输入一个一位数的密码,然后在取包的时候输入这个密码,如果密码正确则显示“取包成功”,不正确则显示“密码错误”。下面是我的程序,但运行后取包时都是密码错误。我想应该是之前设置的密没有保存或者是取包的时候没有读取。所以我想问问,怎样能做到输入一个密码然后能再次输入时可以读取,达到我的最初构想。
#include<stdio.h>

int code;

typedef struct box
{
int code;
} Box;

void cun(int n);
void qu(int n);

main(int n)
{

int menu,x,y;
printf("************************\n");
printf("1. 存包 \n");
printf("2. 取包 \n");
printf("************************\n");

printf("请选择您要执行的操作:\n");
scanf("%d", &menu);

switch(menu)
{
case 1: cun(n);break;
case 2: qu(n);break;
case 0: break;
}
return 0;
}


void cun(int n)
{
Box B;

printf("请设置您的一位数密码:");
scanf("%d",&B.code);
printf("请放入您的物品\n");

}

void qu(int n)
{
Box B;
int i;
printf("请输入您之前设置的一位数密码:");
scanf("%d",&i);

if(i==B.code)
{
printf("门已打开,请拿好您的物品,欢迎下次光临!\n");
}
else if (i != B.code)
printf("您输入的密码有错,请重新输入\n");
}
...全文
64 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Leslie 2016-05-07
  • 打赏
  • 举报
回复
引用 1 楼 qq423399099 的回复:
1.楼主这样在cun和qu函数里都写了Box B;这两个B完全没有关系,肯定是对不上的 一种方式是在全局声明一个Box B;或者通过传参的方式分别传入cun和qu函数 2.可以加入一个while循环来实现 3.如果楼主想程序即使重新打开也能记住上次的结果,那么可以将code保存在文件里

#include<stdio.h>

int code;

typedef struct box 
{
	int code;
} Box;

void cun(int n);
void qu(int n);

Box B;

int main(int n)
{
	while(1)
	{
		int menu,x,y;
		printf("************************\n");
		printf("1.      存包         \n");
		printf("2.      取包         \n");
		printf("3.      退出         \n");
		printf("************************\n");

		printf("请选择您要执行的操作:\n");
		scanf("%d", &menu); 

		switch(menu)
		{
		case 1: cun(n);break;
		case 2: qu(n);break;
		case 3: return 0;
		case 0: break;
		}
	}

} 


void cun(int n)
{
	//Box B;

	printf("请设置您的一位数密码:");
	scanf("%d",&B.code); 
	printf("请放入您的物品\n"); 

}	   	

void qu(int n)
{
	//Box B;
	int i;
	printf("请输入您之前设置的一位数密码:");
	scanf("%d",&i);

	if(i==B.code)
	{
		printf("门已打开,请拿好您的物品,欢迎下次光临!\n");
	}
	else if (i != B.code)
		printf("您输入的密码有错,请重新输入\n"); 
}	   

嗯嗯,谢谢你。看来自己确实还是有些东西没搞明白。我再去好好看看关于结构体和while 的使用。真的是天感谢你了!
小灸舞 2016-05-07
  • 打赏
  • 举报
回复
1.楼主这样在cun和qu函数里都写了Box B;这两个B完全没有关系,肯定是对不上的 一种方式是在全局声明一个Box B;或者通过传参的方式分别传入cun和qu函数 2.可以加入一个while循环来实现 3.如果楼主想程序即使重新打开也能记住上次的结果,那么可以将code保存在文件里

#include<stdio.h>

int code;

typedef struct box 
{
	int code;
} Box;

void cun(int n);
void qu(int n);

Box B;

int main(int n)
{
	while(1)
	{
		int menu,x,y;
		printf("************************\n");
		printf("1.      存包         \n");
		printf("2.      取包         \n");
		printf("3.      退出         \n");
		printf("************************\n");

		printf("请选择您要执行的操作:\n");
		scanf("%d", &menu); 

		switch(menu)
		{
		case 1: cun(n);break;
		case 2: qu(n);break;
		case 3: return 0;
		case 0: break;
		}
	}

} 


void cun(int n)
{
	//Box B;

	printf("请设置您的一位数密码:");
	scanf("%d",&B.code); 
	printf("请放入您的物品\n"); 

}	   	

void qu(int n)
{
	//Box B;
	int i;
	printf("请输入您之前设置的一位数密码:");
	scanf("%d",&i);

	if(i==B.code)
	{
		printf("门已打开,请拿好您的物品,欢迎下次光临!\n");
	}
	else if (i != B.code)
		printf("您输入的密码有错,请重新输入\n"); 
}	   

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧