自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

红孩儿编程大师

这里为您成为编程大师提供捷径

  • 博客(30)
  • 收藏
  • 关注

原创 红孩儿编辑器的模块设计文档目录

红孩儿编辑器的模块设计文档目录 1 主显示区域的滚动条的逻辑处理 2.1 核心控制子系统的控制模块 2.2 五笔输入法的控制逻辑 2.3  复制,粘贴与删除的缓存操作逻辑 3.1 编辑器的主显示区域的显示行号的逻辑 3.2 编辑器的主显示区域的编辑显示逻辑 4.1  编辑器主显示区的样式渲染的逻辑 4.2  拼音输入法模块的查询逻辑 5.1 矩阵转换模块的设计 5.2 光标定位的模块的设计 6.1...

2018-11-30 20:55:47 143

原创 红孩儿编辑器的模块设计17

红孩儿编辑器的模块设计17 自动生成代码     这个概念是有狭义和广义的,狭义根据配置定义的设置生成了代码块,例如eclipse的设置 对象的属性的代码实现,系统会自动生成setter 和getter的方法实现代码。     广义的自动生成代码是包括代码的转换的含义。例如编译器把高级编程语言转换成了汇编语言, 汇编器又进一步把汇编语言转换成了机器语言。还有DSL(领域专用语言)的工具,它可以把...

2018-11-29 20:56:50 151

原创 红孩儿编辑器的模块设计16

红孩儿编辑器的模块设计16   加密与解密的功能 在配置信息中,进行配置,有普通的文件保存与加密文件保存 在加密保存的信息下,需要用户设置密码,在打开加密的文件时, 需要输入密码,才能解密文件,进行正常的浏览与编辑文件。 还有加密算法的设置,例如方法1,方法2,方法3   实现过程: 在加密文件的保存时,加上八个字节的文件头。前七个字节是标识符, 标识这个文件是一个加密的文件,读取时需要解...

2018-11-28 22:34:01 167

原创 红孩儿编辑器的模块设计15

红孩儿编辑器的模块设计15 查找功能的逻辑 需要配置的信息有查找目标是多个还是一个,查找方向是向前还是向后,查找范围是全文还是选中范围,查找使用语言是英语还是汉语,在英语的情况下,大小写字母是否敏感,在汉语的情况下,简体字与繁体字是否敏感。查找是否支持正则表达式。在支持正则表达式的情况下,正则表达式的写法支持哪一种规范呢?因为几乎各种高级的编程语言都内在默认支持了正则表达式,但遗憾的是正则表达式的...

2018-11-27 20:49:58 171

原创 红孩儿编输器的模块设计14

红孩儿编辑器的模块设计14 代码自动格式化 格式化的规则需要事先定义,采用配置的方式进行设置。例如把制表符替换成4个空格符号。同一级的分界符对齐。代码块父子层级之间的加4个空格符缩进,超长代码行的自动换行。对象的方法之间加一个空行。 代码的格式化的目的是使程序的代码逻辑关系更清晰,提高了代码的可读性。代码主要是给人阅读的,顺便它也能在机器上执行。 但有时候,格式化可能画蛇添足,甚至执行错误,这需要...

2018-11-26 21:14:33 216 1

原创 红孩儿编辑器的模块设计13

红孩儿编辑器的模块设计13   自动补全功能的逻辑 分成两种情况 一种文本的写作过程 另一种是代码编写的过程 对于文本的自动补全,涉及到人工智能领域的一个分支自然语言处理的技术。 即对已有的文本进行相关的分析,来预测作者将要写的是什么,提示出相应 的选项,让写作者进行选择,以加快录入的效率。这个要求有一点高,需要有 词法和语法的分析,还有要一个巨量数据的语料库。可以先实现它的初级版本, 即当作...

2018-11-25 21:47:38 275

原创 红孩儿编辑器的模块设计12

红孩儿编辑器的模块设计12   插入图像的逻辑 插入图像需要解决的问题有如下的几个: 1如何把图像的文件上传到系统的内存中 2如何解析图像文件的数据流 3如何显示图像的信息 第一个问题使用了HTML5的File API进行实现。暂不展开叙述 第二个问题是本篇的重点讨论对象。 为了解析图像的文件数据流,需要了解图像文件的格式,不同的图像文件 格式,采用了不同的编码与解码方案。本系统首先默认实现...

2018-11-24 21:03:02 234

原创 红孩儿编辑器的模块设计11 语法的高亮显示

红孩儿编辑器的模块设计11 代码的语法高亮显示 这是一个有很强的需求的功能。对于程序员来说它是一个很重要的功能。在程序的编辑过程 中不可或缺。这就引出一个如下的问题。   什么样的设计是好的设计?   好的设计完美地满足了人们的需求,差的设计不但没有满足人们的需求,还会有阻碍的作用。 好的设计可以提高人们的工作的效率,差的设计让人分散精力并且浪费时间。 好的设计让人感到美的存在,让人使用...

2018-11-23 21:13:01 233

原创 红孩儿编辑器的模块设计10

红孩儿编辑器的模块设计10   10.1  文件保存的编码方式 在保存文件时,例如windows的记事本,会有一个编码方式的设置选项 可选的编码方式有ANSI,UTF-8,Unicode,Unicode-big-endian这四种。 默认是ANSI,它的编码方式是对于英语字符是ASCII,汉字是区位码, 也就是GB2312。这是汉字编码的1980年的国家标准。   因为无论是文本文件,还是...

2018-11-22 21:59:43 842 1

原创 红孩儿编辑器的模块设计9

红孩儿编辑器的模块设计9 主编辑区域的三大对象的设计 第一个是编辑器对象它有属性长度,宽度,光标的位置,行高度,字宽度,还有状态这个子对象。 行号所占用的字符数 它的方法有判断左边界,判断右边界,定位鼠标的行首,行尾,上下左右移动,上下翻页,回车, 退格,初始化,得到光标的位置信息,包括可见区的行号,列号,屏幕上的行号列号, 第二个对象是配置对象,它的属性有子对象查找的配置,字体大小,字体...

2018-11-21 21:19:46 170

原创 红孩儿编辑器的模块设计8

红孩儿编辑器的模块设计8 文件的保存与序列化与反序列化操作 保存的策略 有手工的保存与自动化的保存。 手工的保存就是用户自动点击保存按钮或者使用键盘上的快捷键操作。 自动化的保存就是系统每隔一定的时间检查一下,是否有修改,如果有,则保存到文件中。 手工的保存与自动化的保存,两者没有冲突与矛盾,可以同时采用这两种策略。 序列化 是把缓存中的二维结构,转换成一维的结构,即字符串或者是数据字节流...

2018-11-20 20:01:50 155

原创 红孩儿编辑器的输入法模块的函数依赖关系图

2018-11-19 22:37:41 103

原创 红孩儿编辑器模块设计7

红孩儿编辑器模块设计7 首次明确一下如下的相关的概念 屏幕 与屏幕的可见区,缓存与文件 屏幕与屏幕的可见区的关系,就好像是拿着放大镜看地图。 地图很大,用放大镜来移动着,看一个部分。 转换公式是 屏幕的可见区的相对的行号+左上角的顶点在屏幕中的行数=屏幕中的绝对的行号 屏幕的可见区的相对的列号+左上角的顶点在屏幕中的列数=屏幕中的绝对的列号 屏幕与缓存都可以看成是两维的数组,如果没有自动换...

2018-11-18 22:17:00 159

原创 红孩儿编辑器的模块设计6

红孩儿编辑器的模块设计6 编辑器的主显示区域的文件显示的整体逻辑 配置信息中的是否显示行号,是否自动换行,对文件在编辑器上的显示有直接的影响。 所以分成了如下的四种情况进行描述: 1  显示行号,自动换行     每行显示的字符总数n=编辑器的宽度/字符的宽度-行号占用的字符数     文件中的一行在屏幕上占用的行数=文件中的一行字符数/每行显示的字符的总数    显示时按照屏幕上的一行行进...

2018-11-17 22:16:51 206

原创 红孩儿编辑器的渲染子系统的渲染模块的函数依赖关系图

红孩儿编辑器的渲染子系统的渲染模块 函数关系图如下:  

2018-11-16 21:17:05 174

原创 红孩儿编辑器的核心控制子系统的函数依赖关系图

控制 子系统 的函数依赖关系图如下:    

2018-11-15 21:50:00 373

原创 红孩儿编辑器的模块设计5

红孩儿编辑器的模块设计5 5.1 矩阵转换模块的设计 16*16点阵 转换成 32*32点阵的逻辑 这就是说把一个点放大成四个点,如果这四点都显示的话,字体形状是相似的。 现在需要让它从粗体变成瘦体一点的。 这四个点的位置如下 1  2 3  4 如果这个点的右方有一个紧相邻的点,这四个点中显示1和2点 如果这个点的右下方有一个紧相邻的点,这四个点中显示 1和4 点 如果这个点的下方有一...

2018-11-14 21:57:32 203

原创 红孩儿编辑器的开发 1 字体库的生成过程

红孩儿编辑器的开发 1  字体库的生成过程 采用了位图的方式,以后的优化过程中,会改为矢量图的方式来实现。 现在采用的是16*16的点阵数据,先在EXCEL软件中,手工地把字的 形状画出来。有点的位置为1,无点的位置为0,一行计算成一个数据, 它的值小于等于65535。所以一个字的点阵图像表示成如下的16个数据 的数组,来表示这16行的情况。例如 如下的一行数据,代表汉字“一” [0,0,0,0...

2018-11-13 21:53:38 185

原创 红孩儿编辑器的模块设计4

红孩儿编辑器的模块设计4  编辑器主显示区的样式渲染的逻辑 例如在显示区有背景色或者是背景图片,字,以及对字的种种修饰, 包括加外框,下划线,中划线等 这需要有图层的概念,在显示区绘制第一个图层,是背景色或者是背景图片 第二个图层是字,第三个图层是字的修饰内容,例如外框,下划线,中划线等。 背景色,背景图片,字体大小,之类的信息,现在采用的是放在配置信息中。 这样做的好处是方便解析,但是灵活...

2018-11-12 20:43:18 171

原创 红孩儿编辑器的模块设计3

红孩儿编辑器的模块设计3  编辑器的主显示区域的显示行号的逻辑 首先需要明确的是行号的概念,有文件中的行号和屏幕上相对于屏幕左上角顶点的屏幕的行号。 需要需要的是文件中的行号,这是用户更关心的行号。这也意味着在上下翻页,或者滚动一行时, 行号与显示内容要一起刷新。 逻辑上分成两种情况来讨论。 一种是不自动换行的情况,意味着屏幕上的每一行都有一个行号,这个文件行号= 屏幕上的相对行号+屏幕上左上...

2018-11-11 20:26:11 142

原创 红孩儿编辑器的模块设计2

红孩儿编辑器的模块设计2   核心控制子系统的控制模块 第一层的控制分成三种情况: 以事件类型分为鼠标,键盘按下事件,键盘弹起事件 第二层控制分成语言设置 分成中文和英文 第三层控制为输入字符的分类 分成直接打印的字符,英语小写字母,数字与空格 五笔输入法的控制逻辑 分成四类,有一级简码,二级简码,三级简码,和四个字母的全码。 在三级简码和全码时, 在查找字符串对应区位码时,映射的数据是...

2018-11-10 21:48:29 149

原创 红孩儿编辑器的模块设计(1)主显示区域的滚动条的逻辑处理

红孩儿编辑器的模块设计(1)主显示区域的滚动条的逻辑处理 第一个问题是判断滚动条是否需要显示的问题, 第二个问题是如何渲染滚动条的问题 第三个问题是通知渲染滚动条,或者是取消滚动条的显示的时机问题 第四个问题是滚动条如何响应鼠标的操作的问题 第一个问题 逻辑规则如下 如果当文件的行数超过了一屏幕能够显示的最大的行数时, 需要在显示区域的右侧显示出纵向的滚动条。 如果文件的总行数改变成小于等于一...

2018-11-09 21:44:44 189

原创 红孩儿编辑器的详细设计第四部分

红孩儿编辑器的详细设计第四部分 系统中主要的数据结构设计 1缓存的结构 二维的数组,还有一个栈,是一个修改的日志 包括操作类型,位置,原内容,新内容。 2状态的结构 是一个对象,它有属性是文件名,当前的光标行号,当前光标的列号, 左上角顶点处的位置在文件中的行号,列号 3配置的结构 是一个对象,它有属性 是否是语法高亮显示,是否是代码折叠, 是否是括号匹配, 是否是自动换行,是否是显示行号...

2018-11-08 19:38:37 138

原创 红孩儿编辑器的详细设计第三部分

红孩儿编辑器的详细设计第三部分 这一部分详细地列出各个模块的接口定义 输入子系统 键盘模块  key_operation()   key_up() 鼠标模块   input(val)   核心控制子系统 控制模块   core_controll_logic(event_type,key_code,str) 输入法模块  //输入的是一个英语字符串,输出是一个以区位码为元素的二维矩阵。  lo...

2018-11-07 20:47:59 215

原创 红孩儿编辑器的详细设计第二部分

红孩儿编辑器的详细设计第二部分 第一部分是各个子系统的架构图 根据之前的设计文档,对之前的架构图进行细化得到如下的架构图   第二部分是各个子系统的模块的名称定义 key_map.js 是输入子系统的键值映射的模块,文件中只有键的常量定义, 这是数据文件的性质。不计入代码规模的行数统计。 character_draw.js  渲染子系统中的字符显示模块。 以下的两个文件是核心控制子...

2018-11-06 21:17:06 223

原创 红孩儿编辑器的开发规范

红孩儿编辑器的开发规范 第一:先写相关的设计与开发的文档,然后再开发程序代码。 如果不能把设计思路与系统实现的逻辑结构,以文档的形式描述清楚, 那么就是设计者根本不知道自己要做什么。开发者也没有了目标与方向。 在系统的规模很小的情况下,例如,总代码行数在2000行以下时, 程序可以不讲究任何的开发方法,甚至文档也可以没有,让程序代码 野蛮地成长。但是这个让开发者的头脑的记忆负担越来越重。 在2...

2018-11-05 21:41:10 267

原创 红孩儿编辑器的详细设计

红孩儿编辑器的详细设计 1。输入子系统 第一个设计问题是编辑器是采用多模式切换的方式,还是单模式的方式。本次开发采用了单模式的方式 多模式是指像linux操作系统下的vim编辑器那样分成编辑模式,命令模式,单行模式等。 单模式只有一种编辑模式。符合绝大多数的用户的使用习惯,开发会复杂一些。 多模式有利于开发实践,有利于纯键盘操作,和执行性能等,是适合系统管理员与程序员使用的方式。 多模式切换的概...

2018-11-04 22:17:29 302

原创 红孩儿编辑器的概要设计第二部分

红孩儿编辑器的概要设计第二部分 技术决策 1编程语言的选择  html,javascript 2 在1的基础上图像库的选择    使用HTML5的画布(canvas)api 3 持久化技术选择    使用WEB浏览器的客户端存储,以后考虑使用数据库例如redis. 以上的决策是为了实现编辑的在线的web版本。 1输入子系统 处理对键盘和鼠标的响应 模块有键值映射模块 主要实现的有如下的函数功...

2018-11-03 22:27:38 191

原创 红孩儿编辑器的概要设计

红孩儿编辑器的系统设计 设计原则: 1。尽快出一个原型的界面,再快速地进行迭代改进。 2。以易用性为第一目标 功能界面设计 1状态栏区域 2 功能按钮区域 3 编辑器显示主区域 4 输入区域 5 系统配置区域 例如编辑器的主要区域如下所示 红孩儿编辑器的架构设计 设计原则 1 可扩展性是第一位的 2 以插件的体系为理念 系统的一级子系统 有输入子系统,核心控制子系统,缓存子系统,渲染...

2018-11-02 22:27:54 205

原创 云管理平台的参考架构

2018-11-01 18:45:16 1769

matlab安装教程在windows操作系统下

matlab安装图解详细教程 ,操作系统为windows10 MATLAB 版本2020 22.1.0 软件分类:编程工具大小:4.47 GB时间:2023-08-31 软件介绍:MATLAB是mathworks官网发布的一款功能强大、性能稳定的商业数学软件

2024-04-09

数据分析领域-Python编程语言-NumPy数据处理-参考资料

这是专门适用于大学生的编程语言的代码库的使用说明,用于线性代数的 学习与理解,大学生计算机竞赛,Python的学习与使用,数据处理等

2024-03-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除