⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atmfunc.cpp

📁 用C++写的一个模拟ATM自动取款机的程序.我这个程序不同于网上现有的那个不能记录用户填写信息的.
💻 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 + -