程序课程设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序课程设计 指导老师:龚如华 专业班级:2003级通信4班 学 号:座机电话号码416 姓 名:唐 盛 2005年1月 一:设计题 客房管理系统 二:设计要求 1、设计系统的需求分析; 2、系统总框图(流程图); 3、每个模块的设计分析; 4、列出所有定义的函数及说明; 5、举例说明1、2个比较有特点的算法; 6、存在的问题与不足及对策; 7、使用说明(操作手册); 8、附上程序源代码 三:设计思路 本设计运用结构体变量很好的模拟实际生活中的宾馆顾客订房服务系统,能为客户预定房间提供预定、查询、删除、遍历等较为全面的服务功能。首先,它需要宾馆管理员输入密码才能够进行操作,而且密码函数void PassWord 限制了输入错误的最大容忍程度(三次)。密码输入时显示“*”而非密码数值,起到很好的保密功能。其次,系统具有显示当前时间的功能,通过调用库中的ctime函数读出当前时间。再者,该系统成功的把首次输入预定登记信息功能和顾客信息添加功能很好的融为一体,不必为添加新的顾客新而新开模块,简化程序,减小出错率。本系统操作界面简单明了,结构层次非常清晰易懂,菜单形式,主次菜单间任意切换,可以让管理员自如的运用。 四:所用函数 本系统共含有4个结构体成员: 姓名char name[10]; 房间号数组int roomNO[20]; 各等级房间单价数组int price[5] 及剩余空房间数数组int remain[5]。 结构体成员函数共有8个: void PassWord : 函数,操作系统密码; void order : 预定及追加成员信息函数; 当输入为第一个信息时以写(“w”)的形式保存信息,当输入非第一个时,信息以追加(“”)的形式保存。可以实现在循环中添加任意多个客户信息。 void addnum Passenger* :工具函数; 当某一信息被dell 函数删除时回收被所删除客户占用的房间号,使其恢复为该被删除客户预定之前的空客房号。 void display :浏览预定储存信息 读取“roombook.txt”文件中的信息并输出到显示屏。 void del :撤销预定函数; 覆盖掉被管理员“删除”的结构体数组链表节点。当中用了工具函数void addnum Passenger* 收回被占用的房间号码roomNO[i]。 void pgsearch :按客户姓名查询函数; 读取“roombook.txt”文件并把与输入查询的姓名相同的所在结构体数组节点信息。 void query_remain :按空余房间查询函数; 显示各等级客房未被占用的房间数目。 void query_price :按各等级价格查询函数; 显示各等级客房的单间单价。 系统还调用了系统时间函数ctime tt ,库中的清屏指令system “cls” 以及缓冲输出指令system “pause” 。 PG gesters[N]为结构体变量; 本程序突出特点体现在预定及添加信息函数void order 上: 首先函数体中定义一Passengers类型变量g及外部全局静态整型变量p,初始值为0,若系统信息文件‘roombook.txt’内容为空时(及信息成员总数TOTAL=0)时p 0,当输入信息时函数识别其为第一个客户信息,以写的形式创建‘roombook.txt’文件,把输入的信息赋给g,再把g的内容赋为gesters[N]首地址中的信息strcpy gesters[0].name,g.name // 赋客户姓名 for int j 0;j 20;j++ gesters[0].roomNO[j] g.roomNO[j] //赋客户所开房间的号码 P自动加1(即p! 0),把信息写入磁盘,如若要求循环输入新的顾客信息,函数循环指向开始,此时对p进行判断,因p已经不再为0,判断语句识别其为添加过程,以‘ab+’(即追加形式)打开文件‘roombook.txt’,直接用其定义的结构体变量g以追加的形式往磁盘写入管理输入的新的信息fwrite g,sizeof struct Passenger ,1,fp ,再发送请求是否再次循环,若再循环时也是p! 0, 函数以追加形式往磁盘写入新的信息而不覆盖第一次输入的内容。每输入一个顾客信息TOTAL+ +。而在执行删除客户信息时TOTAL- -, 当TOTAL 0时在令p 0,以使得再调用order 函数输入信息时能识别。如此为TOTAL 0和p 0等价实现了首写和追加的统一。对有些库函数不太深刻理解它的作用,单知道不用它就会出现链接逻辑错误。 函数定义如下: void order loop1: FILE *fp; PG g;//定义结构体Pass

文档评论(0)

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

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

1亿VIP精品文档

相关文档