简单行编辑程序Word文件下载.docx
- 文档编号:19992904
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:14
- 大小:30.60KB
简单行编辑程序Word文件下载.docx
《简单行编辑程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《简单行编辑程序Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
.<
将<
插入活区中第<
行之后。
(2)行删除。
d<
行号1>
[<
空格>
行号2>
]<
;
删除活区中第<
行(到第<
行)。
(3)活区切换。
n<
将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。
(4)活区显示。
p<
逐页地(每页20行)显示活区内容,在每显示的一页之后请用户决定是否继续显示以后各页(如果存在)。
印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1。
各条命令中的行号均须在活区中各行号范围之内,只有插入命令的行号可以等于活区第一行行号减一,表示插入当前的屏幕中第一行之前,否则命令参数非法。
二、概要设计
1、主页面设计
2、存储结构设计
typedefstructtext
{
charstring[SIZE];
//存储每一行的元素
structtext*next;
//指向后一个节点的指针
intlength;
}text,*textp;
3、系统功能设计
1)行插入
2)行删除
3)活区切换
4)活区显示
5)结束
4、程序调用关系
程序结构流程图:
三、详细设计
1、数据结构存储定义
typedefstructtext
2、行插入
intinsert(textp&
head,FILE*out)
inthang,i;
textpp,p1;
scanf("
%d"
&
hang);
p=(textp)malloc(sizeof(text));
//为插入行分配空间
fflush(stdin);
fgets(p->
string,80,stdin);
/*输入插入行的内容*/
p1=head->
next;
if(head->
length==ActiveMaxLen)
fputs(p1->
string,out);
else{
if(hang==1)
{
p->
next=head->
head->
next=p;
length++;
}
else
{
for(i=2;
hang;
i++)
p1=p1->
next=p1->
p1->
printf("
在第%d行前插入完成\n"
hang);
returnOK;
}
3、行删除
intdel(textp&
head)//删除d命令对应的函数,用来删max-min中的行,用结构体中的flat表示是否被删除
text*p,*q;
intmin,max,i;
%d%d"
min,&
max);
if(head==NULL)
printf("
\nlistnull!
\n"
);
p=head;
for(i=1;
min;
i++)/*找到要删除的第一行的前一行*/
p=p->
for(i=i-1,q=p->
max;
i++)/*删除到最后一行*/
p->
next=q->
free(q);
q=p->
head->
length--;
第%d行到第%d行删除完成!
min,max);
4、活区切换
StatusLoadFile(textphead,FILE*fp)/*从文件读内容到活区*/
textpp;
for(p=head;
p&
&
(!
feof(fp));
p=p->
next)
{
if(!
fgets(p->
string,80,fp))break;
flat=1;
return0;
StatusSaveFile(textphead,FILE*out)/*存储活区的函数*/
{
p;
if(p->
flat==1)
fputs(p->
/*输出活区的内容到指定的文件*/
flat=0;
5、活区显示
voiddisplay(textphead)//显示P命令对应的函数,用来显示活区的内容
inti;
intj=head->
length/20;
intk=0;
textpp=head->
for(j=0;
j<
=head->
j++)
**********************page%d************************\n"
j+1);
for(i=20*j+1;
length;
next,i++)
%2d"
i);
%s"
p->
string);
if(i%20==0)
break;
是否继续显示下一页,是输入1,否输入0.\n"
k);
if(k==0)
break;
if(j==head->
length/20-1)
没有后续页面了\n"
}
四、测试分析
1.开始界面
2.用户输入一个已经存在的文本文件名称——in.txt并回车,程序将读出内容并存入一个新的文本文件——out中。
并输入命令p,显示。
3.输入命令i,在文本文件中插入文本。
4.输入命令d,删除选中文本。
并输入命令p,显示当前活区。
5.输入命令n,切换活区。
并输入命令平,显示。
6.输入命令e,结束程序并清除活区。
五、源程序设计
#include<
string.h>
stdio.h>
stdlib.h>
io.h>
process.h>
#defineTRUE1
#defineFALSE0
#defineOK1
#defineERROR0
#defineINFEASIBLE-1
#defineOVERFLOW-2
#defineActiveMaxLen100
#defineSIZE80
#definex20
charstring[SIZE];
intlength;
voidCreatelist(textp&
head)//建立一个80个节点的链表,是整个活区的大小
head=(text*)malloc(sizeof(text));
intn=0;
length=0;
textpp,q;
while(n<
80)
p=(text*)malloc(sizeof(text));
n++;
if(n==1)
{
head->
p->
next=NULL;
q=p;
}
else
{
q->
活区创建完成\n"
head)//删除d命令对应的函数,用来删max-min中的行,用结构体中的flat表示是否被删除
voidfreemem(textp&
head)//释放链表所占的内存
text*p=head->
while(p)
next=p->
free(p);
p=head->
活区清除\n"
voidLoadFile(textp&
head,FILE*fp,inte)/*从文件读内容到活区*/
for(intj=0;
e;
fgets(head->
string,81,fp);
for(inti=0;
head->
length&
voidSaveFile(textphead,FILE*out,FILE*in,int&
e)/*存储活区的函数*/
e=e+80;
voidHELP()//帮助函数,显示一些命令的格式
\n\t**********************************************************\n"
\t***行插入格式:
i<
**\n"
\t***行删除格式:
d<
\t***活区切换格式:
n<
\t***活区显示格式:
p<
\t***退出格式:
e<
\t**********************************************************\n"
voidmain()//主函数,用来接受命令
//编辑函数,用来接受处理编辑命令
inte=0;
textphead;
FILE*in,*out;
charc,inname[30],outname[30];
################################欢迎使用行编辑程序#############################\n"
HELP();
/*打开输入、输出文件*/
Entertheinfilename:
"
%s"
inname);
Entertheoutfilename:
outname);
if((in=fopen("
in.txt"
"
r"
))==NULL)
can'
topenthefile!
\n"
if((out=fopen(outname,"
w"
tiiopenthefile!
exit(0);
}
Createlist(head);
LoadFile(head,in,e);
do
inputorder:
c=getchar();
switch(c)
case'
p'
:
display(head);
break;
n'
SaveFile(head,out,in,e);
LoadFile(head,in,e);
printf("
活区切换...\n完成\n"
d'
del(head);
i'
/*插入行*/
insert(head,in);
case'
e'
printf("
结束!
break;
default:
\n\n\n!
!
inputerror!
/*命令格式非法提示*/
}while(c!
='
freemem(head);
六、用户手册
(1)进入程序的界面,出现命令的帮助信息,按任意键开始程序编辑。
(2)输入INPUT文件与OUTPUT文件的名字打开相应的文件。
(3)输入P命令显示活区的内容。
(4)其它的命令操作如下:
行插入格式:
行删除格式:
活区切换格式:
(5)最后输入e命令退出程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 编辑 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)