屏幕Screen类文件编写

注意:

inline 定义的函数必须放在 .h 文件中,否则编译器报错!
其次,注意写全称在 .h 里,如 std::

screen.h 头文件

#ifndef SCREEN_H
#define SCREEN_H
#include<string>
#include<iostream>class Screen
{
public:typedef std::string::size_type index;			//定义序号别名Screen(index hgth, index wdth, const std::string &cntnts);	//声明构造函数char get() const { return contents[cursor];}	//定义成员函数 get() 返回位置处的字符char get(index ht, index wd) const;	//声明成员函数 get(a,b) get重载函数index get_cursor() const;		//声明成员函数 get_cursor() 返回indexScreen& move(index r, index c);		//声明成员函数 move(a,b) 返回screen类引用Screen& set(char);			//声明成员函数 set(a) 返回screen类引用Screen& display(std::ostream &os);	//声明成员函数 display(输出流) 返回screen类引用//----------------- 注意写 std:: ------------------------------------------------------
private:std::string contents;	//定义成员变量 内容字符串index cursor;		//定义成员变量 光标序号index height, width;	//定义成员变量 高,宽
};
#endif

screen.cpp 头文件具体实现文件

#include"screen.h"
#include<iostream>
#include<string>
using namespace std;Screen::Screen(index hgth, index wdth, const string &cntnts = " "):cursor(0), height(hgth),width(wdth)
{							//定义构造函数 光标位置为0,屏幕尺寸初始化contents.assign(hgth*wdth, ' ');		//填充文本初始化为hgth*wdth个 空格if(!cntnts.empty())contents.replace(0,cntnts.size(),cntnts);	//从第0位开始,用输入的字符串替换掉
}char Screen::get(index r, index c) const	//定义成员函数 get(a,b)
{if(!contents.empty() && r > 0 && c > 0 && r <= height && c <= width){return contents[(r-1) * width + c - 1];		//返回(r,c)行列处的字符}else{cout << "超出屏幕范围!!!" << endl;}return '!';
}Screen::index Screen::get_cursor() const	//定义成员函数get_cursor()
{return cursor;				//注意返回值类型前加类名!
}Screen& Screen::move(index r, index c)		//定义成员函数 move(),光标cursor移动到指定位置
{index row = r * width;cursor = row + c;return *this;
}Screen& Screen::set(char c)			//定义成员函数 set(a)
{contents[cursor] = c;			//光标处字符=creturn *this;
}Screen& Screen::display(ostream &os)		//定义成员函数 display()
{string::size_type index = 0;while(index != contents.size())			//把字符按每行宽度个输出{os << contents[index];if((index+1)%width == 0){os << '\n';}++index;}return *this;
}

main_screen.cpp 主函数

#include"screen.h"
#include<iostream>
using namespace std;
int main()
{Screen myscreen(5,6,"aaaaa\naaaaa\naaaaa\naaaaa\naaaaa\n");//定义Screen类对象myscreen,初始化为5行6列的字符myscreen.move(4,0).set('#').display(cout);//move使光标移动到指定的第5行,第1列,返回的是对象自己*this//set使光标处字符变成#//display用cout输出所有字符cout << "光标当前所在位置和字符为: " << myscreen.get_cursor() << " " << myscreen.get() << endl;string::size_type r=1, c=1;cout << "输入你要获取的位置行列数字(从1开始):" << endl;cin >> r >> c;cout << myscreen.get(r,c) << endl;return 0;
}

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器翻译自动评估-BLEU算法详解

机器翻译自动评估-BLEU算法详解 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/qq_31584157/article/details/77709454 </div><link rel"stylesheet" href"https://csdnimg.cn/re…

论文浅尝 | 利用Lattice LSTM的最优中文命名实体识别方法

本文转载自公众号&#xff1a;机器之心。选自arXiv作者&#xff1a;Yue Zhang、Jie Yang机器之心编译参与&#xff1a;路、王淑婷近日&#xff0c;来自新加坡科技设计大学的研究者在 arXiv 上发布了一篇论文&#xff0c;介绍了一种新型中文命名实体识别方法&#xff0c;该方法利…

最全MySQL面试60题和答案

Mysql中有哪几种锁&#xff1f; 1.表级锁&#xff1a;开销小&#xff0c;加锁快&#xff1b;不会出现死锁&#xff1b;锁定粒度大&#xff0c;发生锁冲突的概率最高&#xff0c;并发度最低。 2.行级锁&#xff1a;开销大&#xff0c;加锁慢&#xff1b;会出现死锁&#xff1b;…

中文幽默语料库构建与计算项目(幽默等级识别,幽默类型识别,隐喻类型识别,隐喻情绪识别)

ChineseHumorSentiment chinese Humor Detection or Computation based on corpus and nlp methods, 基于语料库与NLP方法的中文幽默计算与检测项目 项目地址:https://github.com/liuhuanyong/ChineseHumorSentiment 项目介绍 幽默多指令人发笑的品质或者具有发笑的能力&…

账户Account类文件编写(static成员使用)

static类成员是该类所有成员共享一份的数据&#xff0c;一处修改了&#xff0c;全部变更&#xff1b; static成员函数只能调用static成员数据&#xff1b; static const整形int&#xff0c;char&#xff0c;可以在类内声明和初始化&#xff0c;类外不必再声明&#xff08;跟编译…

百度机器阅读理解比赛赛后总结

百度机器阅读理解比赛赛后总结 <!-- 文章内容 --><div data-note-content"" class"show-content"><div class"show-content-free"><p>2018年4-5月间&#xff0c;笔者参加了百度举办的<a href"https://links.jia…

课程 | 《知识图谱》第二期重磅来袭!

参团&#xff0c;咨询&#xff0c;查看课程&#xff0c;请点击【阅读原文】↓↓

All in Linux:一个算法工程师的IDE断奶之路

一只小狐狸带你解锁 炼丹术&NLP 秘籍在合格的炼丹师面前&#xff0c;python可能被各种嫌弃前不久卖萌屋的lulu写了一篇vim的分享《算法工程师的效率神器——vim篇》&#xff0c;突然想起来自己也有一篇攒了几年灰的稿子&#xff0c;在小伙伴的怂恿下跟小夕强行翻新了一下&a…

2019 阿里Java 4轮面试题,含必考题答案参考!

Java一面 hashmap源码问题 HashMap底层结构 put操作讲一下 HashMap、HashMap如何保证线程安全、ConcurrentHashMap JVM有哪些回收算法&#xff0c;对应的收集器有哪些&#xff1f; jvm g1的内存模型讲一下&#xff0c;G1和CMS收集器的区别&#xff1f;以及G1收集器对CMS的改…

技术动态 | 自底向上构建知识图谱全过程

本文转载自公众号&#xff1a;阿里技术。“The world is not made of strings , but is made of things.”——辛格博士&#xff0c;from Google.知识图谱&#xff0c;是结构化的语义知识库&#xff0c;用于迅速描述物理世界中的概念及其相互关系&#xff0c;通过将数据粒度从d…

数据结构--单链表single linked list数据结构C++实现

2018年2月开始学习的 C Primer&#xff0c;到今天2019年3月已经整整一年了&#xff0c;非常感谢在一起交流的小伙伴&#xff0c;是你们的无私帮助和分享使得我能跨越很多技术的坑&#xff0c;感谢你们&#xff01;期待我们2019年一起拿下《数据结构与算法》以及Python入门。 …

搜索中的 Query 理解及应用

本文转载自公众号“夕小瑶的卖萌屋”&#xff0c;专业带逛互联网算法圈的神操作 -----》我是传送门 关注后&#xff0c;回复以下口令&#xff1a; 回复【789】 &#xff1a;领取深度学习全栈手册&#xff08;含NLP、CV海量综述、必刷论文解读&#xff09; 回复【入群】&#xf…

GAN原理,优缺点、应用总结

<h1 class"csdn_top" id"gan原理优缺点应用总结"><a name"t0"></a>GAN原理&#xff0c;优缺点、应用总结</h1> <br> 本文已投稿至微信公众号–机器学习算法全栈工程师&#xff0c;欢迎关注</article><p&…

java程序员进阶必读书单

以下是我推荐给Java开发者们的一些值得一看的好书&#xff0c;从java基础开始到高级&#xff0c;以及从高级进阶到架构等的书单。 基本都是经典之作&#xff0c;可以利用工作闲暇的时间&#xff0c;系统阅读。 本文作者&#xff0c;优知学院创始人 陈睿 优知学院是IT人在线进…

胡伟 | 面向多实体人机协作消解的对比表生成自动化方法

众包实体消解实体消解&#xff08;Entity Resolution&#xff0c;简称ER&#xff09;旨在发现不同知识图谱中指称真实世界相同对象的实体。众包实体消解&#xff08;Crowd ER&#xff09;在使用机器的基础上&#xff0c;还使用人来完成实体消解任务。众包实体消解的一个常见流程…

poj 1250 解题(链表法)

http://poj.org/problem?id1250 题意大意 住宿床位有限&#xff0c;按顺序入住&#xff0c;用ABC等代表单个人&#xff0c;第1次出现代表入住&#xff0c;第2次出现代表离开 输入&#xff1a; 1 ABCBCA 代表有1个床位&#xff0c; A入住&#xff0c; B入住&#xff0c;入住…

怎样高效阅读一份深度学习项目代码?

犹豫很久要不要把读代码这个事情专门挑出来写成一篇推文。毕竟读代码嘛&#xff0c;大家可能都会读。而且笔者个人读的和写的代码量也并不足以到指导大家读代码的程度。但笔者还是决定大胆地写一点&#xff1a;就当是给自己设立今后读代码的标准&#xff0c;也将一些之前未能践…

令人拍案叫绝的Wasserstein GAN

本文后续&#xff1a;Wasserstein GAN最新进展&#xff1a;从weight clipping到gradient penalty&#xff0c;更加先进的Lipschitz限制手法 在GAN的相关研究如火如荼甚至可以说是泛滥的今天&#xff0c;一篇新鲜出炉的arXiv论文《Wasserstein GAN》却在Reddit的Machine Learnin…

java架构师进阶之独孤九剑:数据结构以及书籍推荐

这是整个java架构师连载系列&#xff0c;分为9大步骤&#xff0c;我们现在还在第一个步骤&#xff1a;程序设计和开发->数据结构与算法。 “ 如果说 Java 是自动档轿车&#xff0c;C 就是手动档吉普。数据结构呢&#xff1f;是变速箱的工作原理&#xff0c; 你完全可以不…

中文文本蕴含计算项目(88万中文文本蕴含数据集+中文文本蕴含模型)

ChineseTextualInference ChineseTextualInference project including chinese corpus build and inferecence model, 中文文本推断项目,包括88万文本蕴含中文文本蕴含数据集的翻译与构建,基于深度学习的文本蕴含判定模型构建. 项目地址:https://github.com/liuhuanyong/Chine…