为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

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

2017-09-19 8页 doc 105KB 100阅读

用户头像

is_337177

暂无简介

举报
c语言银行自动存取款机模拟沈 阳 航 空 航 天 大 学 课程设计 学    号 2010040701021               班    级 0 4 0 7 0 1 0 1 姓    名 王  翰  章 指导教师 杨        煦 2011年 9 月 28日 沈阳航空航天大学 课程设计任务书 学院:自动化学院    专业:测控技术与仪器  班级:04070101 学号:2010040701021    题目:自动存取款机模拟 一、课程设计时间 2011~12第1学期第4周,共计1周,20学时。 二、课程设计内容 请你模仿自动存取款机系统...
c语言银行自动存取款机模拟
沈 阳 航 空 航 天 大 学 课程 学    号 2010040701021               班    级 0 4 0 7 0 1 0 1 姓    名 王  翰  章 指导教师 杨        煦 2011年 9 月 28日 沈阳航空航天大学 课程设计任务书 学院:自动化学院    专业:测控技术与仪器  班级:04070101 学号:2010040701021    题目:自动存取款机模拟 一、课程设计时间 2011~12第1学期第4周,共计1周,20学时。 二、课程设计 请你模仿自动存取款机系统,用C语言编写软件完成以下任务: 1.登陆功能:某个用户输入账户名和密码,可以登陆ATM。注意:应有多个用户,并把信息保存在文件中。 2.查询功能:登陆后,可以查询存款余额。 3.存款功能:登陆后,可以向账户中存款。 4.取款功能:登陆后,可以取款。注意:取款金额不能超过存款金额。 提示:用户(账号、密码、存款余额、利率、开户银行) 三、课程设计要求 1.程序质量: ✧ 贯彻结构化的程序设计思想。 ✧ 用户界面友好,功能明确,操作方便。 ✧ 用户界面中的菜单至少应包括、“数据输入”、“数据保存”、“信息查询”、“数据修改”、“退出”5项。 ✧ 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 2.课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。 四、指导教师和学生签字 指导教师:              学生签名:          五、成绩 六、教师评语 目录 一、需求    1 二、设计分析    2 三、主要界面截图    4 四、技术要点    5 五、个人总结    8 六、参考文献    8 七、源程序    8 一、需求分析 根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。 该系统是一个较典型的银行存取款模拟系统,其使用者被假定为银行信用卡用户,系统应该具有安全、稳定、功能齐全的特点。 1. 安全性分析 银行存取款机的数据涉及到取款机内储存的所有用户,数据量较大且对保密性的需求很高,所以要通过设置密码等手段确保数据不能被随意的删减和修改。 2. 稳定性分析 指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。 3. 主要功能分析 (1)账号及密码输入:允许用户输入账号、密码,对用户由于疏忽录入的非法数据,能够及时提示并更正。 (2)登陆成功界面:共有三个选项,查询余额、取款、退出分别对应1、2、3选项,若序号输入不正确会予以提示。 (3)余额查询:选定1后,进入查询界面,用户输入查询条件,系统地在界面显示查询结果,且显示的数据尽量全面。当输入卡号时,系统需要输入对应的密码(若密码错误则会有相应提示)密码与卡号相对应可查询到该用户的姓名、余额。        (3)取款:选定2后,进入取款界面,用户输入取款金额,若取款金额大于存款金额则会提示“余额不足”,若小于则会在原余额上扣除取款金额。 (4)退出:选定3后,进入退出界面,系统会延迟3-4秒重新跳回登陆界面,供其他用户使用。 二、设计分析 主要有5个功能模块,每个模块对应一个C语言子。这些函数原型及其功能简述如下: void dljm();------登陆成功后出现的界面 void dl();------登陆 void cx();------查询 void qk();------取款 void tk();------退卡 1、程序总体结构图 图1 2、主要功能模块框图 图2 三、主要界面截图 图1登陆成功后的操作 图2查询及取款               四、技术要点 1、结构体的应用 定义了结构体用来描述用户的姓名、卡号、密码以及金额。具体的定义如下: struct atm              //ATM自助银行 {      char name[10];     int account;      //卡号     short password;      //密码     float money;      //金额 }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)         {         case 1:cx();break;  //查询余额          case 2:qk();break;  //取款           case 3:tk();break;  //退卡         default:printf("操作序号不合法!");         return; }     } 3、关于延迟清屏时间 for(i=0;i<1000000000;i++);  //延缓显示时间 system("cls");              //清屏 main();            //回初始界面,供其他用户使用 此for循环语句可以使清屏函数延缓3-4秒执行,后调用main函数,完成整个操作过程后重新供其他用户登陆。 五、个人总结 在此次课设过程中,我遇到了许多困难,例如如何在没有用户注册的程序中直接能完成登陆,只需建立一个结构体数组,还有如何能做到像    ATM机那样一个用户用完之后还能供其他用户使用,这些都是经过查找书籍和上网查找相关资料才得以解决。所以这次课设对我的帮助很大。 六、参考文献 1 谭浩强.C程序设计.北京:清华大学出版社,2005 2 詹红霞,visual c++6.0 程序设计,西安:西安电子科技大学出版社,2009 七、源程序 #include #include int x;      //记录下标 void dljm(); //登录成功后出现的界面 void dl();  //登录 void cx();  //查询 void qk();  //取款 void tk();  //退卡 struct atm              //ATM自助银行 {      char name[10];     int account;      //卡号     short password;      //密码     float money;      //金额 }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}}; //主函数 void main() {              printf("******************欢迎使用自动取款机**************\n");         printf("**************************************************\n");         dl();  } //登录函数 void dl() {     int a;            //临时 记录下标     int account;      //卡号     short password;  //密码     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();    //递归(调用自己,再来一次)             }         }     }    } //登录界面 void dljm() {     int z;     printf("查询余额---------1\n");     printf("取    款---------2\n");     printf("退    卡---------3\n");     while (1)     {         printf("\n\n请输入操作序号:");         scanf("%d",&z);         switch(z)         {         case 1:cx();break;  //查询余额          case 2:qk();break;  //取款           case 3:tk();break;  //退卡         default:printf("操作序号不合法!");                 return;         }     } } //查询余额 void cx() {     printf("%s您卡上余额为%7.2f元",at[x].name,at[x].money); } //取款 void qk() {     float a;     printf("请输入取款金额:");     scanf("%f",&a); if(a>at[x].money) printf("你的余额不足"); else {printf("您已取款%7.2f元",a);     at[x].money=at[x].money-a; } } //退卡 void tk() {     int i;     printf("请取回您的卡\n");     for(i=0;i<1000000000;i++);  //延缓显示时间     system("cls");              //清屏     main();                    //回初始界面,供其他用户使用 }
/
本文档为【c语言银行自动存取款机模拟】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索