📄 atmfunc.cpp
字号:
/*
=====================================
atmfunc.cpp
=====================================
*/
#include "atmh.h"
#include "function.h"
int mk=0;
//1-------------------------------------------------
void checkpassword(int mx)//密码输入不正确提示(ok)
{
if(mx==0)cout<<" 对不起你的密码不正确,请重输!\n";
else if(mx==1)cout<<" 对不起你输入的密码错误,请重输!\n";
else if(mx==2)cout<<" 对不起你输入三次错误的密码你的卡被锁!\n";
}
//2-------------------------------------------------------
bool checknp()//检验用户名和密码(ok)
{
for(m=0;m<=j;m++)
if((username==array[m]) && (password==array[m+1]))
return true ;
return false;
}
//3-----------------------------------------------------
void input()//输入用户名和密码(ok)
{
printf(" 请输入用户名:");
cin>>username;
cout<<" 密码:";
cin>>password;
cout<<endl;
}
//4----------------------------------------------------
void print()//帐号,密码正确后显示操作面板(ok)
{
cout<<" 1.余额查询; 2.密码修改;\n\n";
cout<<" 3.取 款; 4.存 款;\n\n";
cout<<" 5.转帐处理; 6.退出系统;\n\n";
}
//5------------------------------------------------------
void printhead()//显示头部欢迎信息(ok)
{
for(int i=1;i<62;i++)//输出一个加边框的欢迎信息
if(i%2!=0)cout<<"*";
else cout<<" ";
cout<<"\n*";
printf(" Wellcome To Use The DreamSky Money Bank! *\n");
for( i=1;i<62;i++)
if(i%2!=0)cout<<"*";
else cout<<" ";
cout<<"\n";
printf("* 为了你的安全使用前请各位注意: *\n");
printf("* 1.确认无不相关人在旁边窥看你操作; *\n");
printf("* 2.确认身后或附近没有衣冠不整行为可疑者; *\n");
printf("* 3.注意密码最多只能输入3次,否则锁卡; *\n");
cout<<"* *";
cout<<"\n* 1.进入银行; 2.注册用户. *\n";
for( i=1;i<62;i++)
if(i%2!=0)cout<<"*";
else cout<<" ";
}
//6------------------------------------------------------------------
void openf()//打开文件(ok)
{
ifstream inf("userinfo.txt");//打开文件
for(string info;getline(inf,info);j++)//将文件一行一行读入info流
array[j]=info;//将信息存入String数组中
}
//7--------------------------------------------------------------
void checkmoney()//显示余额(0k)
{
cout<<" 您的余额:"<<array[m+2]<<"$\n\n";
}
//8---------------------------------------------------------------
void adduser(int x)//注册新用户(ok)
{ bool re=true;
char nname[20],npassword[20],spassword[20];
int nmoney;
FILE *fp;
if(x==1)
{
if((fp=fopen("userinfo.txt","a"))==NULL)printf("mmm!");
cout<<" 输入新的用户名: ";
cin>>nname;
while(re)
{
cout<<" \n 输入密码: ";
cin>>npassword;
cout<<" \n 确认密码: ";
cin>>spassword;
cout<<" \n 预存款: ";
cin>>nmoney;
if(strcmp(npassword,spassword)==0)
{
fprintf(fp,"%s\n%s\n%d\n",nname,npassword,nmoney);
re=false;
break;
}
else
cout<<" 两次输入的密码不一致!";
}
}
else //取款后回写操作(ok)
{
if((fp=fopen("userinfo.txt","w"))==NULL)printf("文件打开失败!");
stringstream mstr;
char gmoney[20];
string temp;
for(int k=0;k<=j;k++)
{
temp=array[k];
mstr<<temp;
mstr>>gmoney;
fprintf(fp,"%s\n",gmoney);
mstr.clear();
}
}
fclose(fp);
}
//9-------------------
void getmoney(double gm,int my)//进行取款操作
{
istringstream istr;
if(my==3)istr.str(array[mk+2]); //将字符转换为double型
else istr.str(array[m+2]); //将字符转换为double型
//上述两个过程可以简单写成 istringstream istr(array[m+2]);
float b;
istr>>b;
if((my==1) &&(b>=gm+1))b-=gm;
else if((my==1) &&(b<=gm)) cout<<" 您的余额不足!\n\n";
else if(my==2 || my==3)b+=gm;
stringstream sstr;
//--------int转string-----------
string str;
sstr<<b;
sstr>>str;
if(my==2)array[m+2]=str;
else array[mk+2]=str;
sstr.clear();
adduser(3);
if(my==1)
{
cout<<"\n 请取款!\n";
cout<<" 您的余额还有: "<<b<<endl;
}
else if(my==2)cout<<"\n 您卡上余额为:"<<b<<" $\n\n";
else
cout<<"\n 您转帐成功!共转移人金额:"<<gm<<" $\n\n";
}
//10------------------------------------------
void chpw(char op[20],char cp[20])//更改密码后回写操作
{ FILE *fpw;
//char cp[20]="madboy",char op[20]="123456";
if((fpw=fopen("userinfo.txt","w"))==NULL)printf("文件打开失败!");
stringstream mstr;
char cpassword[20];
string tempw;
for(int p=0;p<=j;p++)
{
tempw=array[p];
mstr<<tempw;
mstr>>cpassword;
if(p==m+1)
{
if(strcmp(cpassword,op)==0)
strcpy(cpassword,cp);
}
fprintf(fpw,"%s\n",cpassword);
mstr.clear();
}
fclose(fpw);
cout<<" 您的密码更改已成功!\n\n";
}
//11-------------------------------------------------------
bool cpw(char p[20])//检验用户旧密码输入是否正确(ok)
{
stringstream pstr;
char olp[20];
pstr<<password;
pstr>>olp;
if(strcmp(olp,p)==0)
return true;
return false;
pstr.clear();
}
//12-------------------------------------------------------
void chn()//检验转帐用户名(ok)
{
double gmy;
cout<<" 输入对方帐号:";
cin>>gname;
//cout<<"\n mm:"<<array[m]<<endl;
for(mk=0;mk<=j;mk++)
if(gname==array[mk])
{
cout<<"\n\n 输入转帐数目:";
cin>>gmy;
cout<<"\n\n";
getmoney(gmy,3);
break;
}
else
if(mk==j)cout<<" 没有此用户存在,请核对清楚!\n\n";
}
//test--------------是否能读取文本内所有数据
void test()
{ cout<<endl;int mx=1;
for(int kk=0;kk<=j;kk++)
{ cout<<array[kk]<<" ";
if(mx%3==0)cout<<endl;mx+=1;}
}
/*
cout<//--------string转char[]--------
sstr.clear();//如果你想通过使用同一stringstream对象实现多种类型的转换,请注意在每一次转换之后都必须调用clear()成员函数。
string name = "colinguan";
char cname[200];
sstr< sstr>>cname;
cout< system("pause");
void password() 功能:输入密码#include <conio.h>
{
char c1,c2,c3,c4;
cout<<"请输入4位密码:"<<flush;
c1 = getch();
cout<<'*'<<flush;
c2 = getch();
cout<<'*'<<flush;
c3 = getch();
cout<<'*'<<flush;
c4 = getch();
cout<<'*'<<endl;
}
#include<stdio.h>
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}boya[2],boyb[2],*pp,*qq;
main()
{
FILE *fp;
char ch;
int i;
pp=boya;
qq=boyb;
if((fp=fopen("stu_list","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
//getch();
//exit(1);
}
printf("\ninput data\n");
for(i=0;i<2;i++,pp++)
scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);
pp=boya;
fwrite(pp,sizeof(struct stu),2,fp);
rewind(fp);
fread(qq,sizeof(struct stu),2,fp);
printf("\n\nname\tnumber age addr\n");
for(i=0;i<2;i++,qq++)
printf("%s\t%5d%7d%s\n",qq->name,qq->num,qq->age,qq->addr);
fclose(fp);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -