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

代码片段和文件信息
#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个文件信息
- 上一篇:误删除文件恢复,绝对可以使用
- 下一篇:企业信息系统的架构设计
相关资源
- FTP课程设计(服务端+客户端)
- 一个超简单的企业管理系统(带ACCE
- 数据结构年终考题范围和答案 耿国华
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- 数据结构 朱战力 习题解答 数据结构
- 单片机课程设计 篮球计分器
- 编写简单的RMI程序 多线程web 服务器
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- 教学计划编制系统
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 大数(链表、数组)实现
- 一个简单的verilog编写的DMA IP CORE,和
- 简单的房屋租赁系统
- 编译原理课程设计:词法语法编译器
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- 静态网页简单的作业
- 数据库VFP课程设计
- 分页系统模拟实验 操作系统 课程设
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- IOCP 类 简单的IOCP(IO完成端口)服务
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
- 超市收银系统eclipse access大学课程设计
- 航空订票系统_数据结构课程设计
评论
共有 条评论