C 物件導向練習題目

2021-09-11 08:37:43 字數 4214 閱讀 3257

使用者從鍵盤輸入形式如 12-45 這樣的「數值範圍」字串,代表從12到45這個範圍。 請你編寫乙個類 parse,可以解析這個字串。然後提供兩個函式,能夠獲取字串中的第乙個整數和第二個整數。(10分)

題目內容:

parse類要提供乙個有參建構函式,接收乙個字串引數;

parse類要提供乙個 int getfirst() 函式,返回「數值範圍」字串中的前面的整數;

parse類要提供乙個 int getlast() 函式,返回「數值範圍」字串中的後面的整數;

程式的主函式如下,請將主函式**拷貝到你的開發環境中,但是不要修改主函式內部的**:

#include 

#include 

int main() ;

std::cin >> s;  // 使用者輸入乙個範圍字串

parse p(s);     // 構造parse物件p,同時解析字串 s

std::cout << p.getfirst() << ' ' << p.getlast(); // 中間是兩個單引號括起來的乙個空格字元

return 0;}

要求:

不要使用c語言的字串處理函式

使用string類自帶的函式,或者標準庫中的函式

在string中找'-'字元,可以使用string類中的find函式,或者find_first_of()函式。find_first_of()的說明:

當然,你也可以用 find_last_of()或者rfind()函式。find_last_of()的說明:的說明:

將字串的一部分提取出來,需要使用 substr() 成員函式。substr()的說明:

將字串轉換為整數,可以使用標準庫的 std::stoi() 函式。std::stoi的說明:

警告1:

不要在主函式的返回語句前加 std::cin.get(); 否則無法通過本作業的測試用例

警告2:

請不要使用c++14或者c++17的特性。本oj還不支援這兩個標準。比如將函式返回值寫為 auto (c++14的特性)

輸入格式:

用英文連字元分隔的兩個整數構成的字串

輸出格式:

兩個整數,中間用1個空格分隔。第二個整數後面沒有空格或者換行

輸入樣例:

12345-54321

輸出樣例:

12345 54321

#include #include class parse 

int getfirst()

int getlast()

};int main() ;

std::cin >> s; // 使用者輸入乙個範圍字串

parse p(s); // 構造parse物件p,同時解析字串 s

std::cout << p.getfirst() << ' ' << p.getlast(); // 中間是兩個單引號括起來的乙個空格字元

return 0;

}

使用者從鍵盤輸入形式如 #ab!#12-45*c*#+*f* 這樣的「數值範圍」字串,代表從12到45這個範圍。12前面和45後面會有一些不包含數字以及英文連字元的干擾字元。 請你編寫乙個類 parse,可以解析這個字串。然後提供兩個函式,能夠獲取字串中的第乙個整數和第二個整數。(10分)

題目內容:

parse類要提供乙個有參建構函式,接收乙個字串引數;

parse類要提供乙個 int getfirst() 函式,返回「數值範圍」字串中的前面的整數;

parse類要提供乙個 int getlast() 函式,返回「數值範圍」字串中的後面的整數;

程式的主函式如下,請將主函式**拷貝到你的開發環境中,但是不要修改主函式內部的**:

#include 

#include 

int main() ;

std::cin >> s;  // 使用者輸入乙個範圍字串

parse p(s);     // 構造parse物件p,同時解析字串 s

std::cout << p.getfirst() << ' ' << p.getlast(); // 中間是兩個單引號括起來的乙個空格字元

return 0;}

要求:

不要使用c語言的字串處理函式

使用string類自帶的函式,或者標準庫中的函式

在string中找'-'字元,可以使用string類中的find函式,或者find_first_of()函式。find_first_of()的說明:

當然,你也可以用 find_last_of()或者rfind()函式。find_last_of()的說明:的說明:

將字串的一部分提取出來,需要使用 substr() 成員函式。substr()的說明:

將字串轉換為整數,可以使用標準庫的 std::stoi() 函式。std::stoi的說明:

警告1:

不要在主函式的返回語句前加 std::cin.get(); 否則無法通過本作業的測試用例

警告2:

請不要使用c++14或者c++17的特性。本oj還不支援這兩個標準。比如將函式返回值寫為 auto (c++14的特性)

輸入格式:

乙個字串,其中包含乙個「數值範圍」子串。該「數值範圍」字串是用英文連字元分隔的兩個整數構成的字串,類似「321-54103」

該「數值範圍」子串的前面和後面可能會有0個或者多個干擾字元。這些干擾字元不包含數字以及英文連字元。比如,干擾字元可能是 abc!@#$%^&*()=+}

} for (int i = n + 1; i < s.size(); i++)

} }int getfirst()

int getlast()

};int main() ;

std::cin >> s; // 使用者輸入乙個範圍字串

parse p(s); // 構造parse物件p,同時解析字串 s

std::cout << p.getfirst() << ' ' << p.getlast(); // 中間是兩個單引號括起來的乙個空格字元

return 0;

}編寫類circle。 編寫主函式,利用 std::array 建立包含10個物件的circle陣列並初始化。 用基於範圍的for迴圈遍歷circle陣列,求10個circie物件的面積之和(10分)

題目內容:

類circle有兩個建構函式。無參建構函式沒有函式體,使用default關鍵字宣告。有參建構函式接收乙個double型別引數作為circle的半徑。circle類的半徑的預設值是1.0

類circle有乙個 double getarea() 函式,返回圓的面積。圓周率的值取 3.14

在主函式中用 std::array 宣告乙個有10個circle物件的陣列。其中前5個circle物件的半徑分別設定為1.0、2.0、3.0、4.0、5.0。後5個物件使用circle的預設建構函式初始化。

在主函式中,用基於範圍的for迴圈遍歷circle陣列,求10個circie物件的面積之和

在主函式中,輸出所求出的面積和。

輸入格式:

輸出格式:

乙個浮點數。浮點數前後沒有空格和換行

輸入樣例:

輸出樣例:

#include class circle ;

circle(double radius_) :radius(radius_) {};

double getarea()

};int main() ;

for (int i=0;i<10;i++)

std::cout << area;

}

物件導向練習題

一 讀程式 1 寫出下列 的執行結果 class fatherclass public class test extends fatherclass public static void main string args 結果 fatherclass create fatherclass creat...

物件導向練習題

class myyear object definit self self.year int input 請輸入年份 def show season self for i in range 1,13 if i in 12,1,2 print i,冬季 elif i in 3,4,5 print i,...

c 物件導向基礎練習題

定義乙個借書證類 bookcard,在該類定義中包括如下內容 私有成員變數 char stuname 借書證學生的姓名 int id 借書證學生的學號 int number 所借書的數量 再定義公有成員函式 建構函式 用來初始化 3 個資料成員 析構函式 釋放動態空間 display 顯示圖書證的 ...