概述
这里使用的运行工具是DEV C++。老铁们一定要看仔细了。是DEV C++
仅供借鉴:这个是大一时期写的。大四的时候整理了一下(本人C语言学的也不太好)。肯定很多不足和存在漏洞的地方、仅供借鉴、仅供借鉴。
一、课程设计的目的
掌握C语言程序设计的基础知识、基本理论、原理和实现技术。
二、课程设计的题目
银行ATM存取款系统
三、设计内容
(主要技术关键的分析、解决思路和方案比较等)
银行ATM存取款系统
银行ATM存取款系统业务描述如下:
银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。
为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。
用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。
本系统各个业务有如下注意点:
(1)登陆系统
用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。
(2)开户业务
要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。
(3)存款业务
客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。
(4)取款业务
客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。
(5)查询业务
客户登陆系统后,可以选择查询业务,查询账户余额。
(6)转账业务
客户登陆系统后,可以选择转账业务,进行转账。注意的是转账的目的账户必须是本系统已经存在的银行账户。
(7)修改密码
客户登陆系统后,可以选择修改密码业务,进行密码修改。
实现的效果
源码
#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 1000 #include<conio.h> struct chuhu{ char idnum[9];//账户 char name[10];//姓名 char idnumber[20];//省份证号 char password[7];//密码 double cunkuan;//存款 }hu[N]; void date();//显示当前日期 int a,a1;//主界面选择变量 void Flag1();//主界面 void Flag2();//用户界面 void Flag3();//用户功能选择界面 void zhuce();//注册 int yanzheng();//验证存单号或密码 //&&&&&&&&&&&&&&&&&&&&&&& void qukaun();//取款 void cunkaun();//存款 void display();//查询 void zhuan();//转账 void xiugai();//密码修改 void display();//查找 //&&&&&&&&&&&&&&&&&&&&&&&&&& int A,key;//开户人数 int i;//控制密码循环 char ch='y';//是否继续注册 double jin;//存的钱 int t; char id[11],password[7]; int main(){ system("COLOR 0A"); int b; Flag1();//引入主界面 do{ printf("nntt##请输入你的选择:"); scanf("%d",&a); switch(a){ case 1:{ zhuce();//zhuce Flag1(); break; } case 2:{ b=yanzheng(); fflush(stdin);///好东西,以防跳过数据 Flag2(); break; } case 3:exit(0);break; default:printf("nnntt您输入的数据不符合要求!!!nnnnn"); } }while(1); } void Flag1(){ printf("n#################################################################################n"); printf("n▓ * 银行定期储蓄管理系统 * ▓n"); printf("n#################################################################################n"); printf("n ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆n"); printf(" |◆|******|◆| |◆|******|◆|n"); printf(" |◆|******|◆| ☆ 开户业务 请按 1 |◆|******|◆|n"); printf(" |◆|******|◆| ☆ 登录系统 请按 2 |◆|******|◆|n"); printf(" |◆|******|◆| ☆ 退出 请按 3 |◆|******|◆|n"); printf(" |◆|******|◆| |◆|******|◆|n"); printf(" ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆n"); printf("n#################################################################################n"); } //******************************************************************************************************************** //用户界面 void Flag2(){ int a,b;//选择功能的变量 do{ printf("nn按ENTER键进入、返回主菜单 " ) ; fflush(stdin); scanf("%c",&ch); system("cls");//清屏 date(); printf("n#################################################################################n"); printf("n▓ * 欢迎使用 * ▓n"); printf("n#################################################################################n"); printf("n ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆n"); printf(" |◆|******|◆| ☆ 存款业务 请按 1 |◆|******|◆|n"); printf(" |◆|******|◆| ☆ 取款业务 请按 2 |◆|******|◆|n"); printf(" |◆|******|◆| ☆ 查询业务 请按 3 |◆|******|◆|n"); printf(" |◆|******|◆| ☆ 转账业务 请按 4 |◆|******|◆|n"); printf(" |◆|******|◆| ☆ 修改密码 请按 5 |◆|******|◆|n"); printf(" |◆|******|◆| ☆ 退出系统 请按 6 |◆|******|◆|n"); printf(" |◆|******|◆| |◆|******|◆|n"); printf(" ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆n"); printf("n#################################################################################n"); printf("n▓ ******************************* ▓n"); printf("n#################################################################################n"); printf("nntt##请输入你的选择:"); fflush(stdin); scanf("%d",&a); switch(a){//注册 case 1: { system("cls");fflush(stdin);cunkaun();break;//存款 } case 2: {system("cls");fflush(stdin);qukaun();break;//取款 } case 3: {display();//查询业务 break; } case 4:{system("cls");fflush(stdin);zhuan();break;//转账 } case 5: {system("cls");fflush(stdin);xiugai();break;//密码修改 } case 6: exit(0); default:printf("您输入的选择有误,请输入正确的选项:"); } } while(1); } //******************************************************************************************************************** //用户功能选择界面 void Flag3(){ printf("nntt##请输入你的选择:"); scanf("%d",&a1); switch(a1){ case 1:printf("存款业务");break; case 2:printf("取款业务");break; case 3:printf("查询业务");break; case 4:printf("转账业务");break; case 5:printf("密码修改");break; case 6:printf("退出");break; } } //******************************************************************************************************************** //开户 void zhuce(){ FILE *nchuhu=fopen("chuh.txt","r"); FILE *fchuhu=fopen("chuh.txt","a"); int i; if((nchuhu=fopen("chuh.txt","r"))==NULL) printf("文件无,系统创建n"); do{ system("cls"); date();//显示当前日期 printf("nntt请输入新储户的信息:"); fscanf(nchuhu,"%st%st%st%st%lfn",&hu[A].idnum,&hu[A].name,&hu[A].idnumber,&hu[A].password,&hu[A].cunkuan); printf("nntt储户存单:"); fflush(stdin); gets(hu[A].idnum); printf("ntt姓名:"); fflush(stdin); gets(hu[A].name); printf("ntt储户密码(6位):"); for(i=0;i<6;i++){ fflush(stdin); hu[A].password[i]=getch(); printf("*"); // scanf("%d",&hu[A].password[i]); } do{ printf("请输入省份证号码(18位):"); fflush(stdin); gets(hu[A].idnumber); if(strlen(hu[A].idnumber)!=18)//strlen 代表的意思 printf("ntt输入错误!ntt身份证请输入18位数字或者字母n"); for(i=0;i<A;i++) if(strcmp(hu[A].idnumber,hu[i].idnumber)==0&&strcmp(hu[A].name,hu[i].name)==0) break; if(i<A) printf("nntt前面已经有人用此身份证注册过nntt请重新输入省份证号:n"); }while((strlen(hu[A].idnumber)!=18)||(strcmp(hu[A].idnumber,hu[i].idnumber)==0)&&(strcmp(hu[A].name,hu[i].name)!=0) ); printf("输入存储的金额:"); fflush(stdin); scanf("%lf",&hu[A].cunkuan); fprintf(fchuhu,"%st%st%st%st%lfn",hu[A].idnum,hu[A].name,hu[A].idnumber,hu[A].password,hu[A].cunkuan); A++; printf("是否继续是(y)/否(n)?"); fflush(stdin); scanf("%c",&ch); }while(ch=='y'||ch=='Y'); printf("存入成功!"); // system("pause"); system("cls"); fclose(nchuhu); fclose(fchuhu); } //******************************************************************************************************************** //验证存单号或密码 int yanzheng(){ FILE *fchuhu=fopen("chuh.txt","r"); int count=0; char id[9]; for(i=0;i<=100;i++){ fscanf(fchuhu,"%st%st%st%st%lfn",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan); } do{ system("cls"); printf("nnntt$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$n"); printf("tt|#| |#|n"); printf("tt|#| ☆☆☆☆☆☆☆☆☆☆ |#|n"); printf("tt|#| ☆ ☆ |#|n"); printf("tt|#| ☆ 存单号或者密码有误自动返回 ☆ |#|n"); printf("tt|#| ☆ ☆ |#|n"); printf("tt|#| ☆☆☆☆☆☆☆☆☆☆ |#|n"); printf("tt|#| |#|n"); printf("tt$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$n"); printf("nnntt 请输入您的存单号: "); scanf("%s",&id); printf("nnntt 请输入您的密码: "); for(i=0;i<6;i++){ fflush(stdin); password[i]=getch(); printf("*"); } password[6]=' '; fflush(stdin); scanf("c",&ch); printf("nntt"); for(i=0;i<99;i++){ if(strcmp(id,hu[i].idnum)==0&&strcmp(password,hu[i].password)==0){ fclose(fchuhu); return 0; } } }while(count==0); fclose(fchuhu); return count; } //******************************************************************************************************************** //******************************************************************************************************************** //存款 void cunkaun(){ FILE *fchuhu=fopen("chuh.txt","r"); FILE *achuhu=fopen("back.txt","w"); char id[9];int i; if(!fchuhu) printf("不能打开文件:"); if(!achuhu) printf("不能创建文件"); for(i=0;i<=100;i++){ fscanf(fchuhu,"%st%st%st%st%lfn",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan); } // int x=0; date(); printf("nntt##请再次输入并确认存单:"); scanf("%s",&id); for(i=0;i<=100;i++){ if(strcmp(id,hu[i].idnum)==0){ printf("nn"); printf("tt||================================================================||n"); printf("tt|| *存款金额* ||n"); printf("tt||================================================================||n"); printf("tt|| ||n"); printf("tt|| ||n"); printf("tt|| 1、200 2、400 3、600 4、800 ||n"); printf("tt|| ||n"); printf("tt|| ||n"); printf("tt|| 5、1000 6、2000 7、4000 8、6000 ||n"); printf("tt|| ||n"); printf("tt||================================================================||n"); printf("tt||================================================================||n"); printf("nnttt请输入你的取款金额:"); scanf("%d",&a); switch(a){ case 1:{jin=200; printf("ttt存款%lf元",jin); printf("nnnttt^^^^存款成功^^^^"); hu[i].cunkuan+=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 2:{jin=400; printf("ttt存款%lf元",jin); printf("nnnttt^^^^存款成功^^^^"); hu[i].cunkuan+=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 3:{ jin=600; printf("ttt存款%lf元",jin); printf("nnnttt^^^^存款成功^^^^"); hu[i].cunkuan+=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 4:{ jin=800; printf("ttt存款%lf元",jin); printf("nnnttt^^^^存款成功^^^^"); hu[i].cunkuan+=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 5:{jin=1000; printf("ttt存款%lf元",jin); printf("nnnttt^^^^存款成功^^^^"); hu[i].cunkuan+=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 6:{jin=2000; printf("ttt存款%lf元",jin); printf("nnnttt^^^^存款成功^^^^"); hu[i].cunkuan+=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 7:{ jin=4000; printf("ttt存款%lf元",jin); printf("nnnttt^^^^存款成功^^^^"); hu[i].cunkuan+=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 8:{ jin=6000; printf("ttt存款%lf元",jin); printf("nnnttt^^^^存款成功^^^^"); hu[i].cunkuan+=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } default:printf("nnnttt您的选择金额不在服务范围内!!!nnnttt请重新选择业务:"); } fclose(fchuhu); fclose(achuhu); system("del chuh.txt"); rename("back.txt","chuh.txt");//rename(旧的,新的) break; } } } //******************************************************************************************************************* //取款 void qukaun(){ FILE *fchuhu=fopen("chuh.txt","r"); FILE *achuhu=fopen("back.txt","w"); int i; char id[9]; if(!fchuhu) printf("不能打开文件:"); if(!achuhu) printf("不能创建新文件:"); for(i=0;i<=100;i++){ fscanf(fchuhu,"%st%st%st%st%lfn",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan); } date(); printf("nntt请再次输入并确认存单:"); scanf("%s",&id); for(i=0;i<=99;i++){ if(strcmp(id,hu[i].idnum)==0){ printf("nn"); printf("tt||================================================================||n"); printf("tt|| *取款金额* ||n"); printf("tt||================================================================||n"); printf("tt|| ||n"); printf("tt|| ||n"); printf("tt|| 1、200 2、400 3、600 4、800 ||n"); printf("tt|| ||n"); printf("tt|| ||n"); printf("tt|| 5、1000 6、2000 7、4000 8、6000 ||n"); printf("tt|| ||n"); printf("tt||================================================================||n"); printf("tt||================================================================||n"); printf("nnttt请输入你的取款金额:"); scanf("%d",&a); switch(a){ case 1:{jin=200; printf("ttt取出%lf元",jin); printf("nnnttt^^^^取款成功^^^^"); hu[i].cunkuan-=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 2:{jin=400; printf("ttt取出%lf元",jin); printf("nnnttt^^^^取款成功^^^^"); hu[i].cunkuan-=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 3:{ jin=600; printf("ttt取出%lf元",jin); printf("nnnttt^^^^取款成功^^^^"); hu[i].cunkuan-=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 4:{ jin=800; printf("ttt取出%lf元",jin); printf("nnnttt^^^^取款成功^^^^"); hu[i].cunkuan-=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 5:{jin=1000; printf("ttt取出%lf元",jin); printf("nnnttt^^^^取款成功^^^^"); hu[i].cunkuan-=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 6:{jin=2000; printf("ttt取出%lf元",jin); printf("nnnttt^^^^取款成功^^^^"); hu[i].cunkuan-=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 7:{ jin=4000; printf("ttt取出%lf元",jin); printf("nnnttt^^^^取款成功^^^^"); hu[i].cunkuan-=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } case 8:{ jin=6000; printf("ttt取出%lf元",jin); printf("nnnttt^^^^取款成功^^^^"); hu[i].cunkuan-=jin; printf("nnttt$您的余额为:%lf",hu[i].cunkuan); fprintf(achuhu,"%st%st%st%st%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); break; } default:printf("nnnttt您的选择金额不在服务范围内!!!nnnttt请重新选择业务:"); } fclose(fchuhu); fclose(achuhu); system("del chuh.txt"); rename("back.txt","chuh.txt"); break; } } } //******************************************************************************************************************** //转账 void zhuan(){ FILE *fchuhu=fopen("chuh.txt","r+"); int i; char id[9]; if(!fchuhu) printf("不能打开文件:"); for(i=0;i<=100;i++){ fscanf(fchuhu,"%st%st%st%st%lfn",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan); } date(); printf("nntt请输入转账人的存单号:"); scanf("%s",&id); for(i=0;i<=99;i++){ if(strcmp(id,hu[i].idnum)==0){ printf("nntt请输入要转账的金额:"); scanf("%lf",&jin); printf("nntt请确认数目:%lf",jin); hu[i].cunkuan+=jin; printf("nnn转账成功"); fprintf(fchuhu,"%st%st%st%st%lfn",hu[A].idnum,hu[A].name,hu[A].idnumber,hu[A].password,hu[A].cunkuan); fclose(fchuhu); fclose(fchuhu); break; } } } //******************************************************************************************************************** //******************************************************************************************************************** void xiugai(){ FILE *fchuhu=fopen("chuh.txt","r"); FILE *achuhu=fopen("back.txt","w"); int j,i; char id[9]; if(!fchuhu) printf("不能打开文件:"); if(!achuhu) printf("不能创建新文件:"); for(i=0;i<=100;i++){ fscanf(fchuhu,"%st%st%st%st%lfn",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan); } date(); printf("nntt请再次输入并确认存单:"); scanf("%s",&id); for(i=0;i<=99;i++){ if(strcmp(id,hu[i].idnum)==0){ printf("请输入新的密码:n"); printf("ntt储户密码(6位):"); for(j=0;j<6;j++){ fflush(stdin); hu[i].password[j]=getch(); printf("*"); } printf("nntt新的密码:%sn",hu[i].password); printf("nntt修改成功"); fprintf(achuhu,"%st%st%st%st%lfn",hu[A].idnum,hu[A].name,hu[A].idnumber,hu[A].password,hu[A].cunkuan); fclose(fchuhu); fclose(achuhu); system("del chuh.txt"); rename("back.txt","chuh.txt"); break; } } } //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //查询信息 void display(){ FILE *fchuhu=fopen("chuh.txt","r"); int i,n=0; char fnumb[9]; system("cls"); for(i=0;i<=100;i++){ fscanf(fchuhu,"%st%st%st%st%lfn",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan); } printf("nn●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●n"); printf("nn ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● n"); printf("nn ●●●●●●●●●●●●●●●●●●●●●●●●●● n"); printf("nnnttttt请输入你的存单号:"); scanf("%s",&fnumb); printf("nnn"); printf("ttttt您的个人信息如下:"); printf("nn"); for(i=0;i<=99;i++) if(strcmp(fnumb,hu[i].idnum)==0){ printf("存单号:%st姓名:%st身份证:%st密码:%st存款金额:%lfn",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan); n=1; fclose(fchuhu); system("pause"); break; } if(n==0) printf("此账单不存在!!!n"); fclose(fchuhu); } //******************************************************************************************************************** void date(){//显示当前日期 printf("当前日期:"); system("date/t"); printf("当前时间:"); system("time/t"); }
业务流程
1、用户开户
2、登录流程
3、密码修改
以上就是C语言编程银行ATM存取款系统实现源码的详细内容,更多关于C语言实现银行ATM存取款系统的资料请关注靠谱客其它相关文章!
最后
以上就是现实高山为你收集整理的C语言编程银行ATM存取款系统实现源码的全部内容,希望文章能够帮你解决C语言编程银行ATM存取款系统实现源码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复