




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简单图形处理系统程序设计基础课程设计报告专 业: 电子信息工程 班 级: 2007级 2 班 学 号: 2007082051 姓 名: 杨 淼 军 指导教师: 常 耀 辉 2008年6月28日目 录1.课程设计目的32.课程设计题目描述和要求32.1课程题目32.2课程要求33.课程设计报告内容33.2 运行结果114. 课程设计总结125.参考书目121.课程设计目的开拓思维,检查和巩固所学的知识,为以后的学习和编程打下基础。2.课程设计题目描述和要求2.1课程题目简单图形处理系统2.2课程要求设某个图形处理程序只考虑点、直线、圆三种基本图形。对于点,给出点的横纵坐标;对于直线,给出直线方程ax+by+c0的三个系数a,b,c;对于圆,给出圆心坐标和半径。(为叙述性文字,告诉我题目要求做些什么)试说明图形的几何形状类型,并编写输入和输出图形数据、求两点距离、求两直线交点、 已知点和半径形成圆、已知两点形成直线等函数。(后面这些为具体的要求)3.课程设计报告内容#include#include#includeusing namespace std;class point public: friend void point_count(point *p);/声明为友员函数,便于引用类的私有数据 friend void build_line(point *p); void set_value() /作用:输入点的坐标cout请输入点的坐标xy;void show() /作用:输出点的坐标cout点的坐标是:(x,y)endl;private:float x,y;void point_count(point *p) /作用:计算两点间的距离cout两点间的距离为:endl;coutsqrt(*p).x-(*(p+1).x)*(*p).x-(*(p+1).x)+(*p).y-(*(p+1).y)*(*p).y-(*(p+1).y)endl;void build_line(point *p) /作用:用两点构造直线cout两个点的坐标为:(*p).x,(*p).y),(*(p+1).x,(*(p+1).y)endl;cout参数:a=(*p).y-(*(p+1).y,b=(*(p+1).x-(*p).x,c=(*(p+1).y*(*p).x-(*p).y*(*(p+1).xendl;cout直线方程是:(*p).y-(*(p+1).yx+(*(p+1).x-(*p).xy+(*(p+1).y*(*p).x-(*p).y*(*(p+1).x=0endl;class linepublic:friend void line_count(line *p);/声明为友员函数void set_value() /作用:输入直线的三个参数cout请输入直线的三个参数abc;void show() /作用:输出直线的方程if(a=1&b!=1)cout直线的方程为:x+by+c=0endl;else if(a!=1&b=1)cout直线的方程为:ax+y+c=0endl;else if(a=1&b=1)cout直线的方程为:x+y+c=0endl;else cout直线的方程为:ax+by+c=0endl;private:float a,b,c;void line_count(line *p) /作用:计算两直线的交点if(*p).a/(*(p+1).a=(*p).b/(*(p+1).b)cout两直线平行,没有交点endl;else cout两直线的交点是:endl; 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)endl;class circlepublic:void set_value() /作用:输入圆心坐标和半径cout请输入圆的坐标和半径xyr;void show() /作用:输出圆的圆心坐标、半径和方程(构造圆)cout圆心坐标:(x,y),半径:rendl;if(x=0&y=0)cout圆的方程:xx+yy=r*rendl; else if(x=0&y!=0)cout圆的方程:xx+(y-y)(y-y)=r*rendl; else if(y=0&x!=0)cout圆的方程:(x-x)(x-x)+yy=r*rendl; else cout圆的方程:(x-x)(x-x)+(y-y)(y-y)=r*rendl;private:float x,y,r;int main()point poi2;line lin2;circle cir;int i;string choose; /choose 选择是否继续输入string typ; /typ:图形的形状 / while(1)无限循环,让用户自己选择for(;)cout请输入图形类型typ; /出现过:cin : ambiguous(不明确的,多定义的) symbolcout图形为:typendl;/处理点的问题if(typ=point)for(i=0;i+) /注意要让程序跳出poii.set_value();cout是否继续输入点的坐标?choose;if(choose=no)break;if(i=0)poi0.show();else if(i=1)for(i=0;i2;i+)poii.show();point_count(poi);build_line(poi);else break;/处理直线的问题else if(typ=line)for(i=0;i+)lini.set_value(); cout是否继续输入直线的参数?choose;if(choose=no)break;/只有选择了不输入时,才能跳出if(i=0)lin0.show();else if(i=1)for(i=0;i2;i+)lini.show(); line_count(lin);/处理圆的问题else if(typ=circle)cir.set_value();cir.show();/处理其他图形的问题else cout图形不在指定的范围内endl;cout是否继续输入图形的类型?choose; if(choose=no)break; /同样只有选择了不输入时,才能跳出return 0;3.2 运行结果 4. 课程设计总结终于,激动人心的期末考试如期而至,从未感受过的课程设计就在眼前,既有几分新奇,又有几分神秘,但更多的是莫名的担心,既担心自己不会动手去做,又担心自己做的不是很好。终于,在担心与被动中,在考完C+程序设计后,我坐在了电脑前,一点点地构思算法、输入、编译、运行,不懂的就问同学,忘了的就看书。在编程中,慢慢地弄懂了题意,渐渐地就能构思出算法。终于,有了算法,其他过程的设计就显得得心应手了。在编程中,我发现:类和链表有点不同,但也有相通之处,用类做过的题目,用链表再做时,就显得很简单了。在本题中,我建立了对象数组,因为数组的内存本来是连续的,再加上只有两个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能化工厂土地租赁及配套设施建设合同
- 2025年度绿色建筑节能门窗设计与安装服务协议
- 建筑施工组织设计专项方案审批流程
- 2025年度大型电力设施运输及安装服务合同
- 2025年生态环境违法案件行政处罚复议全程代理服务合同
- (2025年标准)部分终止协议书
- 2025年豪华度假酒店VIP客户专属服务合同
- 2025年绿色农业羊养殖产业链风险保障服务合同
- 2025年环保建材边沟改造工程承揽协议
- 2025年特色布艺出口代理与市场拓展专项合同
- 2025全国农业(水产)行业职业技能大赛(水生物病害防治员)选拔赛试题库(含答案)
- 网约车停运损失赔偿协议书范文
- 航海英语-气象报告
- 麻醉前访视评估与准备
- GB/T 7477-1987水质钙和镁总量的测定EDTA滴定法
- GB/T 3923.2-2013纺织品织物拉伸性能第2部分:断裂强力的测定(抓样法)
- GB/T 23764-2009光催化自清洁材料性能测试方法
- 施工安全风险管控措施清单
- 领导科学概论课件
- 宁波市区成品住宅装修工程质量分户验收规程
- 邢者打板手法系统学习笔记版
评论
0/150
提交评论