📄 man.cpp
字号:
#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<iomanip.h>
#include "man.h"
struct huiyuan
{
char xingming[15]; char xingbie[5]; char mima[20];
char shuoming[100]; char wenti[100]; char daan[100];
char email[20];
int dengji; int jifen;
}; ///定义结构体作为存储媒介///
struct huiyuan hy;
/////man 类的实现//////////////////
int man::yanzhengxm(char *xm) ///////////验证名字是否存在//////////
{ int k;
ifstream inf;
inf.open("e:\\实习报告\\会员区域\\普通会员.txt",ios::in);
if(!inf) cout<<"找不到文件,请确认文件是否正确!!!!!\n";
while(inf>>hy.xingming>>hy.xingbie>>hy.mima>>hy.shuoming>>hy.email>>hy.dengji>>hy.jifen>>hy.wenti>>hy.daan)
{
if(!strcmp(xm,hy.xingming))
{ k=2;
return 1;
}
}
inf.close();
return 0;
}
int man::yanzhengmima(char *mm) ///////////////////验证密码是否合法/////////
{
int i,k;
if(strlen(mm)<6)
{ cout<<"你输入的密码的太短了,必须大于等于6个字符。\n";
return 0;
}
if(strlen(mm)>20)
{cout<<"你输入的密码的太长了,必须大于等于6个字符。\n";
return 0;
}
for(i=0;i<strlen(mm);i++)
{ if((mm[i]>=48&&mm[i]<=57)||(mm[i]>=65&&mm[i]<=90)||(mm[i]>=97&&mm[i]<=122))
k=1;
}
if(k!=1)
{cout<<"你输入的密码不符合标准,请输入6—20个数字或字母";
return 0;
}
}
int man::yanzhengemail(char *em) /////验证Email是否合法////////////
{
char a[20];
int i,j=0,k,p;
for(i=0;i<strlen(em);i++)
if(em[i]=='@')
{ k=i; p=4;}
if(p==4)
{
for(i=k;i<strlen(em);i++)
{a[j]=em[i] ; j++; }
a[j]='\0';
if(strcmp(a,"@126.com")&&strcmp(a,"@163.com")&&strcmp(a,"@sian.com")&&strcmp(a,"@yahho.com"))
{ cout<<"你的Email不是合法的,请正确输入!!\n";return 1; }
else return 0;
}
else
{
cout<<"你的Email不是合法的,请正确输入!!\n";
return 1;
}
}
void man::shuchudj(int dj) ////输出等级//////////
{
char a[10],b[10],c[10],d[10],e[10],f[10],g[10],h[10],i[10],j[15];
strcpy(a,"初级钻石"); strcpy(b,"中级钻石"); strcpy(c,"高级钻石");
strcpy(d,"初级翡翠"); strcpy(e,"中级翡翠"); strcpy(f,"高级翡翠");
strcpy(g,"初级明珠"); strcpy(h,"中级明珠"); strcpy(i,"高级明珠");
strcpy(j,"等级终结者");
switch(dj)
{
case 1: cout<<a; break;
case 2: cout<<b; break;
case 3: cout<<c; break;
case 4: cout<<d;break;
case 5: cout<<e; break;
case 6: cout<<f; break;
case 7: cout<<g; break;
case 8: cout<<h; break;
case 9: cout<<i; break;
case 10: cout<<j; break;
}
}
int man::dengjizhh(int dj,int jf) /////////////////等级与积分转化///////////
{
int m;
int k=5;
m=(dj+1)*(dj+1);
while(jf>=m)
{
dj++;
m=((dj+1)*k);
}
return dj;
}
void man::wjcopy(char iwj[],char owj[]) ////////文件整理除去“####”和复制文件名字/////
{
fstream fi,fo;
fi.open(iwj,ios::in);
fo.open(owj,ios::out);
if(!fi||!fo)
cout<<"找不到文件,请确认文件是否正确!!!!!\n";
while(fi>>hy.xingming>>hy.xingbie>>hy.mima>>hy.shuoming>>hy.email>>hy.dengji>>hy.jifen>>hy.wenti>>hy.daan)
{
if(strcmp(hy.xingming,"####"))
{
fo<<setiosflags(ios::left)
<<setw(15)<<hy.xingming
<<setw(5)<<hy.xingbie
<<setw(25)<<hy.mima
<<setw(100)<<hy.shuoming
<<setw(20)<<hy.email
<<setw(5)<<hy.dengji
<<setw(5)<<hy.jifen
<<setw(100)<<hy.wenti<<setw(100)<<hy.daan<<endl;
}
}
fi.close(); fo.close();
}
void man::del(char *xm) /////////////////删除会员//////////
{
fstream f,fi,fo; int p,w,v=1;
f.open("e:\\实习报告\\会员区域\\普通会员.txt",ios::out|ios::in);
if(!f)
cout<<"找不到文件,请确认文件是否正确!!!!!\n";
while(f>>hy.xingming>>hy.xingbie>>hy.mima>>hy.shuoming>>hy.email>>hy.dengji>>hy.jifen>>hy.wenti>>hy.daan)
{
if(!strcmp(xm,hy.xingming))
{
w=4;
strcpy(hy.xingming,"####");
if(v==1) f.seekp(0);
else { f.seekp(p); f<<endl;}
f<<setiosflags(ios::left)
<<setw(15)<<hy.xingming
<<setw(5)<<hy.xingbie
<<setw(25)<<hy.mima
<<setw(100)<<hy.shuoming
<<setw(20)<<hy.email
<<setw(5)<<hy.dengji
<<setw(5)<<hy.jifen
<<setw(100)<<hy.wenti<<setw(100)<<hy.daan<<endl;
break;
}
v++;
p=f.tellg();
}
f.close();
if(w!=4)
cout<<"没有找到这个会员,确认你名字是否正确!!\n";
else
{
wjcopy("e:\\实习报告\\会员区域\\普通会员.txt","e:\\实习报告\\会员区域\\普通会员备用.txt") ;
wjcopy("e:\\实习报告\\会员区域\\普通会员备用.txt","e:\\实习报告\\会员区域\\普通会员.txt") ;
}
}
void man::zengjiajf(char *xm,int jf) ////////增加积分////////
{
fstream f; int v=1;
f.open("e:\\实习报告\\会员区域\\普通会员.txt",ios::app|ios::in);
if(!f)
cout<<"找不到文件,请确认文件是否正确!!!!!\n";
while(f>>hy.xingming>>hy.xingbie>>hy.mima>>hy.shuoming>>hy.email>>hy.dengji>>hy.jifen>>hy.wenti>>hy.daan)
{
if(!strcmp(xm,hy.xingming))
{
hy.jifen+=jf;
hy.dengji=dengjizhh(hy.dengji,hy.jifen);
// if(v==1) f.seekp(0);
// else { f.seekp(p); f<<endl;}
f<<setiosflags(ios::left)
<<setw(15)<<hy.xingming
<<setw(5)<<hy.xingbie
<<setw(25)<<hy.mima
<<setw(100)<<hy.shuoming
<<setw(20)<<hy.email
<<setw(5)<<hy.dengji
<<setw(5)<<hy.jifen
<<setw(100)<<hy.wenti<<setw(100)<<hy.daan<<endl;
cout<<hy.xingming<<",你是积分增加了"<<jf<<"分。\n";
del(xm);
break;
}
// v++;
// p=f.tellg();
}
f.close();
}
void man::shenqing() /////////申请会员////////////
{
char a[20],b[20];
int i,k;
ofstream outf;
cout<<" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n"
<<" && &&\n"
<<" && 欢迎成为逍遥驻地的合法成员 &&\n"
<<" && &&\n"
<<" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n";
cout<<" 以下内容必须填写\n";
cout<<" 请填写你要申请的名字: ";
cin>>xingming;
while(yanzhengxm(xingming))
{ cout<<"此会员名字已经存在,请换一个,谢谢! ! 1\n";
cout<<"请重新输入:";
cin>>xingming;
}
cout<<"恭喜你! ! ! 这个名字还没有被占用。\n";
cout<<"请填写你的性别(男/女):";
cin>>xingbie;
while(strcmp(xingbie,"男")&&strcmp(xingbie,"女"))
{ cout<<"您必须输入“男”或“女”。请重新输入:\n";
cin>>xingbie;
}
cout<<"请输入密码(6—20个数字或字母不区分大小写):\n";
cin>>a;
for(i=0;i<strlen(a);i++)
if(a[i]>=65&&a[i]<=90)
a[i]+=32;
while(!yanzhengmima(a))
{ cout<<"请重新输入:\n";
cin>>a;
for(i=0;i<strlen(a);i++)
if(a[i]>=65&&a[i]<=90)
a[i]+=32;
}
cout<<"请再输入一次:\n";
cin>>b;
for(i=0;i<strlen(b);i++)
if(b[i]>=65&&b[i]<=90)
b[i]+=32;
while(strcmp(a,b))
{ cout<<"您两次输入的密码不一致,请重新输入:\n";
cout<<"请输入密码(6—20个数字或字母):\n";
cin>>a;
for(i=0;i<strlen(a);i++)
if(a[i]>=65&&a[i]<=90)
a[i]+=32;
while(!yanzhengmima(a))
{ cout<<"密请重新输入:\n";
cin>>a;
for(i=0;i<strlen(a);i++)
if(a[i]>=65&&a[i]<=90)
a[i]+=32;
}
cout<<"请再输入一次:\n";
cin>>b;
for(i=0;i<strlen(b);i++)
if(b[i]>=65&&b[i]<=90)
b[i]+=32;
}
strcpy(mima,a);
cout<<"请写你的个人说明(不能大于50个汉字并且中间不能有空格间隔):\n";
cin>>shuoming;
while(strlen(shuoming)>100)
{
cout<<"你写的个人说明大于50个汉字,请重新输入:\n";
cin>>shuoming;
}
cout<<"请写上您的email:\n";
cin>>email;
while(yanzhengemail(email))
{
cout<<"请写上您的email:\n";
cin>>email;
}
outf.open("e:\\实习报告\\会员区域\\普通会员.txt",ios::app);
k=9;
if(!outf)
{ cout<<"找不到文件,请确认文件是否正确!!!!!\n"; k=2; }
strcpy(hy.xingming,xingming);strcpy(hy.xingbie,xingbie);
strcpy(hy.mima,mima); strcpy(hy.shuoming,shuoming); strcpy(hy.email,email);
strcpy(hy.wenti,"问题"); strcpy(hy.daan,"答案");
hy.dengji=1; hy.jifen=3;
if(k==9)
{ outf<<setiosflags(ios::left)
<<setw(15)<<hy.xingming
<<setw(5)<<hy.xingbie
<<setw(25)<<hy.mima
<<setw(100)<<hy.shuoming
<<setw(20)<<hy.email
<<setw(5)<<hy.dengji
<<setw(5)<<hy.jifen
<<setw(100)<<hy.wenti<<setw(100)<<hy.daan<<endl;
k=4;
}
if(k==4)
cout<<"恭喜你们申请成功!!!!\n";
else cout<<"对不起,没有申请成功。\n";
}
////////////////////////////////////////////////////
void man::mimabaohu() //////////填写密码保护资料/////////
{
fstream f; int w;
char d1[100],d2[100],wt[100],mm[20];
cout<<"输入你的会员名字:\n";
cin>>xingming;
if(yanzhengxm(xingming)==0)
{
cout<<"你输入的名字不正确。\n";
return;
}
cout<<"请输入你的密码:\n";
cin>>mm;
f.open("e:\\实习报告\\会员区域\\普通会员.txt",ios::in);
if(!f)
{ cout<<"找不到文件,请确认文件是否正确!!!!!\n"; return;}
while(f>>hy.xingming>>hy.xingbie>>hy.mima>>hy.shuoming>>hy.email>>hy.dengji>>hy.jifen>>hy.wenti>>hy.daan)
{
if(!strcmp(mm,hy.mima)&&!strcmp(xingming,hy.xingming))
{ w=4;
cout<<"欢迎使用密码保护功能系统,这样可以增强你的网络安全。\n";
cout<<"请写入您取回密码时的问题:\n";
cin>>wt;
cout<<"请写出您的问题的答案(限制在50个汉字以内何以输入字母/数字):\n";
cin>>d1;
cout<<"请再输入一次:\n";
cin>>d2;
while(strcmp(d1,d2))
{
cout<<"你两次输入的问题的答案不一致请重新输入:\n";
cout<<"请写入您去回密码是的问题:\n";
cin>>wt;
cout<<"请写出您的问题的答案(限制在50个汉字以内何以输入字母/数字):\n";
cin>>d1;
cout<<"请再输入一次:\n";
cin>>d2;
}
strcpy(wenti,wt);
strcpy(daan,d1);
cout<<wt<<" "<<d1<<endl;
}
}
f.close();
if(w!=4)
{ cout<<"你输入的密码不正确!请重新申请!\n"; return;}
f.open("e:\\实习报告\\会员区域\\普通会员.txt",ios::app|ios::in);
if(!f)
cout<<"找不到文件,请确认文件是否正确!!!!!\n";
while(f>>hy.xingming>>hy.xingbie>>hy.mima>>hy.shuoming>>hy.email>>hy.dengji>>hy.jifen>>hy.wenti>>hy.daan)
{
if(!strcmp(xingming,hy.xingming))
{ strcpy(hy.wenti,wenti);
strcpy(hy.daan,daan);
f<<setiosflags(ios::left)
<<setw(15)<<hy.xingming
<<setw(5)<<hy.xingbie
<<setw(25)<<hy.mima
<<setw(100)<<hy.shuoming
<<setw(20)<<hy.email
<<setw(5)<<hy.dengji
<<setw(5)<<hy.jifen
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -