行编辑程序说明书

合集下载

第3章UNIX文本编辑程序

第3章UNIX文本编辑程序
删除行
删除当前行的命令 dd 命令3dd删除从当前行开始的3行
删除块
删除到配对括号命令:将光标定位在括号上 d%
复制到剪贴板yank(不删除,只拷贝到剪贴板)
yy与y% paste取出剪贴板中内容 p
第3章 第13页
字符替换
替换光标处字符 r
ra命令将当前光标处字符替换为a 将当前光标处开始的三个字符依次替换为abc,则
需要按命令rarbrc
替换若干字符 R
例:命令Rabcdef,然后按Esc键 该命令把从当前光标开始的字符依次替换为abcdef,
用Esc来结束多字符替换命令
第3章 第14页
取消和重复
取消上一次的编辑操作(undo) u
如:误删了一段正文,用u命令可撤销删除 如:把文件中的所有abc字符串替换成xyz字符串,
用u命令可撤销替换
重复上一次的编辑操作 .
按圆点键,可以重复上一次的编辑操作 例如:按3dd命令删除了三行,然后按圆点键就再
删除三行,接着连续按圆点键,每按一次删三行
第3章 第15页
文件操作命令
存盘退出
ZZ :wq<CR>
存盘不退出
:w<CR>
不存盘退出
:q!<CR>
读入文件xyz.c插入到当前行之下

[a-zA-Z_][a-zA-Z0-9_]*->number \([a-zA-Z_][a-zA-Z0-9_]*\)->number
替换字符串中的 \0 \1 \2 ……
第3章 第23页
更灵活的替换(2)
将“变量名->number”替换为“变量名->num”
:1,$s/\([a-zA-Z_][a-zA-Z0-9_]*\)->number/\1->num/g

成批文件换名程序renlist的使用说明

成批文件换名程序renlist的使用说明

赵欣源电邮地址:PROFZHAO@本程序可为成批文件换名,换名文件个数只受存放文件名的文本文件限制。

将待换名的一批文件的文件名(不含后缀)保存在一个文本文件中(例如取文件名old.txt),作为原始文件名的列表;把一组新文件名(不含后缀)保存在另一个文本文件中(例如取文件名new.txt),作为新文件名的列表;且让这两个文本文件置于同一个目录中。

为了能转换不同类型的文件,后缀名在运行时由键盘输入。

程序依次从这两个文本文件中每次各读出一个文件名,使用换名函数ren (xx,yy)进行文件换名,即将文件名xx 换为yy(注解:xx 和yy是包含具体文件名的两个字符串指针变量)一直进行到两个文件的结束,并累计出换名文件的个数M。

程序运行前,首先将 renlist.exe 复制到待换名文件的文件夹中,并准备好old.txt和new.txt,记住待换名文件的后缀名。

双击renlist.exe,即出现如下屏幕:这时,输入包含一批老文件名(不含后缀)的文本文件的文件名,如old.txt(当然也可以用别的文件名,但必须是文本文件);接着又要求输入包含一批新文件名(不含后缀)的文本文件的文件名,如new.txt(当然也可以用别的文件名,但必须是文本文件);最后要求输入待转换文件的后缀名,也就是扩展名,在本例中扩展名是 .MP3 (请注意MP3前带一个点);此后,不管程序运行成功与否,均会回到Windows界面。

成功,就是文件已被转换,不成功,就是文件已未被转换。

问题是,部分文件转换了,而列表文件后面的那部分文件未转换,其原因是在new.txt 文本文件中所列出的新文件名不符合命名规则,所以程序中止了;建议新文件名中的特殊字符采用全角字符(如新文件名中包含半角的空格肯定出错,改为全角就好)。

对于制作old.txt文件,这里提供一个方法:如果用户在一个文本文件里从键盘上从头把所在文件夹中的文件名一个一个地输入,文件个数少问题不大,文件个数多则是一件很麻烦的事情。

GSK928TE数控车床编程说明书

GSK928TE数控车床编程说明书

编程篇第一章编程概要数控机床的自动加工过程,就是按照事先编写好的零件程序自动运行的过程。

所谓编程,就是根据加工零件的图纸和工艺要求,把它用数控语言描述出来,编制成零件的加工程序。

本篇主要说明本数控系统加工程序的指令含义及编制方式,在编制程序之前,请先详细阅读本篇内容。

1.1 坐标轴及其运动方向的定义本数控系统按照J B/T3051-1999 《数字控制机床坐标和运动命名》中关于普通车床的坐标和命名定义了系统的控制轴及运动。

本系统对可控制的两个坐标轴定义为X 、Z 轴,两个坐标轴相互垂直构成X—Z 平面直角坐标系.如图 1:X 坐标:X 坐标定义为与主轴旋转中心线相垂直,X 正方向为刀具离开主轴旋转中心方向。

Z 坐标:Z 坐标定义为与主轴旋转中心线重合,Z 正方向为刀具远离主轴箱方向。

1.2 机械原点机械原点为机床上固定位置的一点,通常数控车床的机械原点设置在X 轴和Z 轴的正方向最大行程处,并安装相应的机械原点开关和撞块,如果机床上没有安装机械原点开关和撞块,请不要使用本系统中回机械原点功能,或将 P12 参数的MZRO设置成 0 .1.3 编程坐标本系统编程可用绝对坐标(X、Z 字段),相对坐标(U、W 字段)或混合坐标(X/W、U/Z 字段)进行编程。

对于 X 轴坐标,本系统使用直径编程(所有 X 轴方向的尺寸和参数均用直径量表示)。

第二章程序结构为使机床能按要求运动而编写的CNC 指令集合称之为程序,数控系统按指令顺序使刀具沿线圆弧运动或使主轴启动停止,冷却液开关等,程序中的指令顺序就是按工件工艺要求的顺序而编制的。

2.1 字符字符是构成程序的最基本的元素。

本系统字符包括英文字母,数字和一些符号。

z 英文字母是每一个指令或数据的地址符,共有 17 个:D E F G I K L M N P R S TUW X Zz数字是每个地址符的具体数据:0,1,2,3,4,5,6,7,8,9z符号:% — .% :仅作为程序号的开始符—:表示负的数据. :表示小数点地址符定义及数据范围如下表所示2.2 字段2.3 程序段号程序段号是由字符 N 后带四位整数构成,在编辑时由系统自动产生但可以修改。

行编辑程序

行编辑程序

// 《数据结构》//第一组:行编辑程序(+注释)#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#include<conio.h>#define STACK_MAX_SIZE 100 //初始化分配空间最大值#define STACKINCREMENT 10 //空间增量struct SqStack{char *base;char *top;int stacksize;}; //定义结构体,头尾指针void Initstack(SqStack &S) //建立栈{S.base=(char*)malloc(STACK_MAX_SIZE *sizeof(char)); //分配空间,每个元素为一个存储单元if(!S.base) exit(1); //存储分配失败S.top=S.base; //初始化,头尾指针指向同一位置S.stacksize=STACK_MAX_SIZE; //栈的容量为100}void push(SqStack &S,char e) //插入元素e为栈顶元素{if(S.top-S.base>=S.stacksize) //判断是否满栈{S.base=(char*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char)); //追加栈的容量10if(!S.base) exit(1); //存储分配失败S.top=S.base+S.stacksize; //头指针指向栈顶元素的上一个位置S.stacksize+=STACKINCREMENT; //此时栈的长度为110}*S.top++=e;}char pop(SqStack &S,char e) //若栈不空,则删除S的栈顶元素,用e返回其值{if(S.top==S.base) //return false;e=*--S.top; // 等价于e=*(S.top-1); --S.top; e=*S.top;return e;}void clearstack(SqStack &S) //清空栈{S.top=S.base;}void destorystack(SqStack &S) //销毁栈{free(S.base); //释放空间S.top=S.base;}bool stackempty(SqStack &S) //查看栈是否为空,如果空,返回true,否则返回fasle {if(S.top==S.base)return true;return false;}void printstack(SqStack &S) //打印栈内元素{char e;while(!stackempty(S)) //判断循环{pop(S,e); //压栈,e为栈顶元素printf("%d",e); //输出e}}void main() //主函数{char ch,e;SqStack S,D; //定义两个栈S和Dprintf("请输入字符:\n");Initstack(S); //构造栈SInitstack(D); //构造栈Dch=getchar();while(ch!=EOF) //如果ch不是终止字符{while(ch!=EOF&&ch!='\n') //ch不是终止字符,且不是'\n'{switch(ch) //循环{case'#':pop(S,e); break; //遇#,删除栈顶元素case'@':clearstack(S); break; //遇@,清空栈Sdefault:push(S,ch); break; //否则,插入字符ch}ch=getchar(); //输入字符}while(!stackempty(S)) //如果栈S非空,循环{e=pop(S,e);push(D,e);}while(!stackempty(D)) //如果栈D非空,循环{e=pop(D,e);printf("%c",e);}clearstack(S);if(ch!=EOF)ch=getchar();}destorystack(S); //销毁栈S}/*遇到问题:1、头指针和尾指针的指向问题2、初始化空间容量问题,追加空间增量3、Switch分支语句判断问题*/。

虹润OHR-PR10系列简易PLC中文一体机使用说明书

虹润OHR-PR10系列简易PLC中文一体机使用说明书

一、产品介绍二、技术参数使用说明书OHR-PR10系列简易PLC中文一体机 Hong Run Precision Instruments Co., LtD.虹润OHR-PR10系列简易PLC中文一体机是一款中文文本编辑的逻辑控制继电器,集逻辑判断、输出、延时、计时、计数、跳转、循环等功能于一体。

适用于公共区域照明、绿化带灌溉、养殖投喂控制、设备逻辑控制与时序控制。

★易于操作的控制器现场编程,中文代码操作,易掌握。

★经济型小型自动控制器8路开关量输入(NPN/PNP/干接点)和8路开关量输出(2路单刀双掷,6路常开点)。

★电源故障措施当断电时,EEPROM可以备份程序和系统设置。

★自由逻辑编程内置99个计数器、99个计时器,18组编程操作组,可自由逻辑编程,每组可编辑159行程序。

★便于维护采用人机界面来显示用户指定的信息、日期、时间或其它数据。

★黑暗环境下背光更长背光自动切断时间可设为1~99分钟,或者可将背光设为常亮状态。

★编程安全性可设置密码来保护程序。

★远程监视功能通过RS-485通信进行远程监视。

★供电可选100~240VAC和12~24VDC电源可供选择。

★导轨式或壁挂式安装标准的35mmDIN导轨卡式安装,操作简单。

额定参数电源电压功率消耗工作温度相对湿度保存温度保护等级性能规格参数LCD显示屏操作按钮日历/时间绝缘电阻介电强度技术规格参数开关量输入开关量输出通讯输出功能块AC100~240V(50/60Hz);DC12~24V100VAC:7VA 最大 240VAC:10VA 最大 12/24VDC:4VA 最大-10~50℃10%~90%RH(无冷凝)-10~60℃IP20(安装在控制面板上)2.8英寸点阵式液晶显示,带LED背光8个按钮(4个光标按钮和4个操作按钮)精度:±15s/月(25℃±2℃)不小于20MΩ(500VDC下);在电源端子和所有输出端子之间;在不同输出端子之间。

广州数控980TD数控车床操作编程说明书

广州数控980TD数控车床操作编程说明书

广州数控980TD 编程操作说明书第一篇 编程说明第一章:编程基础1.1 GSK980TD 简介广州数控研制的新一代普及型车床CNC GSK980TD 是GSK980TA 的升级产品,采用了32位高性能CPU 和超大规模可编程器件FPGA ,运用实时多任务控制技术和硬件插补技术,实现μm 级精度运动控制和PLC 逻辑控制。

技术规格一览表运动控制 控制轴:2轴(X 、Z );同时控制轴(插补轴):2轴(X 、Z )插补功能:X 、Z 二轴直线、圆弧插补位置指令范围:-9999.999~9999.999mm ;最小指令1.2 机床数控系统和数控机床数控机床是由机床数控系统(Numerical Control Systems of machine tools)、机械、电气控制、液压、气动、润滑、冷却等子系统(部件)构成的机电一体化产品,机床数控系统是数控机床的控制核心。

机控系统由控制装置(Computer Numerical Controler简称CNC)、伺服(或步进)电机驱动单元、伺服(或步进)电机等构成。

数控机床的工作原理:根据加工工艺要求编写加工程序(以下简称程序)并输入CNC,CNC加工程序向伺服(或步进)电机驱动单元发出运动控制指令,伺服(或步进)电机通过机械传动构完成机床的进给运程序中的主轴起停、刀具选择、冷却、润滑等逻辑控制指令由CNC传送给机床电气控制系统,由机床电气控制系统完成按钮、开关、指示灯、继电器、接触器等输入输出器件的控制。

目前,机床电气控制通常采用可编程逻辑控制器(Programable Logic Controler 简称PLC),PLC具有体积小、应用方便、可靠性高等优点。

由此可见,运动控制和逻辑控制是数控机床的主要控制任务。

GSK980TD车床CNC同时具备运动控制和逻辑控制功能,可完成数控车床的二轴运动控制,还具有内置式PLC功能。

根据机床的输入、输出控制要求编写PLC程序(梯形图)并下载到GSK980TD,就能实现所需的机床电气控制要求,方便了机床电气设计,也降低了数控机床成本。

SUPERPRO 系列通用编程器说明书

SUPERPRO 系列通用编程器说明书

SUPERPRO系列通用编程器For Windows 95/98/NT/2000用户手册XELTEK版权声明软件版权1997-2006 XELTEK用户手册版权1997-2006 XELTEKSUPERPRO For Windows 软件及本用户手册版权归西尔特电子有限公司所有。

产品的发行和销售由原始购买者在许可协议条款下使用。

未经西尔特电子有限公司允许,任何单位及个人不得将该产品全部或部分复制、照相、再生、翻译或还原成其它机器可读形式的电子媒介。

本手册若有任何修改恕不另行通知。

因软件版本升级而造成的与本手册不符,以软件为准。

SUPERPRO是XELTEK南京西尔特电子有限公司的注册商标。

目录第一章总述1.1 简介1.1.1 什么是SUPERPRO?1.1.2 手册组织1.1.3 手册约定1.1.4 系统要求1.1.5 产品包装1.2 安装说明1.2.1 软件安装1.2.2 硬件安装1.2.3 运行程序1.2.4 通讯错误信息1.2.5 器件插入方法第二章菜单说明2.1File:<Alt-F> 文件2.1.1 Load 文件装入2.1.2 Save 文件保存2.1.3 Exit 退出2.2Buffer:<Alt-B> 缓冲区2.2.1 Edit 编辑2.2.2 Save Buffer... 存缓冲区数据2.2.3 Encryption Table 加密位表2.2.4 Vector Table向量表2.2.5 Transfer Data 传送数据2.3 Device:<Alt-D> 器件2.3.1 Run 运行2.3.2 Edit Auto 编辑自动(批处理命令)2.3.3 Select 选择器件2.3.4 Word Format 数据格式2.4 Test:<Alt-T> 测试2.4.1 New Pattern 添加新向量集2.4.2 Edit Pattern 编辑向量集2.4.3 Delete Pattern删除向量集2.4.4 TTL/CMOS Test TTL/CMOS器件测试2.4.5 Auto Find Device 自动查找器件型号2.4.6 Vector Test 矢量测试2.4.7 DRAM/SRAM Test DRAM/SRAM测试2.5 Option<Alt-O> 选项2.5.1 Setting 设置2.5.2 Auto increment 自动增加序列号2.5.3 Production Mode 量产模式2.5.4 Select Music 选择音乐2.5.5 Load Config File加载配置文件2.5.6 Save Config File存储配置文件2.6 Library: <Alt-L> 下载库(依型号而定)2.6.1Read 读2.6.2 Modify 修改2.6.3 Transfer 传送第三章附录3.1 客户技术支持3.2 错误提示信息第一章总述1.1 简介1.1.1 什么是SUPERPRO?SUPERPRO是一种性价比高、可靠、快速的通用编程器系列。

福昕高级PDF编辑器用户手册说明书

福昕高级PDF编辑器用户手册说明书

©福昕软件保留所有权未经福昕公司授权,此文档禁止以任何形式复制、转移、分配或储存。

Anti-Grain Geometry -Version 2.4© Maxim Shemanarev ()本产品的某些部分属于© [2001-2017] Solid Documents所有。

在所有副本中的版权提示允许的情况下,您可以复制、使用、修改、出售和分配该软件。

此软件不含任何隐藏条款,对于使用本软件所产生的任何后果,均由用户本人承担。

目录目录 (2)第一章–概述 (5)福昕高级PDF编辑器概述 (5)功能新增和改进 (6)关于手册 (8)快速安装指南 (8)关于福昕插件 (8)GPO功能 (10)使用Foxit Setup Customization Tool (10)第二章–使用入门 (12)工作区域 (12)自定义工作区 (18)偏好设置 (18)第三章–阅读 (29)打开PDF文档 (29)保存PDF文档 (30)关闭PDF文档 (31)导出PDF文件 (31)Foxit PDF IFilter (32)PDF行业标准验证及创建符合PDF相应标准的文档 (32)阅读 (33)查看PDF文档中的3D内容 (45)选择&复制 (46)字数统计 (48)检查PDF的辅助功能 (48)东亚语言包 (49)第四章–创建 (50)用不同方式创建PDF文档 (50)创建和定制PDF文件包 (63)将PDF文档识别成可搜索和可编辑的PDF文档 (63)从书签中创建PDF文档的目录 (66)第五章–编辑 (67)链接 (67)附件 (70)书签 (72)图像 (75)PDF优化 (80)动作向导(仅适用于企业版) (81)多媒体 (83)段落编辑 (86)对象 (86)关于图像编辑窗口(仅适用于企业版) (98)拼写检查 (106)PDF属性 (107)第六章–页面管理 (109)插入页面 (109)旋转、移动、交换和删除页面 (111)提取、复制和替换页面 (113)拆分文档到多个文件 (115)裁剪页面 (115)扁平化页面 (116)添加页眉页脚、水印和背景 (116)贝茨数(仅适用于企业版) (118)格式化页码 (119)第七章–注释 (120)注释工具 (120)更改注释外观 (131)管理注释 (132)第八章–共享文档 (139)将PDF文档作为邮件附件发送 (139)SharePoint集成 (139)共享审阅和邮件审阅 (141)NetDocuments集成 (144)iManage WorkSite集成 (145)福昕企业文件柜插件 (147)第九章–表单 (148)交互式表单和非交互式表单 (148)添加表单注释 (151)管理表单数据 (151)表单域 (153)运行JavaScript (171)第十章–安全 (174)查看PDF文档安全性 (174)密码保护和证书保护 (174)活动目录权限管理服务(AD RMS,仅适用于企业版) (178)删除敏感信息 (191)密文(仅适用于企业版) (191)使用AD RMS功能保护密文(仅适用于企业版) (193)第十一章–签名 (194)数字签名 (194)PDF快速签名 (200)第十二章–打印 (202)打印PDF文档 (202)设置“打印”对话框 (203)设置Foxit PhantomPDF Printer属性 (205)第十三章–附录 (210)快速安装指南 (210)组策略手册 (217)福昕高级PDF编辑器多语言安装包的组策略分发 (226)SharePoint配置 (229)Windows Azure活动目录权限管理快速入门 (231)Web Service配置 (231)键盘快捷键 (243)命令行 (247)联系我们 (248)第一章–概述福昕高级PDF编辑器概述欢迎使用福昕PDF电子文档处理套装软件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要本课程设计是实现“简单的行编辑程序”,此编辑程序的主要用处是接受用户从终端输入的程序和数据,并存入用户的数据区。

这个行编辑程序需要实现的功能包括:能够设立一个输入缓冲区,用于接受用户输入的一行字符然后逐行存入用户数据区;用户在输入出差错时,并在发现有误时可以及时更改。

此程序是一个课程设计的程序,只是模拟的一个简单的行编辑器,如需要真正设计一个行编辑器,那么还需要更为完善的程序。

关键词:行编辑;数据结构;VC++;线性结构AbstractThis course is designed to achieve "a simple line editor", the main use of this editing program is to accept input from the terminal user programs and data, and the data stored in the user's area. This program needs to achieve line editing features include: the ability to set up an input buffer for receiving a line of characters entered by the user and stored in the user data area progressive; awry when the user input, and can be found in time to change the wrong time . This program is a curriculum design process, just simulate a simple line editor, such as the need to really design a line editor, you also need a more comprehensive program.Keyword:Line editing; data structure; VC + +; linear structure目录1课题设计要求 (1)1.1课程设计的题目及内容 (1)1.2 题目要求 (2)2概要设计 (3)2.1存储结构的定义 (3)2.2功能函数 (3)2.3主函数 (4)2.4 函数设计 (4)2.4.1 主函数界面设计 (4)2.4.2帮助函数界面设计 (5)2.4.3用户操作界面设计 (5)3详细设计 (10)3.1主函数的设计 (10)3.2帮助函数子程序设计 (10)3.3编辑函数子程序设计 (11)3.4活区显示函数子程序设计 (12)3.5活区切换函数子函数设计 (13)3.6行删除函数子程序设计 (14)3.7行插入行数子程序的设计 (15)4调试过程及实验结果 (16)4.1调试过程 (16)4.2实验结果 (16)4.2.1帮助函数调试结果 (16)4.2.2打开文件函数调试结果 (17)4.2.3活区显示函数调试结果 (17)4.2.4活区切换函数调试结果 (18)4.2.5行删除函数调试结果 (18)4.2.6行插入函数调试结果 (19)5结论 (20)参考文献 (21)致谢 (22)附录1:用户使用说明 (23)附录2:源程序 (24)1课题设计要求1.1课程设计的题目及内容本次课程设计的题目为:简单的行编辑程序。

被编辑的文本文件可能很大,全部读入内存的做法既不经济也不总能实现。

一种解决办法是逐行地编辑,任何时刻只把待编辑文件的一行放在内存,称为活区。

允许输入出错时发现错误并及时更正。

试按照这种方法实现一个简单的行编辑程序。

通过该题目的设计过程,可以加深理解线性表及栈的逻辑结构、存储结构,掌握线性表及栈上基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。

通过对该软件课设的分析,了解到该课设要求设计一个程序,能够实现行插入、行删除、活区显示、活区切换四项功能。

分别设计出四个模块,用主函数集中调度,这样就可以方便快捷的实现各个函数以及整体函数的功能。

其具体做法是,先在程序的开始定义一个结构体,其中包括五个数据项,分别是存储每一行元素的项char string[80]、指向前一个结点的指针struct text *pre、指向后一个结点的指针struct text *next、记录每一行元素的长度int num以及判断是否删除的标志int flat。

当flat=0时,该行被删除;当flat=1时,该行不删除。

对文本的编辑,每次都采用先打开文本文件的形式,因为这样可以更直观的看出编辑后文本的变化。

实现活区显示的做法是建立一个链表,该链表有20个结点,在一页中放不下的部分为活区,执行p后可以显示出第一页的部分,在之后输入n便可以显示出活区的部分,即第二页的内容。

实现活区切换的做法是执行n后,先判断活区的内容,如果没被删除就把文本中内容读入到链表中,便可以直接显示出获取部分,即第二页的内容。

实现删除的做法是执行d,定义两个指针分别指向要删除的结点,删除两个结点之间的内容,最后将删除后的结果存盘并显示下一页内容。

实现插入的做法是执行i,定义一个指针变量插入行的前一行,然后给插入行分配存储空间,将插入行的内容插入到链表中,便实现行插入的功能。

1.2 题目要求1.用栈实现简单的行编辑程序,主要功能有:行插入(格式:i<行号><回车><文本><回车>,即将<文本>插入活区中的第<行号>行之后);行删除(格式:d<行号1>[ <行号2>]<回车>,删除活区中第<行号1>行(到第<行号2>行),两种格式的例子是:“d10 ”和“d10 14 ”);活页切换(格式:n<回车>,将活区写入输出文件,并从输入文件中读入下一段,作为新的活区);活区显示(格式:p<回车>,逐页地(每页20行)显示活区内容,每显示一页之后由用户决定是否继续显示以后各页(如果存在)。

印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1);2.设文件每行不超过320个字符,很少超过80个字符,由学生依据软件工程的测试技术自己确定,注意测试边界数据,如首行、尾行。

算法对于合法的输入数据都能产生满足规格说明要求的结果;3.算法对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;对算法实现过程中的异常情况能给出出错信息;4.较高要求:加入复杂操作,如对某行进行串替换等。

2概要设计2.1存储结构的定义typedef struct text{char string[80]; //存储每一行的元素struct text *next;//指向后一个节点的指针int flat; //确定此行是否被删除的标志}text,*textp;2.2功能函数Status Createlist(textp &head);功能:建立一个80个节点的链表,是整个活区的大小int del(textp head);功能:删除显示的活区的任意一行。

int display(textp &head);功能:按照每页20行的规格显示活区的内容。

void freemem(textp &head);功能:销毁链表,释放内存。

int insert(textp &head);功能:在显示的活区插入一行内容。

Status SaveFile(textp head,FILE *out);功能:将活区的内容保存到输出文件。

Status LoadFile(textp head,FILE *fp);功能:从输入文件读取内容到活区。

void HELP();功能:提供命令的格式。

2.3主函数void main(){初始化;输入命令;Switch(c){case ‘e’:退出并保存编辑的内容case ‘p’:显示活区case ‘n’: 活区切换case ‘d’: 删除一行case ‘i’: 插入一行case ‘h’: 获得帮助case ‘t’:行替换}}2.4 函数设计2.4.1 主函数界面设计void main()//主函数,用来接受命令{char c;printf("\n\t\t\t*****简单行编辑系统******\n");printf("\n\t\t\t*************************\n");printf("\t\t\t*** 1 EDIT ***\n");printf("\t\t\t*** 2 EXIT ***\n");printf("\t\t\t*************************\n");printf("\n*******请选择1,2:*********\n");c=getchar();switch(c){case '2':EXIT();break;case '1':EDIT();break;default:printf("\n\n\n!!!输入错误!!!\n");}}2.4.2帮助函数界面设计帮助函数的主要作用是在用户忘记如何操作的情况下在屏幕上给用户显示提示操作的信息,使行插入,行删除,活区显示,活区切换的执行方式。

void HELP()//帮助函数,显示一些命令的格式{printf("\n\t*******************************************************\n"); printf("\t ** 行插入格式:i<行号><回车><文本><回车> **\n"); printf("\t ** 行删除格式:d<回车><行号1>[<空格><行号2>]<回车> **\n"); printf("\t ** 活区切换格式:n<回车> **\n"); printf("\t ** 活区显示格式:p<回车> **\n"); printf("\t ** 清屏格式:c<回车> **\n"); printf("\t ** 帮助格式:h<回车> **\n"); printf("\t*********************************************************\n");}2.4.3用户操作界面设计简单行编辑程序的各种功能在编辑函数中实现。

相关文档
最新文档