這篇文章主要為大家展示了“C++中數(shù)組作數(shù)據(jù)成員的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C++中數(shù)組作數(shù)據(jù)成員的示例分析”這篇文章吧。

【項目 - 數(shù)組作數(shù)據(jù)成員】下面是設計好的一個工資類(Salary):
class Salary
{
public:
void set_salarys( );//輸入職工工資(輸入-1標志著工資輸入結(jié)束),工資保存到salary數(shù)組中,實際人數(shù)保存到number中;
void add_salarys(int x); //給每個人漲x元工資
void sort_salarys(); //對工資由大到小排序
void show_salarys( ); //顯示工資信息
private:
double salarys[50]; //多人的工資
int number; //實際人數(shù)
};(1)實現(xiàn)Salary類中的成員函數(shù),在main函數(shù)定義Salary類的對象,輸入工資,再給每個人漲500元工資,排序后工資數(shù)據(jù),然后輸出結(jié)果。
(2)手工輸入工資?!太讓人不能忍受了。現(xiàn)給出包含了不足500個職工工資的文件salary.txt(下載),增加一個成員函數(shù),用于從文件中讀出數(shù)據(jù),再增加一個成員函數(shù),將排序后結(jié)果保存到一個文件中。編寫main函數(shù),測試你擴充的功能。
(3)用多文件的方式組織最后的程序。
參考解答:
(1)
using namespace std;
class Salary
{
public:
void set_salarys( ); //輸入工資
void add_salarys(int x); //漲工資
void sort_salarys(); //排序工資
void show_salarys( ); //顯示工資
private:
double salarys[50]; //工資
int number; //實際人數(shù)
};
void Salary::set_salarys( )
{
int x,i=0;
cin>>x;
while(x>0)
{
salarys[i]=x; //工資保存到數(shù)組數(shù)據(jù)成員中
++i;
cin>>x;
}
number=i; //number是數(shù)據(jù)成員,記錄下職工人數(shù)
}
void Salary::add_salarys(int x)
{
int i;
for (i=0;i<number;i++)
salarys[i]+=x;
}
void Salary::sort_salarys()
{
int i,j;
double t;
for (i=0;i<number-1;i++)
for(j=0;j<number-i-1;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;
for (i=0;i<number;i++)
cout<<salarys[i]<<" ";
}
int main( )
{
Salary s;
s.set_salarys( );
s.add_salarys(500);
s.sort_salarys();
s.show_salarys( );
return 0;
}(2)
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
const int N=500;
class Salary
{
public:
void read_data( );
void write_data();
void add_salarys(int x);
void sort_salarys();
void show_salarys( );
private:
double salarys[N]; //工資, 用指針更好
int number; //人數(shù)
};
void Salary::read_data( )
{
int i;
ifstream infile("salary.txt",ios::in); //以輸入的方式打開文件
if(!infile) //測試是否成功打開
{
cerr<<"open error!"<<endl;
exit(1);
}
i=0;
while(infile>>salarys[i])
i++;
number=i;
infile.close();
}
void Salary::write_data( )
{
int i;
ofstream outfile("salary_ordered.txt",ios::out); //以輸入的方式打開文件
if(!outfile) //測試是否成功打開
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0; i<number; ++i)
{
outfile<<salarys[i]<<endl;
}
outfile.close();
}
void Salary::add_salarys(int x)
{
int i;
for (i=0; i<number; i++)
salarys[i]+=x;
}
void Salary::sort_salarys()
{
int i,j;
double t;
for (i=0; i<number-1; i++)
for(j=0; j<number-i-1; 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;
for (i=0; i<number; i++)
cout<<salarys[i]<<"\t";
}
int main( )
{
Salary s;
s.read_data( );
s.add_salarys(500);
s.sort_salarys();
s.write_data( );
s.show_salarys( );
return 0;
}以上是“C++中數(shù)組作數(shù)據(jù)成員的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)網(wǎng)站建設公司行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)站欄目:C++中數(shù)組作數(shù)據(jù)成員的示例分析-創(chuàng)新互聯(lián)
當前地址:http://chinadenli.net/article4/gdhoe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、做網(wǎng)站、云服務器、標簽優(yōu)化、品牌網(wǎng)站建設、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)