//
// main.m
// ATM程序
//
// Created by 钟纪旺 on 16/3/1.
// Copyright © 2016年 钟纪旺. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
//函数调用声明区
void window();
void operFunc(int oper);
void getMoney();
void outmoney();
void givemoney();
void changerMoney();
void changePassword();
void zhuanzhang();
void chaxun();
//全局变量声明区
//int sysPassword=999999;
int Money=10000;
int liu=8000;
void sMoney(){
int Money=10000;
FILE * fp = fopen("/Users/zhongjiwang/Desktop/Money.txt", "r");
if (!fp) {
printf("余额文件加载失败......\n");
exit(0);
}
fscanf(fp, "%d", &Money);
fclose(fp);
}
void gMoney(){
int onePsd=0;
FILE * fp = fopen("/Users/zhongjiwang/Desktop/Money.txt", "w");
if (!fp) {
printf("余额文件加载失败......\n");
exit(0);
}
int i = fprintf(fp, "%d", onePsd);
if (!i) {
printf("余额写入失败!\n");
exit(0);
}else{
printf("余额写入成功!\n");
fclose(fp);
}
}
//验证密码 欢迎界面
void checkPassword(){
//从文件中获取原始密码
int sysPassword2 = 0;
FILE * fp = fopen("/Users/zhongjiwang/Desktop/sysPassword.txt", "r");
if (!fp) {
printf("密码文件加载失败......\n");
exit(0);
}
fscanf(fp, "%d", &sysPassword2);
//printf("sysPassword2 = %d\n", sysPassword2) ;
if (!sysPassword2) {
int onePsd = 0, onePsdt = 0;
printf("第一次登录,请设置原始密码:\n");
loop:printf("请输入原始密码:");
scanf("%d", &onePsd);
printf("再输入原始密码:");
scanf("%d", &onePsdt);
if(onePsdt != onePsd)
{
printf("两次新密码设置不一样,请重新输入!\n");
goto loop;
}else{
FILE * fp = fopen("/Users/zhongjiwang/Desktop/sysPassword.txt", "w");
if (!fp) {
printf("密码文件加载失败......\n");
exit(0);
}
int i = fprintf(fp, "%d", onePsd);
if (!i) {
printf("密码写入失败!\n");
exit(0);
}else{
printf("密码写入成功!请重新登录\n");
fclose(fp);
checkPassword();
}
}
}else{
fclose(fp);
}
//定义输入的密码变量名
int inPassword=0;
int times=0;//控制输入的次数
printf("---欢迎使用ATM机---\n");
printf("请输入银行卡六位数密码:\n");
scanf("%d",&inPassword);
while(inPassword>999999||100000>inPassword)
{
printf("您输入的密码有误!请重新输入:\n");
printf("请输入银行卡六位数密码:\n");
scanf("%d",&inPassword);
}
times++;
while (inPassword!=sysPassword2){
//判断是不是第三次输入错误,如果错误直接退出程序
if(times==3){
printf("密码连续三次输入错误,您的卡已被冻结!\n");
printf("请到银行办理激活手续!");
exit(0);
}
//提示密码错误请重新输入
printf("密码第%d次错误,还有%d次机会\n",times,3-times);
printf("请输入银行卡密码:\n");
scanf("%d",&inPassword);
times++;
}
printf("恭喜您输入的密码正确!\n");
window();
}
// 主界面函数
void window (){
int oper=0;
printf("欢迎进入ATM取款机\n");
printf("----------------\n");
printf("1-取款 2-存款\n");
printf("3-转账 4-改密\n");
printf("5-查询 6-退卡\n");
printf("----------------\n");
printf("请输入操作指令1-6:\n");
scanf("%d",&oper);
while(oper>6||oper<1){
printf("输入错误!请重新输入:\n");
printf("请输入操作指令1-6:\n");
}
operFunc(oper);
}
//指令处理函数
void operFunc(int oper){
switch (oper) {
case 1:
//取款功能
printf("取款进行中....请稍后....\n");
getMoney();
break;
case 2:
//存款功能
printf("存款进行中....请稍后....\n");
givemoney();
break;
case 3:
//转账功能
printf("转账进行中....请稍后....\n");
zhuanzhang();
break;
case 4:
//改密功能
printf("改密进行中....请稍后....\n");
changePassword();
break;
case 5:
//查询功能
printf("查询进行中....请稍后....\n");
chaxun();
break;
case 6:
//退卡功能
printf("退卡进行中....请稍后....\n");
printf("卡已退回,请取卡");
exit(0);
break;
}
}
// 取款功能
void getMoney(){
int money=0;
int oper1=0;
int oper2=0;
printf("请选择取款金额\n");
printf("1-100 2-200 \n");
printf("3-500 4-1000 \n");
printf("5-5000 6-手动输入\n");
printf("7-退卡 8-返回主页面\n");
scanf("%d",&oper1);
if (Money==0){
printf("卡上余额为0,以自动返回主页面\n");
window();
}
else if(oper1==1){
int money=100;
outmoney(money);
}
else if(oper1==2){
int money=200;
outmoney(money);
}
else if(oper1==3){
int money=500;
outmoney(money);
}
else if(oper1==4){
int money=1000;
outmoney(money);
}
else if(oper1==5){
int money=5000;
outmoney(money);
}
else if(oper1==6){
printf("请输入您要取款的金额:");
scanf("%d",&money);
while (money%100!=0||money==0) {
printf("输入有误!请重新输入:");
scanf("%d",&money);
}
while (money>Money) {
printf("余额不足");
printf("已自动重新进入选择界面\n");
getMoney();
}
Money=Money-money;
printf("以取钱%d元余额%d元.\n",money,Money);
}
else if(oper1==7){
printf("卡已退回,请取卡");
exit(0);
}
else if(oper1==8){
window();
}
printf("请继续选择服务项目\n");
printf("1-继续取款\n");
printf("2-返回主页面\n");
printf("3-退卡\n");
scanf("%d",&oper2);
while(oper2>3||oper2<1){
printf("输入错误!请重新输入:\n");
printf("请输入操作指令1-3:\n");
scanf("%d",&oper2);
}
if(oper2==1) {
getMoney();
}
if(oper2==2) {
window();
}
if(oper2==3) {
printf("卡已退回,请取卡");
exit(0);
}
}
//取款
void outmoney(int money){
while (money>Money) {
printf("余额不足,请重新输入");
printf("已自动重新进入选择界面\n");
getMoney();
} Money=Money-money;
printf("以取钱%d元余额%d元:",money,Money);
}
//存款
void givemoney(){
int money=0;
int oper=0;
printf("请输入存款金额\n");
scanf("%d",&money);
while (money%100!=0)
{
printf("输入有误!请重新输入");
scanf("%d",&money);
}
printf("恭喜您!存款成功");
Money=Money+money;
printf("您的账户已存款%d元!余额%d元!\n",money,Money);
printf("请继续选择操作\n");
printf("1-继续存款 2-返回主页面\n");
printf("3-退卡\n");
scanf("%d",&oper);
while(oper>3||oper<1){
printf("输入错误!请重新输入:\n");
printf("请输入操作指令1-3:\n");
scanf("%d",&oper);
}
if(oper==1)
givemoney();
if(oper==2)
window();
if (oper==3) {
exit(0);
}
}
//改密
void changePassword(){
i
我慢慢地也过来了
- 粉丝: 1w+
- 资源: 4083
最新资源
- 新年主题-3.花生采摘-猴哥666.py
- (6643228)词法分析器 vc 程序及报告
- mysql安装配置教程.txt
- 动手学深度学习(Pytorch版)笔记
- mysql安装配置教程.txt
- mysql安装配置教程.txt
- 彩页资料 配变智能环境综合监控系统2025.doc
- 棉花叶病害图像分类数据集5类别:健康的、蚜虫、粘虫、白粉病、斑点病(9000张图片).rar
- (176205830)编译原理 词法分析器 lex词法分析器
- 使用Python turtle库绘制哈尔滨亚冬会特色图像-含可运行代码及详细解释
- 2023年全国职业院校技能大赛GZ033大数据应用开发赛题答案(2).zip
- 【天风证券-2024研报-】水利部发布《对‘水利测雨雷达’的新质生产力研究》,重点推荐纳睿雷达.pdf
- 【国海证券-2024研报-】海外消费行业周更新:LVMH中国市场挑战严峻,泉峰控股发布盈喜.pdf
- 【招商期货-2024研报-】2024、25年度新疆棉花调研专题报告:北疆成本倒挂,南疆出现盘面利润.pdf
- 【宝城期货-2024研报-】宝城期货股指期货早报:IF、IH、IC、IM.pdf
- 【国元证券(香港)-2024研报-】即时点评:9月火电和风电增速加快,电力运营商盈利有望改善.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈