当前位置: 首页 > article >正文

基于MFC实现的银行模拟系统

基于MFC实现的银行模拟系统

1.软硬件运行环境

1.1 项目研究背景与意义

为了能给学生熟悉银行业务系统提供真实的操作环境, 使学生在掌握理论知识的同时熟悉银行业务的实际操作过程,改变其知识结构,培养商业银行真正需要的实用人才,增强学生的社会就业竞争力。网络告诉发展的今天,网络银行的应用越来越频繁,银行模拟系统的出现更会促进银行网络化的发展。

1.2 需求分析

  • 模块一:计算窗口队伍长度,根据几个窗口的比较得出队列最短窗口
  • 模块二:处理客户到达事件,包括客户事务处理时间,是否需要排队,根据哪个窗口队列最短排队及客户的进队出队
  • 模块三:队列和链表的生成与销毁

1.3 概要设计

# define ARRIVAL   COUNTER  /* 客户到达事件 */
# define COUNTER   8       /* 银行营业窗口 */

typedef struct {
	size_t OccurTime, NType; /* 事件发生时刻;事件类型 */
} Event; /* 链表数据元素类型 */

typedef struct Enode {
	Event event;
	struct Enode *next;
} Enode, *EventList;

typedef struct {
	size_t ArrTime, Duration;  /* 到达时刻;办理时间 */
} QElem;  /* 队列数据元素类型 */

typedef struct Qnode {
	QElem Cust;  /* 客户记录 */
	struct Qnode *next;
} Qnode, *Qptr;

typedef struct {
	Qptr front, rear; /* 队头指针,队尾指针 */
} LinkQueue;

int bank_open( void );     /* 初始化操作 */
int CustArr( void );  /* 处理客户到达事件 */
int CustDepart( void );    /* 处理客户离开事件 */
void DelFirst( void );  /* 删除事件表第一个节点,并把值赋给en */
int DeQueue( LinkQueue * );  /* 出队 */
void DestroyAll( void );  /* 销毁链表和队列 */
void DestroyList( EventList ); /* 销毁链表 */
void DestroyQueue( LinkQueue * ); /* 销毁队列 */
int EnQueue( LinkQueue *, QElem );  /* 进队 */
EventList InitList( void ); /* 创建链表 */
int InitQueue( LinkQueue * ); /* 建立空队列 */
size_t Minimun( void );  /* 求长度最短队列 */
int OrderInsert( EventList, Event ); /* 插入事件表 */
size_t QueueLength( LinkQueue );  /* 计算队列长度 */

计算窗口队列长度QueueLength(LinkQueue Q)流程图

求长度最短队列Minimun( void )流程图

1.4 调试分析

MFC工作界面结果

2.问题及难点所在

假设某银行有8个窗口对外接待客户,从早晨银行开门起不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进和银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。

难点:解决客户进入银行后选择队伍最短的窗口进行排队。

3.算法设计的思想

利用LinkQueue结构体定义指针,通过i++for循环语句判断队尾指针的方式来确定i的值,即窗口对应队列的长度,客户进入银行时,比较当时个队列的长度,取最短的排队即可。


http://www.kler.cn/a/416017.html

相关文章:

  • OpenCV 图像轮廓查找与绘制全攻略:从函数使用到实战应用详解
  • springboot旅游管理系统的设计与实现
  • 【中间件】Redis
  • 探索Python词云库WordCloud的奥秘
  • 详解MVC架构与三层架构以及DO、VO、DTO、BO、PO | SpringBoot基础概念
  • DICOM医学影像应用篇——伪彩色映射 在DICOM医学影像中的应用详解
  • Vue项目通过Nginx部署多个
  • Linux环境下配置neo4j图数据库
  • 深度学习:完整的模型训练流程
  • Oracle 19C Data Guard 单实例1+1部署(Duplicate方式)
  • Opencv+ROS实现颜色识别应用
  • TVS/ESD,PSRR,环路稳定【2024/11/29】
  • 【目标跟踪】AntiUAV410数据集详细介绍
  • SpringBoot 架构下夕阳红公寓智能化管理系统的匠心构建
  • 杭州网世一站式网络解决方案,助力安邦护卫网络升级改造
  • 【连接池】.NET开源 ORM 框架 SqlSugar 系列
  • 推荐学习笔记:矩阵补充和矩阵分解
  • github浏览技巧-github1s
  • 课程学习 (Curriculum Learning) 介绍及其在 DeepSpeed 框架中的应用:中英双语
  • 合规性要求对漏洞管理策略的影响
  • MySQL7 事务(一)
  • BERT相关知识
  • Java项目实战II基于Java+Spring Boot+MySQL的智能停车计费系统(开发文档+数据库+源码)
  • 独家|京东调整职级序列体系
  • 不一样的css(三)
  • Windows安装Node.js