基于Easyx图像库的色块动态生成程序说明书.docVIP

  • 22
  • 0
  • 约2.57千字
  • 约 7页
  • 2017-09-25 发布于广西
  • 举报

基于Easyx图像库的色块动态生成程序说明书.doc

引言 1.文档定义 这篇文档描述的是这样的一个程序:运用Easyx图形库,把输出的图形界面用矩形块填满,要求这些矩形块按照一定时间周期(时间间隔不做强制要求),随机(位置,颜色)填充,直到填满。 2.编写目的 将这个小程序做成一个具有一定规范的例子,让更多的同学熟悉Easyx的相关操作。 3.编写背景 IT培优项目C语言图像小组成员,从题目提出至今,通过深刻地讨论和交流,形成了以下文档。 可行性分析 1.时间可行性 有时候想为这样一个如此芊瘦的程序写一个说明书有点小题大做了。因为编写这样一个程序根本占用不了你多少时间,也就一个小时左右,包括前期的分析和写代码。所以看的时候直接把这些跳过吧,如果你只对代码感兴趣的话。 2.技术可行性 Easyx: EasyX 是针对 C++ 的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程。 Visual C++6.0: 这个学习c语言的基本都会哈,说一句,win7可以用哈,就不废话了。 需求分析 1.实现目标 将135中颜色9*15排列(不应该这么快把结果拿出来,但是违例一次吧) 2.功能需求 颜色需求: 程序中的颜色来自一个名为rgb.txt的文档中,文档中的每一行都是记录了一个颜色的RGB值,每次都读取一行没有被读取的行,取出RGB值进行色块的填充。 算法需求: 这个程序主要编写两个算法,一个是产生不重复的随机数,另一个是根据产生的随机数在特定的位置绘制矩形。 总体设计 详细设计与实现 实现代码: #include stdio.h #include stdlib.h #include string.h #include graphics.h #include windows.h #include conio.h #include time.h int function(int arry[136], int n, int m); int arryrgb[136] = {0}; int arry[136] = {0}; //将一个数字字符转换成对应数字 int CharToint(char a) { return a - 0; } //将arry数组的前i位转换成一个数值 int Char_To_int(int i, char arry[3]) { int temp; int result = 0; int k=1; for(int j = i; j 0; j-- ) { temp = CharToint(arry[j-1]); result += (temp*k); k=k*10; } return result; } //将一串形如255,244,213的这样一串字符串,提取出三个整数 //作为RGB值 int ArryToRGB(char RGB[20], int values[3]) { char store[3]; int i = 0; for(int j = 0; j 3; j++) { int k = 0; while(1) { if( RGB[i]0 || RGB[i]9) { values[ j] = Char_To_int(k,store); i++; break; } store[k] = RGB[i]; k++; i++; } } return 0; } //从文本中获取形如这样的(255,244,213)的一串字符串 int getVALUES(int values[3]) { FILE *fp = fopen(RGB.txt,r); char tBuf[20]; srand((unsigned) time(NULL)); int n = (1 + rand()%135); n = function( arryrgb ,n, 135); int k= 0; while(fgets(tBuf,100,fp) != NULL) { k++; if( k == n) { ArryToRGB(tBuf , values); } } fclose(fp); return 0; } //对由随机数发生器产生的数二次处理,确保输出没有重复的 int function(int arry[135],int n, int m) { if(arry[n] == 0) { arry[n] = n; return n; } else { if(n == m) { n = 1; function(arry, n, m); } else function(arry,

文档评论(0)

1亿VIP精品文档

相关文档