我的数据结构课设liwei.docVIP

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
我的数据结构课设liwei

一 需求分析 1.1 万年历 万年历包括:年 ,月,日,星期。此外万年历的范围是公元1年至9999年 ,一共十二个月份,其中年还有平年和闰年之分,尤其是闰年的二月比平年多了一天。 1 能够显示星期; 2 能够显示年月日; 3 能显示十二个月; 4 能准确显示阳历的每一天; 5 格式与日历一致;以标准日历的形式输出,包含月份、星期以及具体某一天对应的年、月、星期; 6 输出公元1年至9999年的日历; 1.2模拟银行系统 客户业务分2种,第一种是申请从银行得到一笔资金,即借款或取款。第2种是向银行投入一笔资金,即存款或还款。银行有2个服务窗口,相应地有2个队列。客户到达银行后先排第一个队。处理每个客户业务时,如果属于第一种,且申请额超出银行现存资金总额而得不到满足,则立刻排入第2个队等候,直至满足时才离开银行,否则业务处理完后立刻离开银行。每接待完一个第二种业务的客户,则顺序检查和处理(如果可能)第二个队列中的客户,对能满足的申请者予以满足,不能满足者重新排到第二个队列的队尾。注意,在此检查过程中,一旦银行资金总额少于或等于刚才第一个队列中最后一个客户(第2种业务)被接待之前的数额,或者本次以将第2个队列检查或者处理了一遍,就停止检查(因为此时已不可能还有能满足者)转而继续接待第一个队列的客户。任何时刻都只能开一个窗口。假设检查不需要时间。营业时间结束时所有客户立即离开银行。 实现如下: 输入: 用户需要在程序运行开始时输入以下数据: 银行初始资金total(测试数据为10000) 银行营业时间closetime(测试数据为600) 客户交易时间上下界dealmaxtime和dealmintime,用于给随机数产生函数传递参数,产生一个介于这两个值之间的值。 客户到达时间间隔上界arrivemaxtime arrivemintime,用于给随机数产生函数传递参数,产生一个介于这两个值之间的值。 交易额的最大上限dealMaxMoney.用于给随机函产生函数参数,产生一个介于-dealMaxMoney和dealMaxMoney之间的值,作为顾客到银行办理业务的交易额。 输出: 模拟输出整个银行业务办理及排队的结果,最后给出一下数据: 由于下班时间到而没能办理的顾客数 分别列出需要办理两种业务的顾客数 分别列出已成功办理两种业务的顾客数 分别列出两种业务的成功办理率。 客户在银行内的平均逗留时间 下班时银行所剩余的资金总额 二.概要设计 2.1万年历 2.11存储设计 int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29}; //定义于存放每月天数的数组,一三五七八十腊为31天,二月分28天和29天 空间复杂度:数据的存取以顺序存储方式存取,没有空间的浪费和压缩存储的现象,所以空间复杂度为O(n)。if( IsLeapYear(year) temp == 2) while( day = month_day[12] ) {if( day 1 ) if( Year_days % 7 == 0 ) printf( \n); if( day = 10 ) printf(%3d ,day); else printf(%3d ,day); Year_days++; day++; } else while (day = month_day[temp-1]) { if( day 1 ) if( Year_days % 7 == 0 ) printf(\n); if( day =10 ) printf(%3d ,day); else printf(%3d ,day); Year_days++; day++; } printf(\n); if( getch() == q ) exit(0); } getch(); 2 .12流程图 2.2模拟银行 2.21存储设计 struct service { int num; //客户号 string type; //到达或离开 int beginTime;//到达时间 int endTime;//离开时间 int money; //正数为存款,负数为取款 service* next;//指针域 }; 2.22流程图 三. 详细设计: 3.1万年历 闰年函数的定义: int IsLeapYear( int year ) { if ((year %4 == 0) (year % 100 != 0) || (year % 400 == 0) ) return 1; else return 0; 判断星期的程序设计: i = Year_days % 7; printf(Mon Tue Wed Thu F

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档