资源描述
C语言课程设计报告范文
16
2020年4月19日
文档仅供参考,不当之处,请联系改正。
湖北汽车工业学院电气与信息工程学院
《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的方法,输出结果,确定是哪里出现了问题,然后在加以改正。
总的来说,经过这次的课设,让我学到了很多单纯从课本上学不到的技能,更加趋向于实际。
展开阅读全文