您好,欢迎访问三七文档
实验一技术开发文档1.需求分析(1)显示输入的点的坐标。(2)已知直线上两点的坐标,求取直线的斜率、截距和直线方程。(3)已知圆心坐标,圆的半径或直径,求取圆的周长、面积和圆的方程。(4)已知矩形一点的坐标,一边与x轴夹角的弧度值及两边长度,求取矩形四个点坐标、圆心坐标、周长、面积和矩形方程。(5)已知抛物线上一点的坐标及抛物线的对称轴,求取准线方程、抛物线开口方向和抛物线方程。2.概念抽象(1)定义点类,在点类中定义xinput()、yinput()和point_output()三个函数。(2)定义线类,在线类中定义first_point_input()、second_point_input()、tile_rate(_x1,_y1,_x2,_y2)、intercept(_k,_x1,_y1)和line_output()五个函数。(3)定义圆类,在圆类中定义circle_center_input()、r_or_d_input()、circle_perimeter()、circle_area()和circle_output()五个函数。(4)定义矩形类,在矩形类中定义rectangle_input()、rectangle_points()、rectangle_perimeter_and_area()和rectangle_output()四个函数。(5)定义抛物线类,在抛物线类中定义parabolic_input()和parabolic_output()两个函数。注:函数定义及具体应用详见附件3.类的分析及说明附件:点、线、圆、矩形、抛物线的对象定义源代2实验二技术开发文档1.需求分析(1)定义AD、DA板卡类,完成对板卡的封装;(2)实现单通道和多通道的单点采集、多点采集、大批量采集;(3)实现单通道和多通道的单点输出、多点输出;2.现实世界(1)AD采集PCI8932板卡AD采集过程为创建设备对象、判断创建设备对象是否成功、用户从键盘选择输入量程、设置硬件参数、初始化AD、判断AD初始化是否成功、数据采集、电压转换并显示。定义AD板卡类,在类中定义创建设备对象函数、选择输入量程函数、设置硬件参数函数和初始化AD函数,从而完成对板卡的封装。(2)DA输出PCI8932板卡DA输出的过程为创建设备对象、判断创建设备对象是否成功、用户从键盘上输入DA通道号、用户从键盘上输入电压值和输出恒定电压。定义DA板卡类,在类中定义创建设备对象函数,从而完成对板卡的封装。注:函数定义及具体应用详见附件3.类的分析及说明(1)AD采集类图(2)DA输出类图附件:AD采集源代码DA输出源代码附件点、线、圆、矩形、抛物线的对象定义源代码3//该程序用于几何图形点、线、圆、矩形、抛物线的对象定义//线由点派生;圆由点派生;矩形由线派生;抛物线由点派生//可以获得几何图形的特征点、特征线等参数#includeiostream#includecmathusingnamespacestd;constdoublePI=3.14159;//定义点类classPoint{public:doublexinput();//输入点的横坐标doubleyinput();//输入点的纵坐标voidpoint_output();//输出点的坐标private:doublex;doubley;};//定义线类classLine:publicPoint{public:voidfirst_point_input();//输入线上一点的坐标voidsecond_point_input();//输入线上另一点的坐标doubletile_rate(double_x1,double_y1,double_x2,double_y2);//计算直线的斜率doubleintercept(double_k,double_x1,double_y1);//计算直线的截距voidline_output();//回显输入两点的坐标,输出斜率、截距和直线方程private:doublex1;doubley1;4doublex2;doubley2;doublek;doubleb;};//定义圆类classCircle:publicPoint{public:voidcircle_center_input();//输入圆心坐标voidr_or_d_input();//输入半径或直径doublecircle_perimeter();//计算圆的周长doublecircle_area();//计算圆的面积voidcircle_output();//回显输入的圆心坐标、半径或直径,输出圆的方程private:charans;doubleox;doubleoy;doubler;doubled;doublel;doubles;};//定义矩形类classRectangle:publicLine{public:voidrectangle_input();//输入矩形一点的坐标,一边与x轴夹角的弧度值及两边长度voidrectangle_points();//计算矩形四个点和圆心的坐标voidrectangle_perimeter_and_area();//计算矩形周长和面积voidrectangle_output();//回显输入,输出矩形四个点和圆心坐标、周长及面积private:doublex1,y1;doublex2,y2;doublex3,y3;doublex4,y4;doublex_O,y_O;doubleangle;doublelength_1;doublelength_2;doublel;5doubles;};//定义抛物线类classParabolic:publicPoint{public:voidparabolic_input();//输入抛物线上一点的坐标voidparabolic_output();//选择抛物线的对称轴//计算并输出抛物线方程,准线方程及抛物线开口方向private:doublex;doubley;doublep;charans;};intmain(){charans;coutPleaseenteralettertochoosethegeometrygraphthatyouwanttohandle.\n;coutpforpointandlforline\ncforcircleandrforrectangle\ntforparabolic\n;cinans;//选择要处理的几何图形if((ans=='p')||(ans=='P'))//处理点{Pointpoint;coutEnterthecoordinatesofthepoint:\n;//输入点的坐标point.xinput();point.yinput();coutthecoordinatesofthepointisendl;//输出点的坐标point.point_output();coutendl;}elseif((ans=='l')||(ans=='L'))//处理线{Lineline;coutEnterthecoordinatesoftwopoints:\n;//输入线上两点的坐标coutEnterthecoordinatesofthefirstpoint:\n;line.first_point_input();coutEnterthecoordinatesofthesecondpoint:\n;line.second_point_input();6line.line_output();coutendl;}elseif((ans=='c')||(ans=='C'))//处理圆{Circlecircle;coutEnterthecoordinatesofcirclecenter:\n;//输入圆心坐标circle.circle_center_input();circle.r_or_d_input();circle.circle_perimeter();circle.circle_area();circle.circle_output();coutendl;}elseif((ans=='r')||(ans=='R'))//处理矩形{Rectanglerectangle;rectangle.rectangle_input();rectangle.rectangle_points();rectangle.rectangle_perimeter_and_area();rectangle.rectangle_output();coutendl;}else{Parabolicparabolic;//处理抛物线coutEnterthecoordinatesofonepointontheparabolic:\n;parabolic.parabolic_input();parabolic.parabolic_output();}return0;}doublePoint::xinput(){coutPleaseinputthexaxiscoordinateofthepoint.endl;cinx;returnx;}doublePoint::yinput(){coutPleaseinputtheyaxiscoordinateofthepoint.endl;ciny;returny;}7voidPoint::point_output(){cout(x,y)endl;}voidLine::first_point_input(){x1=xinput();y1=yinput();}voidLine::second_point_input(){x2=xinput();y2=yinput();}doubleLine::tile_rate(double_x1,double_y1,double_x2,double_y2){double_k;_k=(_y2-_y1)/(_x2-_x1);return_k;}doubleLine::intercept(double_k,double_x1,double_y1){double_b;_b=_y1-_k*_x1;return_b;}voidLine::line_output(){k=tile_rate(x1,y1,x2,y2);b=intercept(k,x1,y1);coutThecoordinatesofthetwopointsare:\n(x1,y1)(x2,y2)endl;coutThetilerateofthelineiskendl;coutTheinterceptofthelineisbendl;coutTheequationexpressionofthelineis;if((k==0)&&(b==0))couty=0endl;8elseif((k==0)&&(b!=0))couty=bendl;elseif((k!=0)&&(b==0))couty=kxendl;elsecouty=kx+bendl;}voidCircle::circle_center_input(){ox=xinput();oy=yinput();}voidCircle::r_or_d_input(){coutPleaseenteraletter:rforradiusanddfordiameter\n;cinans;if(ans=='r'){coutEntertheradiusofthecircle:\n;cinr;}else{coutEnterthediameterofthecircle:\n;cind;}}double
本文标题:c++设计技术文档
链接地址:https://www.777doc.com/doc-4574079 .html