四川大学电子信息学院C++实验报告大作业.docx
- 文档编号:12538555
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:8
- 大小:87.37KB
四川大学电子信息学院C++实验报告大作业.docx
《四川大学电子信息学院C++实验报告大作业.docx》由会员分享,可在线阅读,更多相关《四川大学电子信息学院C++实验报告大作业.docx(8页珍藏版)》请在冰豆网上搜索。
四川大学电子信息学院C++实验报告大作业
实验报告
(2014/2015学年第二学期)
课程名称
C++上机实验课
实验名称
大作业
实验时间
2015
年
6
月
14
日
学院
电子信息学院
指导教师
吴炜老师
学生姓名
李波
班级学号
2014141453070
学院(系)
电子信息学院
专业
电子信息类
实验报告
实验名称
大作业
指导教师
实验类型
上机
实验学时
3
实验时间
2015\6\8
一、实验目的和要求
1、下载EasyX安装到VC6/2010/2012...
2、学习使用EasyX画图
3、添加一个新基类
classShape
{
public:
virtualvoiddraw()=0;
//其他虚函数
};
在此基础上设计直线、矩形框、椭圆的派生类,并给这些派生类设计相关的数据成员(坐标、线的颜色、填充颜色)和成员函数和虚函数draw。
4、采用随机数生成坐标及随机创建派生类,并使用draw函数在屏幕上绘制产生的图形。
二、实验环境(实验设备)
1、电脑,以及软件VsualC++6.0
3、实验原理及内容
原理:
EasyX库是VC方便的开发平台,拥有和一样TC简单的绘图功能。
下面是完整程序:
#include
#include
#include
#include
class Shape
{
public:
virtual void draw() = 0;
};
classline:
public Shape
{ int x1,y1,x2,y2;
unsigned long bkcolor,linecolor;
public :
line(int x, int y, int a, int b,unsigned long color1=LIGHTGRAY,unsigned long color2=LIGHTCYAN)
{x1=x;
y1=y;
x2=a;
y2=b;
bkcolor=color1;
linecolor=color2;}
void draw()
{
initgraph(640, 480);
setbkcolor(bkcolor);
cleardevice();
setcolor(linecolor);
line(x1,y1,x2,y2);
getch();
closegraph();
}
};class ellipse :
public Shape
{ int left, top, right, bottom;
unsigned long bkcolor,linecolor;
public:
ellipse( int p, int q, int r, int m,unsigned long color1=RED,unsigned long color2=BLUE)
{
left=p;
top=q;
right=r;
bottom=m;
bkcolor=color1;
linecolor=color2;
}
void draw()
{initgraph(640, 480);
setbkcolor(bkcolor);
cleardevice();
setcolor(linecolor);
ellipse(left,top, right, bottom);
getch();
closegraph();
}
};
class rectangle:
public Shape
{
int x1,y1,x2,y2;
unsigned long color,linecolor;
public :
rectangle(int x, int y, int a, int b,unsigned long color1=GREEN,unsigned long color2=BLUE)
#include
class Shape
{
public:
virtual~Shape(){}
virtual float GetArea()=0;
virtual void Show()=0;
};
class Rectangle:
public Shape
{
public:
Rectangle(){x=0;y=0;}
Rectangle(float a,float b):
x(a),y(b){}
virtual float GetArea(){return x*y;}
virtual void Show();
void Set(float a,float b);
private:
float x;
float y;
};
void Rectangle:
:
Show()
{
cout<<"Rectangle:
"<<"["< } void Rectangle: : Set(float a,float b) { x=a;y=b; } class Circle: public Shape {}; class Triangle: public Shape {}; int main() { Shape *s; Rectangle re(1,2); s=&re; s->Show(); cout<<"面积是"< return 0; } {x1=x; y1=y; x2=a; y2=b; bkcolor=color1; linecolor=color2;} void draw() { initgraph(640, 480); setbkcolor(bkcolor); cleardevice(); setcolor(linecolor); rectangle(x1,y1,x2,y2); getch(); closegraph(); }}; void main() { srand((unsigned) time(NULL)); int x1=rand()%640,x2=rand()%640; while(x1==x2) {x2=rand()%640;} int y1=rand()%480,y2=rand()%480; while(y1==y2) {y2=rand()%480;} int a=rand()%3; if(a==0) {ellipse x(x1,y1,x2,y2); x.draw();} if(a==1) { rectangle x(x1,y1,x2,y2); x.draw();} if(a==2) { line x(x1,y1,x2,y2); x.draw();} } 输出结果: 实验报告 四、实验小结(包括问题和解决方法、心得体会、意见与建议等) 我一直认为,最好的老师其实是自己。 自学,有时候是最好的学习方法。 通过这次自学easyX,更让我体会到了编程的成就感,感觉自己又学到了很多。 再通过上机训练,明白了自己知识的不足,有的放矢,又更加深刻的理解C语言中的知识点。 所以说,上机是最有利于自学的一种方式。 通过自己的自学easyX,以及和同学的交流,试编和改错,最后能够顺利的编写出来,带来的也有成就感。 并增加了我们对C++语言的兴趣和学好C++语言的信心。 但是在编写过程中也出现了比如“errorC2072: 'initgraph': initializationofafunction”,“warningC4028: formalparameter1differentfromdeclaration”以及“errorC2081: 'bool': nameinformalparameterlistillegal”的令人头疼的错误和警告,不过好在最后全部都得以解决。 挫败感很强,成就感更大。 五、指导教师评语 成绩 批阅人 日期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四川大学 电子信息 学院 C+ 实验 报告 作业