资源简介
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_Desc
文件 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个文件信息
相关资源
- uboot到linux logo显示不间断 补丁
- UNIX/LINUX编程实践教程的源码
- Linux任务管理器
- linux应用层的华容道游戏源代码
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- linux下用多进程同步方法解决生产者
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- linux 0.12内核源代码
- linux简易shell C实现
- linux实验报告及心得体会
- 基于GTK的Linux环境下的简易任务管理器
- linux扫雷游戏代码
- CAN Linux驱动代码
- Linux系统教材
- intel 82579LM 网卡驱动Linux系统版 v1.9.
- SA1110处理器掌上电脑液晶显示器设计
- 基于Linux的串口服务器设计
- Windows下访问LINUX的利器-SSH
评论
共有 条评论