版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、运算机科学与技术系上机实验报告课程:C+语言程序设计老师:姓名:(老挝留学生)班级:计科101班学号:学院:运算机科学与信息学院实验日期:年 月日实验一一、实验名称类和对象二、实验目的及要求设计一个类,并对其属性进行操作。三、实验环境Microsoft Visual Studio 2020四、实验内容1,概念一个dog类,包括age, weight等属性。和对这些属性的操作方式。实 现并测试那个类。2,设计一个rectangle类,其属性为矩形的左下角与右上角的坐标,依照坐标计 算矩形的面积。五、算法描述及实验步骤Dog+Dog(n: string , ag: int ,we: int)+ge
2、t()+show()+-Dog()-name: string-weight: int-age: intRectangle+get(): void+show(): void-Xl:int-X2: int-Yl:int-Y2: int六、调试进程及实验结果1,保留源程序代码,并宣称解决方案。2,调试并执行。3,输出为:the message of dog is:name :tutu age :2 weight:20input the name age and weight of dog花花3 60the message of dog is:name:花 花 age: 3 weight: 60the
3、 message of dog is:name :hua age :4 weight:60calledcalled请按任意键继续输入左下角的坐标:36输入右上角的坐标:47两点的坐标左下角的坐标:(3,6)右上角的坐标乂 4,7)面积为:1输入左下角的坐标:1 0输入右上角的坐标:26两点的坐标左下角的坐标:(1,0)右上角的坐标。,6)面积为:6请按任意键继续七、总结1,构造函数用于对对象的初始化,在概念类时,若是没有概念构造函数,系统 将自动生成一个简单的构造函数。2,构造函数没有返回值,不许诺显示挪用,创建对象时,系统将自动挪用相应 的构造函数。3,析构函数是对对象进行最后的清理工作,它
4、不许诺有参数,没有返回值。若 是没有概念析构函数,系统将自动生成。4,对象的私有成员,能够通过成员函数访问,类外不能访问对象的私有成员。八、附录1,#include<iostream>#include<string>using namespace std;class Dog( public:Dog(string n,int ag,int we);void get();void show();Dog()( cout«ncalled M«endl; private:string name;int weight;int age;;include1111Do
5、g:Dog(string n,int agjnt we):name(n),age(ag),weight(we) void Dog:get() (cout«Minput the name age and weight of dogH«endl;cin»name»age»weight;1 Jvoid Dog:show()cout«Hthe message of dog is:H«endl;cout«Hname:H«name«H age:,«age« weight:«we
6、ight«eiidl; ) include" Hint main()Dog dog("tutu”,2,20);0;0;0;Dog dogl(Mhua,4,60);0;return 0;)2,#include<iostream>#include<string> using namespace std;class Rectangle public:void get();void show();private:int xl,x2,yl,y2;include""void Rectangle: :get() coutvv”输入左下
7、角的坐标:"«endl;cin»xl»yl;coutvv ”输入右上角的坐标:“ vvendl;cin»x2»y2;)void Rectangle:show()coutcv”两点的坐标"vvendl;coutvv”左下角的坐标:("«xl«","«yl«")"«endl;coutvv”右上角的坐标:(”v<x2v<”,"vvy2vv")"vvendl;coutvv"面积为:&
8、quot;«(x2-x 1 )*(y2-y l)«endl;) Rectangleinclude""int main()(Rectangle rl;0;0;Rectangle r2;0;0;return 0;)实验二一、实验名称类与对象二、实验目的及要求熟悉设计简单类及测试的方式。三、实验环境Microsoft Visual Studio 2020四、实验内容1,设计一个人事治理类,其属性有编号、性别、诞生年月、身份证号等 其中诞生年月声明为一个日期类内嵌子对象。实现对成员信息的录入和输出。要 求包括:构造函数析构函数、复制构造函数、内联成员函数、带默许
9、形参值的成 员函数、类的组合。2,概念一个复数类complex,是下面的程序代码能够工作:HuniainDate+date(y:int=O,m:int=O.d:int=O)+get():void+show():void+date()-year:int-month:int-day:intComplexcl(3,5);Complex+complex(a:fioat=0,b:fioat=0)+add(p:&complex):void+show(p:&complex):void-real: float-imag:float,. number:+5i请按任意键继续.七、总结1,类的组合
10、铛铛前类所利用的类尚未概念时,在当前类中只能成立此类的引 用。若是已经概念在前,就能够够直接成立对象。2,访问子对象中的可访问成员用“当前类子对象成员”的形式。3,内联成员函数:用关键字“inline”声明,在程序挪用内联成员函数时,并非 真正执行函数的挪川进程,如保留返回地址等处置,而是把函数代码嵌入程序的 挪用点,如此能够减少挪用成员函数的时刻。4,带默许参数的函数:由于函数调历时,实参和形参的结合是从左到右顺序进 行的,因此指定默许值的参数必需放在参数列表的最右端。八、附录1, humain e h 文件#include<iostream>#include<string
11、>using namespace std;class datepublic:date(int y=Ojnt m=OJnt d=0);void get ();void show();-date()(cout"called dateH«endl;)private:int year;int month;int day;1;lass huniain(public:humain();humain(humain &p);void get(humain &p);void show(humain &p);private:date berthday;string
12、 name;string CD;string six;string number;Humain cpp 文件include""date:date(int y,int m,int d):year(y)jnonth(m)Jay(d) void inline date:get() cout«Hinput year month and dayn«endl;cin»year»month»day;)void date:show() cout«year«,7,«month«,7',«
13、;day«endl;)humain: :humain()name=M n;CD二" ”;six=" n;number、心;)humain:humain(humain &p)berthday=;name=;CD=;six=;number=;)void humain:get(humain &p)cout«Minput the name six CD and number:H«endl; cout«',name:u;cin»name;cout«Msix:H;cin»six;cout
14、71;"CD:"cin»CD;cout«Hnumber:H;cin»number;cout«Minput berthday:n;humain:show(humain &p)(cout«Mname: H«name«endl;cout «Hsix:H«six«endI<<"CD:,«CD«endl«Hnumber:H«number«endl;cout«Hberthday:n;main cpp
15、 文件include""int niain()humain pl;cout«Mthe frist one befor setn«endl;(pl);cout«Hthe frist one after setH«endl;(pl);(pl);humain p2(pl);cout«Mp2H«endl;(p2);return 0;2,Complex h 文件#include<iostream>using namespace std;class complexpublic:complex(float a=0,f
16、loat b=0);void add(complex &p);void show();private:float real;float imag;Complex cpp 文件include""complex:complex(float a,float b):real(a)Jmag(b) void complex:add(coniplex &p)real=real+;imag=imag+;)void complex:show()(cout«real«H+H«imag«Hin«endl;)Complex main
17、 cpp 文件include""int main()complex cl(3,5);complex c2=;(c2);0;return 0;)实验三一、实验名称数据的共享与爱惜二、实验目的及要求把握对静态成员、静态函数、友元函数的利用方式。三、实验环境Microsoft Visual Studio 2020四、实验内容1,概念一个cat类,拥有静态成员numofcat,记录cat的个体数量;静态成员函 数 getnumofcat (),读取 numofcat。2,概念boat与car两个类,二者都有weight属性,概念二者的友元函数 gettoalweight (),计算
18、二者的重量和。五、算法描述及实验步骤+cat()+get(): void+show(): void«static»+getnuinofcat(): void«static» - numofcat: int- name: string- num: stringboat+boat(n: string, nu :string, we: string)«friend»+gettoalweight(pl: boat&.p2:car&) +get(): void+show(): void- name:string- num: st
19、ring- weight: int+car(n: string, nu :string, we: string) «friend»+gettoalweight(pl: boat&,p2:car&) +get(): void+show(): void- name:string- num: string- weight: int六、调试进程及实验结果1,保留源程序代码,并宣称解决方案。2,调试并执行。3,输出为: 1, input the name tutu name:tutunum:l numofcat: 1call static numofcat: 1 in
20、put the name hua name:huanum:2numofcat:2 call static numofcat:2 请按任意键继续. .2, boatname:feng num:012002weight: 60 carname: bennum:0054weight: 80140tutu 0124 90baoma 0142453 100boatname:tutunum:0124weight:90 carname: baoma num:0142453weight: 100190请按任意键继续七、总结1,静态成员,不属于任何对象,系统单独非配空间。静态数据成员具有一样静态 数据的特点,即
21、只在第一次赋值。2,静态数据成员能够被所在类的成员函数访问,由于静态成员函数的形参中没 有this指针,因此静态成员函数不能直接访问非静态成员数据,能够通过对象名 的方式访问。3,若是一个函数被声明为以为类的友元函数,那么那个函数就能够够访问那个 类中的所有成员。4,有元不能够传递:如声明a是b的有元,b是c的有元。那么b不是a的有元, c也不是b的有元,a不是c的有元。八、附录1, cat h 文件#include<iostream>#include<string> using namespace std;class catpublic:cat()name=H H;n
22、umofcat+; num=numofcat;)void get();void show();static void getnumofcat();private:static int numofcat;string name;string num;Cat cpp 文件#include,M, int cat:numofcat=0;void cat:get()(cout«Minput the name cin»nanie;)void cat:show()(cout«Hname: H«name«endl;cout«Hnum:H«n
23、uni«endl;cout«Mnumofcat:,«nuniofcat«endl;)void cat:getnumofcat()(cout«Mcall staticn«endl;cout«Mnumofcat:n«numofcat«endl;)Cat main cpp 文件#include,IH int main()cat catl;0;0;0;cat cat2;0;0;0;return 0;)2,Car and boat h 文件#include<iostream>#include<st
24、rin2>using namespace std;class car;class boatpublic:boat(string n,string mi,int we);void friend gettoalweight(boat &pl,car &p2);void get();void show();private:string name;string num;int weight;class car(public:car(string n,string nujnt we);void friend gettoalweight(boat &pl,car &p
25、2);void get();void show();private:string name;string num;int weight;Car and boat cpp 文件include""void gettoalweight(boat &pl,car &p2)cout«+«endl;)boat:boat(string n,string nikint we):name(n),num(nu)Aveight(we) void boat:get()(cin»name»num»weight;)void boat:s
26、how()(cout«MboatH«endl;cout«Hname:H«name«endl«Hnum: H«num«end 1«Hweight:H«weight«endl;)car:car(string n,string we):name(n),num(nu),weight(we)void car:get()(cin»name»num»weight;)void car:show()(cout«McarH«endI;cout
27、«Mname: H«name«endl«Hnum: H«num«end 1«H weight: H«weight«endl;)Car and boat main cpp 文件include""int main()(boat b("feng":'012002",60);car c("ben";'0054",80);0;0;gettoalweight(b,c);0;0;0;0;gettoalweight(b,c);
28、return 0;)实验四一、实验名称MFC对话框应用程序二、实验目的及要求了解并设计一个MFC对话框三、实验环境Microsoft Visual Studio 2020四、实验内容设计一个对话框应用程序,在对话框模板上添加控件,实现简单计算功能运行时界面如下五、算法描述及实验步骤1 .创建一个对话框2修改创建的对话框项目模板。删除模板上自动创建的两个控件。加入需要的静 态文本框、编辑框和按钮控件,更改按钮的题目。3 .用ClassWizard为编辑框添加变量。4 .用ClassWizard为按钮控件添加消息映射:5 .添加初始化代码:(在文件)6 .在实现文件(cpp文件)中加入单击按钮时的
29、事件响应代码。(双击一个按钮 可直接进入函数编辑)六、调试进程及实验结果1,保留源程序代码,并宣称解决方案。2,调试并执行。3,运行结果:1.33333结果O +清除退出Bf Cl数1数2结果0计苴器。+O-O*计箕洛除退出七、总结m£c是类和对象的简单应用。八、附录在BOOL CmfclDlg: :OnInitDialog()函数中添加: m l=m 2=m 3;UpdateData (FALSE);程序段。char f;void CmfclDlg:OnBnClickedRadiol()void CmfclDlg:0nBnClickedRadio2()void CmfclDlg:0
30、nBnClickedRadio3() (f='*';)void CmfclDlg:0nBnClickedRadio4()f ='/')void CmfclDlg:OnBnClickedButtonl ()(UpdateData(TRUE);switch(f)(case ' +':m 3=m 1+m 2;break;case ' -':m 3=m l-m 2; break;case '*':m 3=m l*m 2; break;case ':if(m_2=0 )MessageBox(_T ("除y数
31、"y不?能"1 为a零?! ©?"); else m_3 二break;)default:m 3=m 1+m 2;void CmfclDlg:OnBnClickedButton2()(UpdateData(TRUE);m_l=0;m_2=0;m_3-0;UpdateData(FALSE);实验五一、实验名称MFC单文档应用程序二、实验目的及要求了解并设计一个简单的MFC单文档应用程序三、实验环境Microsoft Visual Studio 2020四、实验内容用MFC单文档设计一个直方图和一个转动字幕五、算法描述及实验步骤A 直方图利用AppWixar
32、d生成单文档工程tt在中类CttDoc的概念之前加入类Max的概念,并在的文件尾部加入类Max的实现部份。用来求四个数中的最大数。为CttDoc类增加一个公有的void类型的成员函数Find和一个公有int数据成员数组 m_num|5,利用类产生对象并计算它们的最大值,将它们转换成int,存入整数数组m_num。 为CttDoc类的成员函数OnNewDocument增加挪用Find函数语句,为画图预备数据。在视类中的OnDraw函数添加画图写字代码。B转动字幕1 .创建一个简单的单文档应用程序gd;2 .在中概念一个私有变量n,用于操纵输出文字的初始位置和移动。并在构造函数中对其初 始化。3
33、.在文件中修改OnDraw函数。4 .添加三条消息映射:双击鼠标左右键及时刻映射,并加入相应代码。添加方式:项目今 类向导消息相应的函数3添加项目编译代码。5 .添加菜单操纵与代理。方式:点击视图资源视图Menu文件夹MAINFRAME,进入菜单编辑。添加运行子菜单:启动和停止及其消息映射(右键-添加事件处置程)。在消息类型当选择COMMAND,在类列表当选择 CgdView,并在函数处置程序名称栏修改函数名。点击添加编辑添加相应的函数。六、调试进程及实验结果1,保留源程序代码,并宣称解决方案。2,调试并执行。3,输出为:各公司例售点季累月密官JB施方出B输出如以下图:(点击运行菜单中的启动和
34、停止按钮,或双击鼠标的左右键,字幕会执行 相应的动作)Y无标31cd七、总结Microsoft Visual Studio 2008 与 Microsoft Visual Studio 2020 有专门大的不同。八、附录A添加的类Max概念:class Maxdouble xl,x2,x3,x4;double Max2(double,double);public:Max(double,double,double,double);double Max4(););2 .添加的类Max实现部份:double Max:Max2(double a, double b)if(a>=b) return
35、 a;else return b;)Max:Max(double a, double b, double c, double d)xl=a;x2=b;x3=c;x4=d;double Max:Max4()retu rn Max2( Max2( x 1 ,x2),Max2( x3,x4);3 .添加的 Find 函数:void CPlotDoc:Find()Max a, 110.68);Max b(130,90, 200);Max c(125, 350,330);Max d(120, ,300,;Max e(102, 120,105);m_num0 = (int) a. Max4();m_num
36、l = (int) b. Max4();m_num2 = (int) c. Max4();m_num3 = (int) d. Max4();m_num4 = (int) e. Max4();)4 .修改后的OnDraw函数:void CPlotView: :OnDraw(CDC* pDC) (CPlotDoc* pDoc = GetDocunientO;ASSERT_VALID(pDoc);在文件中修改后的OnDraw函数:void CXxx2View:OnDraw(CDC* pDC) (CXxx2Doc* pDoc = GetDocumcntO;ASSERT_VALID(pDoc);if (
37、!pDoc)return;pDC->SetTextColor(RGB(0,0,235);pDC->SetBkMode(TRANSPARENT);CFont font;(28,15,0AFW_NORMAL,false,false,false,DEFAULT_CHARSET,OUT_DEVICE_PRE CIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,_T隶书”);pDC->Se!ectObject(&font);pDC>TextOut(n,100,_T(“世上无难事,只要肯登攀! ”); n=n+20;R
38、ECT r;GetClientRect(&r);咫区-3A«b川S4* 飞» -*5 cya.b»&x-、na.k»%*iw“ C7«k-b»Tl»(l工?。“”,1”0 供3«,.Qi 七 C4"» 一6 S Cltlalc£±AWFA1元2«瞅iGWW/外现次与仅3*50羽片”外C&电关于 5口"25a 130七字体T«Am(9)使用字首Tn« »9BJt«e. (J2c0£e的
39、WK 6补 eatw四个编辑框添加事件处置程序,如以下图:事件处理程底向导yy命令名:欢迎使用事件处理程方向导IDC_EDITS消息类型(1):lEN_CHAWGEzvENJKRSFACE EN_HSCROELs*函数处理程序名称国): OnEnChwcE di tSCOutputWndCFropertiesToolBar CPi-opcr ti csWnd CVi awTroo CyyApp CyyDoc|CyyViewO类列表):处理程序说明:指示文本更改以后显示已更渐W2ZR赤加编竭(A)并添加相应的函数。1 .在Doc头文件中添加变量,并在的构造函数中初始化变量。2 .在的串行化代码。
40、3 .为ffView类添加OnDraw函数,添加方式如以下图:类视图络按举型筛选co匕 1 y =» |转到”对话他选添加函数突向导口.0 O f£度=映射 至宏和 0全房由七CAbc 由毛CCLe 由.而CCLe 由 CC1? 争/CfB 由 C££T复制CO按字母顺序排序 按对象类型排序 按对象访问排序 按对象类型分组属性匚mlC££ViowCFi.laVi.cwCFi.lcV£cwToolBcu- CMai iJFvm© COutpKltLei 25 t COutputWnd2 C£fView 07。AssertVali d 0 constCffView 0DoDataEs<cltaitze (CDat aExc Dijunp (CDumpC onteict a du) Ga tDociifnortt 0 c ortst OrtCort* pWiOrLExtCKcmgoE di tl () OxtExtCKneE dx t.2 0 OnExtCKmeE dx t4 0B六、调试进程及实验结果1,保留源程序代码,并宣称解决方案。2,调试并执行。3,输出为: 勺口 *J CVa«k»Dc<-七 CTS'M” "TF23
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 增强现实技术应用合作协议
- 电力建设招议标管理办法
- 旅游景区宣传演员聘用协议
- 城市绿化景观设计改造提升合同
- 车牌租赁代售合同范本模板
- 瑜伽馆装修协议
- 生态园苗木采购施工合同
- 交通运输业工伤员工管理手册
- 农村交通改善项目合同
- 高速公路稽查业务培训
- 医院开展老年友善医疗机构建设工作总结
- 马克思主义基本原理概论智慧树知到答案章节测试2023年泰山学院
- 餐饮档口和门店消防安全培训
- 喷锡培训教程
- 幼儿园卫生知识讲座
- (完整)土地复耕实施方案
- 马工程政治学概论思考题答案
- 关于加强校园欺凌行为预防治理的说明报告
- 汽车露营营地质量5c标准等级划分认定细则(2021版)
- 地理实践力ppt课件版 地理实践力 彭春莲组
- 水对种子发芽的影响
评论
0/150
提交评论