基于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的值,即窗口对应队列的长度,客户进入银行时,比较当时个队列的长度,取最短的排队即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/926221.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt自定义 Widget 组件

自定义 Widget 子类 QmyBattery Qt 的 UI 设计器提供了很多 GUI 设计的界面组件,可以满足常见的界面设计需求。但是某些时候需要设计一些特殊的界面组件,而在 UI 设计器的组件面板里根本没有合适的组件,这时就需要设计自定义的界面组件。 所…

Flink双流Join

在离线 Hive 中,我们经常会使用 Join 进行多表关联。那么在实时中我们应该如何实现两条流的 Join 呢?Flink DataStream API 为我们提供了3个算子来实现双流 join,分别是: join coGroup intervalJoin 下面我们分别详细看一下这…

WEB攻防-通用漏洞XSS跨站绕过修复http_onlyCSP标签符号

修复: 1、过滤一些危险字符; 2、HTTP-only Cookie; 3、设置CSP(Content Security Policy); 4、输入内容长度限制,转义等; XSS绕过-CTFSHOW-316到331 关卡绕过WP XSS修复-过滤函数&http_only&C…

python 生成tts语音

之前一直使用微软、或者国内大厂的接口,网页操作比较麻烦,最近发现一个python库可以完美解决,在这里分享给大家 在这里 GitHub - rany2/edge-tts: Use Microsoft Edges online text-to-speech service from Python WITHOUT needing Microsof…

嵌入式硬件实战提升篇(三)商用量产电源设计方案 三路电源输入设计 电源管理 多输入供电自动管理 DCDC降压

引言:本文你能实际的了解到实战量产产品中电源架构设计的要求和过程,并且从实际实践出发搞懂电源架构系统,你也可以模仿此架构抄板到你自己的项目,并结合硬件篇之前的项目以及理论形成正真的三路电源输入设计与开发板电源架构块供…

SAP SD学习笔记16 - 请求书的取消 - VF11

上一章讲了 返品处理流程中的 参照请求传票(发票)来生成返品传票。 SAP SD学习笔记15 - 返品处理流程2 - 参照请求传票(发票)来生成返品传票-CSDN博客 本章讲 请求传票的取消。 目录 1,请求书取消的概要 2&#xf…

CLIP-MMA: Multi-Modal Adapter for Vision-Language Models

当前的问题 CLIP-Adapter仅单独调整图像和文本嵌入,忽略了不同模态之间的交互作用。此外,适应性参数容易过拟合训练数据,导致新任务泛化能力的损失。 动机 图1所示。多模态适配器说明。 通过一种基于注意力的 Adapter ,作者称之…

51单片机快速入门之中断的应用 2024/11/23 串口中断

51单片机快速入门之中断的应用 基本函数: void T0(void) interrupt 1 using 1 { 这里放入中断后需要做的操作 } void T0(void): 这是一个函数声明,表明函数 T0 不接受任何参数,并且不返回任何值。 interrupt 1: 这是关键字和参…

【Spring】聊聊@EventListener注解原理

1.一个Demo出发 在平时的开发中,其实编写同步线程代码是比较容易的,但是如何将一些操作和另外一些操作进行解除耦合,而事件方式 是一种很好的解耦合方式,比如当一个用户注销一个APP之后,需要发送一些短信 让他引流回来…

【和春笋一起学C++】使用new创建动态数组

目录 1. 什么是动态数组 2. 怎么使用动态数组 1. 什么是动态数组 char name[20]; 上面这种方式创建的数组在程序编译时将为它分配内存空间,不管程序最终是否使用数组,数组都在那里,它占用了内存空间。在编译时给数组分配内存被称为静态联编…

2-2-18-9 QNX系统架构之文件系统(一)

阅读前言 本文以QNX系统官方的文档英文原版资料为参考,翻译和逐句校对后,对QNX操作系统的相关概念进行了深度整理,旨在帮助想要了解QNX的读者及开发者可以快速阅读,而不必查看晦涩难懂的英文原文,这些文章将会作为一个…

ECharts柱状图-极坐标系下的堆叠柱状图,附视频讲解与代码下载

引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供…

Android复习简答题

一、基础入门 Android程序架构 (1)app:用于存放程序的代码和资源等内容。包含很多子目录 libs:存放第三方jar包 src/androidTest:存放调试的代码文件 src/main/androidMainfest.xml 整个程序的配置文件,可配置程序所需要的权…

PaddleOCR:一款高性能的OCR工具介绍

一、引言 随着人工智能技术的不断发展,光学字符识别(OCR)技术在各行各业得到了广泛应用。OCR技术能够将图片、扫描件等非结构化数据中的文字信息提取出来,转换为可编辑的文本格式。在我国,百度开源了一款优秀的OCR工具…

HTML5好看的音乐播放器多种风格(附源码)

文章目录 1.设计来源1.1 音乐播放器风格1效果1.2 音乐播放器风格2效果1.3 音乐播放器风格3效果1.4 音乐播放器风格4效果1.5 音乐播放器风格5效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者&…

11、数组

1、数组概念 数组就是存储多个相同数据类型的数据。 比如:存储26个字母,存储一个班级的学生成绩。 2、数组使用 数组要遵循先定义再使用 2.1、数组定义的格式 存储数据---空间 ---- 数据类型 多少个 --- 数据个数 >> 数据类型 数…

C底层 函数栈帧

文章目录 一,什么是寄存器 二,栈和帧 前言 我们在学习c语言程序的时候,是不是有很多的疑问,如 1,为什么形参不可以改变实参 2,为什么我们编写程序的时候会出现烫烫烫......这个乱码 3,那些局…

MATLAB期末复习笔记(二)

三、MATLAB函数和程序结构 1.MATLAB文件 两种类型的M文件: • 脚本 ,不接受输入参数或返回输出参数。它们处理工作区中的数据。 • 函数 ,可接受输入参数,并返回输出参数。内部变量是函数的局部变量。 ① 函数文件是另一类 m 文…

redis的应用----缓存

redis的应用----缓存 一、缓存的概念二、使用redis作为缓存2.1使用redis作为缓存的原因2.2缓存机制的访问步骤 三、缓存的更新策略3.1定期更新3.2实时更新3.3淘汰策略 四、缓存常见的问题4.1缓存预热(Cache preheating)4.2缓存穿透(Cache penetration)4.3缓存雪崩(Cache avalan…

2025年Java面试八股文大全

很多人会问Java面试八股文有必要背吗? 我的回答是:很有必要。你可以讨厌这模式,但你一定要去背,因为不背你就进不了大厂。 国内的互联网面试,恐怕是现存的、最接近科举考试的制度。 而且,我国的八股文确…