1、C语言课程设计报告范文162020年4月19日文档仅供参考,不当之处,请联系改正。湖北汽车工业学院电气与信息工程学院 C语言程序设计课程设计报告课程设计题目: 酒店房间登记与计费管理 专业: 自动化 班级: T1023-6 姓名: 师晓义 1、需求分析1)、问题根据需求,该系统所应包含的信息有以下一些:酒店房间登记与计费管理的基本信息:客户姓名、身份证号、开始入住时间、退房时间、入住房间号、房间价格、入住费用。根据需求,该系统所应实现的功能有以下一些:各种基本数据的录入。如:入住客户的基本信息录入。基于各种数据的查询。例如:输入张三姓名,查询张三的身份证号、开始入住时间、退房时间、入住房间号、
2、房间价格、入住费用。数据导出:将住宿的信息导出到指定文件保存。数据导入:从指定文件导入住宿的客户信息。2)、系统 采用C语言实现,开发环境为VC,能够运行在操作系统windows98及以上皆可。3、运行要求 能不受限制的录入入住客户的信息 界面友好,操作方便,例如在用户输入错误的情况下进行提示。 2、总体设计1)、系统流程设计根据系统要求,设计如下的系统流程2)、系统模块设计根据系统的功能设计,如下模块 酒店房间登记与计费管理 入住信心登记 入住信息显示 入住房间查询 房间费用统计 主界面模块:完成系统菜单的显示。功能选择模块:根据用户的选择,完成其相应的功能。客户信息录入:完成用户从界面输入
3、客户入住信息,保存入系统的功能。客户信息显示:完成系统中显示现有信心的功能。入住房间查询:完成查询特定房间的功能。房间费用查询:完成费用统计的功能。3)、详细设计1、数据结构设计根据系统要求,系统中需要保存的数据有通讯录的信息,其结构如下:数据项名称数据项系统表示数据类型数据长度备注姓名namechar20入住天数Stayingchar30入住时间Check_outchar30退房时间Check_inchar30费用Lodging_eapenseint开始统计时间BeginningChar10结束统计时间Endingchar10身份证号IDchar30入住房间号numberChar50房间价格
4、priceint为了能实现不受限制的增加入住客户信息,采用链表的结构保存客户的信息,在增加入住客户的基本信息时,创立一个客户信息的节点,将其插入到链表中,示意图如下。使用C语言创立的结构体如下:truct room /*房间*/char number50;int price; member10;struct room member10= /初始化数组801,110,802,120,803,130,804,140,805,150,806,160,807,170,808,180,809,190,810,200;struct date /*日期*/ int year; int month;int d
5、ay;struct customerchar name20; /*客户姓名*/char ID_number30; /*身份证号*/char check_in30; /*入住时间*/char check_out30; /*退房时间*/struct room member; /*入住房间号与价格*/int staying; /*入住天数*/int lodging_expense; /*费用*/char beginning10;/开始统计时间char ending10;/结束统计时间struct customer *next;2、界面设计主界面:根据系统要求,设计一个字符界面,显示系统的菜单,为了体
6、现友好性,将在每个菜单前显示该菜单项对应的数字用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。输入界面: 功能选择: 选择1: 选择2:入住信息显示选择3:入住信息查询。选择4:统计住宿费用:根据提示输入房间号、开始统计时间、结束统计时间。3、模块实现主界面实现:调用printf()函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用system(“cls”)函数将前面的界面清空。 对应的实现函数menu_show();功能选择模块实现:接受从键盘输入的菜单选择,判断并调用相应的功能函数,完成其对应的功能。实现功能选择。对应的函数:menu_
7、select();客户信息录入模块实现:模块说明:从键盘接收输入的客户基本信息,在动态存储区中创立客户信息的节点,遍历链表,将其插入到客户信息链表的最后位置。模块流程:对应函数:struct customer *add()/创立链表从文件读入信息模块实现: 模块说明:从键盘输入需要统计的时间段(开始统计时间、结束统计时间),经过函数自动计算在改时间段产生的住宿费用。清 屏输入统计时间段输入房间号显示产生住宿费用模块流程:对应函数:int cost(struct customer *head,struct room number member); /统计产生的住宿费用 查询房间的入住情况模块实现
8、: 模块说明:根据提示选择查询方式:按房间号查询,此时输入房间号,显示客户基本信息;模块流程:对应函数:void search(struct customer *head) 查询房间的入住情况 4、课程设计总结课程设计感想 这次的课设完成的很好,这是之前没有想到的。刚刚开始做时,十分无厘头,根本不知道如何入手,只好到处找以前做好的程序来看,看她们的想法,思路,后来渐渐的理清了头绪,开始下手做,大致工作完成以后,下了很大功夫在人性化上面,当然也是老师对这方面强调比较多,要求也高,同时它包括了界面的设计,画面的美观,提示的语句对错误信息的兼容和提示改正,等等。期间主要遇到了以下的问题1:链表的建立2:各个函数之间的参数的交换传递3:长度定义的问题 长度定义不正确容易造成越界,出现乱码。面对一个大程序,从中间寻找错误实在不是一件容易的事情,要查到是哪里出现了问题,老师教我用PRINTF的方法,输出结果,确定是哪里出现了问题,然后在加以改正。总的来说,经过这次的课设,让我学到了很多单纯从课本上学不到的技能,更加趋向于实际。