资源简介
数据结构课程设计之简单的文本编辑器,完全自创!!
代码片段和文件信息
#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.em
文件 472 2011-04-22 13:49 文本编辑器\文本编辑器\Debug\文本编辑.exe.em
文件 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.xm
文件 1589 2010-06-30 17:14 文本编辑器\文本编辑器\UpgradeLog2.xm
文件 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个文件信息
- 上一篇:误删除文件恢复,绝对可以使用
- 下一篇:企业信息系统的架构设计
相关资源
- 汇编语言课程设计—电子秤
- 数据库课程设计 数据库课设
- 简单的网上鞋店购物系统
- 简单的PL0编译器
- 数据库课程设计-航空售票系统 实验报
- premiere课程设计
- 计算机专业考研数据结构1600题
- First集和Follow集生成算法模拟
- 武汉理工大学计算机马区综合实验3数
- EDA课程设计
- 计算机网络课程设计校园网设计
- 客户管理系统与分析课程设计
- 校园网的规划与设计 网络工程 课程设
- 广工 数据库课程设计 成绩管理系统
- GeekOS操作系统课程设计project0-4讲解
- 数据结构图形化演示,里面有动态查
- 《数据库课程设计》课程设计-工厂管
- 毕业设计管理系统 课程设计
- DOS画画_操作系统课程设计_操作系统图
- 编译原理课程设计(词法分析和语法
- fragment简单的切换页面demo
- 软件工程课程设计 网络订餐系统
- fuse文件系统课程设计源代码和设计文
- 操作系统课程设计报告-单用户多级文
- 模拟万用表模电课程设计
- 校园小商品 交易系统 数据库课设 课
- 在线投票系统代码和课程设计
- 数字电路课程设计——病房呼叫系统
- 计算机组成原理课程设计实验报告完
- arm课程设计_排队叫号系统
评论
共有 条评论