队列各种操作的时间复杂度分析如下建立单链表连函数由于申请空间时个个申请不需要太多的时间,因此时间复杂度为,空间复杂度为同理初始化队列的时间复杂度为,空间复杂度为入队函数和出队函数由于队列特点为先进先出,有因为在队尾进,队头出所以时间复杂度为,空间复杂度为,判断队列是否为空时间复杂度为,空间复杂度为。
输入事件表信息函数虽然用建立单链表连方法建立事件表,但又利用语句实现操作,所以由分析可得时间复杂度为,空间复杂度为对于,和定位客户在事件表中的位置的函数由于都需要先个个判断是否满足函数所规定的要求,应用语句因此需要个个判断所以时间复杂度为空间复杂度为交易处理函数先要个个处理,同时有调用函数以及函数又要逐步判断是否为空队,空间复杂度较为复杂,经过分析时间复杂度为,空间复杂度为。
本实习作业采用数据抽象的程序设计方法,将程序划分为三个层次结构主程序模块,动态存储结构模块,函数模块。
使得设计时思路清晰,实现时调试顺利。
各模块具有较好的可重用性。
经过本次实验充分得到了次良好的程序设计训练,而且获得到学多知识例如用来设置随机时间的种子,般与结合使用以及含义以及用法等等也进步掌握了队列和链表的应用。
五用户手册本程序的运行环绕为下的程序名为,运行环境为。
进入演示程序后即显示的用户界面欢迎进入银行模拟系统开始模拟退出开始进行业务办理银行每天营业初始资金为元,每日营业时间为分钟建立事件表客户之间交易时间的上限为分钟交易资金上限为元早上六点开业请按任意键继续按回车键即刻系统时间将随机产生第个客户到达的时间,以及处理该客户业务需要时间二个客户停留钟分钟离开第三个客户继续停留第二队第四个客户到达分钟第四个客户停留分钟分钟离开准备处理第二队中人的业务第三个客户用户名为到达分钟停留分钟分钟离开如此循环显示到最后个客户的信息,程序将显示出最后结果第七个客户到达分钟第七个客户停留分钟分钟离开天之内的营业信息如下顾客停留的总时间为天之内来的总顾客人数为顾客停留的平均时间为开始进行业务办理银行每天营业初始资金为元每日营业时间为分钟建立事件表客户之间交易时间的上限分钟早上六点开业请按任意键继续注由于输入为随机给出的,所以每次的结果都不样七附录源程序清单头文件包括动态存储结构以及各种函数主函数再按回车键输入客户名则随机产生需要办理的业务依次重复操作。
接受其他命令后即执行相应运算和显示相应结果。
六测试结果欢迎进入银行模拟系统开始模拟退出开始进行业务办理银行每天营业初始资金为元每日营业时间为分钟建立事件表客户之间交易时间的上限分钟早上六点开业请按任意键继续键入任意键后,程序显示如下过了分钟开业后分钟,第客户到达处理该客户业务需要分钟请输入该客户的其他信息客户名表退出此时,用户只需要输入用户自己姓名以及输入要办理的钱数即可。
用户办理业务以及存取将由电脑决定。
输入后显示如下过了分钟开业后分钟,第客户到达处理该客户业务需要分钟请输入该客户的其他信息客户名表退出输入的钱数请求办理存款元请按任意键继续再键入任意键,机器将自动受理下个客户。
显示如下过了分钟开业后分钟,第客户到达处理该客户业务需要钟请输入该客户的其他信息客户名表退出与上次样,输入用户名即可。
如此循环。
直到用户输入名为时,事件表输入完毕,程序将给出最后结果。
显示如下过了分钟开业后分钟,第客户到达处理该客户业务需要钟请输入该客户的其他信息客户名表退出客户信息表第个客户到达分钟第个客户停留分钟分钟离开第二个客户到达分钟第建立头指针声名客户信息建立链表建立队尾指针建立队列队空客户之间交易时间的上限分钟早上六点开业任意键开始产生随机时间种子产生事件间隔随机两个事件到达的时间间隔上限两个事件到达的时间间隔上限给当前时间产生存取款金额,并输出产生用户所要办理的钱,返回值为指向该客户地址的指针。
如果没有找到,返回空第二队业务处理对第二个队的客户进行业务处理。
,,定位该客户在事件表中的位置。
计算客户在银行内的停留时间和当前时间。
分钟分钟离开若钱输出函数输出最后结果。
,计算客户在银行内呆的总时间。
数值类型转换。
所需要头文件函数欢迎进入银行模拟系统开始模拟退出开始进行业务办理程序开始。
银行每天营业初始资金为元每日营业时间为分钟为第个队列,为第二个队列队列初始化。
队列初始化。
建成事件表函数返回值为事件表的首地址,处理客户请求首先将客户排入第队各程序之间调用关系如下,主函数,四调试分析由于对队列以及单链表的算法推敲不足,导致些小出现以及对题目不太理解导致算法和调试结果的不正确经过老师的帮助和不断阅读题目,最后设计出正确的代码。
刚开始时曾忽略了些变量参数的标识,使调试程序时费时不少。
今后应多注意确定参数的变量和外部变量属性的区分和标识。
程序的模块划分比较合理,且尽可能将指针的操作封装在动态存储和函数的两个模块中,致使主函数模块的调试比较顺利。
反之,如此划分的模块并非完全合理,因为在实现队列操作的编码中仍然需要判别指针是否为空。
算法的时空分析由于程序采用单链表建立队列,并增设头指针和尾指针两个标识,各种操作的算法时间复杂度比较合理。
,和算法的时间复杂度是和定位客户在事件表中的位置则是的交易处理函数为为链表长度。
注各种函数建立单链表连,分配空仍不够该客户需求,则该客户继续留在第二队。
第客户继续留在第二队结束。
交易处理函数交易处理,办理第个客户初始时客户总数初始时银行资金总额,统计事件表内的信息,并且将它们入第队。
,存款或者还款业务。
,找到元素在事件表中的位置。
计算等待时间以及当前时间。
分钟分钟离开看钱是否够取走。
够则取,不够则入第二队。
,分钟分钟离开所取的钱数太多,不够取出。
入第二队。
第客户继续留在第二队结束。
结束。
结束。
型的变量,声明创建个结构体变量的方法是结构体类型名结构体变量名程序包括三个模块主函数模块初始化命令,退出建立事件接受命令处理命令动态存储结构模块第部分外部变量声明第二部分队列结构体以及链表建立函数模块三个模块的图形关系程序主程序模块动态存储结构以及声明变量模块函数模块动态存储结构模块三详细设计原代码所需要的文件库头文件库字符头文件库时间文件库随机函数文件库头文件库函数文件库定义随机数动态存储模块






























1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。
