用C语言写ATM的程序代码要求用循环语句

用C语言写ATM的程序代码要求用循环语句,第1张

#include<stdio.h>

int chaxun(int a3)

{

int b

b=a3

printf("你的余额为:%d\n",b)

}

int qukuan(int a3)

{

int a,b

printf("请输入您要提取的现金:\n")

scanf("%d",&a)

b=a3-a

if(b<0)

printf("对不起 ,你的余额不足\n")

else

{

printf("请收好您的%d元现金\n",a)

a3=a3-a

}

return (a3)

}

int gaini(int a2)

{

int a,b,c=1,d,e=1

while(e)

{

printf("请输入你的旧密码:\n")

scanf("%d",&d)

if(d==a2)

e=0

else

{

e=1

printf("你输入的密码错误,请重新输入:\n")

}

}

while(c)

{

printf("请输入您的六位数新密码\n")

scanf("%d",&a2)

printf("请确认您的六位数新密码\n")

scanf("%d",&b)

if(a2==b)

{

if(b>100000&&b<999999&&b/(b/100000)!=111111)

{

c=0

printf("密码修改成功\n")

}

else

{

printf("您输入的密码不符合要求,请从新输入\n")

c=1

}

}

else

{

c=1

printf("您两次输入的密码不一致,请重新输入:\n")

}

}

return a2

}

int quka()

{

printf("\n 梦若保保提醒您\n")

printf("请收好您的卡片,谢谢,再见\n\n")

}

int cunkuan(int a3)

{

int i,j,k

printf("请输入你要存的金额\n")

scanf("%d",&k)

if(k<0)

{

printf("对不起,没有负存款\n")

}

else

{

printf("\n您好,您已经存进去了%d元\n",k)

a3=a3+k

}

return a3

}

main()

{

int i,j,b=1,c,k,l,m,n

int a1=123456,a2=123456,a3=1000

printf("欢迎使用自动柜员机:\n\n")

while(b==1)

{

printf("请输入您的账号:\n")

scanf("%d",&k)

printf("请输入您的密码:\n")

scanf("%d",&l)

if(k==a1&&l==a2)

{

b=0

printf("您的账户余额为:%d\n",a3)

}

else

{

b=1

printf("对不起,您输入的账号或者密码有误,请重新输入:\n")

}

}

do

{

printf("\n请选择您要的服务项目:\n")

printf("1.查询余额\n")

printf("2.取款\n")

printf("3.修改密码\n")

printf("4.取卡\n")

printf("5.存款\n")

scanf("%d",&c)

switch(c)

{

case 1:

chaxun(a3)

break

case 2:

a3=qukuan(a3)

break

case 3:

a2=gaini(a2)

break

case 4:

quka()

break

case 5:

a3=cunkuan(a3)

break

}

}while(c!=4)

}

#include <iostream>

using namespace std

///////////////////////////////用户类//////////////////////////////////////

class User

{

private:

int money

string userName

string password

public:

User()

~User()

User(string userName, string password)

int saveMoney(int money)// 存款

int getMoney(int money)// 取款

int checkMoney() // 查询余额

string getUserName() // 取得用户名

string getPassword() // 取得密码

}

User::User()

{

money = 0

}

User::User(string userName, string password)

{

money = 0

this->userName = userName

this->password = password

}

int User::saveMoney(int money)

{

this->money += money

return this->money

}

int User::getMoney(int money)

{

this->money -= money

return this->money

}

int User::checkMoney()

{

return this->money

}

string User::getUserName()

{

return this->userName

}

string User::getPassword()

{

return this->password

}

/////////////////////////////////////////////////////////////////////////

///////////////////////////////////数据库类,用来存储用户//////////////////////

class DataBase

{

private:

User *users[40] // 默认数据可最多能存放40个用户

int userNumber // 已注册用户的数量

public:

DataBase()

~DataBase()

bool add(User *user) // 添加新用户

User * getUser(int i)// 按照索引取得用户

User * getUser(string name)// 按照用户名取得用户

int getUserNumber() // 取得数据库中用户的数量

}

DataBase::DataBase()

{

userNumber = 0

}

DataBase::~DataBase()

{

delete users

}

bool DataBase::add(User *user)

{

if(userNumber <40 &&getUser(user->getUserName()) == NULL) // 如果当前用户名在数据库中不存在

{

users[userNumber] = user

userNumber++

return true // 返回true表示新用户添加成功

}

return false// 返回false表示新用户添加失败

}

User * DataBase::getUser(int i)

{

if(i >40 || i <0) return NULL

return users[i]

}

User * DataBase::getUser(string userName)

{

for(int i = 0i <userNumberi++)

{

User *user = getUser(i)

if(user->getUserName() == userName) return user

}

return NULL

}

/////////////////////////////////////////////////////////////////////////

DataBase database

int welcom()

// 注册

User * user_register()

User * user_login()

int exit()

int user_process()

int main()

{

int state

int user_state

User *user

do

{

state = welcom()

switch(state)

{

case 1:

user = user_register()// 用户注册

if(NULL != user)

{

cout<<"\n注册成功\n"

do

{

user_state = user_process()

switch(user_state)

{

case 1:// 存钱

{

cout<<"输入存钱金额:"

int num

cin>>num

cout<<"余额为:"<<user->saveMoney(num)<<endl

}

break

case 2:// 取钱

{

cout<<"输入取钱金额:"

int num

cin>>num

cout<<"余额为:"<<user->getMoney(num)<<endl

}

break

case 3:// 查看余额

{

cout<<"余额为:"<<user->checkMoney()<<endl

}

break

case 4://返回

user_state = 0

default: break

}

} while(user_state)

user = NULL

}

else cout<<"\n注册失败\n"

break

case 2:

user = user_login()// 用户登陆

if(NULL != user)

{

cout<<"登陆成功"<<endl

do

{

user_state = user_process()

switch(user_state)

{

case 1:// 存钱

{

cout<<"输入存钱金额:"

int num

cin>>num

cout<<"余额为:"<<user->saveMoney(num)<<endl

}

break

case 2:// 取钱

{

cout<<"输入取钱金额:"

int num

cin>>num

cout<<"余额为:"<<user->getMoney(num)<<endl

}

break

case 3:// 查看余额

{

cout<<"余额为:"<<user->checkMoney()<<endl

}

break

case 4://返回

user_state = 0

default: break

}

} while(user_state)

user = NULL

}

else cout<<"\n登陆失败\n"

break

case 3:

state = exit()

break

default: break

}

}

while(state)

return 0

}

int welcom()

{

cout<<"\t\t**********欢迎使用ATM系统**********\n"

cout<<"\t\t* 1.用户注册 *\n"

cout<<"\t\t* 2.用户登录 *\n"

cout<<"\t\t* 3.退出系统 *\n"

cout<<"\t\t***********************************\n"

int num

cin>>num

return num

}

// 注册

User * user_register()

{

string userName

string password

cout<<"请输入账号:"

cin>>userName

if(NULL != database.getUser(userName)) // 如果用户名存在

return NULL// 注册失败

cout<<"请输入密码:"

cin>>password

User *user = new User(userName, password)

database.add(user)

return user// 注册成功

}

User * user_login()

{

string userName

string password

cout<<"请输入账号:"

cin>>userName

cout<<"请输入密码:"

cin>>password

User *user = database.getUser(userName)

if(NULL != user) // 如果用户存在

if(user->getPassword() == password)

return user// 如果密码匹配则登陆成功

return NULL// 如果用户不存在

}

int exit()

{

return 0// 退出系统

}

int user_process()

{

cout<<"\t\t******************************\n"

cout<<"\t\t* 请选择 *** 作类型 *\n"

cout<<"\t\t* 1.存 钱 *\n"

cout<<"\t\t* 2.取 钱 *\n"

cout<<"\t\t* 3.查 看 余 额 *\n"

cout<<"\t\t* 4.返 回 *\n"

cout<<"\t\t******************************\n"

int num

cin>>num

return num

}

lass consumer

class ATM     // ATM取款机

{

public:

    ATM(consumer& cn):cnsm(cn){}

 void welcome()        // 登陆界面

 bool check_passwd(char n[],char pwd[]) // 核对密码

 void change_passwd()     // 修改密码

    void fetchmoney()        // 取款

 void information()            // 查询信息

 void exitATM()            // 退出系统

 void functionshow()      // 功能界面

 void lock()              // 锁机

private:

 int times               // 记录密码输入次数

 consumer& cnsm

}

class consumer  // 用户

{

public:

 friend class ATM

 consumer(char Name[],char Num[],float Money,char Password[])

protected:

 char* get_name()              // 取得姓名

 char* get_num()               // 取得卡号

 char* get_passwd()            // 取得密码

 float get_money()             // 取得余额

 void set_passwd(char pwd[])   // 设置密码

 void set_money(float m)       // 取钱

private:  

 char passwd[8]    // 用户密码

 char name[20]     // 用户姓名

 char num[20]     

 float money

}

 

// ************************************

// *                                  *

// *     consumer类的成员函数         *

// *                                  *

// ************************************

#include"function.h"

#include

consumer::consumer(char Name[],char Num[],float Money,char Password[])

{

   strcpy(name,Name)

   strcpy(num,Num)

   money=Money

   strcpy(passwd,Password)

}

float consumer::get_money()

{

 return money

}

char* consumer::get_name()

{

 return name

}

char* consumer::get_num()

{

 return num

}

char* consumer::get_passwd()

{

 return passwd

}

void consumer::set_money(float m)

{

 money-=m

}

void consumer::set_passwd(char pwd[])

{

 strcpy(passwd,pwd)

}

 

// ************************************

// *                                  *

// *          ATM类的成员函数         *

// *                                  *

// ************************************

#include "function.h"

#include

#include

void ATM::welcome()

{

 times=0

 cout<<"$  欢迎使用若雪银行ATM自动取款机!~! "<< P>

 char pwd[8],num[20],ch

 int i=0

 do

 {

   i=0

   cout<<"请输入卡号:"

    do

    {

          cin.get(ch)

       num[i++]=ch

    }while(ch!='\n')

        num[i-1]='\0'

   i=0

   cout<<"请输入密码:"

    do

    {

          cin.get(ch)

       pwd[i++]=ch

    }while(ch!='\n')

        pwd[i-1]='\0'

    if(!check_passwd(num,pwd))

    {

      cout<<"你输入的卡号或密码有误,请重新输入"<

      times++

    }

    else

    {

      functionshow()

    }

 }while(times<3)

    lock()

}

bool ATM::check_passwd(char num[],char pwd[])

{

 if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0)

  return true

 else

  return false

}

void ATM::functionshow()

{

   int n

   do

   {

     cout<<"请你输入相应的 *** 作序号进行 *** 作:"<<ENDL

     cout<<"1) 修改密码 "<      <<"2) 取款     "<      <<"3) 查询余额 "<         <<"4) 退出系统 "<

     cout<<"$ >\\"

     cin>>n

     while(n<1||n>4)

  {

      cout<<"请输入正确的 *** 作序号!"<

      cout<<"$ >\\"

      cin>>n

  }

 

     switch(n)

  {

      case 1:   change_passwd()   break

      case 2:   fetchmoney()      break

      case 3:   information()           break

      case 4:   exitATM()         break  

  }

   }while(true)

 

}

void ATM::change_passwd()

{

 char pwd[8],repwd[8]

 

 times=0

 do

 {

 cout<<"请输入旧密码:"

 cin>>pwd

    if(!check_passwd(cnsm.get_num(),pwd))

  times++

 else

  break

 }while(times<3)

 if(times==3)

  lock()

   

 int t=0

    do

 {

  cout<<"请输入新密码:"

  cin>>pwd

  cout<<"请再输入一次新密码:"

  cin>>repwd

  if((t=strcmp(pwd,repwd))!=0)

   cout<<"你输入的两次密码不一样,请从新输入!"<

 }while(t!=0)

 cnsm.set_passwd(pwd)

 cout<<"密码修改成功,请牢记!"<< P>

}

void ATM::fetchmoney()

{

   float m

   char ch

   do

   {

      cout<<"你要取多少钱:"<<"\N$>\\"<

      cin>>m

      while(m<=0)

   {

    cout<<"请输入正确的数字!"<

    cout<<"$ >\\ "

    cin>>m

   }

      if(cnsm.get_money()-m<0)

   {

     cout<<"对不起,你的余额不足!"<

   }

   else

   {

   cout<<" *** 作成功,请收好钱!"<<ENDL

         cnsm.set_money(m)

   }

   cout<<"是否要继续该项 *** 作:(Y/N) "<

   cout<<"$ >\\ "

   cin>>ch

   while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')

  {

     cout<<"$ >\\"

     cin>>ch

  }

   }while(ch=='y'||ch=='Y')

}

void ATM::information()

{

 cout<<"**********************************"<

 cout<<"*"<

 cout<<"*     用户姓名:"<<<ENDL

 cout<<"*     卡号:    "<<<ENDL

 cout<<"*     余额:     "<<<ENDL

 cout<<"**********************************"<< P>

}

void ATM::lock()

{

 cout<<"对不起,由于你的 *** 作有误,你的卡已经被没收! ?<<endl

 cout<<"请取卡……"<

 exit(0)

}

 

// ************************************

// *                                  *

// *          ATM.cpp                 *

// *                                  *

// ************************************

#include

#include"function.h"

void main()

{

  consumer c1("jim","12345",5200.3f,"123") // 先构造一个用户

  ATM atm(c1)

  atm.welcome()

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7740774.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存