目录
一、需求分析 ..............................................2
二、概要设计 ..............................................2
三、详细设计 ..............................................3
四、调试分析 ..............................................9
五、总结分析 .............................................11
六、参考文献 .............................................11
一、需求分析
1、实现数据排序算法(冒泡、选择、插入)的动画效果。
2、供用户输入选择进行哪一种排序效果演示,用 ege 自带的输入框供用户进
行输入排序前的序号。对用户的界面友好,添加一些提示(例如输入错误不合
法等等),操作简便。
3、函数名、变量名命名规范,代码该缩进的要缩进,并且给出必要的注释,以
增强程序的可读性。
4、设计好函数,处理好函数之间的关系,确保各个函数的功能清晰
二、概要设计
1、调用 ege 图形库部分操作
(1)基本操作:
initgraph(960,600,0);//初始化窗口大小,加 0 去掉开始的 ege 开场动画
setbkmode(TRANSPARENT);//设置字体背景透明
setbkcolor(BLACK);//设置背景颜色为黑色
setcolor(BLUE);//设置前景色为蓝色
setfont(25,0,"宋体");//(字体高度,字体宽度(0 是自适应),字形)
cleardevice();//清屏
closegraph();//关闭窗口
(2)贴背景图操作:
图片缩放函数
void getZoomImage(PIMAGE pimg, const char* fileName, int width, int height)
{
PIMAGE temp = newimage();
getimage(temp, fileName);
if (getwidth(pimg) != width || getheight(pimg) != height)
resize(pimg, width, height);
putimage(pimg, 0, 0, width, height, temp, 0, 0, getwidth(temp), getheight(temp));
delimage(temp);
}
2、调用 ege 图形库自带输入框操作
char str[100];//ege 自带的输入框
inputbox_getline("这是一个对话框(请输入 1~4 内有效数字)",
"请选择您需要的排序动画效果演示:\n"
"1.冒泡排序动画效果\n"
"2.选择排序动画效果\n"
"3.插入排序动画效果\n"
"4.退出",
str,
sizeof(str)/sizeof(*str));
outtextxy(0, 0, str);
3、本程序模块结构
(1)主函数模块
int main(){
调用 ege 图形库;
调用函数;
}
(2)选择输入模块——实现用户输入所选择排序的功能
(3)三种排序模块——实现(冒泡、选择和插入)排序的展示
各个模块调用关系如下:
主程序模块—>选择输入模块—>三种排序模块
三、详细设计
1、基本操作
(1)主函数模块
int main()
{
initgraph(960,600,0);//初始化窗口大小
setbkmode(TRANSPARENT);
put_picture(1);
setbkcolor(BLACK);//设置背景颜色为黑色
setcolor(BLUE);//设置前景色为蓝色
setfont(25,0,"宋体");//(字体高度,字体宽度(为 0 即为自适应),字形)设置字体为 25,宋体
outtextxy(200,250," ********欢迎来到排序算法动画演示程序********");
//在坐标为 (200,250) 显示文字
Sleep(2000);//停留两秒
cleardevice();//清屏
put_picture(1);//贴第一张图
outtextxy(100,250,"在这里您可以选择观看三种排序(冒泡、选择和插入)的动画演示
");
Sleep(2000);
cleardevice();
put_picture(1);
outtextxy(200,250,"下面请跟紧我的脚步一起进入有趣的排序世界吧!*^_~*");
Sleep(2000);
cleardevice();
input(1);//供用户选择输入的自定义函数
}
(2)选择输入模块
void input(int x)
{
char str[100];//ege 自带的输入框
inputbox_getline("这是一个对话框(请输入 1~4 内有效数字)",
"请选择您需要的排序动画效果演示:\n"
"1.冒泡排序动画效果\n"
"2.选择排序动画效果\n"
"3.插入排序动画效果\n"
"4.退出",
str,
sizeof(str)/sizeof(*str));
outtextxy(0, 0, str);
if(str[0]=='1')
{
bubble_sortdemo();//调用冒泡排序部分
return input(1);
}
else if(str[0]=='2')
{
select_sortdemo();//调用选择排序部分
return input(1);
}
else if(str[0]=='3')
{
insert_sortdemo();//调用插入排序部分
return input(1);
}
else if(str[0]=='4')
{
评论0