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寫錯了...還有!= 忘了寫! 等等.. 以上程序可以運行了