资源简介

数据结构课程设计之简单的文本编辑器,完全自创!!

资源截图

代码片段和文件信息

#include “stdio.h“
#include “malloc.h“
#include “string.h“
#include “stdlib.h“
#include “conio.h“
#include “menu.h“
#include “LineList.h“
#include “RowList.h“
#define Lower ((p->L[i]>=‘a‘ && p->L[i]<=‘z‘) || (p->L[i-j]>=‘a‘ && p->L[i-j]<=‘z‘))
#define Upper ((p->L[i]>=‘A‘ && p->L[i]<=‘Z‘) || (p->L[i-j]>=‘A‘ && p->L[i-j]<=‘Z‘))
#define Num ((p->L[i]>=‘0‘ && p->L[i]<=‘9‘) || (p->L[i-j]>=‘0‘ && p->L[i-j]<=‘9‘))
char str[MAXSIZE];


/******************************************************************************************************/

void print_Line_Num(int j)
{//在输出文本时在每行的开头输出行号
if(j<10)
printf(“ %d: “j);
else if(j>9 && j<100)
printf(“%d: “j);
else
printf(“%d:“j);
}

/******************************************************************************************************/
void print_doc(RowList R)
{//在屏幕上打印出文本
int klen;
LList p=R.head;
while(p!=R.tail || k {
p=p->next;
k=1;
len=Line_Len(p->L);
print_Line_Num(p->LNum);
for(k;k<=len;k++)
printf(“%c“p->L[k]);

}
}
/******************************************************************************************************/
int insertdoc(char str[]RowList &R)
{//导入现有的文本,并创建一个文本链表
int i=1j=0flag;
LType L;//每行行序列的数据类型L
FILE *fp;
char filename[20];
if(R.head->next!=NULL)//若R.head->next现在不为空先释放空间
{
free(R.head);
InitRowList(R);//初始化文本串链表
}
while(1)
{
printf(“请输入要插入的文件名:“);
scanf(“%s“filename);
getchar();
if((fp=fopen(filename“rb“))==NULL)
printf(“\n\t\t\t不存在该文件!\n“);
else break;
}
while(!feof(fp))
{
flag=MAXSIZE;
for(i=1;i<=flag && !feof(fp);i++)//flag为每行最大的输出字符数
{
str[i]=fgetc(fp);
if(str[i]==‘\r‘)
{//这是遇到回车字符时的处理,每个回车字符包含‘\r‘和‘\n‘两个字符
str[i++]=fgetc(fp);//str[i]赋值为‘\n‘
break;
}
else if(str[i]==-1)//当到达文件末尾时的处理(由于上面的处理会影响feof(fp)的值,使其不能正确确定文件末尾
break;
else if(str[i]==‘\t‘)//碰到TAB键的处理,flag的值减6
flag-=6;
}
CreatRowList(RLstri++j);//创建一个文本串链表
}
printf(“\n\t\t\t   *********************“);
printf(“\n\t\t\t   *文 本 导 入 成 功 !*“);
printf(“\n\t\t\t   *********************\n“);
print_doc(R);
printf(“\n“);
fclose(fp);
return OK;
}

/*****************************************************************************************************/
void Get_next(WString WStrint next[])//KMP匹配算法中的得到next值
{
int i=1j=0;
next[1]=0;
while(i<(int)WStr[0])
{
if(j==0 || WStr[i]==WStr[j])
{
++i;
++j;
if(WStr[i]!=WStr[j])
next[i]=j;
else
next[i]=next[j];
}
else
j=next[j];
}
}
/*****************************************************************************************************/
int KMP_Index(WString WStrRowList Rint pre[]int last[])
{//KMP匹配算法将单词的第一个字母和最后一个字母的位置分别赋给pre[]和post[]
int next[30];
int i=1j=1;
LList p=R.head->next;//p指向文本串中的第一行
Get_next(WStrnext);
while(1)//一行一行的进行查找
{
while(i<=(int)p->L[0] && j<=(int)WStr[0])//KMP匹配算法的核心部分
{
if(p

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     488960  2011-04-22 13:39  文本编辑器\数据结构课程设计报告.doc

     文件      20676  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\BuildLog.htm

     文件         65  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\mt.dep

     文件      52224  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\vc90.idb

     文件      61440  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\vc90.pdb

     文件     525312  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\文本编辑.exe

     文件        406  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\文本编辑.exe.embed.manifest

     文件        472  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\文本编辑.exe.embed.manifest.res

     文件        381  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\文本编辑.exe.intermediate.manifest

     文件    1144868  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\文本编辑.ilk

     文件      65876  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\文本编辑.obj

     文件    2345984  2011-04-22 13:49  文本编辑器\文本编辑器\Debug\文本编辑.pdb

     文件       1201  2010-07-05 16:39  文本编辑器\文本编辑器\LineList.h

     文件       1707  2011-04-22 13:48  文本编辑器\文本编辑器\menu.h

     文件       5680  2010-07-08 13:40  文本编辑器\文本编辑器\rowlist.h

     文件      13517  2010-07-03 20:28  文本编辑器\文本编辑器\text.txt

     文件       1224  2010-06-30 15:52  文本编辑器\文本编辑器\UpgradeLog.xml

     文件       1589  2010-06-30 17:14  文本编辑器\文本编辑器\UpgradeLog2.xml

     文件       3868  2006-12-04 03:41  文本编辑器\文本编辑器\文本编辑.4.5.resharper.user

     文件      11259  2010-07-08 13:50  文本编辑器\文本编辑器\文本编辑.cpp

     文件       3427  2010-06-25 22:13  文本编辑器\文本编辑器\文本编辑.dsp

     文件        524  2010-06-25 23:24  文本编辑器\文本编辑器\文本编辑.dsw

     文件     470016  2011-04-22 13:49  文本编辑器\文本编辑器\文本编辑.ncb

     文件      49664  2010-07-02 13:54  文本编辑器\文本编辑器\文本编辑.opt

     文件       1346  2010-07-02 13:53  文本编辑器\文本编辑器\文本编辑.plg

     文件       1023  2010-07-01 16:16  文本编辑器\文本编辑器\文本编辑.sln

    ..A..H.     17408  2011-04-22 13:49  文本编辑器\文本编辑器\文本编辑.suo

     文件       4865  2010-06-28 23:37  文本编辑器\文本编辑器\文本编辑.vcproj

     文件       1415  2011-04-22 13:49  文本编辑器\文本编辑器\文本编辑.vcproj.chengc-PC.chengc.user

     文件       1405  2010-07-09 08:56  文本编辑器\文本编辑器\文本编辑.vcproj.Ipod.chengc.user

............此处省略10个文件信息

评论

共有 条评论