第十五单元日考技能

文章目录

第十五单元

1.编写一个基于对象的程序,求长方体的体积,要求:

① 定义头文件

② 定义一个长方体类Box,

③ 类内有私有数据成员lengh(长),width(宽),height(高)

④ 在类内公有成员函数get_value(),volume()。

⑤ get_value()函数在类外定义,get_value()作用是从键盘输入长,宽,高的值。

⑥ volume()函数在类外定义,volume()的作用是计算长方体的体积并在屏幕上显示。

⑦ 在main()函数定义Box类的对象box1

⑧ 调用get_value()函数给长、宽、高赋值

⑨ 调用volume()函数输出长方体体积。

⑩ 按照题目要求写好注释。

java 复制代码
class Box{
private:
    int lengh;
    int width;
    int height;
public:
    void get_value(); //没有函数体,只有函数定义
    void volume();
};

void Box::get_value(){
    cout << "输入长宽高"  << endl;
    cin >> lengh >> width >> height;
}

void Box::volume(){
    cout << lengh*width*height << endl;
}

int main(){
    Box box; //创建对象,因为没有带参构造所以不用加()
    box.get_value(); //调用函数给属性赋值
    box.volume(); //调用函数计算体积
}

2.编写strcpy函数(10分)

已知strcpy函数的原型是char * strcpy(char * strDest, const char * strSrc);其中strDest是目的字符串,strSrc是源字符串

① 定义头文件

② 不调用C++/C的字符串库函数,请编写函数 strcpy

③ strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

④ 输出正确

java 复制代码
char * strcpy(char * arr1, const char * arr2){
    for(int i = 0;i<2;i++){
        *arr1 = *arr2; //把arr2的数据给arr1
        arr2++;
        arr1++;
    }
}

int main(){
    char arr1[2]; //空
    char arr2[2] = {'a','b'};
    strcpy(arr1,arr2); //字符复制功能

    //打印看结果
    for(int i= 0;i<2;i++){
        cout << arr1[i];
    }
}

3.建立一个类String,连接两个字符串后。具体要求:

① 按照要求输入头文件

② 定义私有数据成员:int Length;//字符串的长度

③ 定义私有数据成员:char *s; //指向字符串的指针

④ 定义公有成员

⑤ 定义构造函数

⑥ 定义析构函数

⑦ 定义拷贝函数

String operator+(String &);//重载"+"运算符

String operator=(String &);//重载"="运算符

void show(); //输出两个字符串和结果字符

java 复制代码
class String {
   int len;
   char *s;
public:
   String(int len,char *s){
       this->len = len;
       this->s=s;
   }
   ~String(){
       cout << "这里要销毁对象";
   }

   String operator+(String a){
       char *temp= new char[len+a.len]; //定义空数组
       strcpy(temp,s); //先把abc放到数组中
       strcat(temp,a.s); //再把bcd追加进去
       cout << temp << endl;
   }

   String operator=(String a){
       cout << "这里重载=号"<< endl;
   }

   void show(String str1,String str2){
       str1+str2;
   }
};
int main(){
   String a(3,"abc");
   String b(3,"bcd");
   a.show(b,a);
} //答案是abcbcd
相关推荐
Hy行者勇哥9 分钟前
Python 与 VS Code 结合操作指南
开发语言·python
tainshuai1 小时前
用 KNN 算法解锁分类的奥秘:从电影类型到鸢尾花开
算法·分类·数据挖掘
麦兜*6 小时前
Swift + Xcode 开发环境搭建终极指南
开发语言·ios·swiftui·xcode·swift·苹果vision pro·swift5.6.3
Coovally AI模型快速验证7 小时前
农田扫描提速37%!基于检测置信度的无人机“智能抽查”路径规划,Coovally一键加速模型落地
深度学习·算法·yolo·计算机视觉·transformer·无人机
mit6.8247 小时前
[openvela] Hello World :从零开始的完整实践与问题复盘
c++·嵌入式硬件
pusue_the_sun7 小时前
数据结构:二叉树oj练习
c语言·数据结构·算法·二叉树
萧鼎7 小时前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
RaymondZhao348 小时前
【全面推导】策略梯度算法:公式、偏差方差与进化
人工智能·深度学习·算法·机器学习·chatgpt
艾伦~耶格尔8 小时前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
zhangfeng11338 小时前
DBSCAN算法详解和参数优化,基于密度的空间聚类算法,特别擅长处理不规则形状的聚类和噪声数据
算法·机器学习·聚类