简单图形处理系统.docx

上传人:b****5 文档编号:6241032 上传时间:2023-01-04 格式:DOCX 页数:8 大小:241.07KB
下载 相关 举报
简单图形处理系统.docx_第1页
第1页 / 共8页
简单图形处理系统.docx_第2页
第2页 / 共8页
简单图形处理系统.docx_第3页
第3页 / 共8页
简单图形处理系统.docx_第4页
第4页 / 共8页
简单图形处理系统.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

简单图形处理系统.docx

《简单图形处理系统.docx》由会员分享,可在线阅读,更多相关《简单图形处理系统.docx(8页珍藏版)》请在冰豆网上搜索。

简单图形处理系统.docx

简单图形处理系统

 

《简单图形处理系统》

程序设计基础课程设计报告

 

目录

 

1.课程设计目的3

2.课程设计题目描述和要求3

2.1课程题目3

2.2课程要求3

3.课程设计报告内容3

3.2运行结果11

4.课程设计总结12

5.参考书目12

 

1.课程设计目的

开拓思维,检查和巩固所学的知识,为以后的学习和编程打下基础。

2.课程设计题目描述和要求

2.1课程题目

简单图形处理系统

2.2课程要求

设某个图形处理程序只考虑点、直线、圆三种基本图形。

对于点,给出点的横纵坐标;对于直线,给出直线方程ax+by+c=0的三个系数a,b,c;对于圆,给出圆心坐标和半径。

(为叙述性文字,告诉我题目要求做些什么)

试说明图形的几何形状类型,并编写输入和输出图形数据、求两点距离、求两直线交点、已知点和半径形成圆、已知两点形成直线等函数。

(后面这些为具体的要求)

3.课程设计报告内容

#include

#include

#include

usingnamespacestd;

classpoint

{

public:

friendvoidpoint_count(point*p);//声明为友员函数,便于引用类的私有数据

friendvoidbuild_line(point*p);

voidset_value()//作用:

输入点的坐标

{

cout<<"请输入点的坐标"<

cin>>x>>y;

}

voidshow()//作用:

输出点的坐标

{

cout<<"点的坐标是:

("<

}

private:

floatx,y;

};

 

voidpoint_count(point*p)//作用:

计算两点间的距离

{

cout<<"两点间的距离为:

"<

cout<

}

voidbuild_line(point*p)//作用:

用两点构造直线

{

cout<<"两个点的坐标为:

("<<(*p).x<<","<<(*p).y<<"),("<<(*(p+1)).x<<","<<(*(p+1)).y<<")"<

cout<<"参数:

a="<<(*p).y-(*(p+1)).y<<",b="<<(*(p+1)).x-(*p).x<<",c="<<(*(p+1)).y*(*p).x-(*p).y*(*(p+1)).x<

cout<<"直线方程是:

"<<(*p).y-(*(p+1)).y<<"x+"<<(*(p+1)).x-(*p).x<<"y+"<<(*(p+1)).y*(*p).x-(*p).y*(*(p+1)).x<<"=0"<

}

classline

{

public:

friendvoidline_count(line*p);//声明为友员函数

voidset_value()//作用:

输入直线的三个参数

{

cout<<"请输入直线的三个参数"<

cin>>a>>b>>c;

}

voidshow()//作用:

输出直线的方程

{

if(a==1&&b!

=1)cout<<"直线的方程为:

x+"<

elseif(a!

=1&&b==1)cout<<"直线的方程为:

"<

elseif(a==1&&b==1)cout<<"直线的方程为:

x+y+"<

elsecout<<"直线的方程为:

"<

}

private:

floata,b,c;

};

voidline_count(line*p)//作用:

计算两直线的交点

{

if((*p).a/(*(p+1)).a==(*p).b/(*(p+1)).b)cout<<"两直线平行,没有交点"<

else{

cout<<"两直线的交点是:

"<

cout<<"("<<((*p).b*(*(p+1)).c-(*p).c*(*(p+1)).b)/((*p).b*(*(p+1)).a-(*p).a*(*(p+1)).b)<<","

<<((*p).a*(*(p+1)).c-(*p).c*(*(p+1)).a)/((*p).a*(*(p+1)).b-(*p).b*(*(p+1)).a)<<")"<

}

}

classcircle

{

public:

voidset_value()//作用:

输入圆心坐标和半径

{

cout<<"请输入圆的坐标和半径"<

cin>>x>>y>>r;

}

voidshow()//作用:

输出圆的圆心坐标、半径和方程(构造圆)

{

cout<<"圆心坐标:

("<

"<

if(x==0&&y==0)cout<<"圆的方程:

xx+yy="<

elseif(x==0&&y!

=0)cout<<"圆的方程:

xx+(y-"<

elseif(y==0&&x!

=0)cout<<"圆的方程:

"<<"(x-"<

elsecout<<"圆的方程:

(x-"<

}

private:

floatx,y,r;

};

intmain()

{

pointpoi[2];

linelin[2];

circlecir;

inti;

stringchoose;//choose选择是否继续输入

stringtyp;//typ:

图形的形状

 

//while

(1)无限循环,让用户自己选择

for(;;)

{

cout<<"请输入图形类型"<

cin>>typ;//出现过:

'cin':

ambiguous(不明确的,多定义的)symbol

cout<<"图形为:

"<

//处理点的问题

if(typ=="point")

{

for(i=0;;i++)//注意要让程序跳出

{

poi[i].set_value();

cout<<"是否继续输入点的坐标?

"<

cin>>choose;

if(choose=="no")break;

}

if(i==0)poi[0].show();

elseif(i==1)

{

for(i=0;i<2;i++)

{

poi[i].show();

}

point_count(poi);

build_line(poi);

}

elsebreak;

}

//处理直线的问题

elseif(typ=="line")

{

for(i=0;;i++)

{

lin[i].set_value();

cout<<"是否继续输入直线的参数?

"<

cin>>choose;

if(choose=="no")break;//只有选择了不输入时,才能跳出

}

if(i==0)lin[0].show();

elseif(i==1)

{

for(i=0;i<2;i++)

{

lin[i].show();

}

line_count(lin);

}

}

//处理圆的问题

elseif(typ=="circle")

{

cir.set_value();

cir.show();

}

//处理其他图形的问题

elsecout<<"图形不在指定的范围内"<

cout<<"是否继续输入图形的类型?

"<

cin>>choose;

if(choose=="no")break;//同样只有选择了不输入时,才能跳出

}

return0;

}

 

3.2运行结果

 

4.课程设计总结

终于,激动人心的期末考试如期而至,从未感受过的课程设计就在眼前,既有几分新奇,又有几分神秘,但更多的是莫名的担心,既担心自己不会动手去做,又担心自己做的不是很好。

终于,在担心与被动中,在考完C++程序设计后,我坐在了电脑前,一点点地构思算法、输入、编译、运行,不懂的就问同学,忘了的就看书。

在编程中,慢慢地弄懂了题意,渐渐地就能构思出算法。

终于,有了算法,其他过程的设计就显得得心应手了。

在编程中,我发现:

类和链表有点不同,但也有相通之处,用类做过的题目,用链表再做时,就显得很简单了。

在本题中,我建立了对象数组,因为数组的内存本来是连续的,再加上只有两个元素,所以就没有用链表(可以存大量的数据)了。

在编完程序后,我觉得:

耐心和细心在编程中都显得很重要,稍有不注意,少一个‘;’或是一个‘}’都会出来意想不到的错误个数,给调试带来麻烦!

所以,编写程序一定要细致小心,认真努力,那么我们就一定能取得最后的成功!

!

!

5.参考书目

[1]谭浩强,《C++程序设计》,北京,清华大学出版社,2007年.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1