第十八单元日考技能

现要求建立一个类String,连接两个字符串后。具体相关要求如下:

① 定义私有数据成员
② 定义int Length;字符串长度,char*s指向字符串的指针
③ 定义共有成员
④ 定义构造函数
⑤ 定义析构函数
⑥ 拷贝构造函数
⑦ String operator+(String &);//重载“+”运算符
⑧ String operator=(String &);//重载“=”运算符
⑨ void show(); //输出两个字符串和结果字符
⑩ 最后要求在主函数完成运算

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);
}

2.写一个程序,进行体操评分,依次输入10名评委所评分数,去除一个最高分和一个最低分,再算出平均分作为选手的得分。:

① 正确导入头文件
② 正确创建合理变量
③ 循环输入10分数
④ 输出最高分
⑤ 输出最低分
⑥ 输出去掉最高分,最低分后的总分数
⑦ 输出最后的平均分数
⑧ 在main函数中实现
⑨ 结果正确
⑩ 写上合理注释

void test18_2(){
    double arr[10];
    for(int i = 0;i< size(arr);i++){
        cin >> arr[i];
    }
    sort(arr,arr+10);
    cout << arr[0]  << " "<< arr[9]<< endl;
    double sum = 0;
    for(int i = 1;i<9;i++){
        sum+=arr[i];
    }
    cout << sum << endl;
    cout << sum/8 << endl;
}

3.

① 定义头文件
② 定义char str1[60]:存放被插入的字符串定义共有成员
③ 定义char str2[40]:存放待插入的字符串
④ 定义char str3[100]:存放插入后的字符串
⑤ 定义STRING(char *s1,char *s2):构造函数,用s1和s2初始化str1和str2。
⑥ void process():将str2中的字符串插入到str1中,存放到str3中
⑦ void print():输出插入后的字符串。
⑧ 在主程序中定义STRING类的对象
⑨ 运用test对该类进行测试
⑩ 给出合理注释

class STRING{
public:
    char str1[60];
    char str2[40];
    char str3[100];

    STRING(char *s1,char *s2){
        for(int i = 0;i< 3;i++){
            str1[i] = s1[i];
        }
        for(int i = 0;i<3;i++){
            str2[i] = s2[i];
        }
    }

    void process(){
        int k = 0;
        for(int i = 0;i<3;i++){
            str3[k] = str1[i]; //a  {a,}
            k++;
            str3[k] = str2[i]; //A
            k++;
        }
    }

    void print(){
        for(int i = 0;i<6;i++){
            cout << str3[i];
        }
    }
};
int main(){
    char s1[] = {'a','b','c'};
    char s2[] = {'A','B','C'};
    STRING test(s1,s2);
    test.process();
    test.print(); //aAbBcC
}
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值