视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
C语言课程设计-宾馆客房管理系统报告
2025-09-30 22:46:09 责编:小OO
文档
《 C 语 言 》

课程设计报告

标题:宾馆客房管理系统

学号: 

姓名: 

同组人员: 

年级专业:09电子信息工程

指导老师: 

完成日期:2010/6/21

一、程序的具体分工

二、课题要求 

三、课题分析与设计

四、选题背景

五、程序介绍

六、源程序代码与调试

七、流程图

八、结语

九、参考书目

一、程序的具体分工

     第一部分包括主函数和menu菜单函数是由叶伟完成,第二部分包括客人的入住(checkin)函数和退房(checkout)函数由我完成,第三部分为查询(lookfor)函数由王业生负责。

二、课题要求

1)某宾馆有301、302、303、304、305五个标准间,每个标准间可住2人;

2)链表存储结构:姓名、性别、房号、后续指针,按房间号有序;

3)能实现入住(注意性别)和退房,能按给定姓名、房号查询;

4)建议采用链表结构,但用其它方法实现也可。

三、课题分析与设计

本程序是非数值计算型算法设计,我们设计出了宾馆客房管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是结构体和链表的相关操作,包括结构体数组的输入、输出、查找、删除等。我们设计的这个宾馆客房系统也初步实现了人员信息的显示、删除、查找、添加等必要的功能。

四、选题背景

C语言是目前世界上流行、使用最广泛的高级程序设计语言。1972年,C语言在美国贝尔实验室里问世,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSIC标准。

目前,在微机上广泛使用的C语言编译系统有MicrosoftC、Turbo C 、Visual C++等。这

C语言版本不仅实现了ANSIC标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。

    C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。

此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。

为了将本学期所学C语言知识应用于实际,加深对C语言的理解与掌握,我院开设了C语言课程设计这门课程。而我们小组选取了宾馆客房管理系统这个课题,以此来锻炼我们编写程序的能力。

五、程序介绍

宾馆客房管理系统由8个函数组成,包括main函数、menu函数、checkin函数、checkout函数、lookfor函数,其中checkin函数又包括一个add子函数,lookfor函数包括search1和search2两个子函数。 

    main函数主要是对menu函数、checkin函数、checkout函数、lookfor函数进行声明,建立静态链表并且对结构体中num、sex进行赋值。

   menu函数是界面函数,有两个功能。一是输出一个界面,二是作为进入其它函数的入口。输入1则执行checkin函数;输入2则执行checkout函数 ,输入3则执行lookfor函数。    

checkin函数的功能是对入住房客的信息进行统计。首先、函数先对五个房间的入住情况进行检查,并输出相应的信息。例如、若房间301是空的,则显示可住两人信息;若已住一人,则显示可住一人信息,并且同时显示可住房客的性别;若已有两人入住,则不显示任何信息。如果房客已决定入住,则输入1,进入add函数,按提示输入房客信息即可。若要返回menu函数,则输入1。

   

  checkout函数的功能是退房。按提示信息输入房间号和姓名即可实现退房。若要返回menu函数,输入1。

     lookfor函数的功能是查询房客的信息,有按姓名查找和按房间号查找两种查询方式。输入1则执行search1子函数,即按姓名查找;输入2则执行search2子函数,即按房号查找;输入3,执行manu函数。若按姓名查找,则输入姓名即可;若按房间号查找,则输入房间号即可;若要退回lookfor函数,则输入1。

六、源程序代码与调试

代码:

#include

#include

#include

#define NULL 0

struct restaurant

{ int num;

   char name[2][20];

   char sex[2];

   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,*head,*p;

    a.num=301,b.num=302,c.num=303,d.num=304,e.num=305;

    a.sex[0]=a.sex[1]=b.sex[0]=b.sex[1]=c.sex[0]=c.sex[1]=d.sex[0]=d.sex[1]=e.sex[0]=e.sex[1]=' ';

   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);

   cprintf("                      The Hotel  Management System\\n");

   gotoxy(10,7);

   cprintf("                                 Welcome\\n");

   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 Choice<1~3>:");

   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;i<5;i++)

{if(pt1->sex[0]==' '&&pt1->sex[1]==' ')

printf("room:%d\\ntwo person can live here\\n",pt1->num);

else if(pt1->sex[0]==' '&&pt1->sex[1]!=' ')

            {printf("rome:%d\\n",pt1->num);

printf("one person can live here,sex:%c\\n",pt1->sex[1]);}

else if(pt1->sex[0]!=' '&&pt1->sex[1]==' ')

      {printf("rome:%d\\n",pt1->num);

      

printf("one person can live here,sex:%c\\n",pt1->sex[0]);}

pt1=pt1->next;

      }

        printf("1:continue\\n2:return\\nInput your chioce:");

      scanf("%d",&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,str[20];

      p=pt1;

       printf("Input room number and sex and name:\\n");

     scanf("%d%c%c%s",&i,&ch1,&ch2,&str);

for(j=0;j<5;j++)

{ if(i==pt1->num)

{for(k=0;k<2;k++)

if(pt1->sex[k]==' ')

{pt1->num=i;pt1->sex[k]=ch2;strcpy(pt1->name[k],str);break;}

       j=5;}

pt1=pt1->next;

          }     

        checkin(p);

        }

  void checkout(struct  restaurant *pt2)  

   { struct restaurant *p;

     int i,j,k;

     char str[20];

    p=pt2;

     clrscr();

      do{pt2=p;

        printf("Input rome number and name:\\n");

      scanf("%d",&k);

      if(k==1){menu(p);break;}

      else {scanf("%s",str);

     for(i=0;i<5;i++)

     {if(k==pt2->num)

     {for(j=0;j<2;j++)

     if(strcmp(str,pt2->name[j])==0)

{   memset(pt2->name[j],' ',20); pt2->sex[j]=' ';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 str[20];

        clrscr();

    printf("1:search by inputing name\\n2:search by inputing room number\\n3:return\\n");

      printf("please input your choice:");

     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 str1[20]={'1'},str2[20];

      p=pt4;

    clrscr();

     do{pt4=p;

         printf("Input name:\\n");

        scanf("%s",&str2);    

         if(strcmp(str1,str2)==0)lookfor(p);

else for(i=0;i<5;i++)

     {for(j=0;j<2;j++)

     if(strcmp(str2,pt4->name[j])==0)

        printf("rome:%d\sex:%c\name:%s\\n",pt4->num,pt4->sex[j],pt4->name[j]);

     pt4=pt4->next;}

    }while(1);

   }

 void search2(struct restaurant *pt4)  

   {struct restaurant *p;

    

  int i,j,k;

      char str[20];

      p=pt4;

    clrscr();

     do{pt4=p;

 printf("Input room number:\\n");

       scanf("%d",&j);

       if(j==1){lookfor(p);break;}

else for(i=0;i<5;i++)

{if(j==pt4->num)

     {for(k=0;k<2;k++)

         if(pt4->sex[k]!=' ')

printf("room:%d\sex:%c\name:%s\\n",pt4->num,pt4->sex[k],pt4->name[k]);

            break;}

         pt4=pt4->next;}

        }while(1);

    }

调试:

1、菜单函数执行结果:

进入程序后进入程序主菜单

结果如下:

输入1进入checkin函数,输入2进入checkout函数,输入3进入lookfor函数.

2、checkin入住函数结果:

进入入住函数界面

运行结果如下

输入1继续

运行结果如下:

输入房间号性别和姓名

例如:输入 301 m yewei

运行结果如下:

输入1返回到menu函数

3、lookfor(查询)函数结果:

输入1按姓名查找,输入2按房间号查找,输入3返回menu函数。

选择查找方式:输入1按姓名查找;

例如输入yewei

结果:

输入1返回lookfor函数。

输入2按房间号查找,结果:

 

例如输入301

结果:

输入1返回到lookfor函数

4、checkout(退房)函数结果:

输入房间号和姓名即可实现退房

例如输入301 yewei即可

输入1返回到menu函数

七、流程图

       

八、结语

通过这次课程设计,在我和我们小组成员的共同的努力下,将《宾馆客房管理系统》这个软件编写出来并运行成功。在此同时,也加深了我对谭浩强的《C语言程序设计》这本书的体会和了解。我对很多的函数有了新的认识,也学会了运用多种函数,我也明白了写软件的基本过程和基本方法。写软件的过程中我又学到了曾经自己不知道的函数或是自己不会的

函数的用法。这次课程设计课总的来说让我受益匪浅。在软件的设计过程中遇到了很多的困难。在软件一次一次的调试失败下曾经想过要放弃。我最后还是让自己坚持了下来,毫不畏惧困难,在同学和老师的帮助与讲解下我总算是顺利的完成了软件的设计。虽然在调试程序遇到了很多的困难,当软件调试成功时那种喜悦的感觉没有什么东西可以代替的。在程序的编写过程中我发现我自己有很多的知识漏洞和缺陷,需要进一步努力学习来完善自己。

在这几天的编写过程中我对C语言有了更进一步的认识和了解。此次编程过程的经验和知识肯定能促进我以后的学习。

此次课程设计不仅给了我很多很好的经验,也让我体会到了失败时的焦急和难受,成功时的兴奋与喜悦。同时我们小组成员互帮互助,让我认识到团队的力量,团结就是力量。

九、参考书目

[1]谭浩强,C程序设计教程,清华大学出版社,2007年

[2]赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年

[3]夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社,2006年

[4]谭浩强编著,《C程序设计》,清华大学出版社,1991年

[5]Gary J. Bronson, A First Book of ANSI C (Fourth Edition), Publishing House of Electronics Industry, 2006.

[6]Al Kelley, Ira Pohl, A Book on C: Programming in C (Fourth Edition), China Machine Press, 2004.

[7]Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, China Machine Press, 2006.下载本文

显示全文
专题