搜档网
当前位置:搜档网 › c语言程序设计atm自动取款机实验报告修订版

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

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

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

集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]

课程设计报告

课程类别:本科

课程名称:程序设计基础(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

void main()

{

int Num,a,code,ll=0,l=0,p,n,r=0,x,m,Num1,Num2; int num[10],feng[10],money[10],s[6],t[6];

int i=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)

{

case 1:

{

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

scanf("%d",&code);

fflush(stdin);

if(code!=num[0])

printf("密码不正确!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto loop;

}

}

else

{

system("cls");

printf("|-----欢迎进入管理员模式-------|\n"); printf("| 1:查询用户帐户信息 |\n"); printf("| 2:返回欢迎界面 |\n"); printf("|______________________________|\n"); printf(" 请选择:");

scanf("%d",&n);

fflush(stdin);

switch(n)

{

case 1:system("cls");goto guanli;break;

case 2:system("cls");goto loop;break;

}

}

case 2:{

system("cls");

goto loop;

break;

}

default:printf("输入错误!\n");break;

}

}

else

{

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

printf("该帐号已被封存!\n");//如果被封,则返回开头.

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto loop;}

}

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

printf("请输入密码:");

state:

scanf("%d",&code);

fflush(stdin);

if(code!=num[Num])

{

printf("密码不正确!请重新输入:"); i++;//计算输入错误几次.

if(i<3)

goto state;

else

{

printf("连续三次出错!\n");

++r;//计算连续三次出错共有几次. if(r<2)//小于2则返回欢迎界面. {

i=0;

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto loop;

}

}

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

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

feng[Num]=1;

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto loop;

}

}

}

}

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)//进行选择.

{

case 1:system("cls");goto qukuan;break;

case 2:system("cls");goto yuechaxun;break;

case 3:system("cls");goto mimaxiugai;break;

case 4:system("cls");goto zhuanzhang;break;

case 5:system("cls");goto lishijilu;break;

case 6:system("cls");goto loop;break;

default:printf("输入错误!\n");system("cls");goto shuru; }

}

}

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

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

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

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

scanf("%d",&x);

fflush(stdin);

switch (x)

{

case 1:{

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

{

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

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto shuru;

}

}

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

{

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

{

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

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

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

}

}

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

printf("请选择:1.100元 2.返回上一级\n");

scanf("%d",&n);

fflush(stdin);

switch(n)

{

case 1:{

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

money[Num]-=100;

l+=100;

printf("取款成功!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;

}

break;

}

case 2:goto shuru;break;

default:{

printf("输入错误!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;

}

break;

}

}

}

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

{

printf("请选择:1.100元 2.200元 3.返回上一级.\n"); scanf("%d",&n);

fflush(stdin);

switch(n)

{

case 1:{

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

money[Num]-=100;

l+=100;

printf("取款成功!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF){

system("cls");

goto qukuan;}

break;

}

case 2:{

printf("正在取款,请稍候......\n"); money[Num]-=200;

l+=200;

printf("取款成功!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;

}

break;

}

case 3:goto shuru;break;

default:{

printf("输入错误!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;

}

break;

}

}

}

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

{

printf("请选择:1.100元 2.200元 3.500元 4.返回上一级.\n"); scanf("%d",&n);

fflush(stdin);

switch(n)

{

case 1:{

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

money[Num]-=100;

l+=100;

printf("取款成功!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;}

break;

}

case 2:{

printf("正在取款,请稍候......\n"); money[Num]-=200;

l+=200;

printf("取款成功!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;

}

break;

}

case 3:{

printf("正在取款,请稍候......\n"); money[Num]-=500;

l+=500;

printf("取款成功!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;

}

break;

}

case 4:goto shuru;break;

default:{

printf("输入错误!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;

}

break;

}

}

}

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

{

printf("请选择:1.100元 2.200元 3.500元 4.1000元 5.返回上一级.\n"); scanf("%d",&n);

fflush(stdin);

switch(n)

{

case 1:{

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

money[Num]-=100;

l+=100;

printf("取款成功!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;

}

break;

}

case 2:{

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

money[Num]-=200;

l+=200;

printf("取款成功!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF){

system("cls");

goto qukuan;}

break;

}

case 3:{

printf("正在取款,请稍候......\n"); money[Num]-=500;

l+=500;

printf("取款成功!\n");

printf("按任意键返回。\n");

while(getchar()!=EOF)

{

system("cls");

goto qukuan;

}

break;

}

case 4:{

printf("正在取款,请稍候......\n"); money[Num]-=1000;

相关主题