- 2
- 0
- 约2.15万字
- 约 17页
- 2018-06-03 发布于湖北
- 举报
本编辑器实验附源代码
四 川 大 学 软 件 学 院
实 验 报 告
学号:1043111051 姓名:王金科 专业:软件工程 班级:2010级5班
课程名称
数据结构?
实验课时
8
实验项目
文本编辑器
实验时间
12到14周
实验目的
了解c++类的封装 和KMP算法。
实验环境
Windows平台 VC6.0++?
实验内容(算法、程序、步骤和方法)
部分函数创建思想:
创建过程如下:
定义LinkList指针变量*temp: LinkList *temp;
定义文本输入变量ch,记录文本行数变量j,记录每行字符数变量i;
申请动态存储空间:head-next=(LinkList *)malloc(sizeof(LinkList));
首行头指针的前驱指针为空:head-pre=NULL;
首行指针: temp=head-next;
首行指针的前驱指针也为空: temp-pre=NULL;
定义没输入字符时文章长度为0: temp-length=0;
初始化为字符串结束标志,防止出现乱码: for(i=0;i80;i++)
temp-data[i]=\0;
利用循环进行文本输入
for(j=0;jLINK_INIT_SIZE;j++)// 控制一页
{ for(i=0;i80;i++) //控制一行
{ ch=getchar(); //接收输入字符
temp-data[i]=ch; //给temp指向的行赋值
····
temp-length++;//行中字符长度加1
if(ch==#)
{NUM=j; break; //文章结束时,Num来记录整个文章的行数
}}}
在字符输入的过程中,如果在单行输入的字符超过了80个字符,则需要以下操作 :
输入字符数大于80,重新分配空间建立下一行
temp-next=(LinkList *)malloc(sizeof(LinkList)) ;
给temp的前驱指针赋值:temp-next-pre=temp;
temp指向当前行: temp=temp-next;
将下一行初始化为字符串结束标志,防止出现乱码:for(i=0;i80;i++)
temp-data[i]=\0;
记录整个文章的行数:temp-row=NUM+1;
返回指向最后一行指针:return temp;
文本输入部分到此结束。
实验流程图:menu
menu
change
getline
Bmenu
Search
delete_char
add_char
char
display
End
main
程序清单
Header file
#includeiostream
#includestring
using namespace std;
int* get_next(char* T, int* next);//声明get_next函数以获取next数组。
int KMP(char *S, char *T);//声明KMP函数调用next函数来进行查找。
int get_choice();//选择要执行的功能。
void serach(string S);//定义查找函数,用于进行字符串查找。
void add_char(string S);//定义添加函数,用于进行字符串添加。
void change(string S);//定义替换函数,将修改指定位置上的字符为新指定的字符。
void delete_char(string S);//定义删除函数,将用于删除指定位置上的字符。
void display(string S);//显示函数,用于显示当前的字符串。
? C++soure file
#includetextedit.h
using namespace std;
int* get_next(const char* T, int* next){ //根据T字符串将所得到的next数组值存在next指针指向的数组中
int i = 0, j = -1;
int length = strlen(T);
int *temp = next;
*next = -1;
while(i length){
if(j==-1 || *(T+i)==*(T+j)){ //如果字符串中第i个字符与从头起第j个相同,
您可能关注的文档
最近下载
- DB11_T 2478-2025 碘-131核素治疗病房辐射安全与防护要求.pdf VIP
- NB-T-47018.1~47018.5-2017-承压设备用焊接材料订货技术条件+编制说明_.pdf VIP
- DBJ51_T 233-2023 四川省光伏建筑一体化应用技术标准(CTP).pdf VIP
- DB11_T 2492-2025 消防通信指挥系统应用规范 (1).pdf VIP
- 大众电影封面全集1950-1991170p.doc VIP
- DB11_T 136-2025 汽车维护竣工出厂技术条件.pdf VIP
- DB11_T 783-2025 建设用地土壤修复与风险管控效果评估技术规范.pdf VIP
- DB11_T 1312-2025 预制混凝土构件质量控制标准.pdf VIP
- DB11_T 1322.81-2025 安全生产等级评定技术规范 第81部分:歌舞娱乐场所.pdf VIP
- DB11_T 1322.82-2025 安全生产等级评定技术规范 第82部分:营业性演出场所.pdf VIP
原创力文档

文档评论(0)