实验设计四(交通事故分析).doc_第1页
实验设计四(交通事故分析).doc_第2页
实验设计四(交通事故分析).doc_第3页
实验设计四(交通事故分析).doc_第4页
实验设计四(交通事故分析).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京信息科技大学实验设计报告课程名称 面向对象程序设计实验设计题 目 交通事故分析 指导教师 李 春 强 设计起止日期 设计地点 系 别 信安 专 业 _信安_学生姓名 _王鑫_班级/学号 _信安1102 _王鑫_2011012245_ 成 绩 _1. 课程设计目的:通过本实验使学生利用面向对象程序设计软件开发方法,即软件开发过程划分为明显的几个阶段:问题分析和功能定义、对象设计及实现、核心控制设计、编码与测试、进化等实现线性衰减和数值方法分析方面的应用。2. 课程设计内容:创建与数据最符合的两条直线。一条直线在到达事故数量顶点时的车辆密度之前一直增加。另一条直线从该点开始一直降低。图4-1给出了收集的示例数据(由圆代表)及数据最相符的直线。编写一个程序,来创建与代表12月份(详细数据请参见3.课程设计要求)交通状况的一组(x,y)数据点最符合的直线。这些点代表观测数据,x为车辆密度,y为事故数量。程序共应输出4个值:直线1的斜率(m1)直线1的截距(b1)直线2的斜率(m2)直线2的截距(b2)事 。 。 。 。故 。 。 。 。 。 。 。 。数 。 。 。量 车辆密度(每100m的车辆数量)图4-1 事故数量与车辆密度的关系3. 课程设计要求:(1) 问题描述对于特定长度的高速公路,公路上的车辆密度(每100米车辆的数目)与事故发生的数量有关。一般认为,事故的数量随某一点的车辆密度的增加而增加。然而,当车辆密度超过某一特定值时,由于拥挤,车辆平均速度下降,事故的数量也随之下降。为了预测事故发生频率,并帮助改进高速公路设计,我们希望由观测数据来推导车辆密度及事故数量之间的关系。(2)解决方案在此给出最佳直线的斜率及截距的方程。n = number of pointsc = i=1 n xid = i=1 n yie = i=1 n xi2f = i=1 n yixi注意,c为所有数据点的x坐标值的和,d为所有数据点的y坐标值的和。变量e为x坐标值的平方和,f为数据点的xy积的和。最佳直线的斜率(m)和截距(b)为:m = (nf-cd)/(ne-c2)b = (de-cf)/(ne-c2)(3)具体示例12月份数据如表4-1所示。利用该数据进行计算。表4-1 12月份的数据数据点车辆密度(x)事故数量(y)01.4312.0622.3434.5746.21056.71567.01178.51889.013912.7171013.1151117.7161218.5111320.35注意,事故数量的最大值为18(在第7个点)。因此,我们用点0-7来创建第一条直线,用点7-13来创建另一条直线。对于第一条直线:c = sum of the x value = 1.4+2.0+7.0+8.5=38.6d = sum of the y value =3+6+11+18=74为获取e的值,将x值的平方求和: e = 1.42+2.02+7.02+8.52 = 236.08为了获取f的值,首先求每x,y的积,然后求和: f = 1.4(3)+2.0(6)+7.0(11)+8.5(18)=449.4对于第二条直线:c = 8.5+9.0+18.5+20.3=99.8d = 18+13+11+5e = 8.52+9.02+18.52+20.32 = 1553.78f = 8.5(18)+9.0(13)+18.5 (11)+ 20.3 (5)=1270.6将这些值带入给出的求m及b的方程:m1 = 1.853b1 = 0.3087m2 = -0.6403b2 = 22.70这样,最佳直线y = mx+b的方程为:直线1: y = 1.853x+0.3087 从x =1.4 到x = 8.5直线2: y = -0.6403x+22.70 从x =8.5到x = 20.3(4)类及对象程序分析:首先,在交通事故分析中,分为事故数据(Traffic)的计算类及线形衰减(Linear_regress)类两部分。其次,类应该由什么组成。如: Traffic类由数据点组成。另外,我们需要事故数量最大值的数组下标及数据点的数量。函数成员应能通过读输入文件来初始化这些数据、找出事故数量最大值的数组下标,并且与Linear_regress类交互以获得两条直线。Linear_regress类需知道它使用的点的数量,它需访问这些被计算的点,它需要通过这些点的线的数据。所以,其数据成员应为数据点(或数据点数组的起始地址)、数据点的数据及创建的直线的斜率和截距。在此,Linear_regress类仅需要由数据创建最佳直线,为简单起见,我们仅使用一个函数成员。 注意,这些数据使用了点和直线。在程序application4.cpp中,我们描述了简单的仅包含数据成员的Point及Line结构。在这个程序中,我们将其用作类,这意味Point及Line对象可作为Linear_regress及Traffic的数据成员。第三,这些数据应如何交互? Linear_regress类包含类型为Line的普通数据成员,及可被Traffic用来执行衰减的成员函数。Traffic包含Point类型的数组,及指向Linear_regress类对象的指针。4. 实验条件:(1)主要设备: 586或更高机型,256MB或更高的内存,40G或更大的硬盘。(2)主要软件:操作系统可为Windows9X、WinMe、Win2000或更高版本等;开发环境为VC+6.0或者TC+3.0。(3)参考书目:C+ 课堂教学与编程演练 作者:(美)奥瑞兹(DOrazio,T.B)著,侯普秀译 清华大学出版社数据结构及应用算法教程严蔚敏等编著 清华大学出版社2001年2月第1版5. 实验方法与步骤:#include#include#include#includeusing namespace std;class Linear_regress/计算类public:Linear_regress()/无参构造c=0;n=0;f=0;d=0;m1=0;b1=0;e=0;m2=0,b2=0;void line(double d1,double s1,int num,int sum)/计算函数,flag=1表示上升,flag=0 表示下降int i; /上升线段for(i=0;i=num;i+) c+=d1i;d+=s1i;e+=d1i*d1i;f+=d1i*s1i; n=num+1;m1=(n*f-c*d)/(n*e-c*c);b1=(d*e-c*f)/(n*e-c*c);cout上升曲线的斜率: m1endl;cout上升曲线的截距: b1endl;c=0;d=0;e=0;f=0;for(i=num;isum;i+)c+=d1i;d+=s1i;e+=d1i*d1i;f+=d1i*s1i;n=sum-num;m2=(n*f-c*d)/(n*e-c*c);b2=(d*e-c*f)/(n*e-c*c);cout下降曲线的斜率: m2endl;cout下降曲线的截距: b2endl;cout最佳方程组解是endl;printf(y=%.2f+%.2fn,m1,b1);printf(y=%.2fx+%.2fn,m2,b2);private:int n;double c,d,e,f,m1,b1,m2,b2;class traffic/数据类public:traffic():j(0),c(0)/构造void read()/读数据函数int i=0; string temp;double max=0;cout- 交通事故分析 -temp;ifstream f;f.open(C:wangxin4.txt);while(!f.eof() ftemp; i+;i=i/3;n=new inti;d=new doublei;s=new doublei;f.close();f.open(C:wangxin4.txt);c=i;/c为总数i=0;cout数据点 车辆密度 事故数量nidisi;if(simax)/j为最大点的数据点max=si;j=i;coutni di siendl;i+;cout最高点: njdjsji;return 0;6. 实验总结: 通过本实验我学会了利用面向对象程序设计软件开发方法,即软件开发过程划分为明显的几个阶段:问题分析和功能定义、对象设计及实现、核心控制设计、编码与测试、进化等实现线性衰减和数值方法分析方面的应用。本次课设的结果是:对于特定长度的高速公路,公路上的车辆密度(每100米车辆的数目)与事故发生的数量有关。一般认为,事故的数量随某一点的车辆密度的增加而增加。然而,当车辆密度超过某一特定值时,由于拥挤,车辆平均速度下降,事故的数量也随之下降。为了预测事故发生频率,并帮助改进高速公路设计,我们希望由观测数据来推导车辆密度及事故数量之间的关系附录:存储文件的格式0 1.4 31 2.0 62 2.3 43 4.5 74 6.2 105 6.7 156 7.0 117 8.5 188 9.0 139 12.7 1710 13.1 1511

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论