当前位置:首页 » 编程语言 » c语言模拟银行
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言模拟银行

发布时间: 2022-11-27 10:19:14

⑴ 用c语言模拟银行账号密码登录,那个大神可以指导一下

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>

intchcode(){
charpw[50],ch;
char*syspw="abc";//原始密码
inti,m=0;
printf("请输入密码:");
while(m<3){
i=0;
while((ch=_getch())!=' '){
if(ch==''&&i>0){
printf("");
--i;
}
elseif(ch!=''){
pw[i++]=ch;
printf("*");
}
}
pw[i]='';
printf(" ");
if(strcmp(pw,syspw)!=0){
printf("密码错误,请重新输入! ");
m++;
}
else{
printf("密码正确! ");
system("pause");
return1;
}
}
printf("连续3次输入错误,退出! ");
system("pause");
return0;
}

intmain(){
intlogin=chcode();
if(login)printf("登录成功! ");
elseprintf("登录失败! ");
return0;
}

⑵ 编写一个c语言程序,模拟银行帐户交易管理系统。 写好给20块钱的分 或者q币

http://..com/link?url=koYWtHTk-_IhrTRC90-
这地方有的啊

⑶ C语言用队列结构模拟,银行业务排队系统实现 1.有储户要办理存取款业务时,取号等待,编号入队

很明显 这个只要实现队列一切就简单了 其实c++有quene类 这里我们自己实现它

剩下的自己来写就好了 很简单的

首先一个链表的

#include<iostream>
usingnamespacestd;
//链表
typedefstructQDode
{
intn;
structQDode*next;
}*pqdode,qdode;
//队列
typedefstructMyQueue
{
pqdodefront;
pqdoderear;
}*pmyqueue,myqueue;
boolInit_queue(pmyqueuequ);//初始化队列
boolIs_empty(pmyqueuequ);//判断队列是否为空
voidPut_queue(pmyqueuequ,intval);//入队
intOut_queue(pmyqueuequ);//出队
intTravel_queue(pmyqueuequ);//遍历队列
voidDestory_queue(pmyqueuequ);//销毁队列
//主函数
intmain()
{
myqueuequeue={NULL,NULL};

Init_queue(&queue);//初始化

Put_queue(&queue,5);//入队

if(!Is_empty(&queue))
{
cout<<"队列不为空"<<endl;
}

Put_queue(&queue,6);
Put_queue(&queue,7);
Put_queue(&queue,8);
Put_queue(&queue,9);


Travel_queue(&queue);//遍历

intval=Out_queue(&queue);
cout<<endl<<endl<<val<<endl<<endl;

Travel_queue(&queue);//遍历

intvall=Out_queue(&queue);
cout<<endl<<endl<<vall<<endl<<endl;

Travel_queue(&queue);//遍历

Destory_queue(&queue);//销毁
cout<<endl;
return0;
}
boolInit_queue(pmyqueuequ)
{
qu->front=newqdode;
if(qu->front==NULL)
{
cout<<"动态分配内存失败!"<<endl;
returnfalse;
}
else
{
qu->rear=qu->front;
qu->front->next=NULL;
returntrue;
}
}
voidDestory_queue(pmyqueuequ)
{
pqdodep=qu->front,q=NULL;
while(p)
{
q=p->next;
deletep;
p=q;
}
p=NULL;
}
voidPut_queue(pmyqueuequ,intval)
{
qu->rear->n=val;
pqdodeq=qu->rear;
pqdodep=newqdode;
p->next=NULL;
qu->rear=p;
q->next=p;
}
boolIs_empty(pmyqueuequ)
{
if(qu->front!=qu->rear)
{
returnfalse;
}
else
{
returntrue;
}
}
intTravel_queue(pmyqueuequ)
{
intcount=0;
if(Is_empty(qu))
{
cout<<"该队列为空!"<<endl;
return0;
}
else
{
pqdodep=qu->front,q=NULL;
while(p!=qu->rear)
{
count++;
cout<<p->n<<"";
if(!(count%5))
{
cout<<endl;
}
p=p->next;
}
returncount;
}

}
intOut_queue(pmyqueuequ)
{
if(Is_empty(qu))
{
cout<<"该队列为空!"<<endl;
return-1;
}
else
{
intval=qu->front->n;
pqdodep=qu->front->next;
deletequ->front;
qu->front=p;
returnval;
}
}

然后一个数组实现的

#include<iostream>

usingnamespacestd;

classQUEUE//队列类
{
private://私有成员
int*pBase;
intfront,rear;
intcount;
public://公有成员
boolIs_empty();//判断是否为空
boolIs_full();//判断是否满
voidenter_queue(intn);//入队
intout_queue();//出队
voidtravel_queue();//遍历队
QUEUE(intnumber=100)
{
front=rear=0;
pBase=newint[number+1];
count=number+1;
}
~QUEUE()
{
delete[]pBase;
}
};
intmain()
{
QUEUEqueue(5);
queue.enter_queue(1);
queue.enter_queue(2);
queue.enter_queue(3);
queue.enter_queue(4);
queue.enter_queue(5);
queue.enter_queue(6);
queue.travel_queue();
queue.out_queue();
queue.travel_queue();
queue.out_queue();
queue.travel_queue();
queue.out_queue();
queue.travel_queue();
queue.out_queue();
queue.travel_queue();
queue.out_queue();
queue.travel_queue();
queue.out_queue();
if(queue.Is_full())
{
cout<<"wangbadan"<<endl;
}
intn=queue.out_queue();
cout<<n<<endl;
queue.travel_queue();
intn1=queue.out_queue();
cout<<n1<<endl;
queue.travel_queue();
return0;
}
boolQUEUE::Is_empty()//判断是否满
{
if(front==rear)
{
returntrue;
}
else
{
returnfalse;
}
}
boolQUEUE::Is_full()//判断是否空
{
if((rear+1)%count==front)
{
returntrue;
}
else
{
returnfalse;
}
}
voidQUEUE::enter_queue(intn)//入队
{
if(Is_full())
{
cout<<"队列已满!"<<endl;
}
else
{
pBase[rear]=n;
rear=(rear+1)%count;
}
return;
}
intQUEUE::out_queue()//出队
{
intn=pBase[front];
if(Is_empty())
{
cout<<"该队列已空!"<<endl;
returnfalse;
}
else
{
front=(front+1)%count;
returnn;
}
}
voidQUEUE::travel_queue()//遍历
{
intj=0;
for(inti=front;i%count!=rear;i++)
{
j++;
cout<<pBase[i%count]<<"";
if(j==5)
{
cout<<endl;
j=0;
}
}
if(j)
{
cout<<endl;
}
return;
}

⑷ 编写一个C语言程序模拟银行ATM机的账户管理功能,系统主要实现以下功能

按照你的愿意把空都填好了,VC++ 6.0下编译能通过,有警告信息,运行基本上能用,不过个人认为这个系统有很大的不足,比如输入账号的时候没有输出反馈信息,以及没有对误操作的处理等等。需要的话可以帮你改改!

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define AN 9 //表示账号8位
#define PN 7 //表示密码6位
#define ASN 3 //表示系统中共有3个账户信息
struct Account
{
char accountnumber[AN]; //表示账号信息
char password[PN]; //表示账户的密码信息
double balance; //表示账户的余额
};
struct Account ats[ASN]={{"00000001","123456",100},{"00000002","123456",200},{"00000003","123456",300}};
//ats数组用于存储系统中三个账户的信息
int isCorrect(char *an,char *psd)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(ats[i].accountnumber,an)==0 && strcmp(psd,ats[i].password)==0)
return 1;
return 0;
}
double getBalance(char *an)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(an,ats[i].accountnumber)==0)
return ats[i].balance;
}

void deposit(char *an,int amount)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(an,ats[i].accountnumber)==0)
ats[i].balance+=amount;
}
int withdraw(char *an,int amount)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(an,ats[i].accountnumber)==0)
return ats[i].balance-=amount;
}

void main()
{
char AccountNumber[AN]={'\0'};
char psd[PN]={'\0'};
int i,errorcount=0;
while(1)
{
printf("\n请输入8位账号:");
for(i=0;i<8;i++)
AccountNumber[i]=getch();
printf("\n请输入6为密码:");
for(i=0;i<6;i++)
{
psd[i]=getch();
putchar('*');
}
if(isCorrect(AccountNumber,psd)==1)
{
int tag,amount;
while(1)
{
printf("\n欢迎登录银行账户管理系统,请选择您要的服务:1、查询余额;2、存款操作;3、取款操作;4、退出系统\n");
scanf("%d",&tag);
switch(tag)
{
case 1:
printf("您现在的余额为%f元\n",getBalance(AccountNumber));
break;
case 2:
printf("请输入您的存款金额:");
scanf("%d",&amount);
deposit(AccountNumber,amount);
printf("存款成功!您的当前余额为:%f元\n",getBalance(AccountNumber));
break;
case 3:
printf("请输入您的取款金额:");
scanf("%d",&amount);
if(amount<=getBalance(AccountNumber))
printf("取款成功!您的当前余额为:%f元\n",withdraw(AccountNumber,amount));
else
printf("取款失败!\n");
break;
case 4:
break;
}
if(tag==4)
break;
}

}
else
{
errorcount++;
if(errorcount==3)
{
printf("您已经连续三次输入错误,系统将自动关闭\n");
break;
}
}
}
}

⑸ C语言 银行存储模拟系统

// t.cpp : Defines the entry point for the console application.//#include "stdafx.h"int Card[100][5+3];void main(){ for(int i=0;i<100;i++) { Card[i][0]=i; Card[i][1]=0; ]==nCahao) { nT=1; nPose=i; break; } } printf("卡号不正确"); } printf("你的存款余额为%d\n",Card[nPose][1]); while(1) { printf("1,取款 2, 存款\n"); int nSelect; scanf("%d",&nSelect); switch(nSelect) { case 1: printf("请输入提款金额\n"); int nJine; scanf("%d",&nJine); Card[nCahao][Card[nCahao][2]]=-nJine; Card[nCahao][2]=Card[nCahao][2]++; printf("你的取款额为%d请在出钞口领现金\n",nJine); nJine); printf("请取卡\n"); return; } } }

⑹ c语言中的一个经典问题 “模拟银行输出程序”(阿拉伯数字转大写汉字)

其实这种短路逻辑判断是你自己事先进行猜测的,在第一种情况下认为j==5出现的可能性比较高所以就把他放前面,同样else中也是这样,这种没多大的纠结必要

⑺ 怎样用C语言编写模拟银行系统

DOS下的?

⑻ 数据结构:银行业务模拟的C语言程序

像这样的要求嘛,来网络就错了,你得上专业网站找高手。还急需的话,就不要继续在这儿浪费时间了

⑼ C语言设计银行账户模拟程序

能传附件吗?不知道怎么传。我就贴给你吧。
#include<iostream>
#include<string>
#include<fstream>
using namespace std;

class account //atm账户类
{
private:
string CardNum,Psw; //卡号、密码
float Balance;
public:
friend class ATM; //atm为友元
/*void get_cardnum();
void get_psw();
void get_balance();*/
account(){}//<---------------------here
account(string num,string passwd,float balance); //构造函数
void Write();
};

class ATM //atm机类
{
private:
int times;
account *ac;
public:
ATM(); void load( account *act ); //装入账户信息
void welcome(); //初始欢迎信息
bool check_passwd( string pwd ); //验证当前账户信息的密码
void change_psw(); //修改密码
void get_money(); //取钱
float check_balance(); //查账
void tran(); //转账
void exit(); //退卡
void function_show(); //显示功能菜单
void lock(); //锁定账户
};

/*
* account::account( string num, string passwd, float balance )
* account类构造函数
* 用途: 使用给定的账号密码等信息初始化一个account对象
* 参数: string num 账号
* string passwd 密码
* float balance
*/
account::account( string num, string passwd, float balance )
{
CardNum = num;
Psw = passwd;
Balance = balance;
}
//atm类构造函数
/*account::get_cardnum()
{
return CardNum;
}
account::get_psw()
{
return Psw;
}
account::get_balance()
{
return Balance;
}*/
void account::Write()
{
ofstream outfile("atm.txt",ios::binary);//<-----------------here
outfile.write((char *)(this),sizeof(account));//<-------------here
outfile.close();
}

ATM::ATM()
{
}

/*
* void ATM::load( account *act )
* ATM类装入账户信息函数
* 用途: 载入指定的account对象,模拟atm插卡过程
* 参数: account *act 要载入的account对象指针
*/
void ATM::load( account *act )
{
ac = act;
}

/*
* void ATM::welcome()
* ATM类显示初始欢迎信息函数
* 用途: 显示欢迎信息,提示密码输入并验证
* 参数: 无
*
*/
void ATM::welcome()
{
times = 0; //记录密码输入错误次数
cout << "Welcome to use the China Bank ATM!" << endl;
string pwd; //这一个语句应该上移的,一般来说数据的定义和初始化一块写在开头,下面才是各种操作的语句
while( times < 3 )
{
cout << "Please enter the password: " << endl;
cin >> pwd;
if( !check_passwd( pwd ) )
{
cout << "The password you entered is wrong, please enter again" << endl;
times++;
}
else
{
function_show();
break;
}
}
if( times >= 3 )
lock(); //输入密码错误次数超过(等于)3次,锁定账户
}

bool ATM::check_passwd( string pwd )
{
if( pwd == ac->Psw )
return true;
else
return false;
}

void ATM::function_show()
{
int n;
cout << "(1) Change Password" << endl;
cout << "(2) Get Money" << endl;
cout << "(3) Check Balance" << endl;
cout << "(4) Transfer accounts" << endl;
cout << "(5) Exit" << endl;
cin >> n;
while(n != 1 && n != 2 && n != 3 && n != 4 && n != 5) //这样就可以完全限制用户的输入
{
cout << "Please enter the right number" << endl;
cin >> n;
}
switch( n )
{
case 1:
change_psw();
break;
case 2:
get_money();
break;
case 3:
cout << check_balance() << endl;
break;
case 4:
tran();
break;
case 5:
exit();
break;

}
}

void ATM::lock()
{
cout << "Sorry! Your card has been confiscated!" << endl;
exit();
}

void ATM::change_psw()
{
string old_psw, new_psw1, new_psw2;
int t = 0 ;
while( t < 3 )
{
cout << "Please enter the old password: ";
cin >> old_psw;
if( !check_passwd( old_psw ) )
{
cout << "The password you enter is wrong, please enter again" << endl;
t++;
}
else
{
cout << "Please enter the new password: ";
cin >> new_psw1;
cout << "Please enter the new password again: ";
cin >> new_psw2;
if( new_psw1 == new_psw2 )
{
ac -> Psw = new_psw2;
cout << "You have change your password successfully!" << endl;
break;
}
else
cout << "Sorry, entered passwords do not match! " << endl;
}
}
//}//<----------------------here
if( t >= 3 )
{
cout << "Sorry, you have inputed the wrong password for three times and more! " << endl;
}
}

void ATM::get_money()
{
float money;
cout << "Please enter the amount of money you want to get: " <<endl;
cin >> money;
while( money > ac -> Balance)
{
cout << "Your balance is not enough, please enter again" << endl;
cin >> money;
}
ac -> Balance = ac -> Balance - money;
}

float ATM::check_balance()
{
return ac -> Balance;
}

void ATM::tran()
{
account a[5];
string cn;
float m;
cout<<"please enter the cardnum of the account you want to transfer money to"<<endl;
cin>>cn;
ifstream infile("atm.txt",ios::binary);
infile.seekg(0,ios::beg);
for(int i=0;i<5;i++)
{
infile.read((char *)(&a[i]),sizeof(a[i]));
}
for(int j=0;j<5;j++)
{
if(cn==a[i].CardNum)
{
cout<<"please enter the amount of money"<<endl;
cin>>m;
while(m>ac->Balance)
{
cout<<"there is no enough money in your account,please enter again"<<endl;
cin>>m;
}
ac->Balance=ac->Balance-m;
a[i].Balance=a[i].Balance+m;
ofstream outfile("atm.txt",ios::binary);
outfile.seekp(i*sizeof(a[0]),ios::beg);
outfile.write((char *) &a[i],sizeof(a[i]));
}
}
if(j>=5)
{
cout<<"the account doesn't exit"<<endl;
}
}

void ATM::exit()
{
cout << "Please take your card!" << endl;
}

int main()
{
account a[5]={account("10001","1111",5000.0f),account("10002","2222",10000.0f),account("10003","3333",15000.0f),
account("10004","4444",20000.0f),account("10005","5555",25000.0f)};
account temp( "10001", "1111", 5000.0f );
ATM atm;
atm.load( &temp );
atm.welcome();
return 0;
}

⑽ 用C语言编银行叫号系统

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <conio.h>

#define MAX_SIZE 500
struct tagCustom
{
int m_nID; // 客户的编号
int m_nProcessTime; // 需要处理业务的时间
int m_nArrivalTime; // 到达时间
int m_nDepartTime; // 离开时间
};

struct tagTeller
{
int m_nCustomNum; // 处理的客户数
int m_nAllServiceTime; // 所有服务时间
int m_nFinishServiceTime; // 柜台针对一个客户服务的结束时间
bool m_bBusy; // 柜台是否忙
int m_nCustomID; // 正在服务的客户的ID号
};

tagTeller g_aryTellers[MAX_SIZE];
int g_nTellerNum; // 柜台数量

// 用户到达数组(随机的,无序的)
tagCustom g_aryAllCustoms[MAX_SIZE];
int g_nCustomsNum;

int g_nWorkTime; // 经营时间
int g_nArrivalRange,g_nServiceRange;

// 用户队列
tagCustom g_CustomQueue[MAX_SIZE];
int g_nHeader,g_nTail;

// 队列的操作
void InitQueue()
{
g_nHeader = g_nTail = -1;
}

void AddToTail(tagCustom aCustom)
{
g_nTail++;
g_CustomQueue[g_nTail] = aCustom;
}

bool RemoveFromHeader(tagCustom* pCustom)
{
if(g_nHeader < g_nTail)
{
g_nHeader++;
(*pCustom) = g_CustomQueue[g_nHeader];
return true;
}
return false;
}

// 功能:模拟用户的随机到来
void GenerateCustom()
{
tagCustom aCustom;
for(int nCounter = 0; nCounter < g_nCustomsNum; nCounter++)
{
aCustom.m_nID = nCounter;
aCustom.m_nArrivalTime = rand() % g_nWorkTime ;
aCustom.m_nProcessTime = (rand() % g_nServiceRange + 1) * 6;
aCustom.m_nDepartTime = -1;
g_aryAllCustoms[nCounter] = aCustom;
}
}

void Init()
{
g_nTellerNum = 3;
g_nWorkTime = 200;
g_nCustomsNum = 30;
g_nArrivalRange = 18 ;
g_nServiceRange = 5 ;

srand((unsigned)time(NULL));
InitQueue();
GenerateCustom();

for(int nC = 0; nC < g_nTellerNum; nC++)
{
g_aryTellers[nC].m_nAllServiceTime = 0;
g_aryTellers[nC].m_nCustomID = -1;
g_aryTellers[nC].m_bBusy = false;
g_aryTellers[nC].m_nFinishServiceTime = -1;
}
}