⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 room.c

📁 一个多文件的hotel管理系统
💻 C
字号:
#if defined(_cplusplus)||defined(c_plusplus)
extern"C"
{
  #endif
  
  #include"Hotel.h"
  
  /*
    **客房数据链表
    */
  ROOM *roomLink=NULL;
  
  ROOM *AllocARoom()
  {
        ROOM* pnode=(ROOM*)malloc(sizeof(ROOM));
		if(NULL!=pnode)
		{
		    memset(pnode,0,sizeof(ROOM));
		}
		else
		{
		    printf("cannot alloc a room node.");
		}

		return pnode;
  }

  BOOL RoomExists(char *no)
  {
        ROOM *proom=roomLink;
		while(NULL!=proom)
		{
		    if(0==strcmp(proom->no,no))
			{
			    return TRUE;
			}
			
			proom=proom->next;
		}

		return FALSE;
  }
  
  int DeleteRoomNode(ROOMNO no)
  {
        ROOM *proom=NULL;
		ROOM *proom=roomLink;
		
		while(proom)
		{
		    if(strcmp(proom->no,no)==0)
			{
			    break;
			}

			plast=proom;
			proom=proom->next;
		}

		if(proom)
		{
		    if(proom==roomLink)
			{
			    roomLink=proom->next;
			}
			else
			{
			    plast->next=proom->next;
			}

			free((void*)proom);
			
			retun SUCCESS;
		}

		return ERROR;
  }	
  
  char* RoomStatus(ROOM *proom)
  {
        if(IDLE_STATUS==proom->status)
		{
		    return "空闲";
		}
        else
		{
		    return "使用中";
		}
  }
  
  char* RoomType(BYTE type)
  {
        if(SINGLE_ROOM==type)
		{
		    return"单人间";
		}
		else if(DOUBLE_ROOM==type)
		{
		    return"双人间";
		}
		else if(TRIANGULAR_ROOM==type)
		{
		    return"三人间";
		}
		else
		{
		    return "?";
		}
  }
  
  int RoomCmp(char *pno1,char *pno2)
  {
        int len1=strlen(pno1);
		int len2=strlen(pno2);
		
		if(len1==len2)
		{
		    return strcmp(pno1,pno2);
		}
		else
		{
		    return len1-len2;
		}
  }
  
  int LinkRoom(ROOM *proom)
  {
        int   cmp;
		ROOM    *p1=NULL;
		ROOM    *p2=NULL;
		
		p2=roomlink;
		while(NULL!=p2)
		{
		    cmp=RoomCmp(proom->no,p2->no);
			if(cmp<0)
			{
			    break;
			}
			else if(cmp==0)
			{
			    return ERROR;
			}

			p1=p2;
			p2=p2->next;
        }  
  
        proom->next=p2;
        if(p2==roomLink)
        {
            roomLink=proom;
        }
        else
        {
            p1->next=proom;
        }

        return SUCCESS;
  }
  
  ROOM* GetRoomByNo(ROOMNO no)
  {
        ROOM *proom=roomLink;
		
		while(NULL!=proom)
		{
		    if(0==strcmp(proom->no,no))
			{
			    break;
			}
			
			proom=proom->next;
		}
	
	    return proom;
  }

  ROOM* GetRoomByCustomer(const CUSTOMER *pcustomer)
  {
        int i;
		ROOM *proom=roomLink;
		
		while(NULL!=proom)
		{
		    for(i=0;i<proom->type;i++)
			{
			    if(pcustomer==proom->pcustomer[i])
				{
				    return proom;
				}
			}
			
			proom=proom->next;
		}

		return proom;
  }

  #if defined(_cplusplus)||defined(c_plusplus)
  }
  #endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -