//
// main.c
//
// Created by lanqs on 14/12/17.
// Copyright (c) 2014年 All rights reserved.
//
#include
#include "haha.h"
struct Zhanghu{
char name[20];//姓名
int num;//賬戶
int password;//密碼
double balance;//餘額
};
struct Zhanghu A = {"小王",2012,123456,10000};//A
struct Zhanghu B = {"小李",2014,654321,20000};//B
struct Zhanghu C = {"銀行",1000,111111,100000};//C 銀行賬戶ATM機子(裡面有錢。。。銀行的錢。。。)
int main(int argc, const char * argv[]) {
#pragma mark - 用C語言控制台程式模拟一個ATM 機存取款流程。
// 要求:
// 1)賬戶基本資訊結構體(包括:姓名、賬戶、密碼、餘額等基本資訊)。
// 2)輸入使用者名密碼登入(密碼使用者名自定義并且提示相關錯誤資訊)。
// 3)登入成功後有:檢視餘額、取款、存款、修改密碼 、登出菜單,并實作相關功能。
// 附加:
// 4)建立兩個使用者A(初始資金1W)、B(初始資金2W),并添加一個銀行賬戶(總資金10W,A、B使用者資金計入在内)處理資金平衡,并記錄相關記錄檔。
// 注:1)排版及代碼規範;
// 2)需要添加注釋
// 3)功能完整性
// 4)增強使用者體驗
//
//
int num,password;
// int flag = 0;//a,b登陸成功的标示
// int flag1 = 0; // 進入列印憑條的标示
int a;//選擇
double qukuan = 0; //額,這個就是存取款變量
//----------------因為是取款機,是以程式是死循環
//------------功能實作
//------------輸入賬号密碼登陸(密碼修改後使用新密碼登陸)
//------------檢視餘額(每次操作後會更新)
//------------取款(不能取超過機子的錢,也不能透支)
//------------存款(随便存)
//------------修改密碼,同上
//------------退出登陸(退出了這個操作機子的人,等待下一個繼續操作這台ATM機子)
//------------輸入内部的銀行賬戶可以登陸檢視A,B的資訊,還有ATM機子的餘額情況
//------------初始密碼都在上面。。。
//------------ -_-||要停止運作請拆電池。。。
while (1) {
printf("程式一直運作中。。。\n");
printf("請輸入賬号和密碼:");
scanf("%d%d",&num,&password);
if (num == A.num && password == A.password) {
int kongzhi = 1; //a,b中的控制
printf("a登陸成功!");
while (kongzhi) {
//a的資訊
printf("\n1.檢視餘額\n");
printf("2.取款\n");
printf("3.存款\n");
printf("4.修改密碼\n");
printf("5.登出\n");
scanf("%d",&a);//輸入選擇資訊
switch (a) {
case 1:
//1.檢視餘額
printf("餘額為:%.2lf",A.balance);
printf("\n-----------------------\n");
break;
case 2:
printf("請輸入你要取款的金額:");
scanf("%lf",&qukuan);
//取款這裡不能為0啊
if (qukuan <= A.balance) {
A.balance = A.balance - qukuan;
C.balance = C.balance - qukuan; //取款機的餘額減少
printf("取款成功!");
}else if (qukuan > C.balance){
printf("取款機餘額不足!");
}
else {
printf("餘額不足!");
}
printf("\n-----------------------\n");
break;
case 3:
printf("請輸入你要存款的金額:");
scanf("%lf",&qukuan);
A.balance = A.balance +qukuan;
C.balance = C.balance +qukuan; //取款機裡面的前增加
printf("\n存款成功!\n");
printf("\n-----------------------\n");
break;
case 4:
printf("請輸入新的密碼:");
scanf("%d",&password);
A.password = password;
printf("\n密碼修改成功!\n");
printf("\n-----------------------\n");
break;
case 5:
printf("你已經退出了!");
printf("\n-----------------------\n");
kongzhi = 0;
break;
default:
printf("輸入錯誤!");
printf("\n-----------------------\n");
break;
}
}
continue;
}else if (num == B.num && password == B.password){
int kongzhi = 1; //a,b中的控制
while (kongzhi) {
printf("b登陸成功");
//b的資訊
printf("\n1.檢視餘額\n");
printf("2.取款\n");
printf("3.存款\n");
printf("4.修改密碼\n");
printf("5.登出\n");
scanf("%d",&a);//輸入選擇資訊
switch (a) {
case 1:
//1.檢視餘額
printf("餘額為:%.2lf",B.balance);
printf("\n-----------------------\n");
break;
case 2:
printf("請輸入你要取款的金額:");
scanf("%lf",&qukuan);
if (qukuan <= B.balance) {
B.balance = B.balance - qukuan;
C.balance = C.balance - qukuan;//取款機裡面的錢減少
printf("取款成功!");
}else if (qukuan > C.balance){
printf("取款機餘額不足!");
}
else {
printf("餘額不足!");
}
printf("\n-----------------------\n");
break;
case 3:
printf("請輸入你要存款的金額:");
scanf("%lf",&qukuan);
B.balance = B.balance +qukuan;
C.balance = C.balance +qukuan; //取款機裡面的前增加
printf("\n存款成功!\n");
printf("\n-----------------------\n");
break;
case 4:
printf("請輸入新的密碼:");
scanf("%d",&password);
B.password = password;
printf("\n密碼修改成功!\n");
printf("\n-----------------------\n");
break;
case 5:
printf("你已經退出了!");
printf("\n-----------------------\n");
kongzhi = 0 ;
break;
default:
printf("輸入錯誤!");
printf("\n-----------------------\n");
break;
}
}
continue;
/
}else if(num == C.num && password == C.password){
printf("銀行賬戶登陸成功!\n");
printf("ATM機的餘額%.2lf\n",C.balance);
printf("戶主:%s,賬号%d, 餘額:%.2lf\n",B.name,B.num,B.balance);
printf("戶主:%s,賬号%d, 餘額:%.2lf\n",A.name,A.num,A.balance);
continue;
}
else{
printf("你的賬号或者密碼輸入有錯!請重新輸入:\n");
continue;
}
}
return 0;
}