课程:C++ 实验名称:类和对象二 第 1页 共 5页
系 别: 实 验 日 期 年 月 日
专业班级: 组别_____________ 实 验 报 告 日 期 年 月 日
姓 名: 学号: 报 告 退 发 ( 订正 、 重做 )
同 组 人_________________________________ 教 师 审 批 签 字
一、实验题目: 实验九 类和对象(二)
二、实验环境:
三、实验目的
(1)进一步加深对类和对象的理解。
(2)掌握类的构造函数和折购函数的概念和使用方法。
(3)掌握对对象数组,对象的指针及其使用方法。
(4)掌握友元的概念和使用。
(5)了解类模板的使用方法。
四、实验内容
(1)有以下程序:
1、阅读此程序,分析其执行过程,然后上机运行,对比输出结果。
2、修改上面的程序,增加一个fun函数,改写main函数,在main函数中调用fun函数,在fun函数中使用对象的引用(Student&)作为形参。
(2)商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。现已知当天3个销售员销售情况为:
销售员号(num) | 销售件数(quantity) | 销售单价(price) |
101 | 5 | 23.5 |
102 | 12 | 24.56 |
103 | 100 | 21.5 |
(3)有以下程序:
请读者分析和运行此程序,注意友元函数Time::display的作用。将程序中的display函数不放在Time类中,而作为类外的普通函数,然后分别在Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。
修改后上机调试和运行。
(
五、实验步骤与结果
(1)
#include using namespace std; 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< int num; float score; }; int main() { Student stud(101,78.5); stud.display(); stud.change(101,80.5); stud.display(); stud.fun(stud); return 0; } (2)#include using namespace std; class salesman { public: salesman(int,float); static float average(); static void display(); void total(); private: static double discount; static double sum; static int n; int num; float price; }; salesman::salesman(int a,float b) { num=a; price=b; } void salesman::total() { if(num>=10) price=price*0.98; sum+=num*price*discount; n+=num; } float salesman::average() { return(sum/n); } double salesman::discount=0.98; int salesman::n=0; double salesman::sum=0; void salesman::display() { cout<<"总销售款为"< int main() { salesman sal1(5,23.5); sal1.total(); salesman sal2(12,24.56); sal2.total(); salesman sal3(100,21.5); sal3.total(); salesman::display(); return 0; } (3) #include using namespace std; class Date; class Time { public: friend void display(const Date &da,const Time &); private: }; class Date {public: Date(int,int,int); friend void display(const Date &,const Time &); private: }; Time::Time(int h,int m,int s) { } void display(const Date &da,const Time &ti) { } Date::Date(int m,int d,int y) { } int main() { void display(const Date&,const Time &); } 六、实验感想下载本文