当前位置: 首页 > news >正文

C++类的基础题(4)

练习1:(简单)

基于如下程序,按要求修改和完善。

#include <iostream>

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<<num<<" "<<score<<endl;}

  private:

   int num;

   float score;

 };

int main()

{Student stud(101,78.5);

 stud.display();

 stud.change(101,80.5);

 stud.display();

 return 0;

}  

要求:增加一个fun函数,改写main函数。改为在fun函数中调用change和display函数。在fun函数中使用对象的引用(Student&)作为形参。

示例如下:(答案不唯一)

练习2:(中等)

商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受98折优惠。现已知3个销货员一次销售情况为

销货员号(num)

销货件数(quantity)

销货单价(price)

101

5

23.5

102

12

24.56

103

100

21.5

请编写程序,计算出此商品的总销售款sum以及每件商品的平均售价。要求用静态数据成员和静态成员函数实现。

示例如下:(答案不唯一)

练习3:(中等)

基于如下程序,按要求修改和完善。

#include <iostream>

using namespace std;

class Date;

class Time

 {public:

   Time(int,int,int);

   void display(Date &);

  private:

   int hour;

   int minute;

   int sec;

 };

 class Date

 {public:

   Date(int,int,int);

   friend void Time::display(Date &);

  private:

   int month;

   int day;

   int year;

 };

 Time::Time(int h,int m,int s)

 {hour=h;

  minute=m;

  sec=s;

 }

 void Time::display(Date &d)

 {

  cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl;

  cout<<hour<<":"<<minute<<":"<<sec<<endl;

 }

Date::Date(int m,int d,int y)

 {month=m;

  day=d;

  year=y;

 } 

int main()

{

 Time t1(10,13,56);

 Date d1(12,25,2004);

 t1.display(d1);

 return 0;

}

修改要求1:将display函数不放在Time类中,而作为类外的普通函数,然后分别在Time和Date类中将display函数声明为友元函数。在主函数中调用display函数,display函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。

修改要求2:重新基于上述源程序(不是在修改要求1基础上),将Time类声明为Date类的友元类,通过Time类中的display函数引用Date类对象的私有数据,输出年、月、日和时、分、秒。

示例如下:(答案不唯一)

修改一:

 修改二:

有时间,会在更新一下;

http://www.dtcms.com/a/68180.html

相关文章:

  • MIPI电平标准详解
  • 【Spring Cloud】 核心组件全解析与 2024 【微服务框架】选型指南
  • 数据结构与算法——算法3 面试常用排序算法
  • Java的SPI机制详解
  • Android之RecyclerView列表拖动排序
  • printf 和 echo 区别
  • 解析富集分析中的过表达分析(ORA):原理、应用与优化
  • REST 请求返回 Invalid Credentials
  • Android wifi的开关Settings值异常分析
  • PCL 点云OBB包围盒(二)
  • 【Java篇】一法不变,万象归一:方法封装与递归的思想之道
  • golang算法二叉搜索树
  • 静态时序分析:SDC约束命令set_sense详解
  • ​​vue-router编程式导航,params传参拿不到
  • FastAPI复杂查询终极指南:告别if-else的现代化过滤架构
  • Secs/Gem第一讲(基于secs4net项目的ChatGpt介绍)
  • 《JavaScript高级程序设计(第5版)》学习大纲
  • 【通缩螺旋的深度解析与科技破局路径】
  • Java中关于Optional的 orElse 操作,以及 orElse 与 orElseGet 的区别
  • 目标跟踪之DeepSort算法(4)
  • 响应(Response)
  • pgsql创建新用户并赋只读权限
  • 拥有一台云服务器能做什么呢?
  • fprintf() 函数:C语言中的文件格式化输出利器
  • 使用 Arduino 和 ThingSpeak 通过互联网进行实时温度和湿度监测
  • Android Studio执行Run操作报Couldn‘t terminate previous instance of app错误
  • Java 大视界 -- Java 大数据在智能教育虚拟实验室建设与实验数据分析中的应用(132)
  • leetcode0027 移除元素 - easy
  • 结构体的简单介绍(C语言)
  • 超精密工件小孔几何尺寸测量:自动化解决方案