atm注冊函數(shù)c語言程序 c語言實現(xiàn)用戶注冊

怎樣用c語言編寫ATM系統(tǒng)

真正的ATM系統(tǒng)不可能只是用C語言編寫的,它應(yīng)該是一套完整獨立的系統(tǒng),核心代碼更機(jī)密,不會輕易的泄露。

我們提供的服務(wù)有:網(wǎng)站設(shè)計、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、康樂ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的康樂網(wǎng)站制作公司

C語言可以寫一個類似于ATM系統(tǒng)的框架,用以模擬ATM機(jī)上的各種操作。

框架代碼如下:

#includeiostream.h??

#includestdio.h??

int?main()???

{??

int?choice?=-?1;???

while(1)?{??

printf("請選擇\n1.login\t2.regist\n");??

scanf("%d",?choice);??

switch(choice)?{??

case?1:??

login();??

break;??

case?2:??

regist();??

break;??

default:??

printf("輸入有誤,重新輸入\n");??

break;??

}??

}??

return?0;

}??

void?login()?{??

printf("IN?LOGIN\n");??

int?flag?=?-1;??

int?X?=?-1;??

printf("輸入賬戶和密碼\n");??

flag?=?search();??

if(falg?==?1)?{??

printf("存在,進(jìn)入主頁面\n");??

X?=?menu();??

if(X?==?1)??

return;??

}??

else?if(flag?==?0)?{??

printf("賬戶或密碼錯誤\n");??

return;???????

}??

}??

int?regist()?{??

printf("IN?REGIST\n");??

return?1;??

}??

int?menu()?{??

printf("IN?MENU\n");??

int?key?=?-1;??

int?N?=?-1;??

while(1)?{??

printf("請選擇業(yè)務(wù):1.refer\t2.deposit\t3.withdraw\t4.transfer\t5.resetPW\t6.退出\n");??

scanf("%d",?key);??

switch(key)?{??

case?1:??

N?=?refer();??

break;??

case?2:??

N?=?deposit();??

break;??

case?3:??

N?=?withdraw();??

break;??

case?4:??

N?=?transfer();??

break;??

case?5:??

N?=?resetPW();??

break;??

case?6:??

N?=?6;??

return?1;??

break;??

default:??

printf("輸入有誤,重新選擇:\n");???

break;??

}??

if(N%2?==?0)?{??

printf("Error!\n");??

}???

}??

}??

int?refer()?{??

printf("IN?REFER\n");??

//輸出余額???

return?1;??

}??

int?deposit()?{??

printf("IN?DEPOSIT\n");??

//存錢???

return?3;??

}??

int?withdraw()?{??

printf("IN?WITHDRAW\n");??

//取錢???

return?5;??

}??

int?transfer()?{??

ptintf("IN?TRANSFER\n");??

//轉(zhuǎn)賬???

return?7;??

}??

int?resetPW()?{??

prtintf("IN?RESETPW\n");??

//重設(shè)密碼???

return?9;??

}

一個有關(guān)ATM的C語言程序

char szPassword[128] = {0};

int iNum = 0;

while(true)

{ //這里沒有過濾特殊符號,比如 Backspace 回格符,循環(huán)中自己特殊處理下就OK了

if(iNum128)

{

puts("用戶輸入密碼過長~!");

}

char ch = getch();

if(ch == 13) //按回車表示用戶密碼輸入結(jié)束

{

szPassword[iNum]='\0';

putch('\n');

break;

}

putch('*');

szPassword[iNum++]=ch;

}

puts(szPassword);

用c++編寫ATM程序

#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;

}

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

///////////////////////////////////數(shù)據(jù)庫類,用來存儲用戶//////////////////////

class DataBase

{

private:

User *users[40]; // 默認(rèn)數(shù)據(jù)可最多能存放40個用戶

int userNumber; // 已注冊用戶的數(shù)量

public:

DataBase();

~DataBase();

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

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

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

int getUserNumber(); // 取得數(shù)據(jù)庫中用戶的數(shù)量

};

DataBase::DataBase()

{

userNumber = 0;

}

DataBase::~DataBase()

{

delete users;

}

bool DataBase::add(User *user)

{

if(userNumber 40 getUser(user-getUserName()) == NULL) // 如果當(dāng)前用戶名在數(shù)據(jù)庫中不存在

{

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 = 0; i userNumber; i++)

{

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;

cinnum;

cout"余額為:"user-saveMoney(num)endl;;

}

break;

case 2:// 取錢

{

cout"輸入取錢金額:";

int num;

cinnum;

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;

cinnum;

cout"余額為:"user-saveMoney(num)endl;;

}

break;

case 2:// 取錢

{

cout"輸入取錢金額:";

int num;

cinnum;

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系統(tǒng)**********\n";

cout"\t\t* 1.用戶注冊 *\n";

cout"\t\t* 2.用戶登錄 *\n";

cout"\t\t* 3.退出系統(tǒng) *\n";

cout"\t\t***********************************\n";

int num;

cinnum;

return num;

}

// 注冊

User * user_register()

{

string userName;

string password;

cout"請輸入賬號:";

cinuserName;

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

return NULL; // 注冊失敗

cout"請輸入密碼:";

cinpassword;

User *user = new User(userName, password);

database.add(user);

return user; // 注冊成功

}

User * user_login()

{

string userName;

string password;

cout"請輸入賬號:";

cinuserName;

cout"請輸入密碼:";

cinpassword;

User *user = database.getUser(userName);

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

if(user-getPassword() == password)

return user; // 如果密碼匹配則登陸成功

return NULL; // 如果用戶不存在

}

int exit()

{

return 0; // 退出系統(tǒng)

}

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;

cinnum;

return num;

}

用C語言寫ATM的程序代碼要求用循環(huán)語句

#includestdio.h

int chaxun(int a3)

{

int b;

b=a3;

printf("你的余額為:%d\n",b) ;

}

int qukuan(int a3)

{

int a,b;

printf("請輸入您要提取的現(xiàn)金:\n");

scanf("%d",a);

b=a3-a;

if(b0)

printf("對不起 ,你的余額不足\n");

else

{

printf("請收好您的%d元現(xiàn)金\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("請輸入您的六位數(shù)新密碼\n");

scanf("%d",a2);

printf("請確認(rèn)您的六位數(shù)新密碼\n");

scanf("%d",b);

if(a2==b)

{

if(b100000b999999b/(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(k0)

{

printf("對不起,沒有負(fù)存款\n");

}

else

{

printf("\n您好,您已經(jīng)存進(jì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("歡迎使用自動柜員機(jī):\n\n");

while(b==1)

{

printf("請輸入您的賬號:\n");

scanf("%d",k);

printf("請輸入您的密碼:\n");

scanf("%d",l);

if(k==a1l==a2)

{

b=0;

printf("您的賬戶余額為:%d\n",a3);

}

else

{

b=1;

printf("對不起,您輸入的賬號或者密碼有誤,請重新輸入:\n");

}

}

do

{

printf("\n請選擇您要的服務(wù)項目:\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);

}

用c語言編寫ATM的程序,實現(xiàn)開戶、存款、取款、查詢余額、轉(zhuǎn)賬的業(yè)務(wù)邏輯。

#include stdio.h

#include stdlib.h

#include conio.h

#include string.h

void regist();

void login();

void quite();

void inputpassword(char mima[]);

void service();

struct bank

{

char name[20];

char password[7];

int account;

double money;

}kehu;

int find;

int a[10];

struct bank one;

FILE *fp;

void main()

{

int i;

int t=1;

for(i=0;i100;i++)

{

printf("\t\t\t\t\t\t歡迎使用青軟ATM系統(tǒng)\n");

printf("\t\t\t\t\t\t正在進(jìn)入主界面,請稍等");

int j;

for(j=1;jt;j++)

{

printf(".");

}

t++;

if(t==10)

{

t=1;

}

printf("\n\t\t\t\t\t\t%d%%",i);

system("cls");

}

while(1)

{

printf("\t\t\t\t\t\t服務(wù)類型: \n");

printf("\t\t\t\t\t\t[a]: 用戶注冊\n");

printf("\t\t\t\t\t\t[b]: 用戶登錄\n");

printf("\t\t\t\t\t\t[c]: 退出系統(tǒng)\n");

printf("\t\t\t\t\t\t請選擇服務(wù): ");

fflush(stdin);

char xz;

scanf("%c",xz);

if(xz=='a'||xz=='A')

{

regist();

} else if (xz=='b'||xz=='B')

{

login();

} else if(xz=='c'||xz=='C')

{

quite();

} else

{

printf("輸入有誤,請重新輸入");

}

getch();

system("cls");

}

}

void inputpassword(char mima[])

{

int i=0;

char ch;

while(1)

{

ch=getch();

if(ch!='\r')

{

if(ch!='\b'){

mima[i]=ch;

i++;

printf("*");

}else{

if(i0){

i--;

printf("\b \b");

}

}

}else{

break;

}

}

mima[i]='\0';

printf("\n");

}

void regist()

{

fp=fopen("atm.txt","ab+");

if(fp==NULL)

{

printf("\n\t\t\t文件打開失敗!");

return;

}

system("cls");

printf("\t\t\t現(xiàn)在執(zhí)行的是注冊函數(shù)的使用\n");

printf("\t\t請輸入用戶名: ");

fflush(stdin);

gets(kehu.name);

char password1[7];

while(1)

{

while(1)

{

printf("\n\n\t\t請輸入密碼:");

fflush(stdin);

inputpassword(kehu.password);

int n=strlen(kehu.password);

if(n==6)

{

break;

}else

{

printf("\n\t\t密碼必須為6位!");

}

}

printf("\n\t\t請輸入正確密碼!: ");

fflush(stdin);

inputpassword(password1);

if(strcmp(kehu.password,password1)==0)

{

break;

}else{

printf("\n\n\t\t兩次密碼必須相同!");

}

}

rewind(fp);

struct bank k;

if(fread(k,sizeof(struct bank),1,fp)==1)

{

fseek(fp,-sizeof(k),2);

fread(k,sizeof(k),1,fp);

kehu.account=k.account+1;

}else{

kehu.account=20170001;

}

kehu.money=0;

fseek(fp,0,2);

fwrite(kehu,sizeof(struct bank),1,fp);

fclose(fp);

printf("\n\n\t\t開戶成功! ");

printf("\n\t\t您的賬號為%d!",kehu.account);

printf("\n\t\t現(xiàn)在請您重新登錄!");

}

void searchmoney()

{

system("cls");

printf("您現(xiàn)在使用的是查詢余額功能: \n");

printf("\n\n\t\t您的余額是%0.2lf",one.money);

}

void savemoney()

{

system("cls");

double inmoney;

printf("請您選擇您要存款的金額 \n");

scanf("%lf",inmoney);

int q;

int r=1;

for(q=0;q100;q++)

{

int w;

for(w=1;wr;w++)

{

printf(".");

}

r++;

if(r==10)

{

r=1;

}

printf("\n\t\t\t\t\t\t正在存款%d%%",q);

system("cls");

}

one.money=one.money+inmoney;

fseek(fp,-sizeof(one),1);

fwrite(one,sizeof(one),1,fp);

printf("\n\n\t\t\t\t\t\t您已存款成功!");

}

void withdrawalmoney()

{

system("cls");

double outputsomemoney;

printf("請您選擇您要取款的金額 \n");

scanf("%lf",outputsomemoney);

if(one.moneyoutputsomemoney){

printf("您的余額已不足,請您注意!");

}else {

int q;

int r=1;

for(q=0;q100;q++)

{

int w;

for(w=1;wr;w++)

{

printf(".");

}

r++;

if(r==10)

{

r=1;

}

printf("\n\t\t\t\t\t\t正在取款%d%%",q);

system("cls");

}

one.money=one.money-outputsomemoney;

fseek(fp,-sizeof(one),1);

fwrite(one,sizeof(one),1,fp);

printf("\n\n\t\t\t\t\t\t您已取款成功!請點清鈔票!");

printf("\n\n\t\t\t\t\t\t您現(xiàn)在的余額為%lf",one.money);

}

}

void transfermoney()

{

system("cls");

int duifang;

int qian;

fflush(stdin);

printf("\n\n\n\t\t您現(xiàn)在使用的是轉(zhuǎn)賬功能");

printf("\n\t\t\t請輸入您要轉(zhuǎn)賬的賬戶:");

scanf("%d",duifang);

int n=ftell(fp);

rewind(fp);

int flag=0;

struct bank temp;

while(fread(temp,sizeof(temp),1,fp)==1)

{

if(temp.account==duifang)

{

flag=1;

break;

}

}

if(flag==1)

{

printf("請輸入轉(zhuǎn)賬金額:");

scanf("%d",qian);

if(one.money=qian)

{

int q;

int r=1;

for(q=0;q100;q++)

{

int w;

for(w=1;wr;w++)

{

printf(".");

}

r++;

if(r==10)

{

r=1;

}

printf("\n\t\t\t\t\t\t正在轉(zhuǎn)賬,請稍后!%d%%",q);

system("cls");

}

temp.money=temp.money+qian;

fseek(fp,-sizeof(temp),1);

fwrite(temp,sizeof(temp),1,fp);

one.money=one.money-qian;

fseek(fp,n-sizeof(one),0);

fwrite(one,sizeof(one),1,fp);

printf("\n\t\t\t\t轉(zhuǎn)賬成功!");

}else{

printf("\n\t\t\t\t您的余額已不足!");

}

}

}

void xiugai(){

system("cls");

printf("\n\n\t\t 現(xiàn)在進(jìn)行的是修改密碼功能\n");

char oldpassword[7];

char newpassword[7];

char newpassword1[7];

int i;

for(i=0;i3;i++){

printf("\n\t\t\t 請輸入舊密碼:\n");

inputpassword(oldpassword);

if(strcmp(oldpassword,one.password)==0){

printf("\n\t\t\t 輸入成功!\n");

break;

}else{

printf("\n\t\t\t 密碼輸入有誤,請重新輸入!\n");

}

}

if(i3){

while(1){

printf("\n\t\t\t 請輸入您的新密碼:\n");

inputpassword(newpassword);

printf("\n\t\t\t 請輸入您的確認(rèn)密碼:\n ");

inputpassword(newpassword1);

if(strcmp(newpassword,newpassword1)==0){

strcpy(one.password,newpassword);

fseek(fp,-sizeof(one),1);

fwrite(one,sizeof(one),1,fp);

printf("\n\t\t\t 密碼修改成功!");

break;

}else{

printf("\n\t\t\t 兩次密碼輸入不一致!");

}

}

}else{

printf("\n\t\t\t 密碼輸入錯誤!");

}

}

int zhuxiaozhanghao()

{

system("cls");

int zhuxiaoxitong;

char sf;

printf("你要注銷的賬號是%d",one.account);

printf("你是否要對此賬號進(jìn)行注銷?\n\n\t\t請您選擇:注銷(Y)or不注銷(N):");

fflush(stdin);

scanf("%c",sf);

if(sf=='y'||sf=='Y')

{

printf("正在為您注銷!\n",one.account);

zhuxiaoxitong=1;

}else{

printf("不注銷系統(tǒng)!\n",one.account);

}

return zhuxiaoxitong;

}

void service()

{

while(1){

system("cls");

printf("\n\n\n\t\t\t\t\t\t現(xiàn)在是服務(wù)系統(tǒng),本系統(tǒng)有以下服務(wù)");

printf("\n\t\t\t\t\t\t[a] 查詢余額\n");

printf("\n\t\t\t\t\t\t[b] 存款服務(wù)\n");

printf("\n\t\t\t\t\t\t[c] 轉(zhuǎn)賬服務(wù)\n");

printf("\n\t\t\t\t\t\t[d] 取款服務(wù)\n");

printf("\n\t\t\t\t\t\t[e] 修改密碼\n");

printf("\n\t\t\t\t\t\t[f] 注銷 \n");

printf("\n\t\t\t\t\t\t[g] 退出系統(tǒng)\n");

char e;

printf("\n\t\t\t\t\t\t您要選擇的服務(wù)是:");

fflush(stdin);

scanf("%c",e);

switch(e)

{ case'A':

case'a': searchmoney() ;break;

case'B':

case'b': savemoney() ;break;

case'C':

case'c': transfermoney() ;break;

case'D':

case'd': withdrawalmoney() ;break;

case'E':

case'e': xiugai() ;break;

case'F':

case'f': {int zhuxiaoxitong=zhuxiaozhanghao();{if(zhuxiaoxitong==1) return;}break;}

case'G':

case'g': quite();break;

}

printf("\n\n\n\t\t\t\t按任意鍵繼續(xù)......\n");

getch();

}

}

void login()

{

fp=fopen("atm.txt","rb+");

if(fp==NULL)

{

printf("\n\n\n\t\t\t\t文件打開失敗!");

return;

}

system("cls");

printf("\n\t\t\t\t\t\t現(xiàn)在執(zhí)行的是登錄函數(shù)的使用\n");

int zhanghao;

printf("\n\t\t\t\t\t\t請輸入賬號:");

scanf("%d",zhanghao);

int flag=0;

while(fread(one,sizeof(one),1,fp)==1)

{

if(zhanghao==one.account){

flag=1;

break;

}

}

char password2[7];

if(flag==1){

int h;

for(h=0;h3;h++){

printf("\n\t\t\t\t\t\t請輸入密碼:");

fflush(stdin);

inputpassword(password2);

if(strcmp(password2,one.password)==0)

{

printf("\n\t\t\t\t\t\t登陸成功!");

service();

break;

}else{

printf("密碼不正確!");

}

}

if(h==3){

printf("\n\t\t\t您的密碼三次輸入有誤,返回");

}

}else{

printf("無此賬號!");

}

fclose(fp);

}

void quite()

{

system("cls");

printf("\t\t\t現(xiàn)在執(zhí)行的是退出函數(shù)的使用\n");

exit(0);

}

新聞名稱:atm注冊函數(shù)c語言程序 c語言實現(xiàn)用戶注冊
分享URL:http://muchs.cn/article32/dosdhpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、品牌網(wǎng)站建設(shè)全網(wǎng)營銷推廣、定制開發(fā)、企業(yè)建站網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計