简易文本编辑器数据结构课设文档格式.docx

上传人:b****1 文档编号:3233828 上传时间:2023-05-01 格式:DOCX 页数:32 大小:124.22KB
下载 相关 举报
简易文本编辑器数据结构课设文档格式.docx_第1页
第1页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第2页
第2页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第3页
第3页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第4页
第4页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第5页
第5页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第6页
第6页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第7页
第7页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第8页
第8页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第9页
第9页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第10页
第10页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第11页
第11页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第12页
第12页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第13页
第13页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第14页
第14页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第15页
第15页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第16页
第16页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第17页
第17页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第18页
第18页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第19页
第19页 / 共32页
简易文本编辑器数据结构课设文档格式.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

简易文本编辑器数据结构课设文档格式.docx

《简易文本编辑器数据结构课设文档格式.docx》由会员分享,可在线阅读,更多相关《简易文本编辑器数据结构课设文档格式.docx(32页珍藏版)》请在冰点文库上搜索。

简易文本编辑器数据结构课设文档格式.docx

3.7显示模块

显示当前文本信息,遍历用数组存入的信息,并输入到外部显示器上。

3.8保存模块

保存当前信息,并提示输入文件名,确认保存之后提示保存成功。

3.9系统层次图

图3-1系统层次图

四、测试结果

4.1文本编辑器主界面

主界面功能,如图4—1所示。

图4—1文本编辑器主界面

4.2系统功能

输入文本信息功能,如图4—2所示。

图4—2输入界面

查找文本信息,如图4—3所示。

图4—3查找功能界面

显示文本信息,如图4—4所示。

图4—4显示文本界面

⑷插入操作,如图4—5所示。

图4—5插入功能界面

⑸删除操作,如图4—6所示。

图4—6删除功能界面

⑹替换文本内容,如图4—7所示。

图4—7替换功能界面

⑺文件保存,如图4—8所示。

图4—8保存功能界面

五、调试分析

程序设计没有按照一定的流程来,导致程序臃肿,可重复利用率太低,比如程序中的chazhao函数,在替换,删除等的过程中可以充分利用到,从而减少代码的长多,提高可读性和减少时间的复杂性,设计开始的时候没有充分考虑到,到最后无法在短时间内修改完成;

程序的选择语句运行比较的多,当初是为了程序的安全和便捷,选择了较多的选择,确认步骤,这样一来使得程序中的选择语句比较的多,比较乱。

这个在概要设计中没有充分的理清思路,导致程序的可读性较差。

六、心得体会

这是第一次比较全面的设计一个可执行多种功能的程序的课程设计,暴露出较多的知识点的缺乏,比如文件的打开与保存等。

程序的运行结果与理论推导结果基本吻合,即该算法与程序设计基本满足课程设计要求。

该程序的优点是简单易懂,不存在理解上的障碍,很自然地能想到这种解法。

但是该程序比较臃肿,可重复利用率低,还有待修改和完善。

通过这次数据结构的课程设计使我对所学知识有了更好的理解,增强了自己的动手能力,但同时也发现了自己的不足之处,对知识的应用能力很是欠缺,应用软件的能力及编程水平与课程要求更是存在很大的差距。

通过这个实验,使我基本操作有了一定的思路,知道该从哪里着手去完成一项功能编译,也让我学会了如何通过书籍查阅到自己想要的信息,并有一个思维方向去解决编译时出现的问题,提高了我的编程效率,我想这对我以后的学习会有很大的帮助,会让我有信心去完成下一个实验。

七、参考文献

[1]严蔚敏吴伟名编著,《数据结构》,清华大学出版社,2007年9月

[2]谭浩强编著,《c语言程序设计》,清华大学出版社

[3]钱能.C++程序设计教程(第二版)[M].北京:

清华大学出版社,2005

八、程序源代码

#include<

stdio.h>

stdlib.h>

time.h>

string.h>

#defineMAX10000

#define_CRT_SECURE_NO_DEPRECATE//在vs中取消warning的警告

voidmenu();

voidshuru(chartext[]);

voidbc(chartext[]);

voiddakai(chartext[]);

voiddayin(chartext[]);

voidchazhao(chartext[],intl);

voidtihan(chartext[],intl);

intstrindex(chartext[],chart[],inti2,intl);

voidshanchu(charp[],intl);

voidcs(chartext[]);

voidcharu(chartext[],intl);

voidtuichu(intstatus);

chartext[MAX]="

"

;

//文本编辑域

charname[20]="

//文件保存的位置

intstatus=0;

//显示是否保存过的状态

intntext;

//文本编辑的位置

voiddakai(chartext[])

{

system("

cls"

);

FILE*fp;

charpd,ch;

charname[30];

inti=0;

printf("

输入A:

确定打开文件(未保存的数据将会丢失)M:

返回主菜单"

fflush(stdin);

pd=getchar();

if(pd=='

A'

||pd=='

a'

{

printf("

请输入要打开文件名字(例如c:

\\a.txt)"

scanf("

%s"

name);

while((fp=fopen(name,"

r"

))==NULL)

{

printf("

\n打开文件失败,请重新输入要打开的文件名:

scanf("

}

cs(text);

while(!

feof(fp))

ch=fgetc(fp);

text[i]=ch;

i++;

text[i]='

\0'

ntext=i;

fclose(fp);

\n文件读取成功\n文件内容为\n"

dayin(text);

}

M'

m'

menu();

}

voidbc(chartext[])

charpd;

chartmp;

inti;

\n输入【A】保存;

任意键返回主菜单不保存\n"

if(!

(pd=='

))

menu();

else

if(name[20]==NULL)

{

\n请输入保存文件名(例如:

c:

\\a.txt):

}

w+"

文件不存在,请重新输入文件名:

}

\nA:

确定;

B:

取消:

while(scanf("

%c"

&

tmp)!

=EOF)

if(tmp=='

||tmp=='

{

for(i=0;

i<

ntext;

i++)

fprintf(fp,"

text[i]);

fclose(fp);

status=1;

printf("

\n文件保存成功\n"

break;

}

B'

b'

}

voidcs(chartext[])

for(i=0;

i++)

ntext=0;

status=0;

}

intstrindex(chartext[],chart[],inti2,intl)//查找要操作的数据的位置(模式匹配)

inti1=l,j=0;

while(i1<

ntext&

&

j<

i2)

if(text[i1]==t[j])//继续匹配下一个字符

j++;

i1++;

//主串和子串依次匹配下一个字符

else//主串、子串指针回溯重新开始下一次匹配

i1=i1-j+1;

//主串从下一个位置开始匹配

j=0;

//子串从头开始匹配

if(j>

=i2)

return(i1-i2);

}//返回匹配的第一个字符的下标

else

return(-1);

//模式匹配不成功

voidmenu()

time_ttimep;

time(&

timep);

ctime(&

timep));

printf("

信息与计算科学1209010314范亚飞\n"

\n\n\n\n\n\n\n\n\n\t\t\tWelcomtouseourTXTeditionsystem!

\n"

\n\n\t\t\t欢迎您使用文本编辑器软件!

\n\n\n\n\n\n\n\n\npressEntertocontinue...\n"

getchar();

loop:

\n\n\n\n\t\t******************简易文本编辑器*****************\n\n"

\t\t\t\t----0.清空内容--\n"

\t\t\t\t----1.打开文件--\n"

if(ntext==0){

\t\t\t\t----2.输入内容--\n"

}

else{

\t\t\t\t----2.继续输入--\n"

\t\t\t\t----3.查找------\n"

\t\t\t\t----4.插入------\n"

\t\t\t\t----5.删除------\n"

\t\t\t\t----6.替换------\n"

\t\t\t\t----7.显示内容--\n"

\t\t\t\t----8.保存------\n"

\t\t\t\t----9.退出------\n"

\n\t\t*********************选项************************\n"

\n\t\t\t\t输入选项0-9:

charn;

n=getchar();

if(n>

='

0'

n<

9'

switch(n)

case'

:

cs(text);

break;

1'

dakai(text);

2'

shuru(text);

3'

chazhao(text,0);

4'

charu(text,1);

5'

shanchu(text,0);

6'

tihan(text,0);

7'

dayin(text);

8'

bc(text);

tuichu(status);

default:

break;

\n输入有误,请重新输入:

fflush(stdin);

n=getchar();

pause"

gotoloop;

voidchazhao(chartext[],intl)

inti,t,a=-1;

charpattern[20],bd,pd;

原文为:

请输入您要查找的内容"

scanf("

pattern);

您查找的内容是:

%s\n"

t=strlen(pattern);

a=strindex(text,pattern,t,l);

if(a!

=-1)

l=a+t;

inths=1,ls=0;

=a;

ls++;

if(text[i]=='

\n'

hs++;

ls=0;

if(a==-1)

查找到结尾没有找到\n输入【R】将重头查找;

任意键返回主菜单"

l=0;

pd=getchar();

已经找到在第%d行第%d列,输入【R】继续查找下一处;

hs,ls);

bd=getchar();

if(bd=='

R'

||bd=='

r'

{l=0;

chazhao(text,l);

voiddayin(chartext[])

现在文本的内容为:

text);

inths=1,i;

for(i=0;

if(text[i]=='

hs++;

\n文本共有%d行\n"

hs);

voidshuru(chartext[])

请输入内容(输入@结束输入并返回主菜单):

charc;

inti=ntext,j=ntext;

while((c=getchar())!

@'

text[i]=c;

i++;

ntext=i;

continue;

intcout=0,zf=0,h=1,hs=1,zfs=0;

for(;

cout<

cout++)

zf++;

if(text[cout]=='

{h++;

zf--;

'

zf--;

for(cout=j;

zfs++;

{hs++;

zfs--;

zfs--;

统计:

文本一共有%d个字符,%d行,本次输入了%d个字符,%d行\n"

zf,h,zfs,hs);

voidshanchu(charp[],intl)

inti,a=-1,t2=0;

charx[20],px,pd,pdx,c;

p);

\n输入【A】执行查找删除内容;

任意键返回主菜单:

px=getchar();

if(px=='

||px=='

\n输入您要删除的内容,以@结束:

while((c=getchar())!

if(c=='

else

x[t2]=c;

t2++;

continue;

a=strindex(p,x,t2,l);

inths=1,ls=0;

ls++;

if(p[i]=='

ls=0;

if(a==-1)

已查找结束,您要删除的内容不存在\n输入【R】重新输入要删除的内容;

其他键将返回主菜单:

l=0;

fflush(stdin);

pdx=getchar();

else

你要删除的内容在第%d行第%d列\n输入【A】确定删除;

输入【B】寻找下个词;

pd=getchar();

l=t2+a;

if(pd=='

for(i=a;

p[i]=p[i+t2];

ntext=ntext-t2;

printf("

删除成功,删除后的内容为:

\n%s\n"

elseif(pd=='

gotoloop;

if(pdx=='

||pdx=='

shanchu(text,l);

voidcharu(chartext[],intl)//向文本中插入内容

inti=0,t=0,t2=0,a=-1,b;

charcr[20]="

pd,x[500],c,d;

\n当前文本信息为:

\n输入您要在哪个内容前插入,以@结束:

)//用一个数组接收要插入在哪个内容之前

if(c=='

break;

else

cr[t]=c;

t++;

a=strindex(text,cr,t,l);

//查找并返回要插入的位置点

for(b=0;

b<

a;

b++)

if(text[b]=='

ls=0;

\n查找到结尾没有找到插入点,输入【R】查找其他;

按其他键返回菜单:

d=getchar();

\n您要插入的位置是第%d行,第%d列之前\n【A】.不是此位置向后继续找插入点\n【B】.在此位置插入\n按其他键返回菜单\n请选择:

hs,ls+1);

if(pd=='

elseif(pd=='

\n\n输入您要插入的内容,以@结束:

while((c=getchar())!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2