




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一 技术开发文档1.需求分析(1)提示输入并显示输入的点的坐标。(2)已知直线上两点的坐标,采用两点式求直线方程,并显示直线长度。(3)输入圆的半径,根据圆周长、面积公式,求取并显示圆的周长、面积。(4)据上已输入两点为坐标求取矩形的面积。(5)以上输入的一点作为抛物线的焦点,再输入任意x值,求取对应的纵坐标与抛物线P值,确定抛物线的标准式。2.概念抽象 (1)定义点类,在点类中定义构造函数Point(),析构函数Point()、virtual Show、double GetX()、double GetY()五个函数与变量x,y,xx,yy,。 (2)定义线类,在线类中定义input()、
2、double GetLineLengh()、virtual Show()三个函数与变量Pa、Pb、pa、pb。 (3)定义圆类,在圆类中定义Radius变量以及Circle()、Circle ()、double GetCircleS()、double GetRadius()、virtual Show()五个函数与Radius、Rr变量。 (4)定义矩形类,在矩形类中定义Rect ()、double GetRectS ()、virtual Show()三个函数与变量Pc、Pd、pc、pd。(5)定义抛物线类,在抛物线类中定义Parabola ()、virtual Show()两个函数与变量Pe、
3、Pf、pe、pf、x、y、p。注:函数定义及功能详见附件。3.类的分析及说明实验二 技术开发文档1.需求分析 (1) 定义AD、DA板卡类,完成对板卡的封装; (2) 实现单通道和多通道的单点采集、多点采集、大批量采集; (3) 实现单通道和多通道的单点输出、多点输出;2.现实世界(1)AD采集PCI8735板卡AD采集过程为创建设备对象、判断创建设备对象是否成功、用户从键盘选择输入量程、设置硬件参数、初始化AD、判断AD初始化是否成功、数据采集、电压转换并显示。定义AD板卡类,定义了ADinit()、ADSet()、ADRead()、ReleaseAD()四个函数来从而完成对板卡的封装。在主
4、函数中直接调用几个函数即可。注:函数定义及具体应用详见附件3.类的分析及说明附件一 点、线、圆、矩形、抛物线的对象定义源代码#include using namespace std;#include class Point public: double x;double y;Point()Point(double xx,double yy)x = xx;y = yy;Point()double GetX()return x;double GetY()return y;virtual Show() cout点坐标为 (GetX(),GetY()endl;private:double xx;dou
5、ble yy;/线由点派生class Line :public Pointpublic:Point Pa;Point Pb;Line()Line(Point pa,Point pb)Pa= pa;Pb = pb;double GetLineLengh()/获取直线长度/double Lx = (Pb.GetX()-Pa.GetX()*(Pb.GetX()-Pa.GetX();/double Ly = (Pb.GetY()-Pa.GetY()*(Pb.GetY()-Pa.GetY();return sqrt(Pb.GetX()-Pa.GetX()*(Pb.GetX()-Pa.GetX()+(Pb
6、.GetY()-Pa.GetY()*(Pb.GetY()-Pa.GetY();virtual Show()cout线段ab的长度为 GetLineLengh()endl;private:double pa;double pb;/圆由点派生class Circle : public Pointpublic:double Radius;Circle()Circle(double Rr)Radius = Rr;Circle()double GetCircleS()return (double)2*3.14*Radius;double GetRadius()return (double)3.14*Ra
7、dius*Radius;virtual Show()cout圆半径为Radiusendl;cout圆周长为GetCircleS()endl;cout圆面积为GetRadius()endl;private:double Rr;/矩形由线派生class Rect:public Pointpublic:Point Pc;Point Pd;Rect()Rect(Point pc,Point pd)Pc= pc;Pd = pd;double GetRectS()return abs(Pd.x-Pc.x)*(Pd.y-Pc.y);virtual Show()cout矩形面积为 GetRectS()endl
8、;private:double pc;double pd;/*矩形由线派生class Rect:public Pointpublic:*/抛物线由点派生class Parabola:public Point public:Point Pe;Point Pf;Parabola()Parabola(Point pe,Point pf)Pe= pe;Pf = pf;virtual Show()cout焦点:(Pf.GetX(),Pf.GetY()endl; coutx; y=sqrt(4*Pf.GetX()*x);p=2*Pf.GetX(); coutx对应的两点纵坐标的值为:y=yendl;cou
9、t抛物线对应的:p=pendl;private:Point point1,point2;double x;double y;double p;double pf;double pe;void main() Point p1; Point p2;Circle circle;cout请输入 p1 点坐标p1.x ;cinp1.y ;p1.Show();cout请输入 p2 点坐标p2.x ;cinp2.y ;p2.Show();Line ab(p1,p2);ab.Show();cout请输入圆半径circle.Radius;circle.Show();Rect Rect(p1,p2);Rect.S
10、how();Parabola Parabola(p1,p2);Parabola.Show();附件二 AD采集源代码-AD.h-#ifndef _AD_#define _AD_#includewindows.h#includePCI8932.hclass CADpublic:CAD();int ADinit(HANDLE hDevice);void ADSet(HANDLE hDevice);int ADRead(HANDLE hDevice);void ReleaseAD(HANDLE hDevice);private:PCI8932_PARA_AD ADPara;/double VOLTi
11、n;/double Dataout;#endif-AD.cpp-#ifndef _AD_CPLUSPLUS_#define _AD_CPLUSPLUS_#includeAD.h#includewindows.h#includePCI8932.h#includestdio.h#includeconio.h#includemath.hint SelectGroundingMode(void);int SelectInputRange(void);int SelectGains(void);#define AD_DATA_LEN 1024*8USHORT ADBufferAD_DATA_LEN;DW
12、ORD dwError;char strErrorMsg256;CAD:CAD()memset(&ADPara, 0, sizeof(ADPara);int CAD:ADinit(HANDLE hDevice)DWORD dwError;char strErrorMsg256;if(hDevice=INVALID_HANDLE_VALUE)dwError=PCI8932_GetLastErrorEx(PCI8932_CreateDevice,strErrorMsg);printf(dwError=%x,%sn,dwError,strErrorMsg);return 0;return 1;voi
13、d CAD:ADSet(HANDLE hDevice)memset(&ADPara, 0, sizeof(ADPara);printf(please input the NO of the first channel and the last channel:n);scanf(%d,&ADPara.FirstChannel);scanf(%d,&ADPara.LastChannel);if(ADPara.FirstChannelADPara.LastChannel)printf(the Last Channel must be more than the First Channeln);sca
14、nf(%d,&ADPara.LastChannel);printf(please set the range of the input voltage,the grouding mode and the gains:n);ADPara.InputRange=SelectInputRange();ADPara.GroundingMode=SelectGroundingMode();ADPara.Gains=SelectGains();if(0=ADPara.GroundingMode)if(ADPara.LastChannel15)printf(the wrong last channel,in
15、put againn);elseif(ADPara.LastChannel7)printf(the wrong last channel,input againn);if(!PCI8932_InitDeviceAD(hDevice,&ADPara)dwError=PCI8932_GetLastErrorEx(PCI8932_CreateDevice,strErrorMsg);printf(dwError=%x,%sn,dwError,strErrorMsg);getch();/PCI8932_ReleaseDeviceAD(hDevice);/PCI8932_ReleaseDevice(hDe
16、vice);int CAD:ADRead(HANDLE hDevice)LONG nReadSizewords;LONG nRetSizewords=0;int ReadCount=0;int ChannelCount=ADPara.LastChannel-ADPara.FirstChannel+1;BOOL bFirstWait=TRUE;nReadSizewords = 512 - 512 %ChannelCount;ReadCount=16*ChannelCount;USHORT ADData;float fVolt;while (!kbhit()bFirstWait = TRUE;if
17、 (bFirstWait)printf(请等待,您可以按任意键退出,但请不要直接关闭窗口强制退出.n);bFirstWait = FALSE;if(!PCI8932_ReadDeviceAD(hDevice, ADBuffer, nReadSizewords, &nRetSizewords)dwError = PCI8932_GetLastErrorEx(PCI8932_ReadDeviceAD, strErrorMsg);printf(dwError = %x, %sn, dwError, strErrorMsg);getch();ReleaseAD(hDevice);int nADChan
18、nel = ADPara.FirstChannel;for(int Index=0; Index ADPara.LastChannel)nADChannel = ADPara.FirstChannel;printf(n);Sleep(200);return 0;void CAD:ReleaseAD(HANDLE hDevice)PCI8932_ReleaseDeviceAD(hDevice);PCI8932_ReleaseDevice(hDevice);int SelectGroundingMode(void)LONG GMode;Repeat2:printf(n);printf(0.the single-ended Grouding Moden);printf(1.the doubleended Grouding Moden);printf(Please Select Grouding Mode0-1:);scanf(%d, &GMode);if(GMode1)printf(the wro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 疫情后线下演出市场复苏2025年数字音乐剧发展趋势报告
- 口才课件教学课件
- 住宅装饰装修管理办法
- 产品严控品质管理办法
- 临沂维修基金管理办法
- 人才集团投资管理办法
- 信息安全工作管理办法
- 中资机构客户管理办法
- 2025网络文学海外市场布局:跨文化传播与本土化战略报告
- 二类精神药品管理办法
- PC桩抗弯检测标准
- 脑梗塞急救流程与公共卫生策略
- 疼痛管理护理试题及答案
- 软式内镜清洗消毒技术规范2025
- 2025安徽蚌埠市城市投资控股集团有限公司所属公司社会招聘11人笔试参考题库附带答案详解
- 人行雨棚施工方案
- 刑事和解协议书自诉
- 三方委托收款协议范本8篇
- 奶茶服务协议合同
- 书籍保密协议书范文
- 基层护理进修后回院汇报
评论
0/150
提交评论