1、湖北汽车工业学院电气和信息工程学院 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房间价格priceint为了能实现不受限制增加入住用户信息,采取链表结构保留用户信息,在增加入住用户基础信息时,创建一个用户信息节点,将
4、其插入到链表中,示意图以下。使用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 day;struct customerchar name20; /*用户姓名*/char ID_number30; /*身份证号*/char
5、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_select();用户信息录入模块实现:模块说明:从键盘接收输入用户基础信息,在动态存放区中创建用户信息节点,遍历链表,将其插入到用户信息链表最终位置。模块步骤:对
7、应函数:struct customer *add()/创建链表从文件读入信息模块实现: 模块说明:从键盘输入需要统计时间段(开始统计时间、结束统计时间),经过函数自动计算在改时间段产生住宿费用。清 屏输入统计时间段输入房间号显示产生住宿费用模块步骤:对应函数:int cost(struct customer *head,struct room number member); /统计产生住宿费用 查询房间入住情况模块实现: 模块说明:依据提醒选择查询方法:按房间号查询,此时输入房间号,显示用户基础信息;模块步骤:对应函数:void search(struct customer *head) 查询
8、房间入住情况 4、课程设计总结课程设计感想 这次课设完成很好,这是之前没有想到。刚刚开始做时,十分无厘头,根本不知道怎样入手,只好四处找以前做好程序来看,看她们想法,思绪,以后逐步理清了头绪,开始下手做,大致工作完成以后,下了很大功夫在人性化上面,当然也是老师对这方面强调比较多,要求也高,同时它包含了界面设计,画面美观,提醒语句对错误信息兼容和提醒更正,等等。期间关键碰到了以下问题1:链表建立2:各个函数之间参数交换传输3:长度定义问题 长度定义不正确轻易造成越界,出现乱码。面对一个大程序,从中间寻求错误实在不是一件轻易事情,要查到是哪里出现了问题,老师教我用PRINTF方法,输出结果,确定是哪里出现了问题,然后在加以更正。总来说,经过这次课设,让我学到了很多单纯从书本上学不到技能,愈加趋向于实际。