實驗五 類和對象-3

1.ex3.cpp

 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4 using namespace std;
 5 
 6 // 函數聲明 
 7 void output1(vector<string> &);  
 8 void output2(vector<string> &);  
 9 
10 int main()
11 {
12     vector<string>likes, dislikes; // 創建vector<string>對象likes和dislikes
13     
14     // 為vector<string>數組對象likes添加元素值 ( favorite book, music, film, paintings,anime,sport,sportsman,etc) 
15     // 補足代碼 
16     // 。。。 
17      likes.push_back("favorite book");
18     likes.push_back("music");   
19     likes.push_back("film");
20     likes.push_back("paintings");
21  
22     
23     cout << "-----I like these-----" << endl;
24     // 調用子函數輸出vector<string>數組對象likes的元素值 
25     // 補足代碼
26     // 。。。 
27     output1(likes);
28     
29     // 為vector<string>數組對象dislikes添加元素值 
30     // 補足代碼 
31     // 。。。 
32      dislikes.push_back("anime");
33       dislikes.push_back("sport");
34     dislikes.push_back("sportsman");
35     
36     cout << "-----I dislike these-----" << endl;
37     // 調用子函數輸出vector<string>數組對象dislikes的元素值 
38     // 補足代碼
39     // 。。。 
40     output2(dislikes);
41     
42     
43     // 交換vector<string>對象likes和dislikes的元素值 
44     // 補足代碼
45     // 。。。 
46     likes.swap(dislikes);
47     
48     
49     cout << "-----I likes these-----" << endl;
50     // 調用子函數輸出vector<string>數組對象likes的元素值 
51     // 補足代碼
52     // 。。。 
53     output1(likes);
54     cout << "-----I dislikes these-----" << endl;
55     // 調用子函數輸出vector<string>數組對象dislikes的元素值 
56     // 補足代碼
57     // 。。。 
58     output2(dislikes);
59                         
60     return 0;
61 }
62 
63 
64 // 函數實現 
65 // 以下標方式輸出vector<string>數組對象v的元素值  
66 void output1(vector<string> &v) {
67     // 補足程序
68     // 。。。 
69     for(int i=0;i<v.size();i++)
70     cout<<v[i]<<",";
71     cout<<endl;
72 }
73 
74 // 函數實現
75 // 以迭代器方式輸出vector<string>數組對象v的元素值 
76 void output2(vector<string> &v) {
77     // 補足程序
78     // 。。。
79     vector<string>::iterator  iter;
80     for(iter=v.begin() ;iter!=v.end() ;iter++)
81     cout<<*iter<<",";
82     cout<<endl;
83 }

6-17

 1 #include <iostream>
 2 #include <stdlib.h>
 3 using namespace std;
 4 int main()
 5 { // int *p;定義了一個指針p,然而p并沒有指向任何地址,所以當使用*p時是沒有任何地址空間對應的,所以 *p=9 就會導致,不知道把這個1賦值給哪個地址空間了
 6     int *p=NULL;
 7     int a = 9;
 8     p =&a;
 9     cout << "The value at 不加上p: " << *p;
10     system("pause");
11     return 0;
12 }
13 /*不加上#include <stdlib.h>和system("pause"); 我vs2017的cmd框會閃退,求解惑.*/

6-18

 1 #include <iostream>
 2 #include "stdlib.h "
 3 using namespace std;
 4 int fn1() {
 5     int *p = new int(5);//new的值一定要delete
 6     return *p ;
 7     delete p;
 8 }
 9 int main()
10 {
11     int a = fn1();
12     cout << "the value of a is: " << a;
13     system("pause");
14     return 0;
15 }

期中考試題

第一題

 1 Dice.h
 2 
 3 class Dice {
 4 public:
 5     Dice(int n) :sides(n) {
 6 
 7     }
 8     int cast()
 9     {
10         return rand() % sides + 1;
11     }
12 
13 private:
14     int sides;
15 
16 };
17 
18 main.cpp
19 #include<iostream>
20 #include<cstdlib>
21 #include<ctime>
22 #include"Dice.h"
23 
24 using namespace std;
25 
26 int main() {
27 
28     srand(time(NULL));
29 
30     Dice A(40);
31 
32     int num = 0;
33 
34     for (int j = 0; j<500; ++j) {
35 
36         if (A.cast() == 19)num++;
37 
38     }
39 
40     double p = 0;
41 
42     p = (double)num / 500.0;
43 
44     cout << "學號 20178303019 被抽中的概率是:" << p << endl;
45 
46     return 0;
47 
48 }

第三題

book.h

 1 #ifndef BOOK_H
 2 #define BOOK_H
 3 
 4 #include <string>
 5 using std::string;
 6 
 7 class Book {
 8     public:
 9         Book(string isbnX, string titleX, float priceX);  //構造函數  
10         void print(); // 打印圖書信息 
11     private:
12         string isbn;
13         string title;
14         float price;
15 };
16 #endif

book.cpp

#include "book.h"
#include <iostream> 
#include <string>
using namespace std;// 構造函數
// 補足程序 
// ...
Book::Book(string isbnX, string titleX, float priceX) {isbn = isbnX;title = titleX;price = priceX;
}// 打印圖書信息
// 補足程序 
// ...
void Book::print() {cout << "Isbn: " << isbn << " Title: " << title << " Price: " << price << endl;
}

main.cpp

#include "book.h"
#include <vector>
#include <iostream>
using namespace std;int main()
{// 定義一個vector<Book>類對象// 補足程序// ... vector<Book> BOOK;string isbn, title;float price;// 錄入圖書信息,構造圖書對象,并添加到前面定義的vector<Book>類對象中// 循環錄入,直到按下Ctrl+Z時為止 (也可以自行定義錄入結束方式) // 補足程序// ... cout << "請依次錄入圖書信息 出版編號(isbn), 書名(title), 定價(price)" << endl;do{cin >> isbn >> title >> price;} while (cin >> isbn);// 輸出入庫所有圖書信息// 補足程序// ... for (int i = 0; i<BOOK.size(); i++)BOOK[i].print();return 0;
}

//可能是我停止錄入那邊的代碼寫錯了。。不會寫,求指點

動態矩陣

matrix.h

 1 #ifndef MATRIX_H
 2 #define MATRIX_H
 3 class Matrix {
 4     public:
 5         Matrix(int n); // 構造函數,構造一個n*n的矩陣 
 6         Matrix(int n, int m); // 構造函數,構造一個n*m的矩陣 
 7         Matrix(const Matrix &X); // 復制構造函數,使用已有的矩陣X構造 
 8         ~Matrix(); //析構函數 
 9         void setMatrix(const float *pvalue); // 矩陣賦初值,用pvalue指向的內存塊數據為矩陣賦值 
10         void printMatrix() const; // 顯示矩陣
11         inline float &element(int i, int j); //返回矩陣第i行第j列元素的引用
12         inline float element(int i, int j) const;// 返回矩陣第i行第j列元素的值 
13         void setElement(int i, int j, int value); //設置矩陣第i行第j列元素值為value
14         inline int getLines() const; //返回矩陣行數 
15         inline int  getCols() const; //返回矩陣列數 
16     private:
17         int lines;    // 矩陣行數
18         int cols;      // 矩陣列數 
19         float *p;   // 指向存放矩陣數據的內存塊的首地址 
20 };
21 #endif

matrix.cpp

#include<iostream>
#include"matrix.h"
using namespace std;
int i, j;
Matrix::Matrix(int n) :lines(n), cols(n) {p = new float[lines*cols];
}
Matrix::Matrix(int n, int m) : lines(n), cols(m) {p = new float[lines*cols];
}
Matrix::Matrix(const Matrix &x) : lines(x.lines), cols(x.cols) {p = new float[lines*cols];for (i = 0; i<lines*cols; i++)p[i] = x.p[i];
}
Matrix::~Matrix() {delete[] p;
}
void Matrix::setMatrix(const float *pvalue) {for (i = 0; i<lines*cols; i++)p[i] = pvalue[i];
}
void Matrix::printMatrix() const {for (i = 0; i<lines; i++) {for (j = 0; j<cols; j++)cout << p[i*lines + j] << " ";cout << endl;}
}
inline float Matrix::element(int i, int j) const {cout << p[(i - 1)*lines + j - 1] << endl;
}
void Matrix::setElement(int i, int j, int value) {p[(i - 1)*lines + j - 1] = value;
}
inline int Matrix::getLines() const {cout << lines << endl;
}
inline int Matrix::getCols() const {cout << cols << endl;
}

main.cpp

#include<iostream>
#include"matrix.h"
using namespace std;
int main()
{int l, c, i, j, n;cout << "輸入行數和列數" << endl;cin >> l >> c;float a[l*c];cout << "初始化矩陣" << endl;for (i = 0; i<l*c; i++)cin >> a[i];Matrix A(l, c);A.setMatrix(a);cout << "輸出矩陣" << endl;A.printMatrix();cout << "輸入行數和列數輸出該數" << endl;cin >> i >> j;A.element(i, j);cout << "改變第幾行第幾列的數" << endl;cin >> n;A.setElement(i, j, n);cout << "輸出這個數" << endl;A.element(i, j);cout << "返回矩陣行數與列數" << endl;A.getLines();A.getCols();return 0;
}

真的 看了很多人很多人的代碼,這行都是這么寫的。

但我確實編不出來啊。。。

期中考試 第二條 還不會寫

就不把代碼拿出來丟人了。。

轉載于:https://www.cnblogs.com/wuyijie/p/9074139.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452582.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452582.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452582.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vector用法詳解

這篇文章的目的是為了介紹std::vector&#xff0c;如何恰當地使用它們的成員函數等操作。本文中還討論了條件函數和函數指針在迭代算法中使用&#xff0c;如在remove_if()和for_each()中的使用。通過閱讀這篇文章讀者應該能夠有效地使用vector容器&#xff0c;而且應該不會再去…

linux 共享移動硬盤,隨時登陸上QQ 自帶Linux移動硬盤實戰

在以往我們的觀念中&#xff0c;移動硬盤頂多就是個移動存儲設備&#xff0c;根本談不上有什么功能&#xff0c;但今天這款一盤通卻將我們原始的觀念打了一個180大轉彎&#xff01;如果你的電腦支持USB設備啟動&#xff0c;那么只需要在BIOS進行一下更改&#xff0c;一盤通就可…

需求分析的圖形工具(層次方框 warnier IPO)

1 層次方框圖 層次方框圖用樹形結構的一系列多層次的矩形框描繪數據的層次結構。 例如&#xff0c;描繪一家計算機公司全部產品的數據結構可以用下圖層次方框圖表示。 這家公司的產品由硬件、軟件和服務3類產品組成&#xff0c;軟件產品又分為系統軟件和應用軟件&#xf…

如何處理錯誤信息 Pricing procedure could not be determined

2019獨角獸企業重金招聘Python工程師標準>>> 當給一個SAP CRM Quotation文檔的行項目維護一個產品時&#xff0c;遇到如下錯誤信息&#xff1a;Pricing procedure could not be determined 通過調試得知錯誤消息在function module CRM_PRIDOC_COM_PRCPROC_DET_SEL第…

Flask愛家租房--訂單(下訂單)

文章目錄0 、效果展示1、思路總結2、后端代碼3、前端js4、前端html0 、效果展示 detail.html booking.html 1、思路總結 1&#xff09;用戶打開房屋詳情頁detail.html之后&#xff0c;后端detail.js會判斷此訪問用戶是否為房東&#xff0c;若不是房東&#xff0c;則在詳情…

linux下各權限的細分

PS&#xff1a;有時候你發現用root權限都不能修改某個文件&#xff0c;大部分原因是曾經用chattr命令鎖定該文件了。chattr命令的作用很大&#xff0c;其中一些功能是由Linux內核版本來支持的&#xff0c;不過現在生產絕大部分跑的linux系統都是2.6以上內核了。通過chattr命令修…

紅帽linux lnmp搭建,Linux(redhat5.4)下lnmp環境的搭建

在前面我們已經實現了lamp架構的創建&#xff0c;今天就讓我們來看一看lnmp架構是如何實現的。計劃的實驗步驟如下&#xff1a;1. 數據庫mysql的安裝2. Nginx的安裝&#xff0c;libevent(編譯庫代碼)的安裝&#xff0c;pcre的安裝3. Php的安裝4. 測試1. Mysql 的安裝//注意:小編…

為什么借助開源學習是最有效的?

導讀&#xff1a;盛大創新院高級研究員莊表偉近日編撰系列文章《借助開源項目&#xff0c;學習軟件開發》活動&#xff0c;引起業界關注。莊表偉認為&#xff0c;通過編撰這些文章&#xff0c;希望更多開發者能夠借助開源項目提高開發效率&#xff0c;減少重復勞動并從開源軟件…

redux middleware 源碼分析

原文鏈接 middleware 的由來 在業務中需要打印每一個 action 信息來調試&#xff0c;又或者希望 dispatch 或 reducer 擁有異步請求的功能。面對這些場景時&#xff0c;一個個修改 dispatch 或 reducer 代碼有些乏力&#xff0c;我們需要一個可組合的、自由增減的插件機制&…

Flsak愛家租房--訂單(獲取用戶訂單、用戶評論)

文章目錄0.頁面效果1.思路總結2.后端代碼3.前端js4.前端html0.頁面效果 1.思路總結 1&#xff09;用戶點擊“我的訂單”&#xff0c;js向后端獲取數據&#xff0c;并加載在前端的模板中&#xff1b; 2&#xff09;用戶點擊相應訂單的“去支付”按鈕&#xff0c;js向引導用戶…

【SCOI2005】【BZOJ1087】互不侵犯King(狀壓dp)

problem 在NN的棋盤里面放K個國王每個國王會攻擊它周圍的一圈共8個格子使他們互不攻擊&#xff0c;共有多少種擺放方案N < 9solution 用01串表示某一行放置的情況 首先枚舉當前做到第幾行&#xff0c;以及當前一共放了幾顆棋子。于是狀態f[i][j][k]表示到第i行&#xff0c;一…

軟件工程形式化技術簡介

形式化技術在軟件工程中有效的提高了開發的效率、改進了軟件開發的質量、減少了開發費用。形式化的技術容易在軟件的規約上取得一致性&#xff0c;它屬于一種非常有效的交流方式。 (一)非形式化的缺點 用自然語言書寫的系統規格說明書&#xff0c;可能存在矛盾、二義性、含糊性…

華為榮耀筆記本linux怎么下載軟件,華為magic book筆記本怎么下載軟件

大家好&#xff0c;我是時間財富網智能客服時間君&#xff0c;上述問題將由我為大家進行解答。華為magic book筆記本下載軟件的方法如下&#xff1a;1、首先&#xff0c;點擊桌面開始圖標&#xff0c;找到應用商店&#xff0c;并點擊。2、進入應用商店&#xff0c;點擊搜索欄&a…

國內外軟件開發上的差距與分析

提高自己&#xff0c;迎接好的未來。 在開始任何其他文字之前&#xff0c;首先有必要正視一個根本現實&#xff1a;國內外軟件開發的水平是有差距的。 這一結論的最直接證據是每一輪新技術的發起者基本上都是國外的人或公司&#xff1a; 從方法論&#xff08;CMMI&#xff0…

Flask愛家租房--訂單(房東接單、拒單)

文章目錄0.效果展示1.效果展示2.后端接口3.前端js4.前端html0.效果展示 1.效果展示 1&#xff09;當房東點擊“客戶訂單”&#xff0c;js向后端接口get_user_orders()獲取數據&#xff0c;訂單頁面開始加載&#xff1b; 2&#xff09;當房東確定接單時&#xff0c;js會向后端…

WebView性能優化--獨立進程

Android允許一個app同時存在多個進程&#xff0c;可以根據需要把不同的模塊放到不同進程中處理。 一、WebView獨立進程的好處 1.有效增大App的運存&#xff0c;減少由webview引起的內存泄露對主進程內存的占用。 2.避免WebView的Crash影響App主進程的運行。 3.擁有對WebView獨立…

linux修改python默認版本

linux修改python默認版本 update-alternatives --config pythonposted on 2018-05-24 22:42 psycheman 閱讀(...) 評論(...) 編輯 收藏 轉載于:https://www.cnblogs.com/psycheman/p/9085576.html

什么是有窮狀態機

有窮狀態機的作用是描述對象在它的生命周期內所經歷狀態序列&#xff0c;以及如何響應來自外界的事件。有窮狀態機首先包含一個有限狀態的集合&#xff0c;還包含了從一個狀態到另外一個狀態的轉換。 有窮自動機看上去就像是一個有向圖&#xff0c;其中狀態是圖的節點&#xf…

linux設置開機自啟 etc rt.d,Linux下禁止服務開機自啟動

一、 Upstart是兼容System V的配置方式的&#xff0c;但主要的服務配置放在 /etc/init 下&#xff0c;這也就是為什么修改 /etc/rc${runlevel}.d/ (Ubuntu默認啟動runlevel2&#xff0c;也就是/etc/rc2.d/)下的MySQL啟動配置并不能真正起到禁止MySQL自啟動的原因(比如使用命令 …