• 网易云课堂_C++程序设计入门(下)_第7单元:出入虽同趣,所向各有宜 – 文件输入和输出_第7单元


    第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_);
    		width_ = width;
    		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(), '
    ');
    	cin.get();
    #endif
    
    	return 0;
    }
    
  • 相关阅读:
    Latex排版全解
    CSS编码规范
    UML状态图和活动图
    GitHub详解(GitHub for Windows)
    CSS盒子模型之CSS3可伸缩框属性(Flexible Box)
    CSS盒子模型
    剑指offer-面试题1:赋值运算符函数
    Java基础(2)面向对象和封装,对象的创建和使用、java对象的内存图
    Java基础(1)IntelliJ IDEA入门、常用快捷键和数组操作
    日语学习计划(转载)
  • 原文地址:https://www.cnblogs.com/denggelin/p/7134098.html
Copyright © 2020-2023  润新知