日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三周项目5-数组作数据成员

發布時間:2024/4/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三周项目5-数组作数据成员 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
設計一個工資類(Salary),其中類的數據成員如下:
class Salary { private:double salarys[50]; //多人的工資int number; //實際人數 };


要設計的成員函數有:

? void set_salarys( ):輸入職工工資(輸入-1標志著工資輸入結束),工資保存到salary數組中,實際人數保存到number中;
? void add_salarys(int x):給每個人漲x元工資
? void sort_salarys():對工資排序
? void show_salarys( ):顯示工資信息
(1)在main函數定義Salary類的對象,輸入工資,再給每個人漲500元工資,排序后工資數據,然后輸出結果。

/**Copyright (c) 2015,煙臺大學計算機學院*All gight reserved.*文件名稱:Demo.cpp*作者:邵帥*完成時間:2015年03月25日*版本號:v1.0 */ #include <iostream> using namespace std; class Salary { private:double salarys[50];int number; public:void set_salarys( );void add_salarys(int x);void sort_salarys();void show_salarys( );}; void Salary::set_salarys() {int i=0,sal;while(cin>>sal && sal!=-1){salarys[i]=sal;i++;}number=i+1; } 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() {for (int i=0;i<number;i++)cout<<salarys[i]<<" "; } int main() {Salary a;a.set_salarys();a.add_salarys(500);a.sort_salarys();a.show_salarys();return 0; }



(2)用salary[50]有限制,實際人數少時,會浪費空間,人數多了,無法完成任務。在main()中先輸入職工人數,作為參數傳遞給輸入職工工資的成員函數,然后利用動態分配內存的機制,開辟一個大小正好的連續空間,完成上面的工作。

/**Copyright (c) 2015,煙臺大學計算機學院*All gight reserved.*文件名稱:Demo.cpp*作者:邵帥*完成時間:2015年03月25日*版本號:v1.0 */ #include <iostream> using namespace std; class Salary { private:double *salarys;int number; public:void set_salarys( );void add_salarys(int x);void sort_salarys();void show_salarys( );}; void Salary::set_salarys() {int x,i;cout<<"請輸入職工的人數: ";cin>>number;salarys=new double[number];cout<<"請輸入職工的工資: ";for(i=0;i<number;++i){cin>>x;salarys[i]=x;}} 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() {for (int i=0;i<number;i++)cout<<salarys[i]<<" "; } int main() {Salary a;a.set_salarys();a.add_salarys(500);a.sort_salarys();a.show_salarys();return 0; }



(3)手工輸入工資?!太讓人不能忍受了。現給出包含了不足500個職工工資的文件salary.txt(下載),從文件中讀數據,完成上面的工作。

/**Copyright (c) 2015,煙臺大學計算機學院*All gight reserved.*文件名稱:Demo.cpp*作者:邵帥*完成時間:2015年03月25日*版本號:v1.0 */ #include <iostream> #include <fstream> #include <cstdlib> using namespace std; class Salary { private:double salarys[500];int number; public:void set_salarys( );void add_salarys(int x);void sort_salarys();void show_salarys( );}; void Salary::set_salarys() {int i;ifstream infile("salarys.txt",ios::in);if(!infile){cerr<<"打開文件失敗!"<<endl;exit(1);}i=0;while(infile>>salarys[i])i++;infile.close();number=i; } 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() {for (int i=0; i<number; i++)cout<<salarys[i]<<endl; } int main() {Salary a;a.set_salarys();a.add_salarys(500);a.sort_salarys();a.show_salarys();return 0; }



(4)增加一個成員函數,將排序后結果保存到一個文件中。

/**Copyright (c) 2015,煙臺大學計算機學院*All gight reserved.*文件名稱:Demo.cpp*作者:邵帥*完成時間:2015年03月25日*版本號:v1.0 */ #include <iostream> #include <fstream> #include <cstdlib> using namespace std; class Salary { private:double salarys[500];int number; public:void set_salarys( );void add_salarys(int x);void sort_salarys();void show_salarys( );void save_date();}; void Salary::set_salarys() {int i;ifstream infile("salarys.txt",ios::in);if(!infile){cerr<<"打開文件失敗!"<<endl;exit(1);}i=0;while(infile>>salarys[i])i++;infile.close();number=i; } 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::save_date() {int i;ofstream outfile("salarys_sort.txt",ios::out);if(!outfile){cerr<<"打開文件失敗!"<<endl;exit(1);}for(i=0; i<number; ++i){outfile<<salarys[i]<<endl;}outfile.close();} void Salary::show_salarys() {for (int i=0; i<number; i++)cout<<salarys[i]<<endl; } int main() {Salary a;a.set_salarys();a.add_salarys(500);a.sort_salarys();a.show_salarys();a.save_date();return 0; }

?

@ Mayuko

轉載于:https://www.cnblogs.com/mayuko/p/4567529.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的第三周项目5-数组作数据成员的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。