欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言课程设计报告 简单图形处理系统.docx

    • 资源ID:15737185       资源大小:203.92KB        全文页数:18页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言课程设计报告 简单图形处理系统.docx

    1、C语言课程设计报告 简单图形处理系统C语言课程设计报告课程名称: 计算机综合课程设计 学 院: 土木工程学院 设计题目: 简单图形处理系统 2013年 9月 11日1、课程设计目的32、课程设计题目描述和要求33、模块设计34、课程设计报告内容45、调试及测试116、运行结果 127、设计总结148、参考文献151、课程设计目的开拓思维,检查和巩固所学的知识,为以后的学习和编程打下基础。2、课程设计题目描述和要求2、1课程题目简单图形处理系统2、2课程要求设某个图形处理程序只考虑点、直线、圆三种基本图形。对于点,给出点的横纵坐标;对于直线,给出直线方程ax+by+c0的三个系数a,b,c;对于

    2、圆,给出圆心坐标和半径。要求程序可以输入和输出图形元素,求两点距离,求两直线交点,已知点和半径形成圆,已知两点形成直线3、模块设计3、1模块分析根据题目要求可以将题目中的每一个要求与一个函数对应下来,这样算下来大概需要1、画点函数2、根据两点画直线函数3、根据方程画直线函数4、画圆函数5、求两点距离函数6、求两直线交点函数编程过程中可能需要一些其他的辅助函数,比如:画坐标系函数,坐标转换函数等;为帮大家选择不同的函数,可在开头设计一个目录帮助选择。3、2模块设计 根据模块分析,以及编程方便起见,将程序大致分为以下几个模块:1、目录模块:运用printf函数输出目录,并和switch架构搭配,帮

    3、助用者选择合适的函数解决问题。2、图形处理模块:主要进行图形的处理和输出,包括画点函数,画坐标系函数,画直线函数,画圆函数。3、计算处理模块:用于解决需要计算才能得到结果的部分,包括求两个直线的交点函数,求两个点之间的距离函数,以及坐标转换函数。大致流程图为:4、课程设计报告内容/头文件包含/#include#include#include#include/函数声明/void line_1(); /根据两点画直线void line_2(); /根据方程画直线void dot(); /根据坐标画点void yuan(); /根据半径和圆心画圆void lon(); /求两点间的距离void dt

    4、(); /根据两条直线求交点void cad(); /画坐标系void trans(double *x,double *y); /坐标转换/定义整函数/int main() for(;) /*目录*/ int a; printf( 简单图形处理系统 n); printf(由于精度问题,请尽量取较大的值,坐标系范围x(-320320),y(-320320)nnn); printf(1输出点n); printf(2根据两点输出直线n); printf(3根据方程输出直线n); printf(4输出圆n); printf(5根据两点计算两点距离n); printf(6根据两条直线求交点n); pri

    5、ntf(0退出程序n); printf(请输入选择:); scanf(%d,&a); switch(a) case 1:dot();break; case 2:line_1();break; case 3:line_2();break; case 4:yuan();break; case 5:lon();break; case 6:dt();break; case 0:exit(0); default:printf(输入错误,请重新输入n);break; return 0;/*函数定义*/void line_1() /两点画直线函数 double a4; printf(请输入两点坐标:(如:2

    6、3,23 23,23)n); scanf(%lf,%lf %lf,%lf,&a0,&a1,&a2,&a3); /*转换坐标*/ trans(&a0,&a1); trans(&a2,&a3); /*按比例延伸坐标*/ for(int i=0;a20&a30&a2640&a30&a10&a0640&a10&a10&b1640&a10&b00&a0640&b0640;i+) a0=a0+i*(a0-b1); b0=b0+i*(b0-a1); /*画图*/ cad(); /设置线的颜色 setlinecolor(YELLOW); /画线 line(int)a0,(int)b0,(int)b1,(int

    7、)a1); getch(); closegraph();void dot() /坐标画点函数 double a2; printf(请输入点的坐标:(如:34,23)n); scanf(%lf,%lf,&a0,&a1); trans(&a0,&a1); cad(); /设置点的颜色 setcolor(YELLOW); /画点 putpixel(int)a0,(int)a1,WHITE); getch(); closegraph();void yuan() /根据半径和圆心画圆函数 double a3; printf(请输入半径和圆心的坐标:(如:23 23,23)n); scanf(%lf %l

    8、f,%lf,&a0,&a1,&a2); trans(&a1,&a2); cad(); /设置圆的颜色 setcolor(YELLOW); /画圆 circle(int)a1,(int)a2,(int)a0); getch(); closegraph();void cad() /画坐标系 /初始化图形界面 initgraph(640,640); /设定图形颜色 setcolor(WHITE); /画坐标线及箭头 line(0,320,640,320); line(320,0,320,640); line(640,320,635,315); line(640,320,635,325); line(

    9、320,0,325,5); line(320,0,315,5); /设置字体颜色 settextcolor(GREEN); /设置字体格式 settextstyle(20, 0, _T(宋体); /标注x,y和坐标范围 outtextxy(610,330,320); outtextxy(630,295,x); outtextxy(330,10,y); outtextxy(290,10,320); outtextxy(323,325,0);void lon() /两点间的距离函数 double a4,c; printf(请输入两点的坐标:(如:23,23 23,23)n); scanf(%lf,

    10、%lf %lf,%lf,&a0,&a1,&a2,&a3); /用勾股定理计算 c=fabs(a0-a2)*fabs(a0-a2)+fabs(a1-a3)*fabs(a1-a3); c=sqrt(c); printf(两点间的距离为:%lfn,c);void dt() /求交点函数 double a3,b3,t,x,y; printf(请输入一条直线方程:(如:3x+4y+5=0)n); scanf(%lfx+%lfy+%lf=0,&a0,&a1,&a2); printf(请输入另一条直线方程:(如:3x+4y+5=0)n); scanf(%lfx+%lfy+%lf=0,&b0,&b1,&b2)

    11、; /分不同的情况讨论 if(a0/b0=a1/b1&a2/b2!=a1/b1) printf(无交点n); else if(a0/b0=a1/b1&a2/b2=a1/b1) printf(有无数个交点n); else t=a0*b1-b0*a1; a2=(0-a2)*b1-(0-b2)*a1; b2=a0*(0-b2)-b0*(0-a2); x=a2/t; y=b2/t; printf(两条直线的交点为:%lf,%lfn,x,y); void trans(double *x,double *y) /转换坐标 *x=*x+320; *y=320-*y;5、调试及测试5、1调试本程序在个人电脑的

    12、windows 7环境下安装的Visual C+6.0语言系统下调试,通过调试发现了一些error,有的是语法错误,有的是逻辑错误,但是经过修改,这些error都被消除,调试结果如下:现在程序已经可以安全运行。5、2测试通过运行程序,发现了一些被遗漏的情况,如求两条直线的交点的时候没有考虑到平行和重合的情况,但是经过改正,已经将被遗漏的情况添加在了里面。6、运行结果6、1目录6、2输出点6、2输出圆6、3输出直线 6、4求交点7、设计总结7、1心得体会通过这次的程序设计,我深切意识到目前我们所学的有关C语言的知识是多么的少,而且由于学完C语言之后很少应用,以至于遗忘了很多已经学过的东西,比如文

    13、件处理函数等。在网上查阅资料的时候发现一些人用已经学过的东西也能编写一些很高级的程序。由此认识到学以致用非常重要,在接下来的时间里,我一定会好好利用图书馆及网络资源,扩充自己的知识面。与此同时会花更多的时间与大家交流,来使彼此成长的更快。7、2编写所遇问题1、Visual C+ 6.0运行平台没有图形处理函数2、系统坐标和常规坐标系不一致3、画线函数只能画出线段不能画出直线4、整个图形处理函数只能在整数单位上标点7、3问题解决方案1、在网上找到了图形处理函数头文件,将该文件安装到Visual C+ 6.0上,就可以在Visual C+ 6.0运行图形处理函数。2、添加一个坐标转换函数,使得坐标系与常规坐标系一致。3、将线段的两个端点的坐标按照比例进行延长,使得两个端点坐标在窗口之外,这样视觉上就是一条直线。4、整个计算过程采用双精度进行计算,在画图时将双进度转化为整型变量,这样就可以运用图形处理函数。8、参考文献【1】谭浩强编著.C程序设计(第四版),北京,清华大学出版社,2010年【2】明日科技编著.C语言从入门到精通(实例版),北京,清华大学出版社,2012年9月【3】


    注意事项

    本文(C语言课程设计报告 简单图形处理系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开