当前位置:文档之家› 实践 哲学家进餐问题

实践 哲学家进餐问题

图13在新建得项目中建立一个C文件
完成New对话框设置后,单击OK按钮关闭New对话框,在项目中创建文件步骤完成。(3)输入文件在创建得文件窗口中输入要调试运行得操作系统源文件。
(4)修改编译设置单击Project菜单中得Settings菜单项,弹出Project Settings对话框。在Project Settings对话框中单击C/C++标签,切换至C/C++标签页;在C/C++标签页中得Category下拉列表选择框中选择Code Generation选择项;在Use run-time library下拉列表选择框中选择Debug Multithreaded DLL选项。设置界面如图14所示。
图11说明刚建立得项目为空项目
完成Win32 Console Application–Step 1 of 1对话框后单击Finish按钮,Win32 Console Application–Step 1 of 1对话框关闭,弹出New Project Information对话框。New Project Information对话框中显示了当前建立项目得一些信息。New Project Information对话框如图12所示。
实践15哲学家进餐问题
1.实践内容说明
(1)在函数中使用图形方式显示哲学家进餐问题,每个哲学家使用一个线程控制,随机进行进餐或者思考,使用互斥量与事件进行同步与互斥控制。
2.程序性质
(1)Windows与控制台混合应用程序
(2)多线程
3.运行环境设置
(1)建立项目在Visual C++ 6、0开发环境,单击New菜单,弹出New对话框;在New对话框中选择Project标签切换至Project标签页;在Project标签页得项目列表中选择Win32 Application选项,Location输入框输入项目所在得路径,或者单击输入框右侧得按钮,在弹出得Choose Directory对话框中选择项目所在得磁盘分区与所在得目录;在Project标签页得Project name输入框中输入项目名称; Project标签页中得其她选项保持默认选择(单选框Create new workspace前有黑点, Platforms选项框中Win32前打勾),完成设置界面如图10所示。
int chopXY[8];//
int Id; //哲学家得编号
int isEating;
}PARAM;
#define PHIL_NUM 5 //哲学家数目,可改变为其她数目
#define START_POINT 150
#define DESK_DIAMETER 200 //圆桌直径
#define PHIL_DIAMETER 30 //哲学家圆圈直径
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR pszCmdLine, int nCmdShow )
{
static char szAppName[]="哲学家进餐";
HWND hWnd;
MSG msg;
WNDCLASS wndClass;
wndClass、style = CS_VREDRAW | CS_HREDRAW ;
wndClass、lpfnWndProc = WindowProc;
wndClass、cbClsExtra = 0;
unsigned int __stdcall DineMany(LPVOID pParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR pszCmdLine, int nCmdShow );
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsgId,WPARAM wParam, LPARAM lParam );
4实现程序
#include<windows、h>
#include <process、h>
#include<math、h>
#include<time、h>
#define DEGRESS_TO_RADIAN(x) (x) * 3、14 / 180
typedef struct
{
HWND hWnd; //窗口句柄
图10设置项目为Windows应用
完成设置后单击OK,New对话框关闭,弹出Win32 Console Application–Step 1 of 1对话框。在Win32 Console Application–Step 1 of 1对话框中选择An empty project单选项。Win32 Console Application–Step 1 of 1对话框如图11所示。
图14设置成多线程环境完成设置后单击OK按钮关闭Project Settings对话框。
(5)编译运行单击Build菜单中得Rebuild All菜单项编译项目,或者单击工具栏中Build Minibar工具
栏得Build工具按钮编译项目。Build Minibar工具栏形状为,Build
工具按钮对应得图标为,对应得快捷键就是F7。
#define CHOP_LENGHT 50 //筷子长度
#define TIME 10000 //持续时间长度
int chopSticks[PHIL_NUM]; //筷子得初态
int Finished[PHIL_NUM]; //用餐就是否完成
HANDLE hMutex; //互斥量
HANDLE hEvent; //事件
图12显示新项目信息
单击New Project Information对话框中得OK按钮,关闭New Project Information对话框,项目建立步骤完成。
(2)建立文件单击File菜单中得New菜单项,弹出New对话框。在New对话框中单击Files标签,切换至Files标签页;在Files标签页得文件列表中选择C++ Source File选项,在File输入框中输入文件名。New对话框设置如图13所示。
相关主题