ATM自动存取款机课程设计文档格式.docx
- 文档编号:7979727
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:34
- 大小:531.15KB
ATM自动存取款机课程设计文档格式.docx
《ATM自动存取款机课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《ATM自动存取款机课程设计文档格式.docx(34页珍藏版)》请在冰点文库上搜索。
2013年1月5日
二、指导教师评语:
2013年1月5日
三、成绩
验收盖章
2013年1月6日
ATM自动存取款机模拟
1、设计目的
(1)熟悉C语言程序设计的主要内容,以及C语言中各部分功能的实现、函数和变量的定义和调用,加强对C语言逻辑结构的思维培养,加强学生的创新能力。
(2)掌握C语言中多种头文件的使用;
全局变量、局部变量以及静态变量的定义和使用;
主函数和子函数的申明、定义和调用;
多次使用switch语句和if语句,加深对这两个语句的了解。
(3)了解一个程序员设计一个软件应该经历的步骤与过程,明白设计一个软件首先要考虑的是该软件要实现的功能。
然后再对其功能进行设计和编程。
2、设计思路
本程序的设计主要是实现各个函数间的调用,其中使用的函数有23个,合理利用各个函数间的调用,使得程序的功能更加多样化,操作更加简便,其中设计的功能主要分为两大块。
(1)用户使用的ATM自动存取款机功能,其内部功能包括查询余额、取款、存钱、转账、修改密码、充值话费、退出七个功能;
(2)管理员操作的ATM自动存取款机,其内部功能包括快速查询用户信息、增加用户、删除用户、浏览用户、退出界面5个功能,而快速查询用户信息中又包括修改客户信息的功能,程序可以实现修改客户姓名、卡号、密码、金额的信息。
3、设计原理
功能设计过程
该程序的设计需要调用23个函数能
voiddl();
//登陆
voidqk();
//取款
voidcx();
//查询
voidglydl();
//管理员登陆界面
voidsc();
//删除用户
voidks();
//快速查询用户信息
voidtc();
//退卡
voidxg();
//修改用户信息
voidxgmmm();
//修改用户密码
voidxgkh();
//修改卡
voidxgje();
//修改金额
voidxgxm();
//修改姓名
voidll();
//浏览全部用户
voidfhks()//返回快速查询客户界面
voidfhgl();
//返回管理员登陆界面
voidhuangguanlin();
//管理员操作界面。
voidks();
voiddljm();
//登陆成功后出现的界通过调用23个函数分别对struct结构体里的内容进行修改,通过修改能使功能得以实现。
3.1、方案论证
该程序开始时有四个初始值,其中卡号为90000000,密码为88888888为管理员专用账号,其余三个为用户卡号,其卡号分别为10000000、2000000、30000000,密码分别为10000000、20000000、30000000,通过初始值间的值相互间的运算,以及通过函数调用的功能实现操作。
在操作中,用户可以通过登录用户操作界面,选择自己需要的功能,程序通过加减等运算分别对相应的数值进行更改。
管理员可以通过管理员登录界面,实现对用户的信息进行控制,也可以在系统中增加新用户或者删除已存在的用户
3.2、程序的设计
该程序的功能大体分为两大块。
一是用户操作的功能,二是管理员操作的功能,用户操作的功能可以分查询余额、取款、存钱、转账、修改密码、充值话费、退卡七个功能,而管理员操作分为快速查询用户信息、增加用户、删除用户、浏览用户、退出界面5个功能,而快速查询用户信息中又包括修改客户信息的功能,在修改客户信息的功能中通过调用函数,程序可以实现修改客户姓名、卡号、密码、金额的信息功能。
其功能流程图如下:
欢迎使用自动存取款机
客户操作界面管理员操作界面
查询余额取款存款增加用户删除用户
转账修改密码退出浏览用户
快速查询用户信息
修改用户信息返回
修改用户姓名修改用户卡号
修改用户密码修改用户金额
4、程序调试和结果分析
4.1程序调试
(1)ATM登陆界面
(1.1)当输入的卡号时,程序调用voiddl()//登陆函数,当卡号输入为管理员登陆卡号时90000000时将会出现管理员登陆界面,所示如下。
输入卡号后按enter键
(1.2)当输入的卡号为用户卡号时,则出现用户登陆界面
(2)ATM功能调试
(2.1)管理员操作功能调试
当输入管理员登陆密码88888888后按Enter键,系统调用voidhuangguanlin()函数//管理员登陆,进入如下界面:
(2.11)修改用户信息操作调试,输入序号1并按Enter建,出现输入卡号对话宽,将所查询卡号输入,如10000000,并按Enter键,则出现如下界面:
(2.111)当选择了修改客户信息后,系统调用voidxg()//修改,函数。
将弹出如下界面:
(2.1111)当选择修改姓名,并根据对话框提示的操作,在输入姓名对话框中输入修改的姓名,并按Enter键,系统调用voidxgxm()//修改姓名函数,将你需要修改姓名的用户的名字做了修改,操作界面如下。
(2.1.2)增加用户操作功能调试,在管理员操作界面对话框中输入2并按Enter键,系统将会调用voidzj()//增加用户函数,管理员可以分别输入姓名+空格键+卡号+空格键+密码+空格键+金额后按Enter键后系统将自动增加一个客户,操作界面如下:
、
(2.1.3)删除用户操作功能调试,在管理员操作界面输入3并按Enter键后,系统调用voidsc()//删除用户函数,并弹出对话框,管理员输入删除用户卡号并按Enter键后,即可删除该用户,操作界面如下:
(2.1.4)浏览用户操作调试,在管理员操作界面输入4并按Enter键后,系统调用voidll()//浏览用户函数,管理员将可看到所有用户的信息,操作界面如下:
(2.1.5)退出界面调试,在管理员操作界面输入5并按Enter键后,系统调用voidtc()//退出函数,对话框将退出到上一个界面,操作界面如下:
(2.2)用户操作调试,用户在输入卡号与密码后将会弹出如下界面,用户可以按照如下提示去进行操作
(2.2.1)用户执行如上图所示七个功能
(查询余额功能视图)
(取款功能视图)
(存款功能视图)
(转账功能视图)
(充值话费功能视图)
(退卡功能视图)
4.2结果分析
通过复杂的C程序运算,调用多个函数,实现了ATM自动存取款机的多项功能,使用户操作更加方便,同时也使管理员对用户的管理更加方便。
参考文献
[1]《C程序设计》(第四版)谭浩强著
[2]《C语言入门经典》
[3]《CPrimerPlus》
[4]《C语言解惑》
附件
完整程序(分段显示程序)
主函数的定义以及各个子函数的定义,同时给struct结构体进行初始值的声明
//*****************************************************************//
#include<
stdio.h>
#include<
stdlib.h>
intx,b=3;
//记录下标
voiddljm();
//登陆成功后出现的界面
voiddl();
//登陆
voidcx();
//查询
voidqk();
//取款
voidck();
//存款
voidzz();
//转账
voidtk();
//退卡
voidczhf();
//充值话费
voidxgmm();
//修改密码
voidglydl();
voidzj();
//增加用户
//删除用户
voidll();
//退出
//修改用户信息
voidxgkh();
//修改卡号
voidxgmmm();
voidxgje();
//修改金额
voidxgxm();
voidfhks();
//返回快速查询客户界面
//返回管理员登陆界面
//管理员操作界面
structatm//atm自动银行
{charname[10];
intaccount;
//卡号
intpassword;
//密码
floatmoney;
//金额
}
at[10]={
{"
ZhaoLin"
10000000,10000000,40000},{"
MaFang"
20000000,20000000,7000},
HongShan"
90000000,88888888,5693},{"
YuLi"
300000000,30000000,7543}
};
//主函数
voidmain()
{printf("
**********************************************************\n"
);
printf("
**********************\n"
**欢迎使用自动取款机**\n"
);
dl();
//*******************************************************//
登陆函数,功能中包括用户的登陆以及管理员的登陆
//登陆函数
voiddl()
{inta,b,T;
//临时记录下边
******************请输入卡号:
"
scanf("
%d"
&
account);
for(a=0;
a<
=9;
a++)
if(account==at[2].account)
{system("
cls"
//清屏
**************************************************************\n"
**************\n"
******\n"
***管理员,您好!
***\n"
glydl();
//管理员登陆
elseif(account==at[a].account)
{b=0;
while(b<
3)
{b++;
x=a;
//将临时变量下标值存储到全局下标变量中
***************************************************************\n"
printf("
*****************************************\n"
**在您输入密码前请注意周边环境是否安全**\n"
****************************************\n"
printf("
******************返回请按88\n******************请输入密码:
scanf("
password);
if(password==88)
{system("
main();
}
elseif(password==at[a].password)
{
system("
************\n"
****\n"
**冠林银行欢迎你**\n"
printf("
登陆成功,请选择操作\n"
dljm();
//登陆界面
break;
else
{printf("
******************密码输入错误\n******************请注意,您一天之内不能输错密码超过3次\n"
for(T=0;
T<
1000000000;
T++);
//延缓显示时间
system("
}
******************您输入的密码超过有限次数\n******************请您于明天之后到银行营业厅办理取卡手续\n******************再见!
\n"
main();
}
{printf("
******************您输入的卡号错误,请输入八位有效卡号\n"
main();
}
用户登陆界面,其中包括用户操作功能的查询余额、取款、存款、修改密码、充值话费、退出等多项功能的
//用户登陆界面
voiddljm()
{intz,T;
******************查询余额请按1*\n"
******************取款请按2*\n"
******************存款请按3*\n"
******************转账请按4*\n"
******************修改密码请按5*\n"
******************充值话费请按6*\n"
******************退卡请按7*\n"
******************请输入操作序号:
scanf("
z);
switch(z)
{
case1:
cx();
break;
//查询余额
case2:
qk();
case3:
ck();
case4:
zz();
case5:
xgmm();
case6:
czhf();
//充值话费
case7:
tk();
default:
printf("
操作序号不合法!
dljm();
//查询余额
voidcx()
{system("
\n"
%s你卡上余额为%7.2f元\n请继续进行下一步操\n"
at[x].name,at[x].money);
voidqk()
{
floata;
******************返回请按0\n请输入取款金额:
%f"
a);
if(a>
at[x].money)
^-^你的余额不足^-^\n"
else
{system("
你已取款%7.2f元\n"
a);
at[x].money=at[x].money-a;
//存款
voidck()
******************返回请按0\n请输入存款金额:
10000)
^-^存的金额过多^-^\n"
你已存款%7.2f元\n"
at[x].money=at[x].money+a;
//转账
voidzz()
{intc,f,T;
floatd;
******************返回输入88\n******************请输入你要转账的卡号,并按确定键:
c);
if(c==88)
for(f=0;
f<
9;
f++)
if(at[f].account==c)
{
******************请输入你要转账的金额"
d);
at[f].money=at[f].money+d;
at[x].money=at[x].money-d;
******************成功向%s\n转账%7.2f元,请进行下一步操作\n"
at[f].name,d);
dljm();
}
******************您输入的卡号不存在,请重新输入"
for(T=0;
zz();
//修改密码
voidxgmm()
{intxg,mm,i,ok;
******************返回输入88\n******************请输入八位有效数字作为新密码:
xg);
if(xg==88)
else
{ok=xg/10000000;
if(ok>
=1&
&
ok<
=9)
{
******************请再次确认新密码:
mm);
if(mm==xg)
{
******************密码修改正确"
for(i=0;
i<
i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATM 自动 取款 课程设计