- 10
- 0
- 约5.32千字
- 约 13页
- 2017-04-08 发布于湖北
- 举报
中 北 大 学
课程设计说明书
学 院、系:
软件学院
专 业:
软件工程
学 生 姓 名:
学 号:
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 任务概述
用C程序语言编写源程序来验证计算四边形,要求:
1) 在屏幕上能够手动输入待计算的四边形各边边长,顶点、对角线上各点及延长线的交点的名称;
2) 输入完成后通过选择后,可以通过编写的程序验证三角形RMN的面积是四边形ABCD面积的四分之一;
3) 将验证结果显示在屏幕上。
4) 验收时程序能够演示,自己单独做。
3 模块划分
4 主要函数说明及其N-S图
( 1)首先根据提示从键盘手动输入四个定点的坐标,调用“初步检测四边形函数”检查输入的点是否可用,如果有重合在一起的点或AB与CD近乎平行,则异常结束。
(2)其次,推算M、N两个“中点”的坐标,并且调用求交点函数计算BA与CD延长后的交点r的坐标。
(3)接着,调用“计算三角形面积的函数”分别算出四边形abcd和三角形的mnr的面积。计算四边形abcd面积的时候,需要检测该四边形是否为凹四边形,如是,则异常结束,必要地,计算三角形面积的时候需要调用“计算两点间线段距离的函数”。
(4)最后,计算四边形abcd和三角形的mnr的面积之比,并输出结果。
开始
定义 pname[]=ABCD,*p=pname,
Point m,n,r,P[4],*PP=P, double abcd,rmn,abcd1
!ok(P)
Y N
*p
printf(input (x,y) of point %c:,*p)
scanf(%lf%*c%lf,PP-x,PP-y
p++
pp++
fprintf(stderr,invalid input...\n\n)
exit(1)
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()
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)
fabs(abcd1-abcd)EPS
Y N
fprintf(stderr,凹四边形!不行!\n\n)
exit(2)
rmn = area_of_triangle(r,m,n)
printf(as a result\nABCD:RMN=%4.2f:%4.2f=%4.2f\n
,abcd,rmn,abcd/rmn);
图1-1主函数main()
定义side[4],i,j
定义t
j=(i+1)%4
t=length(p[i],p[j])
fabs(t)EPS)
Y
N
side[i]=t
return 0
定义k1,k2
for(i=0;i4;i++)
k1=(p[1].y-p[0].y)/(p[1].x-p[0].x)
k2=(p[3].y-p[2].y)/(p[3].x-p[2].x)
if(fabs(k2-k1)EPS)
Y N
return 0
return 1
图1-2初步检测四边形函
原创力文档

文档评论(0)