高效银行业务模拟系统:基于C语言与数据结构

4星 · 超过85%的资源 需积分: 33 33 下载量 28 浏览量 更新于2024-07-29 1 收藏 451KB DOC 举报
"银行业务模拟系统" 这篇文档是关于一个学年设计项目——银行业务模拟系统的详细介绍,由陈事理及其团队成员共同完成。该系统旨在应对传统银行业务系统无法满足日益增长的需求的问题,通过使用C语言和数据结构知识来构建一个高效、便捷的模拟系统。设计团队的主要目的是了解银行存取款业务流程,并通过编程实现开户、存款、取款、转账和注销等基本功能。 在项目实施过程中,团队成员进行了明确的分工,如确定任务内容、查询相关资料、分析设计题目、编写代码和进行系统测试。设计所需环境为Windows XP及Microsoft Visual C++ 6.0。设计任务要求系统需具备完整的银行业务功能,并通过逐步推进的工作计划完成。 在相关知识部分,文档提到了C语言中的结构体,包括结构体的概念、定义以及如何使用。结构体是C语言中复合数据类型的一种,允许将不同类型的数据组合在一起,这对于构建复杂的银行业务对象模型至关重要。同时,文档还提及了switch语句,这是一种多分支选择结构,在处理不同业务操作时非常有用。此外,随机函数也在银行模拟系统中可能用于生成随机账户余额或交易金额。 在系统设计阶段,团队进行了需求分析,明确了系统应该实现的功能。系统设计包括了开户、存款、取款和查询等模块的详细描述。例如,开户模块应能处理用户信息输入,存款模块需要验证金额并更新账户余额,取款模块需检查余额并确保不出现负值,而查询模块则提供账户余额和交易记录的查看功能。 在系统测试阶段,对每个模块都进行了详细的测试,如开户测试中检验信息的正确性以确保开户成功,存款测试时验证正确和错误的输入信息,以确保系统能正确处理各种情况。 这个银行业务模拟系统项目展示了如何运用计算机科学原理,特别是C语言和数据结构,来解决实际问题。这个系统不仅是一个教学工具,也是对实际银行系统的简化版模拟,有助于理解和实践软件开发过程。
1556 浏览量
假设某银行有n个窗口对外接待客户,从早晨银行9点开门起到5点关门,不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。 首先从题目分析:N个窗口排队,首先就要建立N个队列来存储排队的用户信息 ,然后算出那个队列最短就用户就到那个队伍排队,同时通过随机生成他办理业务的时间和到来的时间,通过计算用户的到来时间和离开时间就可以计算出某个用户在银行的逗留时间 ;话不多说直接上代码。 下面是主函数,由用户输入银行上下班时间,计算营业多长时间Total_time,如何当前时间小于关门的时间,就一直进入customer_into();函数,用户不断的进来 #define FALSE 0 #define TRUE 1 #define QUEUE_SUM 4 //窗口的数量 int rand_business_time=0, rand_wait_time=0;//定义办理时间,等待时间变量 int Total_time=0,now_tim=0;//总时间,当前时间 int go_time[4] = {0,0,0,0};//定义数组存储每个窗口最后一位办理完业务的时间 int sum_nan[4] = {0,0,0,0};//定义数组存储每个窗口排队的人数 int Sign=TRUE; //是否关门标志位 float Sum_Wait_Time=0.0; //等待的总时间 float Sun_Nan=0.0; //总人数 int open_time;//开门时间 int off_time; //关门时间 int main() { Prompted(); printf("输入银行的24小时制营业时间:如营业时间为9:00--17:00,则应输入:9,17\n"); scanf("%d,%d", &open;_time,&off;_time); Total_time = (off_time - open_time) * 60;//计算银行总营业多少分钟 for (int i = 0; i now_time) { customer_into(); //客户进入函数 } printf("银行关门时间到不再接收客人\n\n"); for (int i = 0; i < QUEUE_SUM; i++) { DisposeQueue(&queue;[i],i);//输入在银行关门前还没有办理完业务的客户信息 } printf("平均时间为%.2f分钟",Sum_Wait_Time/Sun_Nan); /*通过各个客户的总等待时间总和/总人数算出逗留平均时间*/ _getch(); return 0; }
336 浏览量
要求: 客户业务分为两种。第一种是申请从银行得到一笔资金,即取款或借款。第二种是向银行投入一笔资金,即存款或还款。银行有两个服务窗口,相应地有两个队列。客户到达银行后先排第一个队。处理每个客户业务时,如果居于第一种,且申请额超出银行现存资金总额顺得不到满足,则立刻排入第二个队等候,直至满足时才离开银行;否则业务处理完后立刻离开银行。每接待完一个第二种业务的客户,则顺序检查相处理(如果可能)第二个队列中的客广,对能满足的申请者予以满足,不能满足者重新排列第二个队列的队尾。注意,在此检查过程中,一旦银行资金总额少于或等于刚才第一个队列中最后一个客户(第二种业务)被接待之前的数额,或者本次已将第二个队列检查或处理了一遍,就停止被盗(因为此时已不可能还有能满足者)转而继续接待第一个队列的客户。任何时刻都只开一个窗口。假设检查不需要时间。营业时间结束时所有存户立即离开银行。 写一个上述银行业务的事件驱动模拟系统,通过模拟方法求出客户在银行内逗留的平 均时间。 [测试数据] 一天营业开始时银行拥有的款额为10000(元).营业时间为600(分钟)。其他模拟参量 自定。注意测定两种极端的情况:一是两个到达事件之间的间隔时间很短,而客户的交易时 间很长,另一个恰好相反,设置两个到达事件的间隔时间很长,而客户的交易时间很短。 [实现提示] 事件有两类;到达银行和离开银行。韧始时银行现存资金总额为total。开始营业后的第 —个事件是客户到达,营业时间从0到closetime。到达事件发生时随机地设置此客户的交 易时间相距下一到达事件之间的时间间隔。每个客户要办理的款额也是随机确定的,用负值 和正值分别表示第一类相第二类业务。变量total、closetime以及上述两个随机量的上下界 均文互地从终端读入,作为模拟参数。 两个队列和一个事件表均要用动态存储结构实现。注意弄清应该在什么条件下设置离开事件,以及第二个队列甩怎样的存储结构实现时可以获得较高的效率。注意:事件表是按 时间顺序有序的。