银行业务模拟与离散事件模拟课程设计


    



    工学系课程设计报告







    设 计 题 目:银行业务模拟离散事件模拟
    系 :工学系
    专 业 (方 ):
    年 级 班:
    学 生 姓 名:
    学 生 学 号:
    指 导 教 师:

    年 月 日





    目录
    系统开发背景 1
    () 系统功求 1
    (二) 系统模块结构设计 1
    三系统设计实现 2
    () 开门函数: 3
    (二) 顾客达函数: 5
    (三) 顾客离开函数: 6
    四系统测试 7
    五总结 8
    六附件(代码部分图表) 8













    银行业务模拟离散事件模拟
    系统开发背景
    现实生活中方便银行业务员更操作理银行出现种事件方便算出种时间设计银行业务模拟离散事件模拟系统
    通次课程设计中银行业务模拟题目掌握队列链表等数结构基操作方面知识灵活解决基问题加深性质操作理解
    学数结构方面知识门具体语言相结合进行实现感受数结构强作加深理解
    () 系统功求
    编制程序模拟银行种业务活动计算天中客户银行逗留均时间
    1 客户达时间机产生天客户数设定100
    2 银行业务员处理时间机产生均处理时间10分钟
    3 天数结构(包括业务员客户)文件方式输出

    (二) 系统模块结构设计
    通系统功分析银行业务模拟离散事件模拟系统功图示

    银行业务模拟离散事件模拟
    开门函数
    (OpenForday())
    顾客达函数
    (CustomerArrived())
    顾客离开函数
    (CustomerDeparture())

    银行业务模拟离散事件模拟系统
    通图功分析整系统划分3模块:
    1 开门函数该模块实现:银行开始正常营业时间助函数OpenForDay()实现
    2 顾客达函数该模块实现:客户银行里 排队办理完银行业务功助函数CustomerArrive()实现
    3 顾客离开函数该模块实现:银行班时间顾客全部离开功助函数CustomerDepart()实现
    三系统设计实现
    流程图
    客户达
    开始
    选择服务窗口
    窗口忙
    服务展开
    链表空
    窗口闲置
    结束
    排队
    头取客户
    处理离开


    时间

    () 开门函数:OpenForDay()
    分析:首先输入机数种子然输入银行办理时基信息图示
    void OpenForDay()
    { *初始化事件链表*
    int i
    InitList(ev)
    enOccurTime0
    enNTypeQu *达*
    OrderInsert(evencmp)
    for(i0i InitQueue(q[i])
    }
    void Random(int &dint &i)
    { * 生成两机数*
    drand()chuli+1 *处理机数*
    irand()(jiange+1) *间隔间机数*
    }
    int Minimum(LinkQueue Q[])
    { *返回短序列序号*
    int l[Qu]
    int ik0
    for(i0i l[i]QueueLength(Q[i])
    for(i1i if(l[i] {
    l[0]l[i]
    ki
    }
    return k
    }

    功子函数
    输入机数种子
    输入营业时间
    输入办理业务窗口数

    该模块具体代码示
    (二) 顾客达函数CustomerArrived()
    客户达处理
    产生机数
    插入达事件表
    插入短队
    插入离事件

    该模块具体代码示:
    void CustomerArrived()
    { *处理客户达事件*
    QElemType f
    int durtimeintertimei
    ++CustomerNum *客户数增加1*
    Random(durtimeintertime)
    etOccurTimeenOccurTime+intertime*客户达时刻前客户达时间+时间间隔*
    etNTypeQu *客户达事件*
    iMinnimum(q)
    if(etOccurTime OrderInsert(evetcmp)
    fArrivalTimeenOccurTime
    fDurationdurtime
    EnQueue(q[i]f)
    if(QueueLength(q[i])1)
    {
    etOccurTimeenOccurTime+durtime*设定离开事件*
    etNTypei
    OrderInsert(evetcmp)
    }
    }

    (三) 顾客离开函数CustomerDeparture()
    顾客离开处理
    离开时间
    客户逗留时间
    总时间

    该模块具体代码示:
    void CustomerDeparture()
    { *处理客户离开事件*
    int i
    ienNType
    DeQueue(q[i]customer) *删队列排头客户*
    TotalTime+enOccurTimecustomerArrivalTime
    if(QueueEmpty(q[i]))
    {
    GetHead(q[i]customer)
    etOccurTimeenOccurTime+customerDuration
    etNTypei
    OrderInsert(evetcmp)
    }
    }

    四系统测试
    () 测试函数
    测试该函数测试方法测试具体步骤测试例选取测试结果

    (二)

    (三)

    (四)

    五总结
    通次实验熟悉链表实际应中简单操作通实际数产生函数完成系列银行活动模拟银行业务办理提供更便利
    实验中存问题进行系列修改请教解决问题
    利机产生种子进行事件模拟达办理业务时间机产生果事件尚未达班时间插入空列队者数(元素)少列队通检验算出服务窗口数等时间服务时间基实现银行业务模拟
    六附件(代码部分图表)
    LinkListh
    #define Qu 2
    #define jiange 5
    #define chuli 10
    #include
    #include
    #include
    #include
    #include
    #include
    #define TRUE 1
    #define FALSE 0
    #define OK 1
    #define ERROR 0
    typedef int Status
    typedef int Boolean
    typedef struct
    {
    int OccurTime
    int NType
    }EventElemType
    typedef struct LNode *结点类型*
    {
    ElemType data
    LNode *next
    }*Link*Position
    struct LinkList *链表类型*
    {
    Link headtail
    int len
    }
    typedef LinkList EventList
    EventList ev
    Event enet
    void InitList(LinkList &L)
    { *构造空线性表*
    Link p
    p(Link)malloc(sizeof(LNode))
    if(p)
    {
    p>nextNULL
    LheadLtailp
    Llen0
    }
    else
    exit(ERROR)
    }
    Status DelFirst(LinkList &LLink hLink &q)
    {
    qh>next
    if(q) *链表非空*
    {
    h>nextq>next
    if(h>next) *删尾结点*
    Ltailh * 修改尾指针*
    Llen
    return OK
    }
    else
    return FALSE
    }
    ElemType GetCurElem(Link p)
    { *已知P指线性链表中结点返回P指结点中数元素值*
    return p>data
    }
    Status ListEmpty(LinkList L)
    {
    if(Llen)
    return FALSE
    else
    return TRUE
    }
    Position GetHead(LinkList L)
    { *返回线性链表L中头结点位置*
    return Lhead
    }
    void OrderInsert(LinkList &LElemType eint(*comp)(ElemTypeElemType))
    {
    Link opq
    qLhead
    pq>next
    while(pNULL&&comp(p>datae)<0) *P表尾元素值E*
    {
    qp
    pp>next
    }
    o(Link)malloc(sizeof(LNode))
    o>datae *赋值*
    q>nexto *插入*
    o>nextp
    Llen++ *表长加*
    if(p) *插表尾*
    Ltailo *修改尾结点*
    }

    Queueh
    typedef struct
    {
    int ArrivalTime
    int Duration *办理事务需时间*
    }QElemType *定义队列数元素类型结构体类型*
    typedef struct QNode
    {
    QElemType data
    QNode *next
    }*QueuePtr
    struct LinkQueue
    {
    QueuePtr frontrear *队头队尾指针*
    }
    void InitQueue(LinkQueue &Q)
    { *构造空队列Q*
    if((QfrontQrear(QueuePtr)malloc(sizeof(QNode))))
    exit(OVERFLOW)
    Qfront>nextNULL
    }
    void DestroyQueue(LinkQueue &Q)
    {
    while(Qfront)
    {
    QrearQfront>next
    free(Qfront)
    QfrontQrear
    }
    }
    Status QueueEmpty(LinkQueue Q)
    {
    if(Qfront>nextNULL)
    return TRUE
    else
    return FALSE
    }
    int QueueLength(LinkQueue Q)
    { *求队列长度*
    int io
    QueuePtr p
    pQfront
    while(Qrearp)
    {
    i++
    pp>next
    }
    return i
    }
    Status GetHead(LinkQueue QQElemType &e)
    {
    QueuePtr p
    if(QfrontQrear)
    return ERROR
    pQfront>next
    ep>data
    return OK
    }
    void EnQueue(LinkQueue &QQElemType e)
    {
    QueuePtr p
    if((p(QueuePtr)malloc(sizeof(QNode)))) *存贮分配失败*
    exit(OVERFLOW)
    p>datae
    p>nextNULL
    Qrear>nextp
    Qrearp
    }
    Status DeQueue(LinkQueue &QQElemType &e)
    {
    QueuePtr p
    if(QfrontQrear)
    return ERROR
    pQfront>next
    ep>data
    Qfront>nextp>next
    if(Qrearp)
    QrearQfront
    free(p)
    return OK
    }


    #includeLinkListh
    #includeQueueh
    long int TotalTime0 *累计客户逗留时间初值0*
    int CloseTimeCustomerNum0

    Mainh
    LinkQueue q[Qu] *客户队列*
    QElemType customer *客户记录时变量*
    int cmp(Event aEvent b)
    {
    if(aQccurTimebQccurTime)
    return 0
    else
    return(aOccurTimebOccurTime)abs(aOccurTimebOccurTime)
    }
    void OpenForDay()
    { *初始化事件链表*
    int i
    InitList(ev)
    enOccurTime0
    enNTypeQu *达*
    OrderInsert(evencmp)
    for(i0i InitQueue(q[i])
    }
    void Random(int &dint &i)
    { * 生成两机数*
    drand()chuli+1 *处理机数*
    irand()(jiange+1) *间隔间机数*
    }
    int Minimum(LinkQueue Q[])
    { *返回短序列序号*
    int l[Qu]
    int ik0
    for(i0i l[i]QueueLength(Q[i])
    for(i1i if(l[i] {
    l[0]l[i]
    ki
    }
    return k
    }
    void CustomerArrived()
    { *处理客户达事件*
    QElemType f
    int durtimeintertimei
    ++CustomerNum *客户数增加1*
    Random(durtimeintertime)
    etOccurTimeenOccurTime+intertime*客户达时刻前客户达时间+时间间隔*
    etNTypeQu *客户达事件*
    iMinnimum(q)
    if(etOccurTime OrderInsert(evetcmp)
    fArrivalTimeenOccurTime
    fDurationdurtime
    EnQueue(q[i]f)
    if(QueueLength(q[i])1)
    {
    etOccurTimeenOccurTime+durtime*设定离开事件*
    etNTypei
    OrderInsert(evetcmp)
    }
    }

    void CustomerDeparture()
    { *处理客户离开事件*
    int i
    ienNType
    DeQueue(q[i]customer) *删队列排头客户*
    TotalTime+enOccurTimecustomerArrivalTime
    if(QueueEmpty(q[i]))
    {
    GetHead(q[i]customer)
    etOccurTimeenOccurTime+customerDuration
    etNTypei
    OrderInsert(evetcmp)
    }
    }
    void Bank_Simulation()
    { *银行业务模拟*
    Link p
    OpenForDay()
    while(ListEmpty(ev))
    {
    DelFirst(evevheadp)
    enOccurTimeGetCurElem(p)OccurTime
    enNTypeGetElem(p)NType
    if(enNTypeQu) *达事件*
    CustomerArrived()
    else
    CustomerDeparture()
    }
    printf(窗口数:d 两相邻达客户时间间隔0~d分钟 客户办理时间:1~d分钟\nQujiangechuli)
    printf(客户总数:d\nCustomerNum)
    printf(客户耗时ld分钟\nTotalTime)
    printf(均耗时d分钟\nTotalTimeCustomerNum)
    printf(客户离开时间d\nenOccurTime)
    }
    void main()
    {
    printf(请输入银行营业时间长度(分))
    scanf(d&CloseTime)
    Bank_Simulation()
    getchar()
    getcher()

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    柴油机工作过程数值模拟与实验研究

    在阐述中冷器类型、结构中,介绍了高效换热器、板翅式换热器的结构原理。对东风朝柴CY4100ZLQ增压发动机估算出增压后温度、空气质量流量及增压比,计算出了增压空气在中冷器处的进口流量及进口温度。

    2年前   
    634    0

    柴油机增压中冷器数值模拟与设计

    题目柴油机增压中冷器数值模拟与设计摘要在讲述,中冷器类型、结构中,介绍了高效换热器、板翅式换热器的结构原理对东风朝柴CY4100ZLQ增压发动机估算出增压后温度、空气质量流量及增压比,计算出了...

    3年前   
    451    0

    模拟与实战营销大赛和创业生存大赛策划书

    模拟与实战营销大赛和创业生存大赛策划书  为了响应我校第八届大学生社团文化艺术节暨科技活动节,展现当代大学生新面貌,丰富学生的课余文化生活,经济与管理学院营销协会、创业协会决定携手旺旺集团许昌...

    10年前   
    562    0

    一级消防师《技术实务》考前最后模拟与答案

    一级消防师《技术实务》考前最后模拟与答案   一、单项选择题(共80题,每题1分。每题的备选项中,只有1个最符合题意)   1.地上建筑的水平疏散走道和安全出口的门厅,其顶棚装饰材料应采用...

    5年前   
    853    0

    模拟PID调节器的设计课程设计

    模拟PID调节器的设计第一章 引言PID是Proportional-Integral-Derivational的缩写,分别指比例、积分、微分。在工业过程控制的发展史上,PID控制是历史上最悠...

    1年前   
    295    0

    《模拟电路》课程设计心得体会

    《模拟电路》课程设计心得体会  本学期我们开设了《模拟电路》与《数字电路》课,这两门学科都属于电子电路范畴,与我们的专业也都有联系,且都是理论方面的指示。正所谓“纸上谈兵终觉浅,觉知此事要躬行...

    9年前   
    551    0

    操作系统课程设计银行家算法的模拟实现

    操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进...

    3年前   
    677    0

    生产者与消费者算法模拟课程设计

    课程设计说明书题目: 生产者与消费者算法模拟 院 系: 计算机科学与工程 专业班级: 信息安全(xxxx)班 学 号: 学生...

    3年前   
    635    0

    直流稳压电源的设计模拟电路课程设计报告

    模拟电路课程设计报告设计课题:直流稳压电源的设计班级:电子学号:姓名: 指导老师: 完成日期:2012年目录一、设计任务及要求……………………3二、总体设计思路………………………31.直流稳压...

    1年前   
    274    0

    小学模拟突发事件火灾逃生演练预案

     模拟突发事件逃生演练预案为了增强我校师生的安全意识,提高师生的避险能力,让我校师生更深入地了解突发事件逃生常识,提高自救互救自护能力,培养师生处置突发事件的应急能力。保护好我校师生的生命财产...

    6个月前   
    146    0

    模电课程设计心得

    模电课程设计心得  时间总是过得很快,经过一周的课程设计的学习,我已经自己能制作一个高保真音频功率放大器,这其中的兴奋是无法用言语表达的。  学习模电这段时间也是我们一学期最忙的日子,不仅面临...

    8年前   
    592    0

    shell编程用户信息管理(模拟)课程设计说明书

    数学与计算机学院《Linux操作系统》课程设计说明书题 目: shell编程--用户信息管理(模拟)专 业: 班 级: ...

    10个月前   
    386    0

    模拟ATM机存取款管理系统面对对象课程设计

     面向对象程序设计课程设计题 目 模拟ATM机存取款管理系统院 系 计算机系 专 业 计算机科学与技术 学生姓名 学 号 ...

    1年前   
    213    0

    操作系统课程设计编程序模拟银行家算法

    课程设计报告书 课程名称: 操作系统原理 题 目: 编程序模拟银行家算法 系 名: 信息工程系 专业班级: ...

    3年前   
    722    0

    模拟电子技术课程设计函数信号发生器

    课程设计报告 题 目 正弦信号发生器 课 程 名 称 模拟电子技术课程设计 院 部 名 称 机电工程学院 专 ...

    1年前   
    373    0

    食物中毒事件应急处置模拟演练方案

    20**年食物中毒事件应急处置模拟演练方案   为提高我中心专业技术人员对食物中毒事件的应急调查处置能力,同时提高队伍协调作战能力,有效预防、及时控制和消除食物中毒事件及其危害,保障公众健...

    7年前   
    14530    2

    学生食物中毒事件模拟新闻发言词

    学生食物中毒事件模拟新闻发言词      【主持人】:今天,**县委外宣办公室、县人民政府新闻办公室在**会堂举行9.1食物中毒事件新闻发布会。参加今天新闻发布会的有:分管副县长      ...

    10年前   
    15324    0

    模拟案卷

      模 拟 案 卷       中共XX县纪律检查委员会 初步核实呈批表   线索来源 群众举报 被反映人 XXX 性别 男 年龄 41 民族 汉 单...

    8年前   
    4372    0

    模拟法庭

    模拟法庭 法庭调查阶段: (1)被害人高兴: (1)被害人高兴你平时走路都是遵守交通规则的吗?当天你们过马路时交通灯指示绿灯多久了? (2)被害人高兴你在和被害人张科念一起过马路的过程...

    9年前   
    7808    0

    模拟估表

    模拟应聘评估表应聘者: 应聘岗位: 形象礼仪:好□ 一般□ 差□ 主 动 性...

    10年前   
    415    0

    文档贡献者

    知***享

    贡献于2020-08-01

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档