在以下代码里问题如下:
1.如何将我需要的m2和N调用出来,将它转化成可以全局可以使用的变量。2.如何将登录系统完善。3.如何检测注册途中用户是否注册重复并且注册好可以返回登录界面。

#include<iostream>
#include<string.h>
#include<conio.h>//getch()函数的头文件
using namespace std;
struct BCZ
{
char zhanghao[100],mima[100],mima2[100],mima4[100],zhanghao2[100],mima5[100];
char name[100],ID[100];
int jifen,RZ;//积分和认证标识
}BCZ[30];// 形成BCD结构体
void root1MainMenu(){
cout << "\t\t\t\t ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";
cout << "\t\t\t\t ┃ 1.注 册 2.登 录 0.退 出 ┃\t\n";
cout << "\t\t\t\t ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n";
cout << "\t {提示}:请选择您需要的服务项目:";
}
void zhanghu()
{
}
//思路,全部转移到main函数
void N1N2()
{
N1N2:
char mima[100],ch,ch2,mima3[100];
int i = 0;
cout<<"请输入您的密码:";
while (1)
{
ch=getch();//无回显的输入
mima[i++] = ch;
if (ch=='\r')//getch()函数如果读到回车符号返回'/r'
{
mima[i] = '\0';
break;
}
putchar('*');
}
int j = 0;
cout<<"\n请再次输入您的密码:";
while (1)
{
ch2=getch();//无回显的输入
mima3[j++] = ch2;
if (ch2=='\r')//getch()函数如果读到回车符号返回'/r'
{
mima3[j] = '\0';
break;
}
putchar('*');
}
if(strcmp(mima,mima3)==0)
{
char*N;
N=mima3;
cout<<N;//测试待删除
cout <<endl <<"\t\t\t\t\t\t********恭喜您!注册成功!********\n";
cout<<"\n\t\t\t\t\t\t\t按1返回用户界面\n" ;
}
else
{
cout<<"\n\t\t\t\t\t\t两次密码不一致!请重新输入!\n";goto N1N2;
}
}
void Xm()
{
Xm: cout<<"请输入您的密码:";
int m;
int m1;
char*m2;
cin>>BCZ[m].mima2;
cout<<"请再次输入您的密码:";
cin>>BCZ[m1].mima4;
if(strcmp(BCZ[m].mima2,BCZ[m1].mima4)==0)
{
m2=BCZ[m1].mima4;
cout<<m2;//测试待删除
cout <<endl <<"\t\t\t\t\t\t********恭喜您!注册成功!********\n";
cout<<"\n\t\t\t\t\t\t\t按1返回用户界面\n" ;
}
else
{
cout<<"\n\t\t\t\t\t\t两次密码不一致!请重新输入!\n";goto Xm;
}
}
void mima()
{
char mima[100],ch,ch2,mima3[100];
int i = 0;
int j = 0;
cout << "\t\t\t\t\t\t请输入密码的方式:" << endl;
cout << "\t\t\t\t ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";
cout << "\t\t\t\t ┃ 1.隐藏密码 2.显示密码 ┃\t\n";
cout << "\t\t\t\t ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n";
cout << "\t {提示}:请选择您需要的服务项目:";
int M;
cin>>M;
switch(M)
{
case 1:
N1N2();
break;
case 2:
Xm();
break;
}
}
void ycdl()//隐藏密码登录
{
char ch3,mima6[100],*lu;
int l=0;
cout<<"\n请再次输入您的密码:";
while (1)
{
ch3=getch();//无回显的输入
mima6[l++] = ch3;
if (ch3=='\r')//getch()函数如果读到回车符号返回'/r'
{
mima6[l] = '\0';
break;
}
putchar('*');
}
lu=mima6;
cout<<lu;//测试待删除
}
/*void denglu()
{
int d,e,n;
//cout<<"请输入您的密码:";
//cin>>BCZ[e].mima5;
char*zhanghao2=BCZ[d].zhanghao2;
char*mima5=BCZ[e].mima5;
cout<<"请选择隐藏密码或显示密码登录:\n\t1.隐藏密码2.显示密码";
cin>>n;
switch(n)
{
case 1:
ycdl();
cout<<"\n请输入用户名:\n";
cin>>BCZ[d].zhanghao2;
if(strcmp(BCZ[X].zhanghao,BCZ[d].zhanghao2)==0)
{
cout:"666";
}
case 2:exit(0);
}
//if(char*d==char*h&&)
}*/
int main()
{
cout<<"\t\t\t\t\t 《欢迎使用燕双鹰百词斩程序》"<<endl;
Root: cout<<"\t\t\t\t\t\t请选择您所需要的登录的方式"<<endl;
cout << "\t\t\t\t ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";
cout << "\t\t\t\t ┃ 1.普通用户 2.程序管理员 ┃\t\n";
cout << "\t\t\t\t ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n";
cout << "\t {提示}:请选择您需要的服务项目:";
int root;
cout<<"\t\t\t\t\t\t\t\t\t\t\t\t ";
cin>>root;
if(0<=root&&root<=2)
{
switch(root)
{
case 0:exit(0);
R1: case 1:cout<<"\t\t\t\t\t\t 普通用户登录界面"<<endl;//需修正
root1MainMenu();
int R1;
cin>>R1;
if(0<=R1&&R1<=2)
{
switch(R1)
{
case 1:cout<<"注册部分补充"<<endl;
int X;
cout<<"\t\t\t\t\t\t请输入您注册的账户名:";
cin>>BCZ[X].zhanghao;
mima();
break;
case 2:
char*mima5;
cout<<"登录部分补充";
//denglu();
int d,e,n;
//cout<<"请输入您注册的账户名:";
cout<<"\n请输入用户名:\n";
cin>>BCZ[d].zhanghao2;
//cout<<"请输入您的密码:"
cout<<"请输入密码:";
cin>>BCZ[e].mima5;
mima5=BCZ[e].mima5;
if(strcmp(BCZ[d].zhanghao2,BCZ[X].zhanghao)==0)
{
cout<<"用户";
if(strcmp(mima5,m2)==0||strcmp(mima5,N)==0)
{
cout<<"登录成功";
}
}
/*char*zhanghao2=BCZ[d].zhanghao2;
char*mima5=BCZ[e].mima5;
/*
cout<<"请选择隐藏密码或显示密码登录:\n\t1.隐藏密码2.显示密码";
cin>>n;
switch(n)
{
case 1:
ycdl();
if(strcmp(BCZ[X].zhanghao,BCZ[d].zhanghao2)==0)
{
cout:"666";
}
case 2:exit(0);
}*/
break;
case 0:exit(0);
}
}
else
cout<<"错误!"<<endl<<"请选择:\n0.结束程序\n1.返回普通用户登录界面\n";
int False;
cin>>False;
switch(False)
{
case 0:exit(0);
case 1:goto R1;
}
break;
case 2:cout<<"程序管理员界面";//需修正
}
}
else
cout<<"错误!"<<endl<<"请选择:\n0.结束程序\n1.返回登录方式选择界面\n";
int False;
cin>>False;
switch(False)
{
case 0:exit(0);
case 1:goto Root;
}
return 0;
}