实验4 静态成员与友元

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.2 实验与实践任务
3.2.1 实验名称静态成员和友元
3.2.2 实验目的
1.掌握静态成员的定义和使用。

2.掌握友元的定义和使用。

3.2.3 实验要求
1.调试程序要记录调试过程中出现的问题及解决办法;
2.编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌握及应用,不断积累编程及调试经验;
3.在编写程序时,要按照多文件结构来组织程序。

4.做完实验后给出本实验的实验报告,实验报告的内容包括实验目的、实验内容和结果分析。

3.2.4 实验内容
【P1】商店销售某一商品,商店每天公布统一的折扣(discount)。

同时允许销售人员在销售是灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。

现在已知当天3名销售员的销售情况为:
销售员货号(num)销货件数(quantity)销货单价(price)
101 5 23.5
102 12 24.56
103 100 21.5
请编程序,计算出当日此商品的总销售款sum,以及每件商品的平均售价。

要求用静态数据成员和静态成员函数
【P2】创建一个SavingsAccount类:用static(静态)数据成员包含每个存款人的annualInterestRate(年利率)。

类的每个成员包含一个private数据成员savingsBalance,表示当前存款额。

提供一个calculateMonthlyInterest 成员函数,计算月利息,用savingsBalance乘以annualInterestRate除以12取得,并将当月月息加入savingsBalance。

提供一个静态成员函数modifyInterestRate,将静态annualInterestRate设置为新值。

实例化两个不同的SavingsAccount对象saver1和saver2,余额分别为$2 000.00和$3 000.00 将annualInterestRate设置为3%,计算每个存款人的月息并打印出新的结果。

【P3】学校的人事部门保存了有关学生的部分数据(学号、姓名、年龄、住址),教务部门也保存了学生的另外一些数据(学号、姓名、性别、成绩),两个部门分别编写了本部门的学生数据管理程序,其中都用了Student作为类名。

现在要求在全校的学生数据管理程序中调用这两个部门的学生数据,分别输出两种内容的学生数据。

要求用标准C++编程,使用命名空间。

【P4】设计一个日期类Date,包含日期的年、月、日三个私有数据成员,编写一个友元函数,求两个日期之间相差的天数。

【P5】每一个学生有学号、姓名、一门课的成绩等基本信息。

编写一个程序,用友元
函数实现比较学生成绩的高低,并输出所有学生中最高分和最低分的姓名。

【P6】从前有一个农夫抓到一条大蛇,一个渔夫抓到一条大鱼,蛇、鱼的长度和重量分别由键盘输入,试比较(利用友元函数处理)这两类不同动物的长度、重量是否相等。

【P7】设线段AB的端点为A(x1,y1)和B(x2,y2),线段CD的端点为C(x3,y3)和(x4,y4),则有:
r1=y3(x4-x3)-y1(x4-x3)+(x1-x3)(y4-y3)
r2=(y2-y1)(x4-x3)-(x2-x1)(y4-y3)
r=r1/r2;
t=(x1-x3+r(x2-x1))/(x4-x3)
根据r和t的值,有以下几种情况:
(1)0<r<1,0<t<1,则线段AB和线段CD相交。

(2)0<r<2,t>=1,则线段AB和线段CD不相交,且线段CD在线段AB的一侧。

(3)r>=1或r<=0,0<t<1,则线段AB和线段CD不相交,且线段AB在线段CD的一侧。

(4)r>=1或r<=0,t>=1或t<=0,则线段AB和线段CD不相交。

编写一个程序,采用友元函数判断两条线段相交的情况。

相关文档
最新文档