A. 【c语言】编写ATM机程序
帮我用C语言编写一个ATM取款程序要求代码在300行以上
作为一个二十一世纪的大学生,要养成自己动手的习惯!不懂就去图书馆翻阅资料!虽然网上现在很
B. 用c语言,结构体设计atm
密码 余额
存款:
1 存款数额为正数,不符合报错
2 余额 = 初始余额 + 存款金额
取款:
1 取款数额为100的倍数,不符合报错
2 余额 = 初始余额–取款金额
取款总额不大于余额
仅需要做两个函数,我曾经做过一个ATM机的模拟系统
C. 用c语言编写ATM的程序,实现开户、存款、取款、查询余额、转账的业务逻辑。
#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;i<100;i++)
{
printf("\t\t\t\t\t\t欢迎使用青软ATM系统\n");
printf("\t\t\t\t\t\t正在进入主界面,请稍等");
int j;
for(j=1;j<t;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服务类型: \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]: 退出系统\n");
printf("\t\t\t\t\t\t请选择服务: ");
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(i>0){
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现在执行的是注册函数的使用\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现在请您重新登录!");
}
void searchmoney()
{
system("cls");
printf("您现在使用的是查询余额功能: \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;q<100;q++)
{
int w;
for(w=1;w<r;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.money<outputsomemoney){
printf("您的余额已不足,请您注意!");
}else {
int q;
int r=1;
for(q=0;q<100;q++)
{
int w;
for(w=1;w<r;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您现在的余额为%lf",one.money);
}
}
void transfermoney()
{
system("cls");
int ifang;
int qian;
fflush(stdin);
printf("\n\n\n\t\t您现在使用的是转账功能");
printf("\n\t\t\t请输入您要转账的账户:");
scanf("%d",&ifang);
int n=ftell(fp);
rewind(fp);
int flag=0;
struct bank temp;
while(fread(&temp,sizeof(temp),1,fp)==1)
{
if(temp.account==ifang)
{
flag=1;
break;
}
}
if(flag==1)
{
printf("请输入转账金额:");
scanf("%d",&qian);
if(one.money>=qian)
{
int q;
int r=1;
for(q=0;q<100;q++)
{
int w;
for(w=1;w<r;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在转账,请稍后!%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转账成功!");
}else{
printf("\n\t\t\t\t您的余额已不足!");
}
}
}
void xiugai(){
system("cls");
printf("\n\n\t\t 现在进行的是修改密码功能\n");
char oldpassword[7];
char newpassword[7];
char newpassword1[7];
int i;
for(i=0;i<3;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(i<3){
while(1){
printf("\n\t\t\t 请输入您的新密码:\n");
inputpassword(newpassword);
printf("\n\t\t\t 请输入您的确认密码:\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("你是否要对此账号进行注销?\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("不注销系统!\n",one.account);
}
return zhuxiaoxitong;
}
void service()
{
while(1){
system("cls");
printf("\n\n\n\t\t\t\t\t\t现在是服务系统,本系统有以下服务");
printf("\n\t\t\t\t\t\t[a] 查询余额\n");
printf("\n\t\t\t\t\t\t[b] 存款服务\n");
printf("\n\t\t\t\t\t\t[c] 转账服务\n");
printf("\n\t\t\t\t\t\t[d] 取款服务\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] 退出系统\n");
char e;
printf("\n\t\t\t\t\t\t您要选择的服务是:");
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按任意键继续......\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现在执行的是登录函数的使用\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;h<3;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现在执行的是退出函数的使用\n");
exit(0);
}
D. 用C语言进行程序设计,做一个ATM模拟系统,要原创完整版的,具体要求
前面登录都还可以做,后面查询、转账等就复杂了
E. c语言程序设计ATM机
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<windows.h>
char ch[7]={"123456"};
void menu();
//int login();
int deposit();
int GetCash();
int Transf();
void Checkmoney();
int checkPass();
void modiPass();
void Exit();
int i,n;
//金额
int main()
{
int x;
//modiPass();
while(1)
{
checkPass();
menu();
while(1)
{
printf("\n请选择业务:");
while(1)
{
scanf("%d",&x);
if(x>6||x<0)
{
printf("\n输入有误,请重新输入:");
}
else break;
}
switch(x)
{
case 1:deposit();
break;
case 2:GetCash();
break;
case 3:Transf();
break;
case 4:Checkmoney();
break;
case 5:modiPass();
break;
case 6:Exit();
x = 6;
break;
default:break;
}
if(x == 6)break;
}
}
return 0;
}
/////菜单
void menu()
{
system("cls");
printf("\t\t\tPlease Select Service\n\n");
printf("\n\n\t\t\t**电子现金**\n\n");
printf("\t\t1.存款业务 2.取款业务\n\n");
printf("\t\t3.转账业务 4.查询业务\n\n");
printf("\t\t5.修改密码 6.退卡\n\n");
}
////存款业务
int deposit()
{
int m;
printf("请输入您的存入金额\n");
scanf("%d",&m);
printf("成功存入 %d 元\n",m);
i+=m;
return i;
}
////取款业务
int GetCash()
{
int n;
if(i<=0)
{
printf("余额不足\n");
return i;
}
printf("请输入您的取出金额\n");
while(1)
{
scanf("%d",&n);
if(n>i)
{
printf("请输入少于%d 元\n",i);
}else
break;
}
printf("成功取出 %d 元\n",n);
i-=n;
return i;
}
int Transf()
{
int n;
long int number;
if(i<=0)
{
printf("余额不足\n");
return i;
}
printf("请输入您要转帐的银行卡号\n");
scanf("%ld",&number);
printf("请输入您的转出金额\n");
while(1)
{
scanf("%d",&n);
if(n>i)
{
printf("请输入少于%d 元\n",i);
}
else
break;
}
printf("成功向%ld 账号转账 %d 元\n",number,n);
i-=n;
return i;
}
void Checkmoney()
{
if(i<=0)
printf("您的账户余额: 0 元\n");
else
printf("您的账户余额: %d 元\n",i);
}
int checkPass()
{
system("cls");
char m[7];
printf("\n@@@@@@@@中国建设银行@@@@@@@@\n");
printf("\n**China Construction Bank**\n\n");
printf("\n正在进行IC卡认证,请稍吿...\n\n");
printf("请输入密码(系统默认初始密码:123456):\n");
printf("Please input your Press Enter\n\n");
while(1)
{
for(n=0;n<6;n++)
{
m[n]=getch();
printf("*");
}
if(strcmp(ch,m)==0)
{
printf("\n\n\t\t 正在进行ID认证,请稍等");
//Sleep(400);
printf(".");
Sleep(400);
printf(".");
Sleep(400);
printf(".");
Sleep(400);
printf(".");
//Sleep(2000);
printf("\n\n\t\t 登录成功.....\n");
break;
}
puts("\n密码错误,请重新输入密码:\n");
}
return 0;
}
void modiPass()
{
char mi[7];
printf("请输入原来的密码:\n");
while(1)
{
for(n=0;n<6;n++)
{
mi[n]=getch();
printf("*");
}
printf("\n");
if(strcmp(mi,ch)==0)
{
puts("请输入新的密码:\n");
for(n=0;n<6;n++)
{
ch[n]=getch();
printf("*");
}
printf("\n");
if(strcmp(mi,ch)!=0)
{
printf("密码修改成功!\n");
break;
}else
printf("密码修改失败(新密码与旧密码相同),请重新修改.\n请输入原来的密码:\n");
}else
printf("密码错误,请重新输入:\n");
}
}
void Exit()
{
printf("交易结束,请取回您的卡\n");
Sleep(1000);
}
F. C程序设计 模拟银行自动存取款机
模拟自动存取款机功能编写一个小型程序,至少具备4个功能模块:
1. 余额查询 2修改密码 3提款 4存款
卡号、密码、余额是三个必须的数据。
1. 程式会先显示欢迎讯息 ,欢迎界面,比如“开户成功,欢迎使用**银行自动取款机服务”;
2. 接着要求使用者输入帐号
3. 再要求使用者入密码
4. 如果三次尝试都错误的话就中止程式 否则就是登入成功
登入后, 你的”主画面”会显示出五种功能选项:
1余额查询 2修改密码 3提款 4存款 5退出
1.第一步打印出:“请输入你的帐号和密码”。然后你从键盘分别输入六位数的帐号和密码。如果正确进入第二步.
第二步:请修改初始密码。
你的程序打印:“请输入你的新密码:”然后你从键盘输入六位数密码。此时你的程序打印:“请再输入一遍新密码。”如果两次输入的密码不一致,则你的程序打印:“你两次输入的密码不一致,修改密码未成功,请再输入一次。”在main()里定义(四个数组,其中两个用来存放你输入的六位数帐号和密码,另两个数组存放你的六位数帐号和密码,)注意你定义的数组应该能存放七个字符。比较你输入的密码和数组中的密码是否一致,如果不一致,则打印出:“密码错误,请再试一次。
2. 检视帐户余额: 显示该帐户的余额 , 然后再回到主画面.
3. 提款 : 当使用者选择提款时,画面应该进入提款画面,你应该提供六个选项让使用者选择: 1. 100, 2. 500, 3. 1000, 4. 2000, 5. 3000, 6. 取消交易 . 选择1-5的选项后,你应该显示出使用者领用了多少钱,存款剩多少,然后回到”主画面”. 记住: 你要确认使用者的存款是否有足够的钱可以提领! 如果使用者选择取消交易,则系统会回到”主画面”. 选择“取钱”的功能按键,输入要取出的钱数,进行取钱操作,操作完毕需要“取钱成功,您的当前余额为。。。”的提示信息
4. 存款 :当使用者选择存款时,画面应该进入存款画面,你应该提供六个选项让使用者选择: 1. 100, 2. 500, 3. 1000, 4. 2000, 5. 3000, 6. 取消交易 . 选择1-5的选项后,你应该显示出使用者存入了多少钱,存款变成多少,然后回到”主画面”. 选择“存钱”的功能按键,输入存储的钱数,进行存钱操作,操作完毕需要“存钱成功,您的当前余额为。。。”的提示信息
5.在“存钱”、“取钱”、“查看余额”等每项操作结束后,需要有“继续其他操作还是退出”的选项,如果选择“继续其他操作”,那么重新进入“按键使用功能说明”界面,如果选择“退出”则转到功能9;
6、 退出程序功能(按某个功能键可以退出本程序,并打印友好提示信息“本次服务结束,欢迎再次光临**银行”);
问题补充:要求采用C语言,谢绝C++~~简洁明了者可加高分
G. 怎样用c语言编写ATM系统
真正的ATM系统不可能只是用C语言编写的,它应该是一套完整独立的系统,核心代码更机密,不会轻易的泄露。
C语言可以写一个类似于ATM系统的框架,用以模拟ATM机上的各种操作。
框架代码如下:
#include<iostream.h>
#include<stdio.h>
intmain()
{
intchoice=-1;
while(1){
printf("请选择 1.login 2.regist ");
scanf("%d",&choice);
switch(choice){
case1:
login();
break;
case2:
regist();
break;
default:
printf("输入有误,重新输入 ");
break;
}
}
return0;
}
voidlogin(){
printf("INLOGIN ");
intflag=-1;
intX=-1;
printf("输入账户和密码 ");
flag=search();
if(falg==1){
printf("存在,进入主页面 ");
X=menu();
if(X==1)
return;
}
elseif(flag==0){
printf("账户或密码错误 ");
return;
}
}
intregist(){
printf("INREGIST ");
return1;
}
intmenu(){
printf("INMENU ");
intkey=-1;
intN=-1;
while(1){
printf("请选择业务:1.refer 2.deposit 3.withdraw 4.transfer 5.resetPW 6.退出 ");
scanf("%d",&key);
switch(key){
case1:
N=refer();
break;
case2:
N=deposit();
break;
case3:
N=withdraw();
break;
case4:
N=transfer();
break;
case5:
N=resetPW();
break;
case6:
N=6;
return1;
break;
default:
printf("输入有误,重新选择: ");
break;
}
if(N%2==0){
printf("Error! ");
}
}
}
intrefer(){
printf("INREFER ");
//输出余额
return1;
}
intdeposit(){
printf("INDEPOSIT ");
//存钱
return3;
}
intwithdraw(){
printf("INWITHDRAW ");
//取钱
return5;
}
inttransfer(){
ptintf("INTRANSFER ");
//转账
return7;
}
intresetPW(){
prtintf("INRESETPW ");
//重设密码
return9;
}
H. 求c语言课程设计:模拟ATM取款机界面的程序编写(最好是自己做的哦)谢谢
聪明的话提示下就能做,用switch--case完成界面的各选项,进入第一层界面之后又用switch--case完成第二层界面;到了要取款的时候case几个选项可以是100,200,300,等等····如果要求自己输入的话就添加个SCANF语句要用户自己输入取款金额,基本上差不多了。
I. 求C语言程序设计(银行ATM取款机)
终于编写出来了
#include<stdio.h>
void main()
{
char SelectKey,CreditMoney,DebitMoney;
while(1)
{
do{
clrscr();
puts("Please select key:");
puts("1.Quary");
puts("2.Credit");
puts("3.Debit");
puts("4.Return");
SelectKey=getch();
}while(SelectKey!='1'&&SelectKey!='2'&&SelectKey!='3'&&SelectKey!='4');
switch(SelectKey)
{
case'1':
clrscr();
puts("Your balance is $1000");
getch();
break;
case'2':
do{
clrscr();
puts("Please select Credit money:");
puts("1.$50");
puts("2.$100");
puts("3.Return");
CreditMoney=getch();
}while(CreditMoney!='1'&&CreditMoney!='2'&&CreditMoney!='3');
switch(CreditMoney)
{
case'1':
clrscr();
puts("Your Credit money is $50,Thank you!");
getch();
break;
case'2':
clrscr();
puts("Your Credit money is $100,Thank you!");
getch();
break;
case'3':
break;
}
break;
case'3':
do{
clrscr();
puts("Please select Debit money:");
puts("1.$50");
puts("2.$100");
puts("3.$500");
puts("4.$1000");
puts("5.Return");
DebitMoney=getch();
}while(DebitMoney!='1'&&DebitMoney!='2'&&DebitMoney!='3'&&DebitMoney!='4'&&DebitMoney!='5');
switch(DebitMoney)
{
case'1':
clrscr();
puts("Your Debit money is $50,Thank you!");
getch();
break;
case'2':
clrscr();
puts("Your Debit money is $100,Thank you!");
getch();
break;
case'3':
clrscr();
puts("Your Debit money is $500,Thank you!");
getch();
break;
case'4':
clrscr();
puts("Your Debit money is $1000,Thank you!");
getch();
break;
case'5':
break;
}
break;
case'4':
return;
}
}
}
几个小错误而已...比如忘了写双撇号,switch写错了...还有!= 忘了写! 等等.. 以上程序可以运行了