您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > c++实验指导_实验01_cc程序运行环境
1实验一C++程序运行环境(Visual6.0编译系统的使用类及其成员定义)(2学时)1.实习目的及要求:(1)掌握VisualC++6.0基本操作(2)了解C++程序运行环境;(3)掌握简单的C++程序的开发过程(编辑、编译、连接和运行)。(4)掌握类及其成员的定义方法;(5)掌握对象的创建方法;2.预习:C++数据类型、数组、常量、变量、引用类型、控制语句、函数等相关知识。3.VisualC++6.0编程环境简介1.1工程的概念用VisualC++6.0编写任何一个程序前都必须首先创建一个工程(project),一个工程就好象一个工作间,以后这个程序所牵扯到的所有的文件、资源等元素都将放入这个工程中,各个工程之间互不干扰。工程的概念使得我们的编程工作更有条理,更具模块化。1.2操作步骤:(1)运行VisualC++6.0,选择菜单“文件(file)”下的“新建(new)”项,会出现一个选择界面。(2)在界面的属性标题中,选择“工程(projects)”标签。(3)在工程下,选择“Win32ConsoleApplication”,在“工程”文本框(即ProjectName文本框)中写入新建工程的名称---“sample”;在“C位置”文本框中,添入你要存放文件的位置;选择“R创建新工作区”选项。VisualC++6.0会自动“工程”文本框的名字为你建一个同名目录。按“确定”,进入下一个界面。(4)该界面主要是询问用户想要构成一个什么类型的工程。选择“Anemptyproject”项,将生成一个空的工程,工程不包括任何东西。按“完成”进入下一个界面。(5)该界面,VisualC++6.0为你生成一个小型报告,报告的内容是刚才所有选项的总结,并询问你是否接受这些设置。按“确定”后,进入“VisualC++6.0”的编程环境。(6)界面的Workspace窗口中有两个标签,一个是ClassView,一个是FileView。2下端是Output窗口,程序编译、连接、调试等信息在此窗口显示。如果看不到这两个窗口,可选择菜单“查看”(View)下的“工作区”(Workspace)和“输出”(Output)项即可。(7)生成一个源文件。选择菜单“工程”(Project)中的子菜单“添加工程”AddToProject下的“新建”new项,在弹出的对话框中选择“文件”(Files)标签,在列表框中选种C++SourceFile项,在右侧,选中“A添加工程”Addtoproject复选框,在下拉列表中选中sample,然后在“文件”文本框中为将要生成的文件取一个名字,我们为文件取名为main,并在“C目录”Location文本框中为文件选择一个存储目录。按“确定”后,VisualC++6.0会为你生成相应的文件。此时,可以在Workspace窗口的FileView标签中看到SourceFiles文件夹下,已经加有main.cpp文件。双击main.cpp就可在视图区打开这个文件。(8)在main.cpp中编写简单的应用程序,向屏幕输出一行字符串“一个简单的VisualC++6.0示例”#includeiostream.hvoidmain(){cout一个简单的VisualC++6.0示例endl;}此时,在Workspace窗口的ClassView标签中的Globals文件夹下,可以看见刚才键入的main函数。(8)编译、链接所有关于编译、链接的命令都在“编译”(Build)菜单中,第一项“编译”(Compile),是编译当前的项目。若在编译中发现错误,将在“输出”窗口显示出错的行及出错的信息。若编译通过,可以选择第二项“构件”(Build)来链接生成可执行程序。完毕后,运行所编的程序,选择“执行”Execute项即可运行。也可以“编译”(Build)菜单中,选择“重构全部”项,一次完成编译、链接。(9)注意:以上所说的编译、链接过程都是Debug类型,即加入了一些调试信息。如果确信程序完美无缺或者要正式发布,应选择菜单中的“批构件”(Batch)项,在对话框中选择相应的选项,点击“B建造”或“R全部重建”按钮,可在工程所在的目录下,产生一个新目录release,在该目录可生成所要的代码,其规模小,执行效率高,是最后的产品。4.实验内容:4.1分析程序指出程序运行的结果:3请各位同学用你的学号命名你的作业文件夹,将各题的答案放入(用word文挡或写字板录入均可,要求为每一题建立一个文档),并发到教师机相应目录下(通常是教师机的最后一个硬盘)的作业文件夹中。具体位置按老师的指示操作。1)分析下面的程序,并给出程序运行的结果:#includeiostream.hclasschange{charc1,c2;public:voidset(chara){c2=((c1=a)-32);}voidprint(){coutc1canbeupwrittenasc2endl;}};voidmain(){changea,b;a.set('a');b.set('b');a.print();b.print();}答案:/*acanbeupwrittenasAbcanbeupwrittenasBPressanykeytocontinue*/2)分析下面的程序,并给出输出结果:#includeiostream.hclasspair{charc1,c2;public:voidset(charb){c1=1+(c2=b);}unsignedwhere_am_I(){return((unsigned)this);}4voidprint(){coutc1+c2\t;}};voidmain(){paira,b,c;a.set('A');b.set('B');c.set('C');a.print();coutisata.where_am_I()'\n';b.print();coutisatb.where_am_I()'\n';c.print();coutisatc.where_am_I()'\n';}答案:/*B+Aisat1245052C+Bisat1245048D+Cisat1245044Pressanykeytocontinue*/4.2编写并调试程序:将各题的源程序(即。cpp文件)放入上述的用你的学号命名你的作业文件夹中,并发到教师机相应目录下(通常是教师机的最后一个硬盘)的作业文件夹中。具体位置按老师的指示操作。下面是一个类的测试程序,给定主函数,请写出类的定义,构成一个完整的程序,使执行程序后输出结果为:88-32=56给定的主函数为:voidmain(){Tstt;t.init(88,32);t.print();}5答案:#includeiostream.hclasstest{intx,y;public:voidinit(inta,intb){x=a;y=b;}intplus(){returnx+y;}intsubb(){returnx-y;}voidprint(){coutx+y=plus()endl;coutx-y=subb()endl;}};voidmain(){testt;t.init(88,32);t.print();}/*88+32=12088-32=56Pressanykeytocontinue*/4.3调试例程调试下列例程,掌握对象数组、对象指针及*this指针的使用,进一步理解类是如何实现数据的封装的。1)调试下列例程,指出程序实现的功能及程序输出结果。#includeiostream.h#includemath.hclassCline{floatx1,y1;public:floatx2,y2;public:voidSetCoord(float,float,float,float);//设置坐标值函数floatGetCoordX1(){returnx1;}//获取第一个端点的横坐标6floatGetCoordY1(){returny1;}//获取第一个端点的纵坐标voidPrint(void){floatL;L=sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));cout该直线的长度为:L'\n';}};voidCline::SetCoord(floata1,floatb1,floata2,floatb2){x1=a1;y1=b1;x2=a2;y2=b2;}voidmain(void){Clineline1,line2;line1.SetCoord(50,60,100,200);coutx1=line1.GetCoordX1()'\n';//Acouty1=line1.GetCoordY1()'\n';//Bcoutx2=line1.x2'\n';couty2=line1.y2'\n';line1.Print();line2=line1;//cline2.Print();}答案:功能(简要分析):定义一个描述线段的类,要求能够设置该线段,并能获取其坐标值以及该线段的长度。运行结果:/*x1=50y1=60x2=100y2=200该直线的长度为:148.661该直线的长度为:148.661Pressanykeytocontinue*/2)调试下列例程,指出程序实现的功能及程序输出结果。#includeiostream.hclassCTime{inthours,minutes;7public:voidSetTime(intnew_hours,intnew_minutes){hours=new_hours;minutes=new_minutes;}voidGetTime(int¤t_hours,int¤t_minutes){current_hours=hours;current_minutes=minutes;}voidCopyTime(CTime&Time2);};voidCTime::CopyTime(CTime&Time2){*this=Time2;//B*this指针代表当前对象}voidmain(void){inthrs,mins;CTimeTime1,Time2;Time1.SetTime(10,30);Time2.SetTime(12,15);Time1.GetTime(hrs,mins);coutTimeis:hrs:mins'\n';Time1.CopyTime(Time2);Time1.GetTime(hrs,mins);coutaftercopyingTime2toTime1,thetimeis:hrs:mins'\n';}答案:功能(简要分析):定义时间类,处理时间。运行结果:/*Timeis:10:30aftercopyingTime2toTime1,thetimeis:12:15Pressanykeytocontinue*/3)下面程序设计了一个CbankAccount类,用来模拟银行为客户开一个银行帐号存款并取款的过程。(当然,一个真实的银行帐号管理软件远比这复杂)。调试下列例程,指出程序实现的功能及程序输出结果。#includeiostream.hclassCBankAccount{8public:CBankAccount()//构造函数{account=0;balance=0.0;}voidMakeDeposit(longcount_num,floatamount)//存款第一个参数帐号{account=count_num;balance+=amount;coutaccount\tAfterdeposit,thebalanceis:\tbalanceendl;}floatWithDraw(
本文标题:c++实验指导_实验01_cc程序运行环境
链接地址:https://www.777doc.com/doc-903893 .html