- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计:行编辑程序
一、需求分析
由于被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。而用行编辑把待编辑文件的一段放进内存,称为活区。本行编辑程序是以每行不超过320个字符为前提的。每次编辑会读入80行,活区每次只显示20行。
该程序要实现以下基本编辑命令和一些相关的命令:
行插入。格式:i回车行号回车文本回车。
将文本插入活区第行号行之后。
行删除。格式:d回车行号1,行号2回车。
删除活区中第行号1行到第行号2行。
活区切换。格式:n回车页数回车。
由于每次从输入文件读入80行,而活区每页显示20行,而活区切换就是要切换到需编辑的页面上去。
活区显示。格式p回车。
显示当前要编辑的活区内容。印出的每一行都有一个前置行号和一个空格符,行号固定为2位,增量为1。
(5)清屏。 格式:c回车。
(6)获得帮助。格式:h回车。
(7)退出。 格式:e回车。
二、概要设计
程序结构流程图:
初始化
初始化
输入命令i
输入命令d
输入命令n
输入命令p
输入命令c
输入命令h
输入命令e
插入一行内容
删除一行内容
切换活区
显示活区
清屏
显示帮助
信息
退出
存储结构的定义如下:
typedef struct text
{
char string[80];//存储每一行的元素
struct text *next;//指向后一个节点的指针
int flat;//确定此行是否被删除的标志
}text,*textp;
功能函数:
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();
功能:提供命令的格式。
主函数:
void main()
{
初始化;
输入命令;
Switch(c)
{
case ‘e’: 退出并保存编辑的内容
case ‘p’: 显示活区
case ‘n’: 活区切换
case ‘d’: 删除一行
case ‘i’: 插入一行
case ‘c’: 清屏
case ‘h’: 获得帮助
}
}
三、详细设计
#includestring.h
#includestdio.h
#includestdlib.h
#includeio.h
#includeprocess.h
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef struct text
{
char string[80];//存储每一行的元素
struct text *next;//指向后一个节点的指针
int flat;//确定此行是否被删除的标志
}text,*textp;
//函数声明
Status Createlist(textp head);
int del(textp head);
int display(textp head);
void freemem(textp head);
int insert(textp head);
Status SaveFile(textp head,FILE *out);
Status LoadFile(textp head,FILE *fp);
void HELP();
void main()//主函数,用来接受命令
//编辑函数,用来接受处理编辑命令
{textp head,q,p,p1;
int page=0;
FILE *fp,*out;
char c,inname[30],outname[30];
printf(################################欢迎使用行编辑程序#############################\n);
HELP();
printf(按任意键开始。。。。。);
您可能关注的文档
- 排毒减肥操 促进肠胃蠕动 解决便秘问题.doc
- 排风排烟系统分项工程质量技术交底卡.doc
- 掘进队岗位达标标准.doc
- 探寻注册会计师行业行政监管新机制《注册会计师行业行政监管机制研究》课题研讨暨评审会综述.doc
- 掘进机拆装运输安装安全技术措施解析.docx
- 探析欣赏教学在中学美术教育中的路径实施.doc
- 探析欣赏教学在中学美术教育中的路径实施教育论文.doc
- 探析农民工子女教育问题的现状及对策.doc
- 探究五六炮过河车VS反宫马新变.doc
- 探究中炮直车七路马VS屏风马双炮过河新变.doc
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)