分享
分销 收藏 举报 申诉 / 22
播放页_导航下方通栏广告

类型ATM自动取款机系统详细设计项目说明指导书.docx

  • 上传人:天****
  • 文档编号:2990136
  • 上传时间:2024-06-12
  • 格式:DOCX
  • 页数:22
  • 大小:275.07KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    ATM 自动 取款 系统 详细 设计 项目 说明 指导书
    资源描述:
    文档名称: 具体设计说明书 项目名称: ATM自动取款机系统 编写: 张恒友 审核: 王旭 日期: 6月5日 院系: 计算机学院 专业: 计算机科学和技术 一.引言 1.1 编写目标 依据《需求规格说明书》,在仔细考虑讨论以后,我们又深入对《ATM自动取款机系统》软件功效划分、数据结构、软件总体结构进行设计,从而完成概要设计,作为软件具体设计基础。 1.2 项目背景 项目委托单位:计算机学院软件工程试验。 开发单位:班ATM自动取款机系统项目组。 因为柜台常常会拥挤,排队人很多,而且大多数用户全部是取款,存款等,而有些办理业务需要一定时间,这会使得部分只需要取款等用户会有较长时间等候。所以银行期望设计一个系统,能让用户在系统上进行简单操作,比如存款、取款、查询余额、转账等。 1.3 定义 ATM: Automatic Teller Machine,自动柜员机。 1.4 参考资料 《计算机软件需求说明编制指南》 《计算机软件产品开发文件指南》 《ATM系统可行性分析汇报》。 《软件设计和体系结构》 《软件工程——实践者研究方法》 二. 任务概述 2.1目标 现现在,ATM在一定程度上存在很大安全隐患,给用户造成很大经济损失。为了处理这么问题,我们小组提出了改善ATM自动取款机系统,使用户在操作过程中愈加安全,放心,更便捷。 2.2运行环境 硬件环境: CPU:1GHZ及以上 内存:1G以上 硬盘:20G以上 软件环境: 操作系统:Microsoft Windows XP或更高版本 数 据 库:Microsoft SQL Server Web服务器:Tomcat5.0以上 支持浏览器:Internet Explorer 7.0及其以上版本 开发环境:MyEclipse,jdk,Microsoft SQL Server 2.3条件和限制 伴随科技发展,大家生活水平不停提升,高性能高效率高安全产品越来越受到大家欢迎。 ATM自动取款机是一个很智能机器,大家能够直接和它交互,替换以前手工操作,大大提升了银行工作效率。同时也给广大用户带来了很大方便。因为ATM自动取款机是和服务器是连网,这就包含到安全问题本系统能够有效地处理这个问题。不过本程序也使用户操作时间增加,在一定程度上增加了用户埋怨率。 三.总体设计 3.1 处理步骤 主步骤图: 用户步骤: 存款步骤: 取款步骤: 转账步骤: 查询步骤 : 改密: 3.2 具体模块及代码实现 1. 主菜单模块(含:存款、取款、转账、密码修改、查询余额) 存款:个人账户上金额加上。 取款:个人账户上金额减去。 转账:包含到两个账户 其实就是下标不一样 金额一个减去一个加上。 密码修改:输入新密码、再次输入新密码 判定两次密码是否相同 在用strcpy()函数 将新密码 目前账户下标元素密码组员 而且判定是否修改成功。 查询余额:就是从结构体数组里面调用存金额那个组员 欢迎模块: 定义一个函数void huanying(),利用for循环进行字符输出。 void huanying() //定义函数 { int i; for(i=0;i<10;i++) //for循环 {    printf("\n\n\n\n\n\n\n\n");    printf("\t\t\t --------------------------\n");    printf("\t\t\t       欢迎使用     \n");    printf("\t\t\t --------------------------\n");    printf("\n\n\t\t期望此ATM系统能够给您带来方便!");    printf("\n\n\n\n\t\t\t\t正在进入");      shaohou(); //等候系统响应    system("cls");    printf("\n\n\n\n\n\n\n\n");   } } 用户模块: 在此模块,从A,B,C中选择出实施操作服务,然后进入下一个模块。利用while语句,定义选择函数char xuanze,实现输出。 伪代码: void main() //主函数 { huanying(); system("cls"); while(1) { char xuanze; //定义函数 system("cls"); printf("\n\n\t欢迎使用\n"); printf("\n\n\t请选择:\n"); printf("\n\n\tA.开户服务\n"); printf("\n\n\tB.登录服务\n"); printf("\n\n\tC.退出。\n"); printf("\n\n\t请选择:"); scanf("%c",&xuanze); switch(xuanze) {    case'a':    case'A':kaihu();break;    case'b':    case'B':denglu();break;    case'c':    case'C':exit(0);         default:printf("\n\t您选择错误!");break; } } } 开户服务: struct kaihu { char name[10]; char mima[10]; double zong; int zhanghao; }guke[20]; int renshu=0; int xianzai;*/ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> struct { int jin_e,zong; int zhanghao; char name[20]; char mima[20]; }guke[20]; int renshu=0; int xianzai; void shaohou() { int i,j; for(i=0;i<3;i++) {    printf(".");    for(j=0;j<40000000;j++)    {     ;    } } } void dedaomima(char mima[]) { int i=0; while(1) {   char ch;    ch=getch();    if(ch=='\r')    {     mima[i]='\0';     printf("\n");     break;    }    else    {     if(ch=='\b')     {      if(i>0)      {       printf("\b \b");       i--;      }     }     else     {      if(i<16)      {       mima[i]=ch;       printf("*");       i++;      }     }    } } } void kaihu() { int k; for(k=0;k<5;k++) { printf("\n\n\t正在进入注册页面,请稍后"); shaohou(); system("cls"); } while(1) {    printf("\n\n\t【开户服务】");    printf("\n\n\t请输入您姓名:");    char xingming[16];    char yanzheng[20];    scanf("%s",xingming);    printf("\n\n\t请输入密码:");    dedaomima(guke[renshu].mima);    printf("\n\n\t请再次确定您密码:");    dedaomima(yanzheng);    if(strcmp(guke[renshu].mima,yanzheng)==0)    {    printf("\n\n\t密码验证经过:");    break;    }    else    {     printf("两次密码不相同。请重新输入。");     system("cls");    }    }while(1) { printf("\n\n\t请输入开户金额:");    scanf("%d",&guke[renshu].jin_e); if(guke[renshu].jin_e>0) { printf("\n\n\t开户成功,您可用余额为:%d",guke[renshu].jin_e);    break; } else {    printf("\n\n\t开户金额不能低于壹圆!\n\n");    system("cls"); } }    guke[renshu].zhanghao=518518+renshu;    printf("\n\n\t您账号是:%d请切记!\n",guke[renshu].zhanghao);    printf("\n\n\t开户成功,是否继续?继续请按任意键。\n");    renshu++;    getch(); } 登录服务: void denglu() { int q; for(q=0;q<8;q++) { printf("\n\n\t正在进入,请稍后"); shaohou(); system("cls"); } /*while(1) { printf("\n\n\t\t【登录服务】"); printf("\n\n\t\t请输入账号:"); int zh; scanf("%d",&zh); int i; for(i=0;i<renshu;i++) {    if(zh!=guke[i].zhanghao)    {     printf("\n\n\t账号错误,请重新输入。");     continue;    }    else    {     xianzai=i;     printf("\n\n\t账号正确:");   } }break; }*/ printf("\n\n\t\t【登录服务】"); printf("\n\n\t\t请输入账号:"); int zh; scanf("%d",&zh); for(int i=0;i<renshu;i++) {    if(zh!=guke[i].zhanghao)    {     i++;     if(i==renshu)     {     printf("\n\n\t账号错误,请重新输入。");     }     continue;    }    else    {      xianzai=i;     printf("\n\n\t账号正确:");     break;    } } for(i=0;i<3;i++) {    printf("\n\t请输入密码:");    char password[10];    dedaomima(password);    if(strcmp(password,guke[xianzai].mima)==0)    {     printf("\n\t密码正确!");     break;    }else    {     printf("密码输入错误,请重新输入。");     return;     getch(); } } fuwu(); getch(); } 主菜单模块: 此模块关键用于用户进行多种操作服务选择,实现相关功效,如存款,取款,转账,密码修改,余额查询等等。 void fuwu() { int i=0; for(i;i<8;i++) {    printf("\n\n\n\n\n\n\n");    printf("\n\n\n\n\t\t\t正在进入服务,请稍后");    shaohou();    system("cls"); }while(1) { char shuru; system("cls"); printf("\n\n\t【服务】\n"); printf("\n\n\t%d欢迎使用!\n",guke[i].name); printf("\n\t(请选择:)\n"); printf("\n\ta.存款服务\n"); printf("\n\tb.取款服务\n"); printf("\n\tc.转账服务\n"); printf("\n\td.余额查询\n"); printf("\n\te.密码修改\n"); printf("\n\tf.退出\n"); printf("\n\t请选择服务:"); scanf("%c",&shuru); switch(shuru) {    case 'a':    case 'A':cunkuan();break;    case 'b':    case 'B':qukuan();break; // case 'c': // case 'C':zhuanzhang();break;    case 'd':    case 'D':chaxun();break; // case 'e': // case 'E':xiougai();break;    case 'f':    case 'F':printf("返回上级菜单,请按任意键");return;    default:printf("\n\t您选择错误!");break; } } } 存款服务: void cunkuan() { for(int i=0;i<5;i++) {    printf("\n\n\t正在进入,请稍等");    shaohou();    system("cls"); } printf("\n\n\n\n\n\n\n"); printf("\n\n\t【存款服务】"); printf("\n\n\t请输入您存款金额:"); int xincun; scanf("%d",&xincun); guke[renshu].zong=guke[renshu].jin_e+xincun; printf("\n\n\t您现在可用余额为:%d",guke[renshu].zong); printf("\n\n\t是否继续?继续请按任意键。"); getch(); } 取款服务: void qukuan() { for(int i=0;i<5;i++) {    printf("\n\n\t正在进入,请稍等");    shaohou();    system("cls"); } printf("\n\n\t【取款服务】"); printf("\n\n\t请输入取款金额:"); int xinqu; scanf("%d",&xinqu); guke[xianzai].zong=guke[renshu].zong-xinqu; if(xinqu<guke[renshu].zong) printf("\n\n\t取款成功:%d,您现在可用余额为:%d",xinqu,guke[xianzai].zong); printf("\n\n\t是否继续?继续请按任意键:"); getch(); } 查询服务: void chaxun() {    for(int i=0;i<5;i++) {    printf("\n\n\t正在进入,请稍等");    shaohou();    system("cls"); }    printf("\n\t【查询服务】");    printf("\n\t您可用余额为:%d",guke[renshu].jin_e);    printf("\n\t是否继续?继续请按任意键.");    getch(); } 四.接口设计 4.1 外部接口 硬件接口: 包含和打印机接口(控制打印机打发票及存款凭证等),和银行数据库主机接口,和出钞机接口。对硬件处理关键由操作系统完成,本软件只调用操作系统提供打印,出钞等指令。 软件接口: 根据银行指定格式和银行数据库通信,并需要预留可能在ATM上安装其它软件接口方便于扩充功效。 4.2 内部接口 1.前后台程序通信接口,包含配款提醒和维护提醒。 2.系统和数据库接口。 五.测试计划 测试日期、测试人员安排请参考测试计划;测试用例具体内容,详见测试用例说明。现在本小组仅以会话用例和取款用例进行对ATM机管理系统单体测试计划; 用例 被测试功效 初始系统状态 测试输入 期望结果 会话用例 系统读取用户银行卡 系统处于ON状态,并没有为用户提供服务 插入可读银行卡 银行卡被接收,系统请求输入密码 会话用例 系统弹出不可读取银行卡 系统处于ON状态,目前没有为用户提供服务 插入不可读取银行卡 银行卡被弹出,系统显示错误信息,准备开启一个新会话 会话用例 系统接收用户密码 系统请求用户输入密码 输入密码 系统显示一个事务类型菜单 会话用例 系统许可用户实施事务 系统显示事务类型菜单 实施事务 系统问询用户是否期望实施其它事务 会话用例 系统许可在一个会话中实施多个事务 系统问询是否实施其它事务 回复“是” 系统显示事务类型菜单 会话用例 当用户选择不实施其它事务时,会话结束 系统问询是否实施其它事务 回复“否” 系统弹出银行卡,准备开启一个新会话 事务用例 系统处理一个不正当密码 插入了可读取卡 输入不正确密码尝试某个事务 实施非法密码 取款用例 系统提醒用户选择需要提取现金账户 正在显示事务类型菜单 选择取款事务 系统显示账户类型菜单 取款用例 系统正确实施正当取款事务 系统显示取款金额菜单 选择系统目前拥有单小于账户余额取款金额 系统弹出现金,打印收据,更新账户余额 取款用例 系统验证是否有足够现金,完成用户请求 系统现有现金数量小于用户请求数量 选择大于目前系统拥有现金数量取款金额 系统将显示一个信息,提醒现金不足,请重新选择取款金额 取款用例 系统验证用户账户余额是否能够满足请求金额 系统正在请求取款金额 选择一个取款金额使得该金额小于目前系统中现金余额不过大于用户账户余额 系统将显示一个信息位用户提供是否实施其它事务选项 取款用例 取款事务在选择金额之前能够被用户取消 系统显示账户类型菜单 按下“CANCEL”键 系统显示信息为用户实施其它事务提供相关选项 取款用例 取款事务在用户请求取款金额之前任何时候能够被取消 系统显示请求取款金额菜单 按下“CANCEL”键 系统显示信息为用户实施之前事务选项 六.具体设计小结和相关说明 因为本系统最终将会运行于取款机之上,而取款机是一个经典嵌入式设备,内存容量有限,运行速度比较缓慢,故在进行系统设计时候不仅得考虑一般取款机系统设计通常问题,还得额外考虑相关设备部分特征。本具体设计有以下多个特点: 立即释放内存,提升内存资源利用率。 利用主菜单控制,进行功效选择,使程序简单化,模块化,清楚化。 正确合理使用多模块进行系统设计。 使用人工选择进行界面切换。
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:ATM自动取款机系统详细设计项目说明指导书.docx
    链接地址:https://www.zixin.com.cn/doc/2990136.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork