一、 实验目的
1. 掌握利用C/C++编程语言实现数据结构的编程方法;
2. 熟练使用Visual studio 集成开发环境;
3. 熟悉利用EasyX进行图形化编程
二、 实验相关知识
1. C/C++编程基础;
2. 使用Visual studio进行项目开发;
3. 使用EasyX做简单的图形处理。
三、 实验内容与要求
利用EasyX实现约瑟夫环动画演示,具体要求如下:
1. 人机交互输入总人数n,以及报数值m
2. 动画要演示报数过程
3. 动画演示人被删除的过程
四、 实现过程与结构
第一步:练习使用EasyX:
1、下载EasyX:https://easyx.cn/
安装文件:
离线帮助文件:
2、安装EasyX(其实就是并把它所包含的lib文件复制到C++的安装目录下。)

点击 下一步

注意:选择自己的编译器版本,点击安装

弹出安装成功 OK。


4、根据在线EasyX帮助文档(或离线的帮助文档)练习以下操作:

(1)创建640*640背景颜色为红色的窗口;
参考函数:
HWND initgraph( int width, int height, int flag = NULL );
(2)设置窗体的中心点为坐标中心点;
参考函数:
void setorigin(int x, int y);
(3)在窗体的正中心,绘制一个半径为50,填充色为蓝色的圆。
void setfillcolor(COLORREF color); //设置当前设备填充颜色 void fillcircle( //画有边框的填充圆 int x, int y, int radius );
(4)输入回车键后(使用getchar(),获取回车符的键值为10),把上面的圆擦除,重新绘制一个半径为40的圆(颜色不变)。
int ch;
ch = getchar();
if (ch == 10)//回车换行符的减值为10
{
//补充当按下回车键后所需完成任务
}(5)重复(4),每当按下回车键,则把圆的半径缩小为原来的0.8倍。
(6)当接收一个回车后,圆逐渐变小直至消失,产生动画效果;注意为观察圆消失过程,每个圆必须要有一定的视觉停留时间(例如:停留0.3秒(Sleep(300));变换循环的次数和Sleep的值,观察动画效果的差别。
(7)尝试改为当单击鼠标右键时产生上述动画效果。
ExMessage m; // 定义消息变量
while(true) //通过死循环不断监听鼠标小消息
{
// 获取一条鼠标消息
m = getmessage(EM_MOUSE );
switch(m.message)
{
case WM_RBUTTONDOWN: //若按下鼠标右键
// 补充按下鼠标右键需要实现的效果
break;
case WM_LBUTTONDOWN: //若按下鼠标左键
return;// 若按下鼠标左键,结束函数
}
}

