1、C语言课程设计宾馆客房管理系统报告272020年4月19日文档仅供参考 C 语 言 课程设计报告标题:宾馆客房管理系统学号: 姓名: 同组人员: 年级专业:09电子信息工程指导老师: 完成日期: /6/21目 录一、程序的具体分工二、课题要求 三、课题分析与设计四、选题背景五、程序介绍六、源程序代码与调试七、流程图八、结语九、参考书目一、程序的具体分工 第一部分包括主函数和menu菜单函数是由叶伟完成,第二部分包括客人的入住(checkin)函数和退房(checkout)函数由我完成,第三部分为查询(lookfor)函数由王业生负责。二、课题要求1) 某宾馆有301、302、303、304、3
2、05五个标准间,每个标准间可住2人;2) 链表存储结构:姓名、性别、房号、后续指针,按房间号有序;3) 能实现入住(注意性别)和退房,能按给定姓名、房号查询;4) 建议采用链表结构,但用其它方法实现也可。三、课题分析与设计本程序是非数值计算型算法设计,我们设计出了宾馆客房管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是结构体和链表的相关操作,包括结构体数组的输入、输出、查找、删除等。我们设计的这个宾馆客房系统也初步实现了人员信息的显示、删除、查找、添加等必要的功能。四、 选题背景C语言是当前世界上流行、使用最广泛的高级程序设计语言。1972年,C
3、语言在美国贝尔实验室里问世,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSIC标准。当前,在微机上广泛使用的C语言编译系统有MicrosoftC、Turbo C 、Visual C+等。这C语言版本不但实现了ANSIC标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不但具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还能够直接访问内存的物理地址,进行位(bit)一级的操
4、作。由于C语言实现了对硬件的编程操作,因此语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。另外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。为了将本学期所学C语言知识应用于实际,加深对C语言的理解与掌握,我院开设了C语言课程设计这门课程。而我们小组选取了宾馆客房管理系统这个课题,以此来锻炼我们编写程序的能力。五、程序介绍宾馆客房管理系统由8个函数组成,包括main函数、menu函数、checkin函数、checkout函数、lookfor函数,其中checkin函数又包括一个add子函数,lookf
5、or函数包括search1和search2两个子函数。 main函数主要是对menu函数、checkin函数、checkout函数、lookfor函数进行声明,建立静态链表而且对结构体中num、sex进行赋值。 menu函数是界面函数,有两个功能。一是输出一个界面,二是作为进入其它函数的入口。输入1则执行checkin函数;输入2则执行checkout函数 ,输入3则执行lookfor函数。 checkin函数的功能是对入住房客的信息进行统计。首先、函数先对五个房间的入住情况进行检查,并输出相应的信息。例如、若房间301是空的,则显示可住两人信息;若已住一人,则显示可住一人信息,而且同时显示可
6、住房客的性别;若已有两人入住,则不显示任何信息。如果房客已决定入住,则输入1,进入add函数,按提示输入房客信息即可。若要返回menu函数,则输入1。 checkout函数的功能是退房。按提示信息输入房间号和姓名即可实现退房。若要返回menu函数,输入1。 lookfor函数的功能是查询房客的信息,有按姓名查找和按房间号查找两种查询方式。输入1则执行search1子函数,即按姓名查找;输入2则执行search2子函数,即按房号查找;输入3,执行manu函数。若按姓名查找,则输入姓名即可;若按房间号查找,则输入房间号即可;若要退回lookfor函数,则输入1。六、源程序代码与调试代码:#incl
7、ude#include#include#define NULL 0struct restaurant int num; char name220; char sex2; struct restaurant *next; void main() void menu(struct restaurant *pt0); void checkin(struct restaurant *pt1); void checkout(struct restaurant *pt2); void lookfor(struct restaurant *pt3); struct restaurant a,b,c,d,e,
8、*head,*p; a.num=301,b.num=302,c.num=303,d.num=304,e.num=305; a.sex0=a.sex1=b.sex0=b.sex1=c.sex0=c.sex1=d.sex0=d.sex1=e.sex0=e.sex1= ; head=&a;a.next=&b; b.next=&c;c.next=&d; d.next=&e; e.next=NULL; p=head; menu(p); void menu(struct restaurant *pt0) int i; clrscr(); textcolor(5); gotoxy(10,5); cprint
9、f( The Hotel Management Systemn); gotoxy(10,7); cprintf( Welcomen); gotoxy(10,8); cprintf( *Menu*n); gotoxy(10,9); cprintf( * 1. checkin *n); gotoxy(10,10); cprintf( * 2. checkout *n); gotoxy(10,11); cprintf( * 3. lookfor *n); gotoxy(10,12); cprintf( *n); gotoxy(10,13); cprintf( Please Enter Your Ch
10、oice:); scanf(%d,&i); switch(i) case 1:checkin(pt0);break; case 2:checkout(pt0);break; case 3:lookfor(pt0);break; void checkin(struct restaurant *pt1) void add(struct restaurant *pt1);int i,k; struct restaurant *p; p=pt1; clrscr();for(i=0;isex0= &pt1-sex1= ) printf(room:%dntwo person can live heren,
11、pt1-num); else if(pt1-sex0= &pt1-sex1!= ) printf(rome:%dn,pt1-num); printf(one person can live here,sex:%cn,pt1-sex1); else if(pt1-sex0!= &pt1-sex1= ) printf(rome:%dn,pt1-num); printf(one person can live here,sex:%cn,pt1-sex0); pt1=pt1-next; printf(1:continuen2:returnnInput your chioce:); scanf(%d,&
12、k); switch(k) case 1:add(p);break;case 2:menu(p);break; void add(struct restaurant *pt1) struct restaurant *p;int i,j,k;char ch1,ch2,str20; p=pt1; printf(Input room number and sex and name:n); scanf(%d%c%c%s,&i,&ch1,&ch2,&str); for(j=0;jnum) for(k=0;ksexk= ) pt1-num=i;pt1-sexk=ch2;strcpy(pt1-namek,s
13、tr);break; j=5; pt1=pt1-next; checkin(p); void checkout(struct restaurant *pt2) struct restaurant *p; int i,j,k; char str20; p=pt2; clrscr(); dopt2=p; printf(Input rome number and name:n); scanf(%d,&k); if(k=1)menu(p);break; else scanf(%s,str); for(i=0;inum)for(j=0;jnamej)=0) memset(pt2-namej, ,20);
14、 pt2-sexj= ;break; break; pt2=pt2-next; while(1); void lookfor(struct restaurant *pt3) void search1(struct restaurant *pt4); void search2(struct restaurant *pt4); int i; char str20; clrscr();printf(1:search by inputing namen2:search by inputing room numbern3:returnn); printf(please input your choice
15、:); scanf(%d,&i);switch(i) case 1:search1(pt3);break; case 2:search2(pt3);break; case 3:menu(pt3);break; void search1(struct restaurant *pt4) struct restaurant *p; int n,i,j; char str120=1,str220; p=pt4;clrscr(); dopt4=p; printf(Input name:n); scanf(%s,&str2); if(strcmp(str1,str2)=0)lookfor(p); else
16、 for(i=0;i5;i+)for(j=0;jnamej)=0)printf(rome:%dtsex:%ctname:%sn,pt4-num,pt4-sexj,pt4-namej);pt4=pt4-next;while(1); void search2(struct restaurant *pt4) struct restaurant *p; int i,j,k; char str20; p=pt4;clrscr(); dopt4=p; printf(Input room number:n); scanf(%d,&j); if(j=1)lookfor(p);break; else for(i
17、=0;inum) for(k=0;ksexk!= )printf(room:%dtsex:%ctname:%sn,pt4-num,pt4-sexk,pt4-namek);break;pt4=pt4-next;while(1);调试:1、 菜单函数执行结果:进入程序后进入程序主菜单结果如下:输入1进入checkin函数,输入2进入checkout函数,输入3进入lookfor函数.2、checkin入住函数结果:进入入住函数界面运行结果如下输入1继续运行结果如下:输入房间号性别和姓名例如:输入 301 m yewei运行结果如下:输入1返回到menu函数3、lookfor(查询)函数结果:输入1
18、按姓名查找,输入2按房间号查找,输入3返回menu函数。选择查找方式:输入1按姓名查找;例如输入yewei结果:输入1返回lookfor函数。输入2按房间号查找,结果: 例如输入301结果:输入1返回到lookfor函数4、checkout(退房)函数结果:输入房间号和姓名即可实现退房例如输入301 yewei即可输入1返回到menu函数七、流程图 八、结语经过这次课程设计,在我和我们小组成员的共同的努力下,将宾馆客房管理系统这个软件编写出来并运行成功。在此同时,也加深了我对谭浩强的C语言程序设计这本书的体会和了解。我对很多的函数有了新的认识,也学会了运用多种函数,我也明白了写软件的基本过程和
19、基本方法。写软件的过程中我又学到了曾经自己不知道的函数或是自己不会的函数的用法。这次课程设计课总的来说让我受益匪浅。在软件的设计过程中遇到了很多的困难。在软件一次一次的调试失败下曾经想过要放弃。我最后还是让自己坚持了下来,毫不畏惧困难,在同学和老师的帮助与讲解下我总算是顺利的完成了软件的设计。虽然在调试程序遇到了很多的困难,当软件调试成功时那种喜悦的感觉没有什么东西能够代替的。在程序的编写过程中我发现我自己有很多的知识漏洞和缺陷,需要进一步努力学习来完善自己。在这几天的编写过程中我对C语言有了更进一步的认识和了解。此次编程过程的经验和知识肯定能促进我以后的学习。此次课程设计不但给了我很多很好的
20、经验,也让我体会到了失败时的焦急和难受,成功时的兴奋与喜悦。同时我们小组成员互帮互助,让我认识到团队的力量,团结就是力量。九、参考书目1 谭浩强,C程序设计教程,清华大学出版社, 2 赵永哲,李雄飞,戴秀英编著,C语言程序设计,科学出版社, 3 夏宽理,赵子正编著,C语言程序设计,中国铁道出版社, 4 谭浩强编著,C程序设计,清华大学出版社,1991年5 Gary J. Bronson, A First Book of ANSI C (Fourth Edition), Publishing House of Electronics Industry, .6 Al Kelley, Ira Pohl, A Book on C: Programming in C (Fourth Edition), China Machine Press, .7 Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, China Machine Press, .