




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 中 北 大 学课程设计说明书学 院、系:软件学院专 业:软件工程学 生 姓 名:学 号:1221011319设 计 题 目:四边形计算 起 迄 日 期: 2013年10月11日2013年11月16日指 导 教 师:李华玲日期: 2013年11月16日1 设计目的 .2 任务概述 .3 模块划分 .4 主要函数说明及其N-S图 .5 程序运行数据及其结果 .6 程序设计心得 .7 附录(代码) .1 设计目的 (1)进一步巩固和复习C程序设计的基础知识; (2)培养学生结构化程序、模块化程序设计的方法和能力; (3)了解软件的编制过程及各环节的具体内容; (4) 提高程序调试技巧、软件设计能力
2、和代码规范化等素质;提高分析问题、解决问题以及实际运用能力。2 任务概述用C程序语言编写源程序来验证计算四边形,要求:1) 在屏幕上能够手动输入待计算的四边形各边边长,顶点、对角线上各点及延长线的交点的名称;2) 输入完成后通过选择后,可以通过编写的程序验证三角形RMN的面积是四边形ABCD面积的四分之一;3) 将验证结果显示在屏幕上。4) 验收时程序能够演示,自己单独做。3 模块划分主函数计算三角形面积的函数计算两直线交点的函数初步检测四边形的函数计算两点间距离大函数4 主要函数说明及其N-S图( 1)首先根据提示从键盘手动输入四个定点的坐标,调用“初步检测四边形函数”检查输入的点是否可用,
3、如果有重合在一起的点或AB与CD近乎平行,则异常结束。(2)其次,推算M、N两个“中点”的坐标,并且调用求交点函数计算BA与CD延长后的交点r的坐标。(3)接着,调用“计算三角形面积的函数”分别算出四边形abcd和三角形的mnr的面积。计算四边形abcd面积的时候,需要检测该四边形是否为凹四边形,如是,则异常结束,必要地,计算三角形面积的时候需要调用“计算两点间线段距离的函数”。(4)最后,计算四边形abcd和三角形的mnr的面积之比,并输出结果。开始定义 pname=ABCD,*p=pname, Point m,n,r,P4,*PP=P, double abcd,rmn,abcd1!ok(P
4、)Y N*p printf(input (x,y) of point %c:,*p)scanf(%lf%*c%lf,&PP-x,&PP-yp+pp+fprintf(stderr,invalid input.nn)exit(1)m.x = (a.x+c.x)/2m.y = (a.y+c.y)/2n.x = (b.x+d.x)/2n.y = (b.y+d.y)/2r= pointOfIntersection()abcd = area_of_triangle(a,b,c) + area_of_triangle(a,d,c)abcd1= area_of_triangle(a,b,d) + area_o
5、f_triangle(b,d,c)fabs(abcd1-abcd)EPSY Nfprintf(stderr,凹四边形!不行!nn) exit(2)rmn = area_of_triangle(r,m,n)printf(as a resultnABCD:RMN=%4.2f:%4.2f=%4.2fn ,abcd,rmn,abcd/rmn); 图1-1主函数main()定义side4,i,j定义tj=(i+1)%4t=length(&pi,&pj)fabs(t)EPS)YNsidei=treturn 0定义k1,k2for(i=0;i4;i+)k1=(p1.y-p0.y)/(p1.x-p0.x)k2
6、=(p3.y-p2.y)/(p3.x-p2.x)if(fabs(k2-k1)x-B-x,2)+pow(A-y-B-y,2)图1-4计算两点间直线距离函数length()开始定义cdx,cdy,abx,aby,dax,day, del,du,dv;cdx = c.x-d.xcdy = c.y-d.yabx = a.x-b.xaby = a.y-b.y;dax = d.x-a.xday = d.y-a.ydel = cdx*aby-cdy*abx;du = dax*aby-day*abx;dv = cdx*day-cdy*dax;du /= dedv /= delr.x = d.x-du*cdxr
7、.y = d.y-du*cdyreture r图1-5计算交点坐标的函数pointOfIntersection ()5 程序运行数据及其结果 四边形与三角形面积之比4:1点重合AB与CD平行四边形是凹四边形6 程序设计心得 这次的课程设计实验是对我们进入大学以来学习C语言结果的一次考验,作为软件专业的学生来说,掌握软件开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。 通过这次课程设计,不仅重温了C语言的知识,而且还强化了对C程序的运行和测试。比如,当用到定义点的变量时,用到了结构体的定义和新类型的定义,知道了怎样用typedef来定义新的
8、类型名,在编程过程中,用到了基本类型有int、char,用到常用运算符及其表达式,赋值,算术,逻辑,还有顺序结构。C语言程序有很多难点,例如数组、指针、结构体,但重点也是它们,只有经过多次应用,才能够牢牢掌握它们。 编好程序之后,要在电脑上运行,运行时,电脑会给你指出代码中的错误,有时候是一些标示符的错误应用,有时候是代码编写格式错误,反反复复,等到把程序调到能够运行了,你会发现,在这个过程中,有很多自己忽略的小知识点,自己把它改正,这就是经验,不仅复习了知识,还得到了提高,我觉得这就是课程设计的目的。7 附录(代码) #include#include#include#define EPS 1
9、e-10typedef struct double x; double y; Point;/*两点之间的直线距离*/double length(Point *A,Point *B) return sqrt(pow(A-x-B-x,2)+pow(A-y-B-y,2);double area_of_triangle(Point A,Point B,Point C) double area,a,b,c,p; a=length(&B,&C); b=length(&C,&A); c=length(&A,&B); p=(a+b+c)/2; area=sqrt(p*(p-a)*(p-b)*(p-c); re
10、turn area;/*初步检测四边形*/int ok(Point *p) double side4;/*4边长*/ int i,j; for(i=0; i4; i+) double t; j=(i+1)%4; t=length(&pi,&pj); if(fabs(t)EPS)return 0; /*不允许有重合在一起的点*/ sidei=t; double k1,k2;/*斜率*/ k1=(p1.y-p0.y)/(p1.x-p0.x); k2=(p3.y-p2.y)/(p3.x-p2.x); if(fabs(k2-k1)x,&PP-y); p+; PP+; /*至此得到四边形的4个顶点的坐标
11、*/ if(!ok(P)/*如果AB/CD则无法相交只好退出*/ fprintf(stderr,invalid input.nn); exit(1); /*异常结束1*/ /*推算M、N两个“中点”的坐标*/ m.x = (a.x+c.x)/2; m.y = (a.y+c.y)/2; n.x = (b.x+d.x)/2; n.y = (b.y+d.y)/2; r = pointOfIntersection(a,b,c,d);/调用求交点函数,并将求出的点赋值给r /*这里计算四边形ABCD的面积*/ abcd = area_of_triangle(a,b,c) + area_of_triangle(a,d,c); /*补充检测四边形,看它的凹凸性*/ abcd1= area_of_triangle(a,b,d) + area_of_triangle(b,d,c); if(fabs(abcd1-abcd)EPS) fprintf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁石油化工大学《班级管理案例》2023-2024学年第二学期期末试卷
- 杭州电子科技大学信息工程学院《油脂化学》2023-2024学年第二学期期末试卷
- 菏泽家政职业学院《规划设计规范》2023-2024学年第二学期期末试卷
- 西南林业大学《建筑工程BM计量与计价》2023-2024学年第二学期期末试卷
- 湖南财政经济学院《装饰工程概预算》2023-2024学年第二学期期末试卷
- 山西艺术职业学院《混凝土结构设计原理双语》2023-2024学年第二学期期末试卷
- 长春医学高等专科学校《药物化学》2023-2024学年第二学期期末试卷
- 克孜勒苏职业技术学院《内科技能训练》2023-2024学年第二学期期末试卷
- 西安医学院《会展管理原理》2023-2024学年第二学期期末试卷
- 上海行健职业学院《环境学基础》2023-2024学年第二学期期末试卷
- 0720小罐茶品牌介绍
- 二级、三级电箱接线图
- 2022年食品卫生通则第三版(中文版)
- 颈椎功能障碍指数,Neck Disabilitv Index,NDI
- 名著导读《红楼梦》PPT课件(完整版)
- 吉林省办学基本标准手册
- 4车道高速公路30米预应力混凝土简支T梁桥上部结构设计_论文
- 体育——常用队列队形的口令及动作要领
- 2020年广东省中考物理试卷分析
- 脱氨蒸氨工段操作规程
- 刑事案件结案登记表
评论
0/150
提交评论