ATM取款机模拟系统程序设计报告完成版doc文档格式.docx

上传人:b****4 文档编号:16678530 上传时间:2022-11-25 格式:DOCX 页数:49 大小:352.30KB
下载 相关 举报
ATM取款机模拟系统程序设计报告完成版doc文档格式.docx_第1页
第1页 / 共49页
ATM取款机模拟系统程序设计报告完成版doc文档格式.docx_第2页
第2页 / 共49页
ATM取款机模拟系统程序设计报告完成版doc文档格式.docx_第3页
第3页 / 共49页
ATM取款机模拟系统程序设计报告完成版doc文档格式.docx_第4页
第4页 / 共49页
ATM取款机模拟系统程序设计报告完成版doc文档格式.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

ATM取款机模拟系统程序设计报告完成版doc文档格式.docx

《ATM取款机模拟系统程序设计报告完成版doc文档格式.docx》由会员分享,可在线阅读,更多相关《ATM取款机模拟系统程序设计报告完成版doc文档格式.docx(49页珍藏版)》请在冰豆网上搜索。

ATM取款机模拟系统程序设计报告完成版doc文档格式.docx

2、设计

(1)数据分析(描述定义的各主要变量的作用及意义);

charzhanghao[16];

/*用户账号*/

charxingming[9];

/*用户姓名*/

charmima[7];

/*账户密码*/

charshengfenzheng[19];

/*用户身份证号*/

floatyue;

/*账户余额*/

charkaihushijian[50];

/*开户时间*/

charzhanghao[16];

/*交易的账号*/

charjiaoyishijian[50];

/*交易时间*/

charleixing[5];

/*交易类型*/

floatjiaoyijine;

/*交易金额*/

floatjiaoyiyue;

/*交易后的余额*/

charduifangzhanghao[12];

/*交易时的对方账号*/

intzhanghuxuhao=0,jiaoyixuhao=0,dangqianxiabiao=0,duifangzhanghuxiabiao=0;

/*账户序号,交易序号,当前登录的账户下标,转账时对方的账户下标*/

注册函数:

intbaiwei,shiwei,gewei,len;

/*定义账号的后三位*/

charmima2[7];

/*注册时第二次输入的密码*/

登录函数:

charzhanghao[16],mima[7];

/*登录时输入的账号和密码*/

装载和保存文件函数:

FILE*fp;

/*定义文件指针*/

charwenjianming[13];

/*定义输入的文件名*/

存、取款,转账函数:

floatjine;

/*输入的存、取款,转账金额*/

chart[30];

/*把取得的存、取款,转账时间赋给该数组*/

转账函数:

charduifangzhanghao[16],c;

/*输入的对方账号赋给该数组。

在判断是否继续时,把输入的字符Y或N赋给c,以便读入选择*/

修改密码函数:

charmima[7],xinmima1[7],xinmima2[7];

/*旧密码,第一次输入的新密码,第二次输入的新密码*/

(2)程序流程分析(描述主程序的基本构成、函数设计、函数的调用关系、各部分的流程图等。

主程序的基本构成:

structZhanghu

{};

/*账户的结构体*/

typedefstruct

{}Jiaoyi;

/*交易记录的结构体*/

intmenu();

/*主菜单函数*/

voidzhuce();

/*主菜单功能函数—注册函数*/

voiddenglu();

/*主菜单功能函数登录函数*/

voidzhuangzai();

/*主菜单功能函数装载数据函数*/

voidbaocun();

/*主菜单功能函数保存数据函数*/

intdenglu_menu();

/*登录菜单函数*/

voidcunkuan();

/*登录菜单功能函数—存款函数*/

voidqukuan();

/*登录菜单功能函数—取款函数*/

voidzhuanzhang();

/*登录菜单功能函数—转账函数*/

voidchaxun();

/*登录菜单功能函数—查询函数*/

voidxiugaimima();

/*登录菜单功能函数—修改密码函数*/

intchaxun_menu();

/*查询菜单函数*/

voidchaxun_yue();

/*查询菜单功能函数—查询余额函数*/

voidchaxun_mingxi();

/*查询菜单功能函数—查询明细函数*/

voidchaxun_cunkuan();

/*查询菜单功能函数—查询存款函数*/

voidchaxun_qukuan();

/*查询菜单功能函数—查询取款函数*/

voidchaxun_zhuanzhang();

/*查询菜单功能函数—查询转账函数*/

函数设计:

本程序在函数设计上采用结构化程序设计方法,自顶向下,逐步根据功能设计函数,逐步细化设计,由浅入深,模块化设计,保证了程序的可读性和质量。

先设计主菜单(一级菜单)的功能函数,再设计二级菜单的功能函数,自顶而下,逐步细化。

如图示意:

(顶层设计)

(第二层

设计)

二级菜单

(第三层设计)

函数调用关系:

注册函数的流程图:

N

Y

登录函数的流程图:

修改密码函数的流程图:

Y

存款函数的流程图:

取款函数的流程图:

转账函数的流程图:

装载函数的流程图:

保存函数的流程图:

3、编码及调试

#include<

stdio.h>

stdlib.h>

string.h>

time.h>

conio.h>

#defineZHANGHUSHU100

{

};

typedefstruct/*交易记录的结构体*/

}Jiaoyi;

structZhanghuzhanghu[100];

/*定义账户的结构体数组,可以注册100个账户*/

intzhanghuxuhao=0,jiaoyixuhao=0,dangqianxiabiao=0,duifangzhanghuxiabiao=0;

Jiaoyijiaoyi[1000];

/*定义交易记录的结构体数组,可以保存1000条交易记录*/

/*声明主菜单函数*/

/*声明注册函数*/

/*声明登录函数*/

/*声明装载数据函数*/

/*声明保存数据函数*/

/*声明登录菜单函数*/

/*声明存款函数*/

/*声明取款函数*/

/*声明转账函数*/

/*声明查询函数*/

/*声明修改密码函数*/

/*声明查询菜单函数*/

/*声明查询余额函数*/

/*声明查询明细函数*/

/*声明查询存款函数*/

/*声明查询取款函数*/

/*声明查询转账函数*/

voidmain()/*主函数*/

{

system("

color1F"

);

/*设置运行界面的背景颜色为蓝色*/

printf("

\n\n\n\n\n\n\n\n\t\t\t欢迎使用ATM终端机!

\n\n\n\t\t\t"

pause"

/*暂停功能*/

cls"

/*清屏*/

for(;

;

)/*空循环语句*/

{

switch(menu())/*主菜单选择判断*/

case1:

zhuce();

/*调用注册函数*/

printf("

\t\t\t"

break;

case2:

denglu();

/*调用登录函数*/

case3:

zhuangzai();

/*调用装载数据的函数*/

case4:

baocun();

/*调用保存数据的函数*/

case0:

\t\t\t欢迎使用ATM终端机管理系统。

谢谢!

\n"

/*结束程序*/

exit(0);

}

}

intmenu()/*定义主菜单函数*/

charc;

do

{

/*每次选择运行前清屏*/

printf("

\n\n\n\n\t\t------------------------------------------\n"

\t\t********ATM终端机管理系统主菜单********\n"

/*主菜单选择*/

\t\t------------------------------------------\n"

\t\t*|1.注册|\n"

\t\t*|2.登录|\n"

\t\t*|3.装载数据|\n"

\t\t*|4.保存数据|\n"

\t\t*|0.退出|\n"

\t\t*^_^*^_^*^_^*^_^*^_^*^_^*^_^*^_^*^_^*^_^*\n"

\t\t\t请作出选择(0-4):

"

c=getchar();

/*读入选择*/

}while(c<

'

0'

||c>

4'

return(c-'

/*c变为空后返回重新选择*/

/***************定义主菜单里的各功能函数函数**********************/

voidzhuce()/*定义注册函数*/

intbaiwei,shiwei,gewei,len;

chart[30];

inti,j=0;

time_trawtime;

structtm*timeinfo;

time(&

rawtime);

/*调用时间函数,取得开户时间*/

timeinfo=localtime(&

strcpy(t,asctime(timeinfo));

for(i=0;

i<

strlen(t);

i++)

if(t[i]=='

\n'

{

t[i]='

\0'

break;

}

strcpy(zhanghu[zhanghuxuhao].zhanghao,"

625301234567"

/*复制账号的前12位*/

baiwei=zhanghuxuhao/100;

shiwei=zhanghuxuhao/10%10;

gewei=zhanghuxuhao%10;

zhanghu[zhanghuxuhao].zhanghao[12]=baiwei+'

zhanghu[zhanghuxuhao].zhanghao[13]=shiwei+'

zhanghu[zhanghuxuhao].zhanghao[14]=gewei+'

zhanghu[zhanghuxuhao].zhanghao[15]='

/*运行前清屏*/

\n\n\n\t\t\t注册功能————ZHUCEGONGNENG\n\n\n"

\t\t请输入姓名:

fflush(stdin);

/*消耗输入字符后的回车操作*/

scanf("

%s"

zhanghu[zhanghuxuhao].xingming);

\t\t请输入6位数密码:

fflush(stdin);

scanf("

zhanghu[zhanghuxuhao].mima);

len=strlen(zhanghu[zhanghuxuhao].mima);

if(len!

=6)/*判断密码是否为6位*/

{

\t\t您的密码不是6位数!

system("

return;

}

//此处用字符串长度函数来判断密码的位数

\t\t请再次输入密码:

mima2);

if(strcmp(zhanghu[zhanghuxuhao].mima,mima2)!

=0)/*判断两次密码输入是否相同*/

j++;

printf("

\t\t您的密码输入错误!

您还有%d次机会输入密码!

3-j);

if(j==3)/*密码输入错误不得超过三次*/

system("

while(strcmp(zhanghu[zhanghuxuhao].mima,mima2)!

=0);

\t\t请输入身份证号:

zhanghu[zhanghuxuhao].shengfenzheng);

len=strlen(zhanghu[zhanghuxuhao].shengfenzheng);

=18&

&

len!

=15)/*判断身份证号位数是否为15位或18位*/

身份证号错误!

请输入15位或18位身份证号!

}while(len!

=15);

\t\t请输入存入金额:

%f"

&

zhanghu[zhanghuxuhao].yue);

if((int)zhanghu[zhanghuxuhao].yue%50!

=0)/*存款金额必须为50的整数倍*/

本终端机只接受50元或100元面值的存款!

system("

return;

strcpy(zhanghu[zhanghuxuhao].kaihushijian,t);

/*复制开户时间*/

strcpy(jiaoyi[jiaoyixuhao].zhanghao,zhanghu[zhanghuxuhao].zhanghao);

/**/

strcpy(jiaoyi[jiaoyixuhao].leixing,"

存"

/*复制交易类型*/

strcpy(jiaoyi[jiaoyixuhao].jiaoyishijian,t);

/*复制交易时间*/

jiaoyi[jiaoyixuhao].jiaoyijine=zhanghu[zhanghuxuhao].yue;

/*第一次交易的账户余额值赋给交易经额的值*/

jiaoyi[jiaoyixuhao].jiaoyiyue=zhanghu[dangqianxiabiao].yue;

/*第一次交易的账户余额值赋给交易余额的值*/

\n\t\t开户成功!

\t"

//输出账户第一次交易的数据清单

\n\n账号\t\t交易类型\t交易金额\t余额\t\t交易时间\n"

%s\t"

zhanghu[zhanghuxuhao].zhanghao);

%s"

jiaoyi[jiaoyixuhao].leixing);

\t\t%.2f"

zhanghu[zhanghuxuhao].yue);

\t%.2f"

%s\t\n\n"

zhanghu[zhanghuxuhao].kaihushijian);

zhanghuxuhao++;

/*账户序号加一*/

jiaoyixuhao++;

/*交易序号加一*/

\t\t\t\t"

/*暂停*/

voiddenglu()/******定义登录函数*******/

inti=0,j=0;

\n\n\n\t\t\t登录功能————DENGLUGONGNENG\n\n\n"

/*进入登录得功能界面*/

\t\t输入账号:

zhanghao);

/*输入账号*/

for(i=0;

zhanghuxuhao;

i++)/*在已注册的账号中依次寻找该账号*/

if(strcmp(zhanghao,zhanghu[i].zhanghao)==0)

dangqianxiabiao=i;

/*若找到,则跳出循环*/

if(i==zhanghuxuhao)/*注册的账号中没输入的账号*/

\t\t当前账号不存在!

\n\t\t输入密码:

mima);

if(strcmp(mima,zhanghu[i].mima)!

=0)

\n\n"

{system("

}while(strcmp(mima,zhanghu[i].mima)!

switch(denglu_menu())/***登陆界面选择判断***/

cunkuan();

/*调用存款函数*/

qukuan();

/*调用取款函数*/

zhuanzhang();

/*调用转账函数*/

chaxun();

/*调用查询函数*/

case5:

xiugaimima();

/*调用修改密码函数*/

return;

/*返回上一级菜单界面*/

intdenglu_menu()/**********************定义登录菜单函数**************************/

\n\n\n\t\t********

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1