银行汇兑系统1设计目1)电子汇兑系统是国家邮政局为了适应市场竞争,彻底改变传统邮政汇兑的手工方式,建立的一个连接国家邮政局、31个省局、2468个县局和大量的基层网点的安全、稳定高效的系统,它将传统邮政汇兑的传递实物汇票的方式改变为以电子信息传递汇兑数据,以电子信息作为业务交易。业务种类有普通、电子汇款、加急汇款、特急汇款。本项目仅仅模拟了电子汇兑电子汇款中计算汇费的部分,不包括邮政电子汇兑其他附加服务所收取的费用。:2)了解银行电子汇兑的流程,使用C语言和数据程序知识模拟银行存取款系统。1.2内容与要求1.题目:模拟银行电子汇兑系统2.基本内容:(1)功能概述:输入汇款金额,计算出应缴纳的汇费。(2)系统主要功能:1.主函数:循环录入汇款金额,并计算出汇费,录入‘0’表示结束。2.数据的合法性检查:输入汇款金额,检查数据的合法性,必须大于等于1,小于等于50000,必须是包含一个小数点的金额格式。3.计算:根据汇款金额,计算出应缴汇费。3要求:完成银行电子汇兑业务的模拟系统,并且能够运行程序各个模块要添加注释。报告要画出系统框图和详细的流程图。输出的结果要准确、清晰、美观。二.总体设计此节将阐述系统(程序)设计思想、系统模块划分、模块调用关系等。2.1系统设计思想——逻辑模型系统的逻辑模型通常采用IPO图表示,同样比较直观。IPO图是输入/处理/输出图的简称,描述输入数据、对数据的处理和输出数据之间的关系。图1.IPO(输入处理输出)汇兑金额↓↓汇款金额输入有效性验证根据汇款金额计算汇费↓↓打印汇费系统模块划分以及模块调用关系图2.三.详细设计与实现3.1程序设计流程图3.2功能模块设计:(1)检测模块:进入系统后,输入金额,写入文件,可判断金额是否合格。(2)计算模块:检测金额合格后,输出需缴纳的金额。3.3函数功能描述:Main():调用函数CheckMoney():检测函数Get_Fee():计费函数Exit():退出。3.4数据结构设计:cmoney[100]:汇款金额dmoney=0,dfee=0:汇款金额,汇费cStrTmp[100]:字符长度fee:汇费3.5具体实现(1)系统主函数main()实现在主函数中,循环获得录入的汇款金额,把汇款金额当做参数,传递给格式判断函数,判断汇款金额格式是否合法,格式非法则停止当前循环,进入下一次循环;格式合法然后判断汇款金额是0还是正常汇款金额(1到50000),0表示退出程序;非正常汇款金额(小于1或者大于50000)停止当前循环,进入下一次循环;如果是正常汇款金额把正常汇款金额当作参数,传递给汇费计算函数,计算返回应缴汇费。最后把结果打印到屏幕上,进入下一次循环。在主函数main()之前添加需要的系统头文件:#includestdio.h#includestring.h#includestdlib.h#includectype.h包含以上系统头文件后才能正常调用C语言的库函数,首先得到用户录入的汇款金额。功能的实现是通过C语言的字符串处理函数gets实现的。接着调用自定义函数CheckMoney检查汇款金额格式是否合法。如果汇款金额格式非法,则提示“录入的金额格式非法!”continue停止当前这一遍循环,然后直接尝试下一遍循环;继续提示用户“请录入汇款金额(元),0表示结束:”。如果汇款金额格式合法,首先调用atof函数将汇款金额字符数组转换成实型数据,然后判断汇款金额是否是‘0’,如果用户录入‘0’则break退出循环,正常结束程序。如果汇款金额非‘0’,然后判断汇款金额是否低于最低汇款限额1元。如果低于最低汇款限额,则提示“低于最低汇款限额!”;continue停止当前这一遍循环,然后直接尝试下一遍循环继续提示用户“请录入汇款金额(元),0表示结束:”。如果汇款金额不低于最低汇款限额1元,则判断录入的汇款金额是否超过最高汇款限额50000元。如果超过最高汇款限额,则提示“超过最高汇款限额!”;continue停止当前这一遍循环,然后直接尝试下一遍循环继续提示用户“请录入汇款金额(元),0表示结束:”。如果汇款金额格式正常,没有超出汇款金额限制范围,则调用自定义函数Get_Fee根据汇款金额计算汇费,然后调用printf函数显示应收汇费。继续下一遍循环继续提示用户“请录入汇款金额(元),0表示结束:”。(2)自定义函数CheckMoney(3)自定义函数Get_Fee银行汇兑系统1课程设计任务与要求《C语言课程设计》是计算机类专业一门重要的专业技术基础课程,较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术。而《C语言课程设计》的课程设计的任务就是训练学生对计算机数据对象进行分析的能力,选择适当的数据结构及相关算法的能力。1.1课程设计任务数据是计算机应用的一个重要方面,与此相应计算机加工处理的对象也从数值发展到非数值性数据。要设计关于非数值性数据的处理程序,必须研究数据特性及数据之间存在的关系,而《C语言课程设计》就是研究数据处理对象以及它们之间的关系和运算等的学科。《C语言课程设计》是介于数学、硬件、软件三者之间的一门核心课程,它不仅是一般的程序设计,尤其是非数值性程序设计的基础,而且是设计实现编译程序、操作系统、数据库系统、大型应用程序及其它系统程序的重要基础。其目的在于使学生对复杂的数据结构容易理解、掌握,并有助于在实际编程过程中应用。锻炼学生算法书写、上机实习规范、程序调试技巧、设计说明书的整理等方面的内容,为以后从事编写复杂软件及软件开发工作打下基础。课题内容(1)设计一银行汇款系统来提供以下功能:检测录入金额的合法性、计算汇费。(2)检测:可判断录入金额是否格式正确。(3)计算汇费:计算汇款后客户需缴纳的汇费。1.2要求(1)完成银行汇款业务的模拟系统,并且能够正常运行。(2)录入金额,检测是否合格。(3)计算汇费。(4)程序各个模块要添加注释。(5)报告要画出函数调用图和详细的流程图。(6)输出的结果要准确、清晰、美观。2系统总体设计与详细设计系统结构图图1系统结构图3详细设计根据建立的模型以及系统结构图,首先确定程序的大致轮廓,确定本程序所要用到的函数,对函数进行分块,在确定每个函数部分的具体内容以及所要用到的系统函数,再确定该程序的主函数,对要用到的变量进行定义,要用到的文件确定头文件。最后将各个模块的函数进行组合起来,完成程序然后在运行程序检查程序。还得考虑程序的可操作性以及程序的实际性价值,程序的设计是否严谨性。3.1模块功能描述3.1.1主模块3.1.2checkmoney模块3.1.3Get-Fee模块4系统实现与测试通过在宏观上考虑和微观上具体设计以后,利用C语言以及相应的数据结构编写源代码,通过多次的调试程序找出程序的不足之处,然后进行修改和完善已满足程序设计的相关要求,以实现设计相应的功能。4.1ATM自动提款机的模拟系统的测试结果4.1.1主界面图1主界面4.1.2正确输入汇款金额后图2汇款界面4.1.3超额输入汇款金额后图3超额汇款界面5课程设计总结5.1心得体会与总结经过将近两个星期的实训,无论是在C语言这门课程上,还是在其它科目上都让我感触颇多。学以致用才是我们学习的最终目的,更是学习的最终价值体现。老师的趣味教学让我懂得了这世界上并不存在乏味的学习,只要你对它培养兴趣,对它有所期待,就一定存在乐趣。最重要的是,让我彻底地领悟到“纸上学来终觉浅,绝知此事要躬行”这句话的深刻含义。对于C语言我们停留在应考阶段,如果想用现有的知识来解决生活中的问题,我们只能望尘莫及。但本次学习给予我的收获很多。在以后的学习或者是工作过程中,我知道了团队合作重要性,对于一个大型的项目,想要成功地完成它,,一个人是远远不够的,需要众多人智慧的结晶。在克服重重困难后,虽然编写出了一个满足题目要求的计算银行汇费的程序,但与日常生活中的相比,还是不实用的。所以我们还需要努力学习,来满足工作的需要,社会的需要。此次实践,在我们日后的学习海洋中点亮了一盏导航灯,使我们走上了捷径之路。5.2致谢在炎炎夏日,老师不辞辛苦地传授她最宝贵的专业知识给我们,在此我们只能用这世界上最简单的两个字来回报她—谢谢。虽然我们相聚在一起只有这短短的两个星期,但在以后我们会以老师教导的方法来学习这门课程。同时要感谢学校老师领导的组织,打破常规请外界公司人员来让我们尽早一步了解本课程学习,以及在实际工作生活中的需求状况,让我们有的放矢,把我们培养成社会的有用之才。最后要感谢学校给予了我们锻炼实习的机器。为了给我们营造一个良好的学习环境,学校给我们配备了空调等相关设施,在此我表示最诚挚地感谢。参考文献【1】谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005.7【2】谭浩强著.C程序设计题解与上机指导(第三版).北京:清华大学出版社,2005.7【3】李丹程刘莹那俊著.C语言设计案例实践.清华大学出版社,2009.2【4】段兴著.C语言实用课程设计.人民邮电出版社,2004.7【5】孟彩霞.计算机软件基础[M].西安:西安电子科技大学出版社,2003.附录#includestdio.h#includestring.h#includestdlib.h#includectype.h#includeCheckMoney.h#includeFee.h#includeMAMI.h#defineN10intmain(){inti,a,n,l;doublefee,b,sum=0;charJinE[N];do{for(i=0;i4;i++){printf(欢迎您进入博大银行电子汇款系统\n请您输入汇款金额:\n(如汇款100元请输入100.0)\n输入0.0结束汇款!\n);scanf(%s,JinE);n=CheckMoney(JinE,strlen(JinE));if(n==2)break;if(i==2){printf(对不起!您输入次数超限,请取出您的银行卡。再见!\n);a=0;break;}if(n==1)continue;elseif(n==0){a=n;break;}elsebreak;}if(a==0){printf(您已结束此次汇款!感谢您的使用!请取您的银行卡。再见!\n);break;}b=atof(JinE);l=MAMI(b);if(l==5)continue;sum=sum+b;if(sum50000){printf(对不起!您已经超出每日最高汇款金额50000元\n);printf(您已结束此次汇款!感谢您的使用!请取您的银行卡。再见!\n);break;}fee=Fee(b);printf(汇款成功!汇款金额为:%.1f元.\n手续费为:%.2f元\n感谢您的使用!\n,b,fee);}while(1);return0;}