第三周项目五:数组作数据成员(二)



*copyright (c) 2014, 烟台大学计算机学院.  
  
*All rights reserved.  
  
*文件名称:test.cpp   

*作者:陆云杰  
  
*完成日期:2015年3月21日   
  
*版本号:v1.0  
 
*   
  
*  
  
*问题描述:数组作数据成员
  
*程序输入: 职工人数和工资

*程序输出: 排序后的工资
  
*/

#include <iostream>
#include "salary.h"
using namespace std;

int main()
{
    Salary salary;
    salary.set_salarys();
    salary.sort_salarys();
    salary.show_salarys();
    salary.add_salarys(600);
    salary.show_salarys();
    return 0;
}
#ifndef SALARY_H_INCLUDED
#define SALARY_H_INCLUDED

 class Salary
{
public:
        void set_salarys();
        void add_salarys(int x);
        void sort_salarys();
        void show_salarys();
private:
    double *salarys; //多人的工资
    int number;  //实际人数
};

#endif // SALARY_H_INCLUDED


     
#include<iostream>
using namespace std;
#include"salary.h"
void Salary::set_salarys()
{
   int i;
   cout<<"请输入职工人数:";
   cin>>number;
   cout<<'\n';
   salarys=new double[number];
   cout<<"请输入员工工资:";
   for(i=0;i<number;i++)
   {
       cin>>salarys[i];
   }
}
void Salary::add_salarys(int x)
{
    for(int i=0;i<number;i++)
    {
        salarys[i]+=x;
    }
    cout<<"每人工资增加"<<x<<"元后:"<<endl;
}
 void Salary::sort_salarys()
 {
     int i=0,j=0,t;
     for(i=0;i<number-1;i++)
        for(j=0;j<number-1-i;j++)
     {
         if(salarys[j]<salarys[j+1])
         {
             t=salarys[j];
             salarys[j]=salarys[j+1];
             salarys[j+1]=t;
         }
     }
 }
 void Salary::show_salarys()
 {
     int i=0;
     cout<<"工资按从高到低排序为:";
     for(i=0;i<number;i++)
     {
         cout<<salarys[i]<<" ";
     }
        cout<<endl;
 }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一道程序设计题目,需要编写代码实现要求。以下是一个可能的代码实现,供参考: ``` #include <iostream> #include <string> using namespace std; template<typename T> class MyArray { private: T* data; int size; public: MyArray(T* data, int size) { this->data = data; this->size = size; } T sum() { T result = 0; for (int i = 0; i < size; i++) { result += data[i]; } return result; } int search(T value) { for (int i = 0; i < size; i++) { if (data[i] == value) { return i; } } return -1; } }; int main() { int n1, n2, n3; cin >> n1; int* a = new int[n1]; for (int i = 0; i < n1; i++) { cin >> a[i]; } MyArray<int> array1(a, n1); int value1; cin >> value1; int pos1 = array1.search(value1); if (pos1 == -1) { cout << "未找到该元素" << endl; } else { cout << "是第" << pos1 + 1 << "个元素" << endl; } cout << "数组和为:" << array1.sum() << endl; cin >> n2; double* b = new double[n2]; for (int i = 0; i < n2; i++) { cin >> b[i]; } MyArray<double> array2(b, n2); double value2; cin >> value2; int pos2 = array2.search(value2); if (pos2 == -1) { cout << "未找到该元素" << endl; } else { cout << "是第" << pos2 + 1 << "个元素" << endl; } cout << "数组和为:" << array2.sum() << endl; cin >> n3; string* c = new string[n3]; for (int i = 0; i < n3; i++) { cin >> c[i]; } MyArray<string> array3(c, n3); string value3; cin >> value3; int pos3 = array3.search(value3); if (pos3 == -1) { cout << "未找到该元素" << endl; } else { cout << "是第" << pos3 + 1 << "个元素" << endl; } cout << "数组和为:" << array3.sum() << endl; delete[] a; delete[] b; delete[] c; return 0; } ``` 此代码中,我们首先定义了一个类模板 `MyArray`,其中包含了查找和求和数组元素的功能。在主函数中,我们实例化了三个 `MyArray` 对象,分别对应一个 `int` 类型的数组、一个 `double` 类型的数组和一个 `string` 类型的数组。我们先输入三个数组的长度和各自的元素值,然后对每个数组依次调用相应的成员函数完成题目要求,并输出结果。 需要注意的是,在实现 `MyArray` 类的成员函数时,我们在求和函数中使用了模板类型参数 `T`,因此可以适用于任何类型的数组。在搜索函数中,如果找到了目标元素,我们返回其索引;否则,返回 `-1` 表示未找到。在输出结果时,需要注意要输出“未找到该元素”和“是第X个元素”两种情况的不同输出格式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值