VC课程

  • 格式:doc
  • 大小:115.00 KB
  • 文档页数:14

《C++面向对象程序设计》实验内容 总学时:24学时 实验1 C++程序设计初步

1、实验目的 (1)了解在C++编译系统(Visual C++6.0)上如何编辑、编译、连接和运行一个C++程序。 (2)通过运行简单的C++程序,初步了解C++源程序的结构和特点。 (3)掌握简单C++程序的编写和调试方法。 (4)掌握重载函数的定义方法。 (5)能正确使用引用型变量。 2、实验内容和步骤 (1)在Visual C++环境下编译和运行C++程序 ①先进入Visual C++6.0环境。 ②在自己指定的子目录中建立一个名为test.cpp的新文件。 ③从键盘输入以下程序 int main() { int a,b; c=a+b; cout>> “a+b=”>>a+b; } 选择Build→Compile test.cpp命令,对此源程序进行编译。观察和分析编译信息。 ⑤根据编译信息指出的错误,修改程序。再进行编译,如果还有错,再重复此过程,直到编译不出错为止。 ⑥选择Build→Build test.exe命令,对程序进行连接,如果不出错,就会生成可执行程序test.exe。 ⑦选择Build→Execute test.exe命令,执行可执行程序test.exe。观察屏幕的变化。在输出窗口应显示程序运行结果。 ⑧分析结果是否正确,如果不正确或认为输出格式不理想,可以修改程序,然后重新执行以上④和⑧步骤。 (2)编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型。用重载函数实现。 (3)对3个变量按由小到大顺序排序,要求使用变量的引用。 学时数:2学时

实验2 类和对象(一) 1、实验目的 (1)掌握声明类的方法,类和类的成员的的概念以及定义对象的方法。 (2)初步掌握用类和对象编制基于对象的程序。 (3)学习检查和调试基于对象的程序。 2、实验内容 (1)有以下程序: #include using namespace std; class Time //定义Time类 {public: //数据成员为公用的 int hour; int minute; int sec; }; int main( ) { Time t1; //定义t1为Time类对象 cin>>t1.hour; //输入设定的时间 cin>>t1.minute; cin>>t1.sec; cout< return 0; } 改写程序,要求: ①将数据成员改为私有的; ②将输入和输出的功能改为由成员函数实现; ③在类体内定义成员函数。 然后编译和运行程序。请分析什么成员应指定为公用的?什么成员应指定为私有的?什么函数最好放在类中定义?什么函数最好放在类外定义? (2)分别给出如下的3个文件: ①含类定义的头文件student.h, //student.h (这是头文件,在此文件中进行类的声明) class Student //类声明 { public: void display( ); //公用成员函数原型声明 private: int num; char name[20]; char sex; }; ②包含成员函数定义的源文件student.cpp //student.cpp //在此文件中进行函数的定义 #include #include “student.h” //不要漏写此行,否则编译通不过 void Student::display( ) //在类外定义display类函数 { cout<<“num:”< cout<<“name:”< cout<<“sex:”<} ③包含主函数的源文件main.cpp。 为了组成一个完整的源程序,应当有包括主函数的源文件: //main.cpp 主函数模块 #include #include “student.h” //将类声明头文件包含进来 int main( ) {Student stud; //定义对象 stud.display(); //执行stud对象的display函数 return 0; } 请完善该程序,在类中增加一个对数据成员赋初值的成员函数set_value。上机调试并运行。 (3)需要求3个长方柱的体积,请编一个基于对象的程序。数据成员包括length(长)、width(宽)、height(高)。要求用成员函数实现以下功能: ①由键盘分别输入3个长方柱的长、宽、高; ②计算长方柱的体积; ③输出3个长方柱的体积。 请编程序,上机调试并运行。 学时数:2学时

实验3 类和对象(二) 1、实验目的 (1)进一步加深对类和对象的理解。 (2)掌握类的构造函数和析构函数的概念和使用方法。 (3)掌握对对象数组、对象的指针及其使用方法。 (4)掌握友元的概念和使用。 (5)了解类模板的使用方法。 2、实验内容 (1)有以下程序 #include class Student {public: Student(int n,float s):num(n),score(s){ } void change(int n,float s){num=n;score=s;} void display(){cout< private: int num; float score; }; void main() {Student stud(101,78.5); stud.display(); stud.change(101,80.5); stud.display(); } ①阅读此程序,分析其执行过程,然后上机运行,对比输出结果。 ②修改上面的程序,增加一个fun函数,改写main函数。在main函数中调用fun函数,在fun函数中调用change和display函数。在fun函数中使用对象的引用(Student &)作为形参。 (2)商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。现已知当天3个销售员销售情况为 销货员号(num) 销货件数(quantity) 销货单价(price) 101 5 23.5 102 12 24.56 103 100 21.5 请编程序,计算出当日此商品的总销售款sum以及每件商品的平均售价。要求用静态数据成员和静态成员函数。 (提示:将折扣discount,总销售款sum和商品销售总件数n声明为静态数据成员,再定义静态成员函数average(求平均售价)和display(输出结果)。 (3)有以下程序: #include using namespace std; class Date; //对Date类的提前引用声明 class Time //定义Time类 {public: Time(int,int,int); void display(Date &); //display是成员函数,形参是Date类对象的引用 private: int hour; int minute; int sec; };

class Date //声明Date类 {public: Date(int,int,int); friend void Time∷display(Date &); //声明Time中的display函数为友元成员函数 private: int month; int day; int year; }; Time∷Time(int h,int m,int s) //类Time的构造函数 {hour=h; minute=m; sec=s; } void Time∷display(Date &d) //display的作用是输出年、月、日和时、分、秒 {cout<数据 cout<} Date∷Date(int m,int d,int y) //类Date的构造函数 {month=m; day=d; year=y; } int main( ) {Time t1(10,13,56); //定义Time类对象t1 Date d1(12,25,2004); //定义Date类对象d1 t1.display(d1); //调用t1中的display函数,实参是Date类对象d1 return 0; } 请读者分析和运行此程序,注意友元函数Time::display的作用。将程序中的display函数不放在Time类中,而作为类外的普通函数,然后分别在Time和Date类中将display声明为友元函数。在主函数中调用display函数,display函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。修改后上机调试和运行。 (4)有以下使用类模板程序: #include using namespace std; template //定义类模板 class Compare {public: Compare(numtype a,numtype b) {x=a;y=b;} numtype max( ) {return (x>y)?x:y;} numtype min( ) {return (xprivate: numtype x,y; }; int main( ) {Compare cmp1(3,7); //定义对象cmp1,用于两个整数的比较 cout