c语言银行自动存取款机模拟.docx

上传人:b****8 文档编号:8938410 上传时间:2023-02-02 格式:DOCX 页数:10 大小:44.23KB
下载 相关 举报
c语言银行自动存取款机模拟.docx_第1页
第1页 / 共10页
c语言银行自动存取款机模拟.docx_第2页
第2页 / 共10页
c语言银行自动存取款机模拟.docx_第3页
第3页 / 共10页
c语言银行自动存取款机模拟.docx_第4页
第4页 / 共10页
c语言银行自动存取款机模拟.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

c语言银行自动存取款机模拟.docx

《c语言银行自动存取款机模拟.docx》由会员分享,可在线阅读,更多相关《c语言银行自动存取款机模拟.docx(10页珍藏版)》请在冰豆网上搜索。

c语言银行自动存取款机模拟.docx

c语言银行自动存取款机模拟

c语言银行自动存取款机模拟

课程设计

学号2010040701021

班级04070101

姓名王翰章

指导教师杨煦

2011年9月28日

沈阳航空航天大学

课程设计任务书

学院:

自动化学院专业:

测控技术与仪器班级:

04070101

学号:

2010040701021题目:

自动存取款机模拟

一、课程设计时刻

2011~12第1学期第4周,共计1周,20学时。

二、课程设计内容

请你仿照自动存取款机系统,用C语言编写软件完成以下任务:

1.登陆功能:

某个用户输入账户名和密码,能够登陆ATM。

注意:

应有多个用户,并把信息储存在文件中。

2.查询功能:

登陆后,能够查询存款余额。

3.存款功能:

登陆后,能够向账户中存款。

4.取款功能:

登陆后,能够取款。

注意:

取款金额不能超过存款金额。

提示:

用户(账号、密码、存款余额、利率、开户银行)

三、课程设计要求

1.程序质量:

✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括、“数据输入”、“数据储存”、“信息查询”、“数据修改”、“退出”5项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2.课程设计说明书:

课程终止后,上交课程设计说明书和源程序。

课程设计说明书的内容参见提供的模板。

四、指导教师和学生签字

指导教师:

学生签名:

五、成绩

六、教师评语

 

名目

 

一、需求分析

依照任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。

该系统是一个较典型的银行存取款模拟系统,其使用者被假定为银行信用卡用户,系统应该具有安全、稳固、功能齐全的特点。

1.安全性分析

银行存取款机的数据涉及到取款机内储存的所有用户,数据量较大且对保密性的需求专门高,因此要通过设置密码等手段确保数据不能被随意的删减和修改。

2.稳固性分析

指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是显现令用户感到意外的系统错误或系统崩溃。

3.要紧功能分析

(1)账号及密码输入:

承诺用户输入账号、密码,对用户由于疏忽录入的非法数据,能够及时提示并更正。

(2)登陆成功界面:

共有三个选项,查询余额、取款、退出分别对应1、2、3选项,若序号输入不正确会予以提示。

(3)余额查询:

选定1后,进入查询界面,用户输入查询条件,系统规则地在界面显示查询结果,且显示的数据尽量全面。

当输入卡号时,系统需要输入对应的密码(若密码错误则会有相应提示)密码与卡号相对应可查询到该用户的姓名、余额。

(3)取款:

选定2后,进入取款界面,用户输入取款金额,若取款金额大于存款金额则会提示“余额不足”,若小于则会在原余额上扣除取款金额。

(4)退出:

选定3后,进入退出界面,系统会延迟3-4秒重新跳回登陆界面,供其他用户使用。

二、设计分析

要紧有5个功能模块,每个模块对应一个C语言子函数。

这些函数原型及其功能简述如下:

voiddljm();------登陆成功后显现的界面

voiddl();------登陆

voidcx();------查询

voidqk();------取款

voidtk();------退卡

1、程序总体结构图

 

图1

2、要紧功能模块框图

 

图2

三、要紧界面截图

图1登陆成功后的操作

 

图2查询及取款

四、技术要点

1、结构体的应用

定义了结构体用来描述用户的姓名、卡号、密码以及金额。

具体的定义如下:

structatm//ATM自助银行

{

charname[10];

intaccount;//卡号

shortpassword;//密码

floatmoney;//金额

}at[10]={{"ZhaoLin",1,1,4000},{"MaFang",2,2,7000},

{"WangMing",3,3,5888},{"MaJiu",4,4,7543},

{"HangHan",5,5,10000},{"ZhangHu",6,6,4087},

{"MaFang",7,7,2765},{"ZhouLi",8,8,4530},

{"HongShan",9,9,5693},{"YuLi",10,10,7543}};

所定义的结构体要紧用于定义数组。

2、循环语句与选择性分支语句的嵌套

while(z!

=-1)

{

printf("\n\n请输入操作序号:

");

scanf("%d",&z);

switch(z)

{

case1:

cx();break;//查询余额

case2:

qk();break;//取款

case3:

tk();break;//退卡

default:

printf("操作序号不合法!

");

return;

}

}

3、关于延迟清屏时刻

for(i=0;i<1000000000;i++);//延缓显示时刻

system("cls");//清屏

main();//回初始界面,供其他用户使用

此for循环语句能够使清屏函数延缓3-4秒执行,后调用main函数,完成整个操作过程后重新供其他用户登陆。

五、个人总结

在此次课设过程中,我遇到了许多困难,例如如何在没有用户注册的程序中直截了当能完成登陆,只需建立一个结构体数组,还有如何能做到像ATM机那样一个用户用完之后还能供其他用户使用,这些差不多上通过查找书籍和上网查找相关资料才得以解决。

因此这次课设对我的关心专门大。

六、参考文献

1谭浩强.C程序设计.北京:

清华大学出版社,2005

2詹红霞,visualc++6.0程序设计,西安:

西安电子科技大学出版社,2009

七、源程序

#include

#include

intx;//记录下标

voiddljm();//登录成功后显现的界面

voiddl();//登录

voidcx();//查询

voidqk();//取款

voidtk();//退卡

structatm//ATM自助银行

{

charname[10];

intaccount;//卡号

shortpassword;//密码

floatmoney;//金额

}at[10]={{"ZhaoLin",1,1,4000},{"MaFang",2,2,7000},

{"WangMing",3,3,5888},{"MaJiu",4,4,7543},

{"HangHan",5,5,10000},{"ZhangHu",6,6,4087},

{"MaFang",7,7,2765},{"ZhouLi",8,8,4530},

{"HongShan",9,9,5693},{"YuLi",10,10,7543}};

//主函数

voidmain()

{

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

printf("**************************************************\n");

dl();

}

//登录函数

voiddl()

{

inta;//临时记录下标

intaccount;//卡号

shortpassword;//密码

printf("请输入卡号:

");

scanf("%d",&account);

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

{

if(account==at[a].account)

{

x=a;//将临时变量下标值储备到全局下标变量中

printf("请输入密码:

");

scanf("%d",&password);

if(password==at[a].password)

{

printf("****************丫丫银行欢迎您的登录**************\n");

printf("**************************************************\n");

printf("登录成功,请选择操作\n");

dljm();//登录成功界面

break;

}

else

{

printf("密码输入错误\n");

dl();//递归(调用自己,再来一次)

}

}

}

}

//登录界面

voiddljm()

{

intz;

printf("查询余额---------1\n");

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

printf("退卡---------3\n");

while

(1)

{

printf("\n\n请输入操作序号:

");

scanf("%d",&z);

switch(z)

{

case1:

cx();break;//查询余额

case2:

qk();break;//取款

case3:

tk();break;//退卡

default:

printf("操作序号不合法!

");

return;

}

}

}

//查询余额

voidcx()

{

printf("%s您卡上余额为%7.2f元",at[x].name,at[x].money);

}

//取款

voidqk()

{

floata;

printf("请输入取款金额:

");

scanf("%f",&a);

if(a>at[x].money)

printf("你的余额不足");

else

{printf("您已取款%7.2f元",a);

at[x].money=at[x].money-a;

}

}

//退卡

voidtk()

{

inti;

printf("请取回您的卡\n");

for(i=0;i<1000000000;i++);//延缓显示时刻

system("cls");//清屏

main();//回初始界面,供其他用户使用

}

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

当前位置:首页 > 总结汇报 > 学习总结

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

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