1. 程式人生 > >網易雲課堂_C++程序設計入門(下)_第7單元:出入雖同趣,所向各有宜 – 文件輸入和輸出_第7單元 - 作業1:OJ編程

網易雲課堂_C++程序設計入門(下)_第7單元:出入雖同趣,所向各有宜 – 文件輸入和輸出_第7單元 - 作業1:OJ編程

c++ detail using span 換行 tro size str cout

第7單元 - 作業1:OJ編程

返回

溫馨提示:

1.本次作業屬於Online Judge題目,提交後由系統即時判分。

2.學生可以在作業截止時間之前不限次數提交答案,系統將取其中的最高分作為最終成績。

本作業是第7單元作業系列。

本單元【多個作業】之間有【前後依賴關系】。

本單元作業應【按照次序】完成。

依照學術誠信條款,我保證此作業是本人獨立完成的。

1 閱讀所給的代碼,理解代碼的主要功能及原理 補充缺失代碼 提交OJ判分(10分)

題目內容:

以單例模式創建一個屏幕Screen對象。

具體內容及作業要求,請參見 【第七單元第X節】 的 【單元作業1說明】。

輸入格式:

用空格分開的兩個整數,代表屏幕分辨率

輸出格式:

用空格分開的兩個整數,代表屏幕分辨率。隨後有換行符

輸入樣例:

800 600

輸出樣例:

800 600

時間限制:500ms內存限制:32000kb

#include <iostream>
#include <limits>

using namespace std;

class Screen {
private:
	//----補充多個數據域成員

	// 在Screen類中獲取/釋放圖形窗口資源,是一種RAII方法
	//   關於RAII,可以參見異常處理單元的材料
	unsigned int width;
	unsigned int height;
	static Screen *instance;

	Screen(unsigned int width, unsigned int height) {
		// 如果啟用了圖形庫,則將初始化圖形模式的函數置於此處
		// initgraph(width_, height_);
		this->width = width;
		this->height = height;
	};
	~Screen() {
		// 如果啟用了圖形庫,則將關閉圖形模式的函數置於此處
		// closegraph();
		delete instance;
		instance = NULL;
	}

public:
	//----補充 getWidth() 與 getHeight() 函數,
	unsigned int getWidth()
	{
		return width;
	}

	unsigned int getHeight()
	{
		return height;
	}

	static Screen* getInstance(unsigned int width = 640, unsigned int height = 480) {
		// 單例模式
		//----補充函數體
		Screen* ret = instance;
		if (ret == NULL)
		{
			instance = new Screen(width, height);
			ret = instance;
		}

		return ret;
	}
};

Screen* Screen::instance = 0;
//----補充Screen類的特殊數據成員初始化語句

int main() {
	int width, height;
	Screen* screen = 0;

	cin >> width >> height;
	screen = Screen::getInstance(width, height);
	screen = Screen::getInstance();

	cout << screen->getWidth() << " " <<
		screen->getHeight() << endl;

	// GCC及VC編譯器在調試模式下會暫停,便於查看運行結果
#if ( defined(__DEBUG__) || defined(_DEBUG) )
	cin.ignore(numeric_limits<streamsize>::max(), ‘\n‘);
	cin.get();
#endif

	return 0;
}

網易雲課堂_C++程序設計入門(下)_第7單元:出入雖同趣,所向各有宜 – 文件輸入和輸出_第7單元 - 作業1:OJ編程