还剩17页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《C++程序设计实验指导书》市级精品课程《VC++与面向对象技术》课程组2011-9-1目录TOC\o1-3\h\z\u实验一顺序与分支结构程序设计3实验二循环结构程序设计8实验三一维数组及应用9实验四指针及应用12实验五结构体及应用14实验六类的定义及使用15实验七类的继承和派生16实验八多态性及应用17实验一顺序与分支结构程序设计
一、实验目的
1、了解和使用VC集成__环境;
2、熟悉VC环境的基本命令和功能键;
3、熟悉常用的功能菜单命令;
4、掌握顺序结构程序设计;
5、掌握分支结构程序设计
二、实验内容
1.使用VisualC++
6.0集成环境来编辑、编译并运行程序#includestdio.hint__in{/*定义部分和执行部分分开*/doubler=
1.57pi=
3.1415926;printfarea=%f\npi*r*r;/*输出圆__*/printfcircumferen__=%f\n2*pi*r;return0;}
2.输入一个年份,判断该年份是否闰年,如果是就输出YES,否则输出NO
3.输入3个数abc,要求按由小到大的顺序输出
三、实验步骤VisualC++
6.0启动后的用户界面选择菜单“开始/程序/MicrosoftVisualStudio
6.0/MicrosoftVisualC++
6.0”得到VisualC++
6.0启动后的用户界面如图1-1所示图1-1VisualC++
6.0用户界面
1、创建新工程
(1)单击菜单“文件/新建”,显示“新建对话框,如图1-2所示
(2)在此对话框的列表栏中,选择“Win32ConsoleApplication”(Win32控制台应用程序”)在“工程”栏中输入一个工程名如实验一在位置文本框中选择工程所在的路径,如图中所示H:\C++实验\实验一单击“确定”按钮图1-2“新建”对话框
(3)在强击的“Win32ConsolApplication-Step1of1”对话框中选择Anemptyproject单选项然后单击“Finish”按钮,如图1-3所示图1-3“Win32ConsolApplication-Step1of1”对话框
(4)在“新建工程信息”对话框中单击“确认”按钮,完成工程创建过程
2、创建C++源程序文件
(1)编辑C++源程序编辑C++源程序时,选择“文件”菜单项,出现一个下拉式菜单,如图1-4所示,再选择该菜单中的“新建”选项(热键为Ctrl+N)打开“新建”窗口,在“新建”窗口图1-4“新建”窗口
(2)选择“文件”,在它的下拉列表框中选择“C++Sour__File”,如图1-4所示,再按击“确定”,出现编辑屏幕,如图1-5所示图1-5“C++”源程序编辑
(3)在“C++源程序编辑”窗口下编辑C++源程序在编辑窗口键入C++源程序如图1-6所示,键入如下源程序图1-6编辑C++源程序3.编译连接和运行源程序
(1)选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择“编译eg1-
1.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译过程中,将所发现的错误显示在屏幕__的“编译”窗口中所显示的错误信息中指出该错误所在行号和该错误的性质用户可根据这些错误信息进行修改上述程序的“编译”窗口,如图1-7所示图1-7“编辑”窗口
(2)编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下拉菜单中的“构件eg1-
1.exe”选项“编译”窗口出现如图1-8所示的信息说明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-
1.exe)图1-8编译连接信息
(3)执行可执行文件的方法是选择“编译”菜单项中“执行eg1-
1.exe”选项这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中,如图1-9所示图1-9运行C++程序结果4.关闭打开工作区、打开工作区单击菜单“文件/关闭工作区”,关闭工作区单击菜单“文件/打开工作区”,在强出的对话框中选定“H\C++实验\实验一\实验一.dsw”,单击“打开”按钮,则可打开工作区,对已建立的工程文件进行修改5.根据实验步骤1-4,建立、编译并运行实验程序2
四、实验要求1. 复习教材有关内容2. 掌握VC控制台应用程序的__、调试步骤3. 完成实验报告实验二循环结构程序设计
一、实验目的
1、熟悉掌握for语句实现循环的方法
2、熟悉掌握while语句实现循环的方法
3、熟悉掌握do…while语句实现循环的方法
4、掌握在程序设计中用循环的方法实现一些常用的算法
二、实验内容
1、打印出如下图案****************************
2、古典问题有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子都不死,问前10个月的兔子总对数各为多少?
三、实验要求
1、写出程序,并调试程序,要给出测试数据和实验结果
2、整理上机步骤,总结经验和体会
3、完成实验报告和上交程序实验三一维数组及应用
一、实验目的
1、掌握一维数组的定义、赋值和输入输出
2、掌握字符数组和字符串函数的使用
3、掌握与数组有关的简单算法
二、实验内容
1、求数组中小于零的数据之和,将程序补充完整并运行#includestdio.hvoid__in{intnum[]={2-23619-15757100-1-3694677-813};intisum=0;fori=0;i15;i++ifsum=;printfsum=%d\nsum;}
2、下面程序中的数组a包括10个整数元素,从a中第2个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b将程序补充完整并运行#includestdio.hvoid__in{inta
[10]b
[10]i;fori=0;;i++scanf%da[i];for;i10;i++b[i]=a[i]-a[i-1];fori=1;i10i++{printf%3db[i];ifprintf\n;}}
3、运行下面的程序,从键盘输入AhaNAAhaCRCR代表回车,则程序运行结果是什么?#includestdio.h#includestring.hvoid__in{chars
[100]c=a;inti=0;scanf%ss;whiles[i]!=\0{ifs[i]==cs[i]=s[i]-32;elseifs[i]==c-32s[i]=s[i]+32;i++;}putss;}
4、编程序并上机调试以下程序
(1)采用“选择法”对任意输入的10个整数按由大到小的顺序排序
(2)由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符
三、实验要求
1、写出程序,并调试程序,要给出测试数据和实验结果
2、整理上机步骤,总结经验和体会完成实验报告和上交程序实验四指针及应用
一、实验目的
1、掌握指针变量的定义与引用
2、熟练使用数组指针、字符串指针编写应用程序
二、实验内容
1、写一函数,求一个字符串的长度实验步骤与要求1本部分练习要求全部用指针完成2在__in函数中输入字符串,并输出其长度3本题不能用strlen函数方法说明在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenthchar*p,得到字符串的长度在函数strlenthchar*p中,判断*p是否为’\0’,则进行len++的操作,直到遇到’\0’为止然后返回len值求字符串长度的函数strlenthchar*p算法如下1定义intlen=0;2当*p!=’\0’时,重复执行以下3和4,否则转53en=len+14p++5returnlen
2、编写一个函数,将数组中n个数按反序存放实验步骤与要求1在主函数中输入10个数,并输出排好序的数2编写函数invert将10个数按反序存放
2、设计一个函数,调用它时,每次实现不同的功能1求两个数之和2求两个数之差3求两个数之积实验步骤与要求1在主函数中输入2个数a,b,并输出a,b的和,差和乘积2分别编写函数add、sub、mul计算两个数的和、差、积3编写函数pro__ss,分别调用函数add、sub、mul
三、实验要求
1、写出程序,并调试程序,要给出测试数据和实验结果
2、整理上机步骤,总结经验和体会
3、完成实验报告和上交程序实验五结构体及应用
一、实验目的
1、掌握结构体、共用体类型说明和变量的使用方法
2、掌握链表的操作
3、学会使用typedef自定义数据类型
二、实验内容
1、有8名学生,每个学生包括学号、姓名、语文成绩、数学成绩、计算机成绩、平均分和总分,要求根据各科成绩计算总分和平均分,并按总分递增排序并输出其中1学生信息的输入和输出在主函数中实现2按总分递增排序在sort_incr函数中实现
2、某高校图书馆建立一个读者登记表,每个人都包括姓名、性别、年龄和职业4部分,另外还包括一个变体部分,即对学生包括班级,对教职工要包括单位试编写程序输入5个人的数据信息,输出教职工的人数和每个学生的姓名和年龄
3、建立一个链表,每个节点包括学号、姓名、性别、年龄输入一个年龄,如果链表中的节点包含的年龄等于此年龄,则将此节点删去
三、实验要求
1、写出程序,并调试程序,要给出测试数据和实验结果
2、整理上机步骤,总结经验和体会
3、完成实验报告和上交程序实验六类的定义及使用
一、实验目的
1、掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;
2、掌握类对象的定义;
3、理解类的成员的访问控制的含义,公有、私有和保护成员的区别;
4、掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数能够根据给定的要求定义类并实现类的成员函数
二、实验内容
1、定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数同时编写主函数使用这个类,实现对学生数据的赋值和输出要求
(1)使用成员函数实现输入、输出;
(2)使用构造函数和析构函数实现对数据的输入、输出;
(3)编写主函数,定义对象,完成相应功能
2、定义日期类型Date要求有以下面成员
(1)可以设置日期;
(2)日期加一天操作;
(3)输入函数,输入格式为“XXXX年XX月XX日”;
(4)编写主函数,定义对象,完成相应功能
三、实验要求
1、写出程序,并调试程序,要给出测试数据和实验结果
2、整理上机步骤,总结经验和体会
3、完成实验报告和上交程序实验七类的继承和派生
一、实验目的
1、理解继承的含义,掌握派生类的定义方法和实现;
2、理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;
3、理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员;
4、条件编译的运用多文件结构的进一步使用
二、实验内容
1、编写一个程序计算出球、圆柱和圆锥的表__和体积要求
(1)定义一个基类,至少含有一个数据成员半径,并设为保护成员;
(2)定义基类的派生类球、圆柱、圆锥,都含有求表__和体积的成员函数和输出函数;
(3)编写主函数,求球、圆柱、圆锥的表__和体积
2、编写一个学生和教师数据输入和显示程序其中,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门要求
(1)将编号、姓名输入和显示设计成一个类person;
(2)设计类person的派生类学生类student和教师类teacher;
(3)各个类的声明放在相应的头文件中(*.h),类的实现放在相应的实现文件中(*.cpp)person.h,person.cpp,student.h,student.cpp,teacher.h,teacher.cpp;
(4)编写一个主文件(SY4_
2.cpp),在该文件中分别定义student、teacher的对象,完成相应功能
三、实验要求
1、写出程序,并调试程序,要给出测试数据和实验结果
2、整理上机步骤,总结经验和体会
3、完成实验报告和上交程序实验八多态性及应用
一、实验目的
1、理解多态的概念
2、理解函数的静态联编和动态联编
3、掌握虚函数的定义
4、理解虚函数在类的继承层次中的作用、虚函数的引入对程序运行时的影响,掌握其使用
二、实验内容虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行动态联编,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象多态指同一个方法根据其所属的不同对象可以有不同的行为虚函数是C++中用于实现多态polymorphi__的机制核心理念就是通过基类访问派生类定义的函数
1、录入下面程序,并分析结果#includeiostream#includecomplexusingnamespa__std;classBase{public:Base{coutBase-ctorendl;}~Base{coutBase-dtorendl;}virtualvoidfint{coutBase::fintendl;}virtualvoidfdouble{coutBase::fdoubleendl;}virtualvoidginti=10{coutBase::giendl;}};classDerived:publicBase{public:Derived{coutDerived-ctorendl;}~Derived{coutDerived-dtorendl;}voidfcomplexdouble{coutDerived::fcomplexendl;}voidginti=20{coutDerived::giendl;}};int__in{coutsizeofBaseendl;coutsizeofDerivedendl;Baseb;Derivedd;Base*pb=newDerived;b.f
1.0;d.f
1.0;pb-f
1.0;b.g;d.g;pb-g;deletepb;return0;}
2、录入下面程序,分析运行结果#includeiostreamusingnamespa__std;classBase{public:Base:datacount{coutBase-ctorendl;++count;}~Base{coutBase-dtorendl;--count;}staticintcount;intdata;};intBase::count;classDerived:publicBase{public:Derived:datacountdata1data{coutDerived-ctorendl;++count;}~Derived{coutDerived-dtorendl;--count;}staticintcount;intdata1;intdata;};intDerived::count=10;int__in{coutsizeofBaseendl;coutsizeofDerivedendl;Base*pb=newDerived
[3];coutpb
[2].dataendl;coutstatic_castDerived*pb+2-data1endl;delete[]pb;coutBase::countendl;coutDerived::countendl;return0;}
三、实验要求
1、写出程序,并调试程序,要给出测试数据和实验结果
2、整理上机步骤,总结经验和体会
3、完成实验报告和上交程序。