c语言程序设计atm自动取款机实验报告.docx

上传人:b****0 文档编号:9818372 上传时间:2023-05-21 格式:DOCX 页数:63 大小:228.30KB
下载 相关 举报
c语言程序设计atm自动取款机实验报告.docx_第1页
第1页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第2页
第2页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第3页
第3页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第4页
第4页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第5页
第5页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第6页
第6页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第7页
第7页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第8页
第8页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第9页
第9页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第10页
第10页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第11页
第11页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第12页
第12页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第13页
第13页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第14页
第14页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第15页
第15页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第16页
第16页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第17页
第17页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第18页
第18页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第19页
第19页 / 共63页
c语言程序设计atm自动取款机实验报告.docx_第20页
第20页 / 共63页
亲,该文档总共63页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言程序设计atm自动取款机实验报告.docx

《c语言程序设计atm自动取款机实验报告.docx》由会员分享,可在线阅读,更多相关《c语言程序设计atm自动取款机实验报告.docx(63页珍藏版)》请在冰点文库上搜索。

c语言程序设计atm自动取款机实验报告.docx

c语言程序设计atm自动取款机实验报告

课程设计报告

 

课程类别:

本科

课程名称:

程序设计基础(C语言)

课程代号:

指导教师:

银行ATM自动取款机系统课程设计

姓名:

学号:

姓名:

学号:

姓名:

学号:

学院:

班级:

1.课程设计内容

2.课程设计要求

3.可行性研究

4.需求分析

5.概要设计

5.1功能模块图

5.2功能模块描述

5.3数据结构

6.详细设计

6.1功能流程图

6.2重点设计

7.测试与调试

8.总结

8.1心得体会

8.2不足与改进

9.参考文献

1.课程设计内容

模拟银行的自动取款机ATM使用过程中的界面和用户交互过程

2.课程设计要求

(1)要求利用面向过程的方法以及C语言的编程思想来完成系统的设计;

(2)在系统的设计中,要求运用菜单和文件实现系统功能。

(3)在基本要求达到后,可进行创新设计,如存款、代缴电话费等,或设计友好的界面等。

3.可行性研究

系统是一个基于局域网、互联网和WINDOWS操作的系统,现有技术已较为成熟,利用现有技术完全可以实现系统开发目标。

同时具有优秀的软件需求人员、软件设计人员、和具有丰富经验的软件测试人员。

4.需求分析

在市场经济的蓬勃发展和人们日益繁忙的条件下,现有的银行系统往往需要客户在办理手续时等待很长的时间,这不仅会浪费很多宝贵的时间,也会使得银行的业务人员十分的繁忙,需要很大的人力和财力。

 

5.概要设计

5.1功能模块图

此处除了系统的模块划分,还要重点描述三人分工情况,分工一定要明确。

转账

5.2功能模块描述

户名

 

5.3数据结构

#include

#include

voidmain()

{

intNum,a,code,ll=0,l=0,p,n,r=0,x,m,Num1,Num2;

intnum[10],feng[10],money[10],s[6],t[6];

inti=0;

for(p=0;p<9;p++)

{

num[p]=000000;

money[p]=5000;

feng[p]=0;

}

loop:

//首先...请陈老师原谅我N多的goto...

printf("_______________________________\n");

printf("||\n");

printf("|欢迎使用ATM自动取款机|\n");

printf("||\n");

printf("|~第一小组热情开发~|\n");

printf("|_______________________________|\n");

printf("请输入卡号:

");

scanf("%d",&Num);

fflush(stdin);

if(Num==00)

{

printf("是否进入管理员模式?

1/2:

");//是否进入管理员模式。

scanf("%d",&a);

fflush(stdin);

switch(a)

{

case1:

{

printf("请输入管理员密码(6位):

");

scanf("%d",&code);

fflush(stdin);

if(code!

=num[0])

{

printf("密码不正确!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoloop;

}

}

else

{

guanlimoshi:

//密码输入正确后,进入管理模式.

system("cls");

printf("|-----欢迎进入管理员模式-------|\n");

printf("|1:

查询用户帐户信息|\n");

printf("|2:

返回欢迎界面|\n");

printf("|______________________________|\n");

printf("请选择:

");

scanf("%d",&n);

fflush(stdin);

switch(n)

{

case1:

system("cls");gotoguanli;break;

case2:

system("cls");gotoloop;break;

}

}

}

case2:

{

system("cls");

gotoloop;

break;

}

default:

printf("输入错误!

\n");break;

}

}

else

{

if(feng[Num]==1)//如果输入的不是管理员帐号,则判断该帐号是否被封.

{

printf("该帐号已被封存!

\n");//如果被封,则返回开头.

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoloop;}

}

else//如果没被封,则开始输入密码.

{

printf("请输入密码:

");

state:

scanf("%d",&code);

fflush(stdin);

if(code!

=num[Num])

{

printf("密码不正确!

请重新输入:

");

i++;//计算输入错误几次.

if(i<3)

gotostate;

else

{

printf("连续三次出错!

\n");

++r;//计算连续三次出错共有几次.

if(r<2)//小于2则返回欢迎界面.

{

i=0;

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoloop;

}

}

else//大于2则封存帐户,然后返回欢迎界面.

{

printf("您的帐号已被封存.\n");

feng[Num]=1;

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoloop;

}

}

}

}

else//如果密码输入正确,则进入用户页面.

{

system("cls");

shuru:

printf("|---欢迎使用ATM自动取款机---|\n");

printf("|1.取款2.余额查询|\n");

printf("|3.密码修改4.转帐|\n");

printf("|5.历史交易纪录查询|\n");

printf("|6.返回欢迎界面|\n");

printf("|___________________________|\n");

printf("请输入选项:

\n");

scanf("%d",&x);

fflush(stdin);

switch(x)//进行选择.

{

case1:

system("cls");gotoqukuan;break;

case2:

system("cls");gotoyuechaxun;break;

case3:

system("cls");gotomimaxiugai;break;

case4:

system("cls");gotozhuanzhang;break;

case5:

system("cls");gotolishijilu;break;

case6:

system("cls");gotoloop;break;

default:

printf("输入错误!

\n");system("cls");gotoshuru;

}

}

}

qukuan:

//进入取款页面.

printf("|----取款----|\n");

printf("|1.取款|\n");

printf("|2.返回|\n");

printf("|------------|\n");

scanf("%d",&x);

fflush(stdin);

switch(x)

{

case1:

{

if(l>5000)//判断累计取款额.

{

printf("累计取款超过5000元,系统出错.\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoshuru;

}

}

else//若低于5000,则开始取款.

{

if(money[Num]<100)//判断此时余额,进行屏幕打印.

{

printf("余额不足.\n");//以下N个疯狂的循环道理同此.

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");//原谅我吧蒋老师...我实在没想出啥好方法...

gotoshuru;

}

}

elseif(money[Num]<200)//现金在0~200元之间时。

{

printf("请选择:

1.100元2.返回上一级\n");

scanf("%d",&n);

fflush(stdin);

switch(n)

{

case1:

{

printf("正在取款,请稍候......\n");

money[Num]-=100;

l+=100;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

case2:

gotoshuru;break;

default:

{

printf("输入错误!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

}

}

elseif(money[Num]<500)//现金在0~500元之间时。

{

printf("请选择:

1.100元2.200元3.返回上一级.\n");

scanf("%d",&n);

fflush(stdin);

switch(n)

{

case1:

{

printf("正在取款,请稍候......\n");

money[Num]-=100;

l+=100;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF){

system("cls");

gotoqukuan;}

break;

}

case2:

{

printf("正在取款,请稍候......\n");

money[Num]-=200;

l+=200;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

case3:

gotoshuru;break;

default:

{

printf("输入错误!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

}

}

elseif(money[Num]<1000)//现金在0~1000元之间时。

{

printf("请选择:

1.100元2.200元3.500元4.返回上一级.\n");

scanf("%d",&n);

fflush(stdin);

switch(n)

{

case1:

{

printf("正在取款,请稍候......\n");

money[Num]-=100;

l+=100;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;}

break;

}

case2:

{

printf("正在取款,请稍候......\n");

money[Num]-=200;

l+=200;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

case3:

{

printf("正在取款,请稍候......\n");

money[Num]-=500;

l+=500;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

case4:

gotoshuru;break;

default:

{

printf("输入错误!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

}

}

elseif(money[Num]<2000)//现金在0~2000元之间时。

{

printf("请选择:

1.100元2.200元3.500元4.1000元5.返回上一级.\n");

scanf("%d",&n);

fflush(stdin);

switch(n)

{

case1:

{

printf("正在取款,请稍候......\n");

money[Num]-=100;

l+=100;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

case2:

{

printf("正在取款,请稍候......\n");

money[Num]-=200;

l+=200;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF){

system("cls");

gotoqukuan;}

break;

}

case3:

{

printf("正在取款,请稍候......\n");

money[Num]-=500;

l+=500;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

case4:

{

printf("正在取款,请稍候......\n");

money[Num]-=1000;

l+=1000;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

case5:

gotoshuru;break;

default:

{

printf("输入错误!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

}

}

else//现金在2000元以上时。

{

printf("请选择:

1.100元2.200元3.500元4.1000元5.2000元6.返回上一级.\n");

scanf("%d",&n);

fflush(stdin);

switch(n)

{

case1:

{

printf("正在取款,请稍候......\n");

money[Num]-=100;

l+=100;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;}

break;

}

case2:

{

printf("正在取款,请稍候......\n");

money[Num]-=200;

l+=200;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;}

break;

}

case3:

{

printf("正在取款,请稍候......\n");

money[Num]-=500;

l+=500;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;

}

break;

}

case4:

{

printf("正在取款,请稍候......\n");

money[Num]-=1000;

l+=1000;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;}

break;

}

case5:

{

printf("正在取款,请稍候......\n");

money[Num]-=2000;

l+=2000;

printf("取款成功!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;}

break;

}

case6:

gotoshuru;break;

default:

{

printf("输入错误!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;}

break;

}

}

}

}

break;}

case2:

gotoshuru;break;

default:

{

printf("输入错误!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotoqukuan;}

break;

}

}

mimaxiugai:

//进入修改密码页面。

printf("|-----修改密码-----|\n");

printf("|请选择:

|\n");

printf("|1.修改密码。

|\n");

printf("|2.返回上一级。

|\n");

printf("|__________________|\n");

scanf("%d",&x);

fflush(stdin);

switch(x)

{

case1:

{

printf("请输入新密码(六位):

\n");//第一次输入。

for(m=0;m<=5;m++)

{

s[m]=getch();//这里,输入时可以显示*,但是不能用退格健。

printf("*");//退格键会被当作一个字符输入。

问题有待解决……

}

printf("请重新输入密码(六位):

\n");//第二次输入。

for(m=0;m<=5;m++)

{

t[m]=getch();

printf("*");

}

for(m=0;m<=5;m++)//判断两次输入是否相同。

{

if(s[m]!

=t[m])

{

printf("输入与第一遍不符!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotomimaxiugai;}

}

}//计算出密码。

=_=|||凭我的智商只想出了这种方法……

num[Num]=s[0]*100000+s[1]*10000+s[2]*1000+s[3]*100+s[4]*10+s[5];

//此种计算密码的方法是错误的,但是没有发现哪里出了错。

希望老师帮忙解决下~谢啦~~

printf("密码修改完成!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{system("cls");

gotomimaxiugai;}

}

case2:

system("cls");gotoshuru;break;

default:

{

printf("输入错误!

\n");

printf("按任意键返回。

\n");

while(getchar()!

=EOF)

{

system("cls");

gotomimaxiugai;}

break;

}

}

zhuanzhang:

//进入转账页面。

printf("|-----转帐-----|\n");

printf("|请选择:

|\n");

printf("|1.转帐|\n");

printf("|2.返回上一级|\n");

printf("|______________|\n");

scanf("%d",&x);

fflush(stdin);

switch(x)

{

case1:

{//开始转账。

printf("请输入转账给的用户账号:

\n");

scanf("%d",&Num1);

fflush(stdin);

printf("请再次输入账号:

\n");//确认。

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2