ifile

设计模式之组合模式

时光怂恿深爱的人放手 提交于 2020-02-01 09:09:36
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可。 定义:(GoF《设计模式》):将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 从定义中可以看出,组合模式用来表示部分与整体的层次结构(类似于树结构),而且也可以使用户对单个对象(叶子节点)以及组合对象(非叶子节点)的使用具有一致性,一致性的意思就是说,这些对象都拥有相同的接口。 很多书中包括文章都喜欢使用公司、子公司以及部门的例子,这其实就是一个典型的树结构。其实生活当中的树结构还有很多,比如书的目录、文件系统、网站的菜单等等,有很多很多。 我们先来看看组合模式的类图,引自百度百科。 类图当中有三个类,一个是Component(节点的统一接口),它的目的是为了统一节点的操作。接下来的两个实现类,一个则是非叶子节点(Composite),它可以有子节点。另外一个则是叶子节点(Leaf),它不能含有子节点。 我们随便挑一个树结构的例子,比如文件系统,我们来分析一下,在文件系统中,如果使用组合模式,各个部分的类都应该是什么样子的。 首先,文件系统中,叶子节点是文件,非叶子节点是文件夹,所以Leaf和Composite实现类就是文件和文件夹

c++ 读写文件

≡放荡痞女 提交于 2019-12-29 17:59:38
建立流对象:     输入文件流类(执行读操作): ifstream in;     输出文件流类(执行写操作): ofstream out; 使用成员函数open打开函数: ios::in 以输入方式打开文件(读操作) ios::out      以输出方式打开文件(写操作),如果已经存在此名字的文件夹,则将其原有内容全部清除 ios::app 以输入方式打开文件,写入的数据增加至文件末尾 ios::ate 打开一个文件,把文件指针移到文件末尾 ios::binary 以二进制方式打开一个文件,默认为文本打开方式 如: ofstream ofile; ofile.open("zhongju.txt"); //默认为 out 覆盖 读文件: istream& getline (char* s, streamsize n ); istream& getline (char* s, streamsize n, char delim ); 从istream中读取至多n个字符(包含结束标记符)保存在s对应的数组中。即使还没读够n个字符, 如果遇到delim或 字数达到限制,则读取终止,delim都不会被保存进s对应的数组中。 bool getline(istream &in, string &s) 直到出现以下情况为止: 注意是 string •读入了 文件结束标志 •读到一个 新行

个人作业第四次——结对编程

这一生的挚爱 提交于 2019-12-01 08:35:20
一、项目地址: GitHub仓库地址: https://github.com/Pastrain/WordCount 队友作业地址: https://www.cnblogs.com/xiaxiaoshux/p/11673232.html 二、时间估计(PSP表格): 解题思路: 当我们看到这个题目的时候,觉得还是有些复杂的。。。因为我们两个都对C++比较熟悉,所以我们决定用这个语言来完成项目。首先看到是要读取文件,并对文件内的内容进行统计,就先去网上稍微回顾了一下C++中的关于文件的操作。然后又去看了一下常用的容器,进行选择。确定下来之后,将要用到的一些资料的网站保存下来,然后就开始项目的设计。 PSP表格: PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 · Estimate · 估计这个任务需要多少时间 20 Development 开发 360 · Analysis · 需求分析 (包括学习新技术) 60 · Design Spec · 生成设计文档 60 · Design Review · 设计复审 (和同事审核设计文档) 20 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 · Design · 具体设计 40 · Coding ·

《构建之法》第三次团队作业

ぐ巨炮叔叔 提交于 2019-12-01 08:32:11
一、项目地址: GitHub仓库地址: https://github.com/Pastrain/WordCount 队友作业地址: https://www.cnblogs.com/pastrain/p/11672188.html 二、时间估计(PSP表格): 解题思路: 一开始看到这个题目,没细看还觉得不就一个统计单词的嘛,后来分析动工的时候,就感到心情复杂... 分析的时候首先看到是要读取文件,再对文件内的内容进行统计。就对文件IO以及C++容器做了一些功课。 然后就开始项目的设计。 PSP表格: PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 · Estimate · 估计这个任务需要多少时间 20 Development 开发 360 · Analysis · 需求分析 (包括学习新技术) 60 · Design Spec · 生成设计文档 60 · Design Review · 设计复审 (和同事审核设计文档) 20 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 · Design · 具体设计 40 · Coding · 具体编码 120 · Code Review · 代码复审 40 · Test · 测试(自我测试,修改代码

IFile、File与实体转换

a 夏天 提交于 2019-11-28 22:19:47
  /** * 根据物理实体文件在开发工程中创建实体文件 */ @Override public void getEntityFilesByErFile(IFile erfile, IFolder entityFolder) { if (null == erfile || null == entityFolder) { ERDiagramActivator.showErrorDialog("ER图表为空!"); return; } // 通过file反编译获取diagram,再创建实体,通过流写入文件,到folder路径下 File tradeFile = erfile.getLocation().toFile(); // ifile转换成file byte[] fileByteArray = this.File2ByteArray(tradeFile);// 文件转成二进制数据 if (null == fileByteArray) { return; } // 将二进制数组转换成对象 ERDiagram resultDiagram = null; try { resultDiagram = (ERDiagram) this.restore(fileByteArray); } catch (ClassNotFoundException e) { e.printStackTrace(