资源简介

linux内核分析实验 模拟宾馆房间预订系统,主要利用进程间通信和共享内存

资源截图

代码片段和文件信息

#include
#include
#include
#include “hotel.h“
using namespace std;
#define MAX_OP 20 //最多操作个数
#define MAX_ROOM 128 //房间最大数目

room::room()

{

room_NO= -1 ;
res_info=new list;

}

bool room::can_reserved(class date start_dateint dayslist::iterator &loca)
{
list::iterator ij;
if(res_info->empty())
{
loca=res_info->begin();
return true;
}

class date end_date(start_date.monthstart_date.day);
end_date.add(days);

    i=res_info->begin();
j=i; j++;

if(i->start_date.compareTo(end_date)>0)
{
loca=i;
return true;
}

while(j!=res_info->end() && i->end_date.compareTo(start_date) < 0)
{
if(j->start_date.compareTo(end_date)>0 )
{
loca=j;
return true;
}
else
{
i++;  j++;
}
}

if(j==res_info->end() && i->end_date.compareTo(start_date) < 0)
{
loca=j;
return true;
}

return false;

}

bool room::addreserve(class date start_dateint dayschar name[50]list::iterator loca)
{
class date end_date(start_date.monthstart_date.day);
end_date.add(days);
struct reserved_info resinf;
resinf.days=days;
resinf.end_date=end_date;
resinf.start_date=start_date;
strcpy(resinf.namename);

res_info->insert(locaresinf);
}

bool room::search(class date start_dateint dayschar name[50]list::iterator &ite)
{
list::iterator i=res_info->begin();
while(i!=res_info->end())
{
if(strcmp(i->namename)==0 && i->start_date.month=start_date.month && 
i->start_date.day=start_date.day && i->days=days)
{
ite=i;
return true;
}
i++;
}
return false;
}

bool room::search_by_name(char name[50])
{
list::iterator i=res_info->begin();
bool flag=false;
while(i!=res_info->end())
{
if(strcmp(i->namename)==0)
{
flag=true;
printf(“check result:%s reserve NO.%d from %d.%d for %ddays \n“nameroom_NO
i->start_date.monthi->start_date.dayi->days);
}
i++;
}
return flag;
}
///////////////////////////////////////////////////

bool hotel::init_hotel(vector&vec)
{
roomnum = vec.size() ;

for ( int i = 0 ; i < vec.size() ; i++ )

{

rooms[i].room_NO = vec[i] ;

}

return true ;
}


int hotel::location_room ( int room_NO )
{
for ( int i = 0 ; i 
{

if ( rooms[i].room_NO == room_NO )

return i ;

}

return -1 ;
}




bool hotel::do_request (char name[50] struct op cusop )
{
sleep(cusop.op_time/1000);//模拟操作时间
if( !check_data(cusop.start_date.monthcusop.start_date.month) )
{
printf(“%s %s from %d.%d for %ddays **Error:date error \n“namecusop.op_type
cusop.start_date.monthcusop.start_date.daycusop.days);
return false;
}

if(strcmp(cusop.op_type“reserve“)==0)
{
int loca=location_room(cusop.room_NO);
if(loca==-1)
{
printf(“%s reserve NO.%d from %d.%d for %ddays **Error:no this room \n“namecusop.room_NO
cusop.start_date.monthcusop.start_date.daycusop.days);
return false;
}

list:

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      37376  2012-07-24 15:21  09智能linux\!!-Project_Description.doc

     文件     147867  2012-07-28 19:18  09智能linux\1.png

     文件        376  2012-07-28 19:13  09智能linux\1.txt

     文件        376  2012-07-28 18:43  09智能linux\1.txt~

     文件     135983  2012-07-28 19:18  09智能linux\2.png

     文件      10133  2012-07-26 18:24  09智能linux\hotel .c

     文件      10132  2012-07-26 18:19  09智能linux\hotel .c~

     文件      12721  2012-07-28 19:13  09智能linux\hotel.c

     文件      12721  2012-07-28 19:10  09智能linux\hotel.c~

     文件       3058  2012-07-28 19:13  09智能linux\hotel.h

     文件    3463364  2012-07-28 19:19  09智能linux\hotel.h.gch

     文件       2950  2012-07-28 18:49  09智能linux\hotel.h~

     文件      51452  2012-07-28 19:19  09智能linux\hotel.o

     文件      42673  2012-07-28 19:19  09智能linux\lxy

     文件       2120  2012-07-28 19:19  09智能linux\main.c

     文件       2130  2012-07-28 19:13  09智能linux\main.c~

     文件      11780  2012-07-28 19:19  09智能linux\main.o

     文件        370  2012-07-28 17:08  09智能linux\makefile

     文件        342  2012-07-26 21:28  09智能linux\makefile~

     文件      13707  2012-07-24 15:20  09智能linux\mytest.c~

     文件       3361  2011-07-21 22:57  09智能linux\my_sv_ipc.c

     文件       1882  2012-07-26 17:35  09智能linux\my_sv_ipc.h

     文件    1533392  2012-07-28 19:19  09智能linux\my_sv_ipc.h.gch

     文件       1885  2012-07-25 13:50  09智能linux\my_sv_ipc.h~

     文件       3012  2012-07-28 19:19  09智能linux\my_sv_ipc.o

     文件        523  2012-07-28 20:33  09智能linux\readme.txt

    ..AD...         0  2012-07-28 20:39  09智能linux

----------- ---------  ---------- -----  ----

              5505686                    27



............此处省略0个文件信息

评论

共有 条评论