




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
31第18章 开发小型银行账户管理信息系统第18章 开发小型银行账户管理信息系统本章主要介绍如何使用COBOL,以及CICS实际开发出一个小型的银行账户管理信息系统。该MIS系统共分为5个功能模块。这5个模块分别为主菜单模块和对账户的增删改查功能模块。下面根据不同的模块分别予以介绍。18.1 主菜单模块主菜单界面通过CICS中的MAP绘制。用户可在该界面上选择执行增删改查操作中的某一项。同时,该界面中倒数第二行MESSAGE LINE也会根据用户的输入产生相应的提示信息输出。主菜单模块的界面如图18.1所示。BAMMENTERBANK ACCOUNT MANAGEMENT SYSTEMMAIN MENU(I)INQUIRE(A)INQUIRE(D)ELETE(M)ODIFYSELECT FUNCTION _* MESSAGE LINE *CLEAR=END SESSION 图18.1 主菜单模块界面需要注意的是,其他各个功能模块也都是有界面的,且界面实际上都为CICS中的MAP。后面不再对此另行说明。在以上界面中,下划线部分为用户输入区域,用以选择执行不同的功能。MESSAGE LINE部分则为系统的信息输出区域。本模块中系统可输出的提示信息有以下几条:q 提示信息1:INVALID KEY PRESSED(表示用户按了非法的按键)。q 提示信息2:INVALID OPTION SELECTED(表示用户输入了非法的功能选项)。q 提示信息3:INPUT DATA REQUIRED(表示用户输入数据为空)。q 提示信息4:PROCESSING ERROR(表示系统在处理过程中发生错误)。q 提示信息5:MAIN SESSION ENDED(表示退出系统)。在实际软件项目中,通常是需要按照严格的开发流程进行的。开发流程依次为项目计划、需求分析、可行性分析、概要设计、详细设计、编码、测试、维护。并且,在每一个具体环节中都需要提供相应的文档。此处作为基础教程,仅简单的给出任务要求以及相应的代码。其中主菜单模块的任务要求涵盖以下几个步骤:(1)显示界面,并允许用户在界面上输入数据。(2)根据用户在输入数据前后所按的不同功能按键,分别作出如下处理:q “Enter”按键:执行步骤3。q Pause/Break按键:在新页面首行输出提示信息5,同时退出该系统。q 其他按键:输出提示信息1,重新执行步骤2。(3)根据用户的输入数据,分别作出如下处理:q 输入数据为空或者为空格,则输出提示信息3,返回执行步骤2。q 输入数据非法,则输出提示信息2,返回执行步骤2。q 输入数据合法,执行步骤4。(4)根据用户输入的合法数据,分别作出如下处理:q 输入数据为“A”:执行添加账户功能模块。q 输入数据为“D”:执行删除账户功能模块。q 输入数据为“M”:执行修改账户功能模块。q 输入数据为“I”:执行查询账户功能模块。(5)如果在处理过程中遇到任何异常,则输出提示信息4,同时退出该系统。不妨设该模块所用到的各项资源名称分别如下:q 交易名称:BAMM。q 程序名称:BAMSMM。q 界面所对应的MAP名称:BAMAPMM。q MAP所在的MAPSET名称:BAMPSMM。同时,令符号MAP中的各变量如下:q SELECT-M:对应“SELECT FUNCTION _”中的下划线。q DISPL-M:对应系统信息输出部分。则实现该模块所有功能的完整程序代码如下:IDENTIFICATION DIVISION. PROGRAM-ID BAMSMM. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 COMSTART. 05 STATUS-I PIC X VALUE N. 01 ERR-CODE PIC S9(8) COMP. 01 MSG1 PIC X(44) VALUE SPACES. 01 OUT1 PIC X(79) VALUE SPACES. COPY DFHAID. COPY BAMPSMM. LINKAGE SECTION. 01 DFHCOMMAREA. 05 STATUS-C PIC X. PROCEDURE DIVISION.* 当任务第一次执行时,直接输出MAP界面,并RETURN到自身 * IF EIBCALEN = 0 THEN MOVE LOW-VALUES TO BAMAPMMO EXEC CICS SEND MAP(BAMAPMM) MAPSET(BAMPSMM) CURSOR(1337) ERASE FREEKB END-EXEC EXEC CICS RETURN TRANSID(BAMM) COMMAREA(COMSTART) LENGTH(1) END-EXEC. * 当用户按Pause/Break按键时,输出相应提示信息,并退出该MIS系统 * IF EIBAID = DFHCLEAR THEN MOVE MAIN SESSION ENDED TO OUT1 EXEC CICS SEND FROM(OUT1) LENGTH(79) ERASE END-EXEC EXEC CICS RETURN END-EXEC. * 当用户按”Enter”按键时,接受用户输入的数据,同时进行异常处理 * IF EIBAID = DFHENTER THEN EXEC CICS RECEIVE MAP(BAMAPMM) MAPSET(BAMPSMM) RESP(ERR-CODE) END-EXEC IF ERR-CODE NOT EQUAL DFHRESP(NORMAL) MOVE PROCESSING ERROR TO OUT1 EXEC CICS SEND FROM(OUT1) LENGTH(79) ERASE END-EXEC EXEC CICS RETURN END-EXEC END-IF * 判断用户输入的数据,并根据判断结果进行不同的处理 * MOVE LOW-VALUES TO MSG1 EVALUATE TRUE WHEN SELEC-MI IS EQUAL TO SPACES OR SELEC-ML IS EQUAL TO ZERO MOVE INPUT DATA REQUIRED TO MSG1 WHEN SELEC-MI = A EXEC CICS XCTL PROGRAM(BAMSAF) END-EXEC WHEN SELEC-MI = D EXEC CICS XCTL PROGRAM(BAMSDF) END-EXEC WHEN SELEC-MI = M EXEC CICS XCTL PROGRAM(BAMSMF) END-EXEC WHEN SELEC-MI = I EXEC CICS XCTL PROGRAM(BAMSMF) END-EXEC WHEN OTHER MOVE INVALID OPTION SELECTED TO MSG1 END-EVALUATE * 当用户按除Pause/Break和”Enter”之外的按键时进行的相应处理 * ELSE MOVE INVALID KEY PRESSED TO MSG1 END-IF * 输出界面,并RETURN到自身 * MOVE LOW-VALUES TO BAMAPMMO MOVE MSG1 TO DISPL-MO EXEC CICS SEND MAP(BAMAPMM) MAPSET(BAMPSMM) CURSOR(1337) ERASE FREEKB END-EXEC EXEC CICS RETURN TRANSID(BAMM) COMMAREA(COMSTART) LENGTH(1) END-EXEC. GOBACK. 最后需要注意的是,当用户输入“M”和“I”时将调用同一个程序。该程序对应修改账户功能模块。原因在于查询账户功能模块实际上是通过修改账户功能模块所调用的。当在修改账户功能模块中输入账号的部分信息时,将进行模糊查找,并调用查询账户功能模块。18.2 添加账户功能模块在添加账户功能模块的界面上,用户可以输入要添加的账户账号和姓名。同时,用户也可确定或撤销所要添加的账户。此外,用户还可在该界面上连续添加多个账户或者选择返回主菜单。添加账户功能模块的界面如图18.2所示。BANK ACCOUNT MANAGEMENT SYSTEMADD FUNCTIONACCOUNT NUMBER : _CLIENT NAME : _* MESSAGE LINE *PF9=NEXT PA2=RETURN TO MENUCLEAR=END SESSIONPROCEED WITH UPDATE (Y/N)? _ENTERBAAF 图18.2 添加账户功能模块界面在添加账户功能模块中,系统可输出的提示信息有以下几条:q 提示信息1:INVALID KEY PRESSED(表示用户按了非法的按键)。q 提示信息2:INPUT DATA REQUIRED(表示用户输入数据为空)。q 提示信息3:ACCOUNT NUMBER NOT NUMERIC(表示输入的账号不全为数字)。q 提示信息4:ACCOUNT ALREADY EXISTS(表示添加的账户已经存在)。q 提示信息5:ACCOUNT ADDED TO FILE(表示将账户成功添加到数据文件中)。q 提示信息6:UPDATE PROCESS CANCELED(表示用户撤销了添加账户操作)。q 提示信息7:ENTER “Y” OR “N”(要求用户输入确认或撤销信息)。q 提示信息8:PROCESSING ERROR(表示系统在处理过程中发生错误)。q 提示信息9:ADD SESSION ENDED(表示退出系统)。添加账户功能模块的任务要求如下:(1)显示界面,允许用户输入账号和姓名信息。但“PROCEED WITH UPDATE (Y/N)?_”以及“PF9=NEXT”不显示,且下划线位置不允许输入。(2)根据用户在输入数据前后所按的不同功能按键,分别作出如下处理。q “Enter”按键:执行步骤3。q Pause/Break按键:在新页面首行输出提示信息9,同时退出该系统。q “PA2(F2)”按键:返回主菜单。q 其他按键:输出提示信息1,重新执行步骤2。(3)根据用户输入的账号和姓名信息,分别作出如下处理。q 如果没有输入或输入的为空格,则输出提示信息2。同时将光标定位到账号信息输入首位,并返回执行步骤2。q 如果输入的账号不全为数字,则输出提示信息3。同时账号信息高亮显示,不允许输入,再返回执行步骤2。q 判断账号信息,如果在数据文件中存在该账号,则输出提示信息4。同时将账号和姓名信息都高亮显示,不允许输入,再返回执行步骤2。q 如果数据文件中不存在该账号,则执行步骤4。(4)重新输出界面。此时将“PROCEED WITH UPDATE (Y/N)?_”高亮显示,并在下划线处允许输入。同时账号和姓名部分不允许输入。(5)根据用户在输入数据前后所按的不同功能按键,分别作出如下处理。q “Enter”按键:执行步骤6。q Pause/Break按键:在新页面首行输出提示信息9,同时退出该系统。q “PA2(F2)”按键:返回主菜单。q 其他按键:输出提示信息1,重新执行步骤5。(6)根据用户输入的确认或撤销信息,分别作出如下处理。q 如果没有输入或输入的为空格,则输出提示信息2,返回执行步骤5。q 如果输入的为“Y”,则将账户信息写入数据文件,输出提示信息5,执行步骤7。q 如果输入的为“N”,则输出提示信息6,执行步骤7。q 如果输入的为其他字符,则输出提示信息7,返回执行步骤5。(7)高亮显示“PF9=NEXT”,同时不显示“ENTER”。此时用户按下快捷键F9,则返回执行步骤1;若按其他按键,包括Enter键,则输出提示信息1,返回执行步骤4。(8)如果在处理过程中遇到任何异常,则输出提示信息4,同时退出该系统。其中本系统中用于存放数据的文件为VSAM文件,该文件的属性及每条记录所包含的数据项如下:q 文件类型:KSDS。q 逻辑记录长度:60。q 主关键字:ACCOUNT NUMBER + ACCOUNT SBA CODE。q 次关键字:CLIENT NAME。q ACCOUNT NUMBER数据项:10字节,数字类型。q ACCOUNT SBA CODE数据项:3字节,数字类型,内容全0,用于分割账号和姓名。q CLIENT NAME数据项:20字节,字符类型。q NOT USED数据项:27字节,字符类型,内容为空。设该模块所用到的其他各项资源名称分别如下:q 交易名称:BAAF。q 程序名称:BAMSAF。q 界面所对应的MAP名称:BAMAPAF。q MAP所在的MAPSET名称:BAMPSAF。令本模块中符号MAP里的各变量如下:q ACC-N2:对应账号信息部分。q CLI-N2:对应姓名信息部分。q PROCE-2:对应“PROCEED WITH UPDATE (Y/N)?”字段。q UPDATE-2:对应“PROCEED WITH UPDATE (Y/N)? _”中的下划线。q NEXT-2:对应“PF9=NEXT”字段。q ENTER-2:对应“ENTER”字段。q DISPL-2:对应系统信息输出部分。则实现该模块所有功能的完整程序代码如下: IDENTIFICATION DIVISION. PROGRAM-ID BAMSAF. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 COMSTART. 05 STATUS-I PIC X VALUE F. 05 ACCOUN-I PIC X(10) VALUE SPACES. 05 CLIENT-I PIC X(20) VALUE SPACES. 01 DATA-FILED. 05 S-ACCNO PIC 9(10) VALUE ZERO. 05 S-SBA PIC 9(3) VALUE ZERO. 05 S-CNAME PIC X(20) VALUE SPACES. 05 S-NOTUSE PIC X(27) VALUE SPACES. 01 REC-FILED. 05 R-ACCNO PIC 9(10) VALUE ZERO. 05 R-SBA PIC 9(3) VALUE ZERO. 05 R-CNAME PIC X(20) VALUE SPACES. 05 R-NOTUSE PIC X(27) VALUE SPACES. 01 RECL PIC 9(2) COMP VALUE 60. 01 RECKEY PIC X(13). 01 ERR-CODE PIC S9(8) COMP. 01 MSG2 PIC X(79) VALUE SPACES. 01 OUT2 PIC X(79) VALUE SPACES. COPY DFHAID. COPY BAMPSAF. COPY DFHBMSCA. LINKAGE SECTION. 01 DFHCOMMAREA. 05 STATUS-C PIC X. 05 ACCOUN-C PIC X(10). 05 CLIENT-C PIC X(20). PROCEDURE DIVISION. * 当任务第一次执行时,直接输出MAP界面,并RETURN到自身 * IF EIBCALEN = 0 THEN MOVE F TO STATUS-IMOVE LOW-VALUES TO BAMAPAFO PERFORM PROCESS-SETMAP1 EXEC CICS SEND MAP(BAMAPAF) MAPSET(BAMPSAF) CURSOR(593) ERASE FREEKB END-EXEC EXEC CICS RETURN TRANSID(BAAF) COMMAREA(COMSTART) LENGTH(31) END-EXEC. * 当用户按Pause/Break按键时,输出相应提示信息,并退出该MIS系统 * IF EIBAID = DFHCLEAR THEN MOVE ADD SESSION ENDED TO OUT2 EXEC CICS SEND FROM(OUT2) LENGTH(79) ERASE END-EXEC EXEC CICS RETURN END-EXEC. * 当用户按“F2”按键时,返回主菜单 *IF EIBAID = DFHPF2 EXEC CICS XCTL PROGRAM(BAMSMM) END-EXEC.* 当程序处于由用户输入新增账户的状态时所做的处理 * IF STATUS-C = F MOVE LOW-VALUES TO BAMAPAFO PERFORM PROCESS-SETMAP1 IF EIBAID = DFHENTER EXEC CICS RECEIVE MAP(MAMAPAF) MAPSET(MAMPSAF) RESP(ERR-CODE) END-EXEC IF ERR-CODE NOT EQUAL DFHRESP(NORMAL) MOVE PROCESSING ERROR TO OUT2 EXEC CICS SEND FROM(OUT2) LENGTH(79) ERASE END-EXEC EXEC CICS RETURN END-EXEC END-IF IF ACC-N2I IS EQUAL TO SPACES OR /*当输入数据为空或空格时进行的处理*/CLI-N2I IS EQUAL TO SPACES OR ACC-N2L IS EQUAL TO ZERO OR CLI-N2L IS EQUAL TO ZERO MOVE INPUT DATA REQUIRED TO MSG2 ELSE IF ACC-N2I IS NOT NUMERIC/*当输入账号不全为数字时进行的处理*/ MOVE ACCOUNT NUMBER NOT NUMERIC TO MSG2 MOVE DFHBMBRY TO ACC-N2A MOVE DFHBMBRY TO CLI-N2A ELSE /*当输入数据合法时进行的处理*/ MOVE ACC-N2I TO S-ACCNO MOVE CLI-N2I TO S-CNAME STRING S-ACCNO S-SBA/*查找文件中是否已存在所要添加的账户*/ DELIMITED BY SIZE INTO RECKEY EXEC CICS READ FILE(BAMSFKS) /*查找数据文件中是否存在所输入的账户*/ INTO(REC-FILED) RIDFLD(RECKEY) KEYLENGTH(13) LENGTH(RECL) RESP(ERR-CODE) END-EXEC IF R-ACCNO = S-ACCNO /*当文件中存在相应账户时进行的处理*/ MOVE ACCOUNT ALREADY EXISTS TO MSG2 ELSE IF /*当文件中不存在相应账户时进行的处理*/ERR-CODE EQUAL DFHRESP(NOTFND) PERFORM PROCESS-SETMAP2 EXEC CICS SEND MAP(BAMAPAF) MAPSET(BAMPSAF) CURSOR(1587) ERASE FREEKB END-EXEC MOVE S TO STATUS-I /*转入确认/撤销操作的状态*/ MOVE ACC-N2I TO ACCOUN-I MOVE CLI-N2I TO CLIENT-I EXEC CICS RETURN TRANSID(BAAF) COMMAREA(COMSTART) LENGTH(31) END-EXEC END-IF/*结束文件中不存在相应账户时的处理*/ END-IF /*结束输入数据非空时的处理*/ END-IF /*结束对输入数据进行判断的处理*/ END-IF /*结束用户按”Enter”按键时的处理*/ ELSE /*当用户按无效按键时进行的处理*/ MOVE INVALID KEY PRESSED TO MSG2 END-IF MOVE MSG2 TO DISPL-2O /*输出以上处理完成后的界面信息*/ EXEC CICS SEND MAP(BAMAPAF) MAPSET(BAMPSAF) CURSOR(593) ERASE FREEKB END-EXEC END-IF. * 当程序处于由用户确认/撤销操作状态时所做的操作 * IF STATUS-C = S PERFORM PROCESS-SETMAP2 MOVE S TO STATUS-I IF EIBAID = DFHENTER EXEC CICS RECEIVE MAP(BAMAPAF) MAPSET(BAMPSAF) RESP(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电阻考试题及答案
- 中华传统文化(青岛黄海学院)知到智慧树答案
- 中级微观经济学(双语)知到智慧树答案
- 幼儿教师招聘教师资格证《综合素质》考试模拟试卷及答案
- 接待转科患者处理流程和新生儿呕吐试题(附答案)
- 体外诊断试剂培训试题及答案
- 冷链培训试卷(含答案)
- 2025年房地产项目建筑材料安全性能采购合同
- 补虚药临床转化研究-洞察及研究
- 2025年变压器项目融资合作合同
- 四川省2024年高等职业教育单独招生考试中职类语文试题及答案
- 实验室危化品安全管理培训
- 复苏室患者的交接流程
- 老旧小区改造给排水施工方案
- 【人教版化学】选择性必修1 知识点默写小纸条(答案背诵版)
- DB21-T 2523-2015矿山地质环境恢复治理规程
- 2024天津高考英语试题及答案
- 实验室中央空调施工方案
- 幼儿园 中班语言绘本《章鱼先生卖雨伞》
- 中医学藏象学说课件
- 软件平台建设和运营合同
评论
0/150
提交评论