资源描述
湖北汽车工业学院电气和信息工程学院
《C语言程序设计》
课程设计汇报
课程设计题目: 酒店房间登记和计费管理
专业: 自动化
班级: T1023-6
姓名: 师晓义
1、需求分析
1)、问题
依据需求,该系统所应包含信息有以下部分:
酒店房间登记和计费管理基础信息:
用户姓名、身份证号、开始入住时间、退房时间、入住房间号、房间价格、入住费用。
依据需求,该系统所应实现功效有以下部分:
多种基础数据录入。如:入住用户基础信息录入。
基于多种数据查询。比如:输入张三姓名,查询张三身份证号、开始入住时间、退房时间、入住房间号、房间价格、入住费用。
数据导出:将住宿信息导出到指定文件保留。
数据导入:从指定文件导入住宿用户信息。
2)、系统
采取C语言实现,开发环境为VC,能够运行在操作系统windows98及以上皆可。
3、运行要求
能不受限制录入入住用户信息
界面友好,操作方便,比如在用户输入错误情况下进行提醒。
2、总体设计
1)、系统步骤设计
依据系统要求,设计以下系统步骤
2)、系统模块设计
依据系统功效设计,以下模块
酒店房间登记和计费管理
入住信心登记
入住信息显示
入住房间查询
房间费用统计
主界面模块:完成系统菜单显示。
功效选择模块:依据用户选择,完成其对应功效。
用户信息录入:完成用户从界面输入用户入住信息,保留入系统功效。
用户信息显示:完成系统中显示现有信心功效。
入住房间查询:完成查询特定房间功效。
房间费用查询:完成费用统计功效。
3)、具体设计
1、数据结构设计
依据系统要求,系统中需要保留数据有通讯录信息,其结构以下:
数据项名称
数据项系统表示
数据类型
数据长度
备注
姓名
name
char
20
入住天数
Staying
char
30
入住时间
Check_out
char
30
退房时间
Check_in
char
30
费用
Lodging_eapense
int
开始统计时间
Beginning
Char
10
结束统计时间
Ending
char
10
身份证号
ID
char
30
入住房间号
number
Char
50
房间价格
price
int
为了能实现不受限制增加入住用户信息,采取链表结构保留用户信息,在增加入住用户基础信息时,创建一个用户信息节点,将其插入到链表中,示意图以下。
使用C语言创建结构体以下:
truct room /*房间*/
{
char number[50];
int price;
}member[10];
struct room member[10]={ //初始化数组
{"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 customer
{
char name[20]; /*用户姓名*/
char ID_number[30]; /*身份证号*/
char check_in[30]; /*入住时间*/
char check_out[30]; /*退房时间*/
struct room member; /*入住房间号和价格*/
int staying; /*入住天数*/
int lodging_expense; /*费用*/
char beginning[10];//开始统计时间
char ending[10];//结束统计时间
struct customer *next;
};
2、界面设计
主界面:
依据系统要求,设计一个字符界面,显示系统菜单,为了表现友好性,将在每个菜单前显示该菜单项对应数字
用户输入菜单项前面数字,主菜单消失,进入该模块对应界面,进行对应操作,完成后,回到主界面。
输入界面:
功效选择:
选择1:
选择2:入住信息显示
选择3:入住信息查询。
选择4:统计住宿费用:依据提醒输入房间号、开始统计时间、结束统计时间。
3、模块实现
主界面实现:调用printf()函数,在屏幕上打印需要显示字符信息,需要在显示之前调用system(“cls”)函数将前面界面清空。
对应实现函数menu_show();
功效选择模块实现:
接收从键盘输入菜单选择,判定并调用对应功效函数,完成其对应功效。实现功效选择。
对应函数:menu_select();
用户信息录入模块实现:
模块说明:从键盘接收输入用户基础信息,在动态存放区中创建用户信息节点,遍历链表,将其插入到用户信息链表最终位置。
模块步骤:
对应函数:struct customer *add()//创建链表
从文件读入信息模块实现:
模块说明:从键盘输入需要统计时间段(开始统计时间、结束统计时间),经过函数自动计算在改时间段产生住宿费用。
清 屏
输入统计时间段
输入房间号
显示产生住宿费用
模块步骤:
对应函数:int cost(struct customer *head,struct room number member[]); //统计产生住宿费用
查询房间入住情况模块实现:
模块说明:依据提醒选择查询方法:按房间号查询,此时输入房间号,显示用户基础信息;模块步骤:
对应函数:void search(struct customer *head) 查询房间入住情况
4、课程设计总结
课程设计感想
这次课设完成很好,这是之前没有想到。
刚刚开始做时,十分无厘头,根本不知道怎样入手,只好四处找以前做好程序来看,看她们想法,思绪,以后逐步理清了头绪,开始下手做,大致工作完成以后,下了很大功夫在人性化上面,当然也是老师对这方面强调比较多,要求也高,同时它包含了界面设计,画面美观,提醒语句对错误信息兼容和提醒更正,等等。
期间关键碰到了以下问题1:链表建立2:各个函数之间参数交换传输3:长度定义问题 长度定义不正确轻易造成越界,出现乱码。
面对一个大程序,从中间寻求错误实在不是一件轻易事情,要查到是哪里出现了问题,老师教我用PRINTF方法,输出结果,确定是哪里出现了问题,然后在加以更正。
总来说,经过这次课设,让我学到了很多单纯从书本上学不到技能,愈加趋向于实际。
展开阅读全文