当前位置:文档之家› 数据结构课程设计:中文文本编辑(文本删除、修改、查询、统计、添加)

数据结构课程设计:中文文本编辑(文本删除、修改、查询、统计、添加)

数据结构课程设计:中文文本编辑(文本删除、修改、查询、统计、添加)
数据结构课程设计:中文文本编辑(文本删除、修改、查询、统计、添加)

数据结构课程设计:文本编辑(最后附完整

代码)

一.问题描述---------------------------------------------1

二.设计思路---------------------------------------------1

三.系统实现功能

1.建立单链表-------------------------------------------2

2.显示文章内容---------------------------------------- 3

3.查找文章语句-----------------------------------------3

4.删除文章语句-----------------------------------------5

5.替换文章语句-----------------------------------------7

6.统计文章字数-----------------------------------------10

7.写入文本结束程序--------------------------------------10

四.系统不足及需改进分------------------------------------11

五.文件清单说明------------------------------------------11

六:附录-------------------------------------------------12

一:问题描述

本次我所做的课程设计为:文本编辑,主要内容是对中文文本的显示、查找、删除、替换、统计、写入文本。在程序选择功能后根据提示,输入任意长度中文语句即可对文章进行操作。

二:设计思路

文本编辑,顾名思义就是对一遍文章进行编辑,我所设计的是对中文的编辑。中文有两个字节(汉字、标点),通常情况下通过文件输入流仅仅可以取一个字节或者是以空格为分隔符取单词这仅仅对英文的文章适用,周六周日我从网上搜索相关方法,未找到一条切实可用的对中文字符操作的方法。后因看到一种对string的操作灵光一闪,想到了对中文的操作。

因中文是两个字节,由两部分ASCII码组成,所以可用单链表一个节点存放一个汉字或字符,单链表的数据域是一个长度为二的char数组分别存汉字的两个字节。若用户从键盘输入则将其存入string然后遍历将其每一个字节取到char数组中,这样只需两个字节对比一次使char数组中相邻的两个字节与单链表中每一个节点的两个char对比即可遍历。

我所用的数据结构为单链表,结构中由一个长度为2的char数组和一个指针组成具体结构如下:

typedefstruct LNode

{

ElemType data[2];//长度为2的char数组,char[0]存汉字前半部分,char[1]存后半部分struct LNode *next;

}LinkList;

三:系统实现的功能

1.建立单链表

void CLinkList(LinkList *&L)

{

LinkList *s,*r;

r=L;

r->next=NULL;

char temp; //存放判断变量,同时起到中间变量的作用

ifstream fin("a.txt");//打开文件输入流

while(!fin.eof())

{

s=(LinkList *)malloc(sizeof(LinkList));//一个节点存一个汉字或字符

temp=fin.get(); //从文件取一个字符

if(temp!=' ') //判断是否为空格、回车,若为空格回车则只存一个字符剩下一个用'1'代替

{

s->data[0]=temp;

s->data[1]=fin.get();

}

elseif(temp==' ')

{

s->data[0]=temp;

s->data[1]='1';

}

else

{

fin.get();

s->data[0]='\n';

s->data[1]='1';

}

r->next=s;

r=s;

}

r->next=NULL;

fin.close();

}

2.显示文章内容

void DisList(LinkList *L)

{

LinkList *p=L->next;

while(p!=NULL)//遍历单链表依次输出

{

if(p->data[0]!=' ')//判断是否为空格决定输入方式

cout<data[0]<data[1];

else cout<<' ';

p=p->next;

}

}

3.查找文章语句

seek(LinkList *&p,char a[],int m)函数,遍历查找单链表找到参数给定指针最近位置的对应语句并返回逻辑位置(不包括空格和回车)。

seekCall(LinkList *L)函数,调用seek()传入一个位置可变的指针依次遍历查找出所有输入的语句的逻辑位置

int seek(LinkList *&p,char a[],int m)//位置可变的指针,语句的char数组,数组长度

{

int n=0,flag=0,i;

LinkList *r;

while(p!=NULL)

{

r=p;//p指针位置不变,通过r指针向下遍历

for(i=0;i

{

if(r->data[0]==a[i]&&r->data[1]==a[i+1])

{

flag=1; //标识是否找到相应字符的变量

r=r->next;

}

else

{

flag=0; //只要又一次不相同则为0

break;

}

}

if(p->data[0]!=' ')//不统计空格的个数

n++;

p=p->next;

if(flag==1)return n;

}

if(flag==1)return n;

elsereturn 0;

}

void seekCall(LinkList *L)

{

cout<<"请输入要查找的语句:"<

string str;

cin>>str;

int n=0,n2=0,m;

m=str.size();

char *a=newchar[m];//str长度为char数组长度

for(int i=0;i

{

a[i]=str[i];

}

LinkList *p;//给seek2传入一个位置可变的指针,初始位置为L的头部

p=L->next;

while(p!=NULL)

{

n2=seek(p,a,m);//遍历找到每个语句

n+=n2;

if(n>0&&n2>0)

cout<<"查找到语句:"<

elseif(n==0)

cout<<"文章中无此语句!"<

}

}

4.删除文章语句

seek2(LinkList *&p,char a[],int m)函数查找语句在单链表中的具体位置(包括空格和回车)并返回他的位置

Ldelete2(LinkList *&L,int n,int m)函数通过参数传入的语句位置和要删除的语句长度进行删除

LdeleteCall(LinkList *&L)调用seek2()和Ldelete2()函数删除对语句

int seek2(LinkList *&p,char a[],int m)//与seek基本相同,少一个判断是否为空格的语句

{

int n=0,flag=0,i;

LinkList *r;

while(p!=NULL)

{

r=p;//p指针位置不变,通过r指针向下遍历

for(i=0;i

{

if(r->data[0]==a[i]&&r->data[1]==a[i+1])

{

flag=1;

r=r->next;

}

else

{

flag=0;

break;

}

}

n++;

p=p->next;

if(flag==1)return n;

}

if(flag==1)return n;

elsereturn 0;

}

void Ldelete2(LinkList *&L,int n,int m)

{

LinkList *p=L;

for(int i=0;i

p=p->next;

LinkList *r=p;

for(int i=0;inext;

p->next=r->next; //删除对应语句

}

void LdeleteCall(LinkList *&L)

{

cout<<"请输入要删除的语句:"<

string str;

cin>>str;

int n=0,n2=0,m;

m=str.size();

char *a=newchar[m];

for(int i=0;i

{

a[i]=str[i];

}

LinkList *p;//给seek2传入一个位置可变的指针,初始位置为L的头部

p=L;

int mm=0;

while(p!=NULL)//判断文章中是否有此语句

{

seek2(p,a,m);

mm++;

}

if(mm==0)

{

cout<<"文章中无此语句!"<

return;

}

for(int i=0;i

{

LinkList *pp;

pp=L->next;//从单链表头部依次遍历,删除所有语句

n2=seek2(pp,a,m);

n+=n2;

if(n>0&&n2>0)

Ldelete2(L,n,m);

}

}

5.替换文章语句

StrToList(LinkList *&L2,string str)函数将输入的string型数据str转化为单链表L2 Lreplace(LinkList *&L,LinkList *&L2,int n,int m)函数将L2单链表插入到L中并删除要替换的语句

LreplaceCall(LinkList *&L)调用前两个函数

void StrToList(LinkList *&L2,string str)//将str转化为单链表L2 {

L2=(LinkList *)malloc(sizeof(LinkList));

L2->next=NULL;

int m=0;

m=str.size();

char *a=newchar[m];

for(int i=0;i

{

a[i]=str[i];

}

LinkList *s,*r;

int i;

r=L2;

for(i=0;i

{

s=(LinkList *)malloc(sizeof(LinkList));

s->data[0]=a[i];

s->data[1]=a[i+1];

r->next=s;

r=s;

}

r->next=NULL;

}

void Lreplace(LinkList *&L,LinkList *&L2,int n,int m)

{

LinkList *p=L;

for(int i=0;i

{

p=p->next;

}

LinkList *r;

r=p;

for(int i=0;i

{

r=r->next;

}

LinkList *p2=L2;

while(p2->next!=NULL)//p2指向L2尾部

p2=p2->next;

p->next=L2->next;//p指向L2

p2->next=r->next;//p2指向r的下一个节点

free(L2);

}

void LreplaceCall(LinkList *&L)

{

string str1,str2;

cout<<"请输入原替换的语句:"<

cin>>str1;

cout<<"请输入替换语句:"<

cin>>str2;

LinkList *L2;

int m=0;

m=str1.size();

char *a=newchar[m];

for(int i=0;i

{

a[i]=str1[i];

}

LinkList *p;

p=L->next;

int n=0,n2=0;

while(p!=NULL)//遍历L替换所有语句

{ n2=seek2(p,a,m);

n+=n2;

if(n>0&&n2>0)

{

StrToList(L2,str2);//替换一次就建立一次L2,防止形成循环表

Lreplace(L,L2,n,m);

}

n2=0;

}

}

6:统计文章字数

int number(LinkList *L)

{

LinkList *p;

p=L;

int n=0;

while(p->next!=NULL)//循环遍历统计除了空格和回车的字数

{

if(p->data[0]!=' '&&p->data[0]!='\n')

n++;

p=p->next;

}

return n;

}

7:写入文本结束程序

void end(LinkList *L)

{

ofstream fout("b.txt");//文件b,txt不是读取时的文件是一个,为了对照而写入的新文本LinkList *p=L->next;

while(p!=NULL)

{

if(p->data[0]!=' '&&p->data[0]!='\n')

{fout<data[0]<data[1];}

elseif(p->data[0]==' ')

fout<data[0];

elseif(p->data[0]='\n')

fout<data[0];

p=p->next;

}

}

四:系统不足及需改进部分

仅仅用单链表遍历系统效率较低,未找到一种可以用string直接读取文本中中文内容的方法,不能用于英文。

五:文件清单说明

六:附录

这是删除的第二个方法

bool Ldelete1(LinkList *&L,char u[])

{

LinkList *p=L;

LinkList *q;

LinkList *r;

while(p!=NULL)

{

r=p->next;

if(r->data[0]==u[0]&&r->data[1]==u[1])

{

q=p->next;

p->next=q->next;

free(q);

returntrue;

}

p=p->next;

}

returnfalse;

}

完整代码:

#include

#include

#include

usingnamespace std;

typedefchar ElemType;

typedefstruct LNode

{

ElemType data[2];//长度为2的char数组,char[0]存汉字前半部分,char[1]存后半部分struct LNode *next;

}LinkList;

void InitList(LinkList *&L);

void CLinkList(LinkList *&L);

void DisList(LinkList *L);

int seek(LinkList *&p,char a[],int m);

void seekCall(LinkList *L);

int seek2(LinkList *&p,char a[],int m);

bool Listdelete(LinkList *&L,int i);

void Ldelete2(LinkList *&L,int n,int m);

void LdeleteCall(LinkList *&L);

void StrToList(LinkList *&L2,string str);

void Lreplace(LinkList *&L,LinkList *&L2,int n,int m);

void LreplaceCall(LinkList *&L);

int number(LinkList *L);

void end(LinkList *L);

void out();

void InitList(LinkList *&L)

{

L=(LinkList *)malloc(sizeof(LinkList));

L->next=NULL;

}

void CLinkList(LinkList *&L)

{

LinkList *s,*r;

r=L;

r->next=NULL;

char temp; //存放判断变量,同时起到中间变量的作用

ifstream fin("a.txt");//打开文件输入流

while(!fin.eof())

{

s=(LinkList *)malloc(sizeof(LinkList));//一个节点存一个汉字或字符

temp=fin.get(); //从文件取一个字符

if(temp!=' ') //判断是否为空格、回车,若为空格回车则只存一个字符剩下一个用'1'代替

{

s->data[0]=temp;

s->data[1]=fin.get();

}

elseif(temp==' ')

{

s->data[0]=temp;

s->data[1]='1';

}

else

{

fin.get();

s->data[0]='\n';

s->data[1]='1';

}

r->next=s;

r=s;

}

r->next=NULL;

fin.close();

}

void DisList(LinkList *L)

{

LinkList *p=L->next;

while(p!=NULL)//遍历单链表依次输出

{

if(p->data[0]!=' ')//判断是否为空格决定输入方式

cout<data[0]<data[1];

else cout<<' ';

p=p->next;

}

}

int seek(LinkList *&p,char a[],int m)//位置可变的指针,语句的char数组,数组长度

{

int n=0,flag=0,i;

LinkList *r;

while(p!=NULL)

{

r=p;//p指针位置不变,通过r指针向下遍历

for(i=0;i

{

if(r->data[0]==a[i]&&r->data[1]==a[i+1])

{

flag=1; //标识是否找到相应字符的变量

r=r->next;

}

else

{

flag=0; //只要又一次不相同则为0

break;

}

}

if(p->data[0]!=' ')//不统计空格的个数

n++;

p=p->next;

if(flag==1)return n;

}

if(flag==1)return n;

elsereturn 0;

}

void seekCall(LinkList *L)

{

cout<<"请输入要查找的语句:"<

string str;

cin>>str;

int n=0,n2=0,m;

m=str.size();

char *a=newchar[m];//str长度为char数组长度

for(int i=0;i

{

a[i]=str[i];

}

LinkList *p;

p=L->next;

while(p!=NULL)

{

n2=seek(p,a,m);//遍历找到每个语句

n+=n2;

if(n>0&&n2>0)

cout<<"查找到语句:"<

elseif(n==0)

cout<<"文章中无此语句!"<

}

}

int seek2(LinkList *&p,char a[],int m)//于seek基本相同,少一个判断是否为空格的语句{

int n=0,flag=0,i;

LinkList *r;

while(p!=NULL)

{

r=p;//p指针位置不变,通过r指针向下遍历

for(i=0;i

{

if(r->data[0]==a[i]&&r->data[1]==a[i+1])

{

flag=1;

r=r->next;

}

else

{

flag=0;

break;

}

}

n++;

p=p->next;

if(flag==1)return n;

}

if(flag==1)return n;

elsereturn 0;

}

bool Listdelete(LinkList *&L,int i)

{

int j=0;

LinkList *p=L,*q;

while(j

{

j++;

p=p->next;

}

if(p==NULL)

returnfalse;

else

{

q=p->next;

if(q==NULL)

returnfalse;

p->next=q->next;

returntrue;

}

}

void Ldelete2(LinkList *&L,int n,int m)

{

LinkList *p=L;

for(int i=0;i

p=p->next;

LinkList *r=p;

for(int i=0;inext;

p->next=r->next; //删除对应语句

}

bool Ldelete1(LinkList *&L,char u[])

{

LinkList *p=L;

LinkList *q;

LinkList *r;

while(p!=NULL)

{

r=p->next;

if(r->data[0]==u[0]&&r->data[1]==u[1])

{

q=p->next;

p->next=q->next;

free(q);

returntrue;

}

p=p->next;

}

returnfalse;

}

void LdeleteCall(LinkList *&L)

{

cout<<"请输入要删除的语句:"<

string str;

cin>>str;

int n=0,n2=0,m;

m=str.size();

char *a=newchar[m];

for(int i=0;i

{

a[i]=str[i];

}

LinkList *p;

p=L;

int mm=0;

while(p!=NULL)//判断文章中是否有此语句

{

seek2(p,a,m);

mm++;

}

if(mm==0)

{

cout<<"文章中无此语句!"<

return;

}

for(int i=0;i

{

LinkList *pp;

pp=L->next;//从单链表头部依次遍历,删除所有语句

n2=seek2(pp,a,m);

n+=n2;

if(n>0&&n2>0)

Ldelete2(L,n,m);

}

}

void StrToList(LinkList *&L2,string str)//将str转化为单链表L2 {

L2=(LinkList *)malloc(sizeof(LinkList));

L2->next=NULL;

int m=0;

m=str.size();

char *a=newchar[m];

for(int i=0;i

{

a[i]=str[i];

}

LinkList *s,*r;

int i;

r=L2;

for(i=0;i

{

s=(LinkList *)malloc(sizeof(LinkList));

s->data[0]=a[i];

s->data[1]=a[i+1];

r->next=s;

r=s;

}

r->next=NULL;

}

void Lreplace(LinkList *&L,LinkList *&L2,int n,int m)

{

LinkList *p=L;

for(int i=0;i

{

p=p->next;

}

LinkList *r;

r=p;

for(int i=0;i

{

r=r->next;

}

LinkList *p2=L2;

while(p2->next!=NULL)//p2指向L2尾部

p2=p2->next;

p->next=L2->next;//p指向L2

p2->next=r->next;//p2指向r的下一个节点

free(L2);

}

void LreplaceCall(LinkList *&L)

{

string str1,str2;

cout<<"请输入原替换的语句:"<

cin>>str1;

cout<<"请输入替换语句:"<

cin>>str2;

LinkList *L2;

int m=0;

m=str1.size();

char *a=newchar[m];

for(int i=0;i

{

a[i]=str1[i];

}

LinkList *p;

p=L->next;

int n=0,n2=0;

while(p!=NULL)//遍历L替换所有语句

{ n2=seek2(p,a,m);

n+=n2;

if(n>0&&n2>0)

{

StrToList(L2,str2);//替换一次就建立一次L2,防止形成循环表

Lreplace(L,L2,n,m);

}

n2=0;

}

}

文本编辑器设计

四川师范大学成都学院高级语言程序课程设计 文本编辑器设计 学生姓名xxx 学号x 所在学院x 专业名称x 班级x级x班 指导教师x 成绩 x学院 二○一四年十二月

课程设计任务书

文本编辑器设计 内容摘要:当今,计算机以及网络技术的飞速发展,社会正快速向信息化社会前进,我们需要更智能,更专业的软件帮助我们完成工作,从而提高了工作效率。 目前文本编辑器种类很多,所提供的功能也很多,但是能满足用户实现多种功能和进行C++程序语言的编译与运行很少,不能更好的适应当前用户的要求。本设计所完成的文本编辑器功能是针对学习C++程序语言,因此我们利用C++程序设计虚拟机和软件用户以及使用者的应用过程形成一整套完整的编写代码,编译,运行。本文本编辑器的开发主要包括界面窗口的菜单栏和工具栏,还有链接C++语言虚拟机实现编译与运行。操作系统为Windows 7。 关键词:文本编辑器C++程序语言编译运行 The design of text editor Abstract:Today, the rapid development of computer and network technology, society is rapidly advancing to the information society, we need a more intelligent, more professional software to help us to finish the work, so as to improve work efficiency. At present, many text editors species, to provide the function of many, but can satisfy the compiling and running the user to achieve a variety of functions and the C++ programming language is very few, can better adapt to the requirements of the current user. The completion of the design of the text editor function is for learning C++ programming language, so we use the C++ program design of virtual machines and software users and users of the application process of form a complete set of code, compile, run. The development of the text editor includes interface window menus and toolbars, and link the C + + programming language virtual machine implementation compile and run. The development of the text editor use VC++ as the development tool, and the operating system is Window 7.

文本编辑器c++实验报告附源代码

四川大学软件学院 实验报告 课程名称数据结构实验课时8 实验项目文本编辑器实验时间12到14周实验目的了解c++类的封装和KMP算法。 实验环境 Windows平台 VC6.0++ 实验内容(算法、程序、步骤和方法) 部分函数创建思想: 创建过程如下: a、定义LinkList指针变量*temp: LinkList *temp; b、定义文本输入变量ch,记录文本行数变量j,记录每行字符数变量i; c、申请动态存储空间:head->next=(LinkList *)malloc(sizeof(LinkList)); d、首行头指针的前驱指针为空:head->pre=NULL; 首行指针:temp=head->next; 首行指针的前驱指针也为空:temp->pre=NULL; 定义没输入字符时文章长度为0:temp->length=0; 初始化为字符串结束标志,防止出现乱码:for(i=0;i<80;i++) temp->data[i]='\0'; e、利用循环进行文本输入 for(j=0;jdata[i]=ch; //给temp指向的行赋值 ···· temp->length++;//行中字符长度加1 if(ch=='#') {NUM=j; break; //文章结束时,Num来记录整个文章的行数 }}} 在字符输入的过程中,如果在单行输入的字符超过了80个字符, 则需要以下操作: 输入字符数大于80,重新分配空间建立下一行 temp->next=(LinkList *)malloc(sizeof(LinkList)) ;

数据结构 简易文本编辑器

题目: 【2】.简易文本编辑器 要求: 1) 具有图形菜单界面; 2) 查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除 3) 可正确存盘、取盘; 4) 正确显示总行数。 1需求分析 一个简易文本编辑器应该具有图形菜单界面,包括查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除文本信息等功能并可正确存盘、取盘,正确显示总行数。 2概要设计 为实现数据的有序存储,该编辑器应该用顺序表来存储输入的信息。顺序表是数据结构中线性表的一种,它是用一块地址连续的存储空间依次存储线性表的元素。其特点为:在顺序表上逻辑关系相邻的俩个元素在物理位置上也相邻;在顺序表上可以随即存取表中的元素。在编辑器的主界面中应有如下提示信息: ⑴清空以前的文本信息:将用数组存的数据内容全部置为0; ⑵显示当前文本信息:遍历用数组存入的信息,并输入到外部显示器上; ⑶编辑信息:定义一个结构体,并在结构体中定义一个字符型的一维数组和一个整 型变量,这个整型变量用于记录一维数组中存入数据的个数; ⑷替换文本信息:首先在数组中查找要被替换的信息,如果找到该信息,提示输入 要替换的信息内容,否则提示未找到要被替换的信息; ⑸插入文本信息:首先在数组中查找要插入点,如果找到该插入点,提示输入插入 信息,确认插入信息后,提示选择向前插入信息还是向后插入信息,如果未找到插入点,显示未找到要插入的位置; ⑹移动文本信息:首先在数组中查找要移动的信息,如果找到该信息,提示是进行 列移动还是进行行移动,否则提示未找到要移动的信息; ⑺删除文本信息:首先在数组中查找要删除的信息,如果找到该信息,提示是否确

计算机科学与技术毕业论文

毕业设计(论文) 课题名称在线考试系统的设计与研发 姓名XXX 学号XXXXXXX 专业计算机科学与技术 摘要 随着计算机网络技术及相关技术的不断发展,考试的手段和媒介也在发生着巨大的变化,传统的考试方式和手段正面临着强烈的冲击。计算机网络技术应用于教育领域,经历了从传统的纸笔考试到计算机辅助考试,再到实现了真正的无纸化考试。在线式考试不仅可以节省大量的人力、物力,还可以提高考试的效率和质量,降低考试成本,使得网络考试不受时间和空间的限制,并且评测结果更为准确和客观。 将“在线考试系统”作为设计题目主要是为了把教师从传统的卷纸考试的工作中解脱出来,把学生从传统的学习方式中解脱出来。 “考试系统”主要由两个部分组成,分别是:“前台的网页设计”和“后台的题库系统服务”。该系统所能实现的主要模块功能,包括学生信息管理、管理员信息管理、考试科目管理、题库管理、自动组卷、在线考试、自动阅卷、学生成绩管理等功能。 本系统采用ASP语言进行开发,集题库管理,在线考试,实时评判于一体,本文分析了计算机考试系统的关键技术以及存在的问题。提出了实现该系统的体系结

构,软件功能模块等,系统通过提高考试的效率,增强测试的反馈效果,使教师的教与学生的学更有针对性。 本系统速度快、稳定性强,为学生课程学习、个性化学习提供了灵活、方便、科学的检测手段,经过测试,该系统达到了预期的设计目标,非常适合于学校的考试工作。 关键词:在线考试; ASP技术; 数据库开发和应用; 随机生成试卷; 目录 摘要................................................................ 关键词: ............................................................ 绪论 ................................................................ 1系统实现的关键技术................................................. 1.1ASP技术......................................................... 1.2数据库技术....................................................... 1.2.1数据库技术概述................................................. 1.2.2ADO与数据库的交互技术......................................... 2系统分析........................................................... 2.1分析.............................................................

UEDITOR自定义默认宽度高度

最近需要使用到网页后台富文本编辑器。经过同学推荐,最后决定使用百度家的Ueditor. 官方提供了网页上非常方便的自定义工具栏的功能。自定义之后直接下载对应的代码包并按照文档部署到项目中即可。其中主要的问题是路径的配置。 首先是将下载好的代码包发布到我们项目的根目录下面。然后在需要添加富文本编辑器的页面头部添加如下代码: 1. <script type="text/javascript" src="相对该文档的路径 /ueditor/ueditor.config.js"></script> 2. <script type="text/javascript" src="相对该文档的路径 /ueditor/ueditor.all.js"></script> 3. <script> 4. <span style="white-space:pre"> </span>window.UEDITOR_HOME_URL = "/项目相对网 址池绝对路径/ueditor"; 5. </script> 配置路径这一块是非常重要的。特别是下面的Ueditor的路径,是相对我们整个代码库的目录的。 配置完成之后,直接在我们网页中的<textarea>标签下面添加ueditor的初始化代码: 1. <script type="text/javascript"> 2. var editor = new UE.ui.Editor({initialFrameHeight:100,initialFrameWidth: 400 }); 3. editor.render("actDescribe"); 4. </script> 官方的文档并没有给出如何设置ueditor的宽度和高度的说明。这是我在网上网友那里找到的解决方法。在声明编辑器的变量的时候,在参数列表中添加对initialFrameHeight和initialFrameWidth的设置即可。注意,数值后面不需要添加px。 可是,这种方法有时候奏效有时候也不奏效,因为我碰过一种情况就是无论如何调整initialHeight和initialWidth的数值,编辑器的大小都还是不会改变。这个时候,我发现,可以通过调整editor所跟随的textarea的宽高来撑开editor的大小。这也是一种方法,各位同学在官方说明文档出来之前可以两种方法都尝试一下。 当然,好用的文本编辑器还是有很多的,例如kindeditor,之前准备使用这个的,而其文档方面也比较齐全,同时,整个编辑器的size也比较小,对网页的加载速度比较有利。百度的Ueditor还是有点庞大。加载时会有卡顿的速度。估计是我对底层代码的研究不够,多了很多不必要的内容。慢慢研究或许可以使得Ueditor变小。

java课设—文本编辑器的设计与实现

淮 海 工 学 院 计算机工程学院
课程设计报告
设计名称: 选题名称: 姓 名: 面向对象课程设计 文本编辑器的设计与实现 学 号:
专业班级: 系 (院) : 设计时间: 设计地点: 计算机工程学院 2015.6.21~2014.7.4 计算机楼机房、教室、宿舍
指导教师评语:
成绩:
签名:
年 月 日

面向对象课程设计报告

1
页,共
14

1.课程设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程 后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理 论、方法和基础知识的理解,掌握使用 Java 语言进行面向对象设计的基本方法,提高运用 面向对象知识分析实际问题、解决实际问题的能力。
2.课程设计任务与要求:
课程设计可选用 NetBeans、Eclipse、JBuilder 等作为开发平台以提高开发效率,尽可能熟 练掌握其中一种集成开发环境。建议采用 UML 建模技术进行系统的分析设计,在 Visio 中画出系 统用例图和类图,并将 UML 图复制到设计报告中。 通过这次设计,要求掌握以下内容: 1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用 2)类、包、接口的定义与使用 3)常用工具类与算法的实现(数组、向量、字符串、链表) 4)Java 常用标准 GUI 组件及其事件处理 5)Java 的异常处理机制 6)Java 的数据库连接技术 7)Java 的多线程技术与动画制作 8)Java 的网络编程 任务: 设计一个类似于 Windows 记事本(Notepad)的 Java 程序。可以打开、新建、保存一个文本 文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复 制、粘贴、剪切、查找、替换等) ;在文本中能够插入对象。简单文本编辑器提供给用户基本的 纯文本编辑功能, 能够将用户录入的文本存储到本地磁盘中。 能够读取磁盘中现有的纯文本文件, 以及方便用户进行需要的编辑功能。

数据结构简易文本编辑器

数据结构简易文本编辑 器 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

题目: 【2】.简易文本编辑器 要求: 1) 具有图形菜单界面; 2) 查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除 3) 可正确存盘、取盘; 4) 正确显示总行数。 1需求分析 一个简易文本编辑器应该具有图形菜单界面,包括查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除文本信息等功能并可正确存盘、取盘,正确显示总行数。 2概要设计 为实现数据的有序存储,该编辑器应该用顺序表来存储输入的信息。顺序表是数据结构中线性表的一种,它是用一块地址连续的存储空间依次存储线性表的元素。其特点为:在顺序表上逻辑关系相邻的俩个元素在物理位置上也相邻;在顺序表上可以随即存取表中的元素。在编辑器的主界面中应有如下提示信息: ⑴清空以前的文本信息:将用数组存的数据内容全部置为0; ⑵显示当前文本信息:遍历用数组存入的信息,并输入到外部显示器上; ⑶编辑信息:定义一个结构体,并在结构体中定义一个字符型的一维数组和一个整 型变量,这个整型变量用于记录一维数组中存入数据的个数; ⑷替换文本信息:首先在数组中查找要被替换的信息,如果找到该信息,提示输入 要替换的信息内容,否则提示未找到要被替换的信息; ⑸插入文本信息:首先在数组中查找要插入点,如果找到该插入点,提示输入插入 信息,确认插入信息后,提示选择向前插入信息还是向后插入信息,如果未找到插入点,显示未找到要插入的位置; ⑹移动文本信息:首先在数组中查找要移动的信息,如果找到该信息,提示是进行 列移动还是进行行移动,否则提示未找到要移动的信息; ⑺删除文本信息:首先在数组中查找要删除的信息,如果找到该信息,提示是否确 认删除该信息,通过确认来删除信息,如果未找到要删除的信息,提示未找到该信息;

C++课程设计简易文本编辑器

目录 第一章课程设计目的和要求 (1) 1.1课程设计的目 (1) 1.2基本要求 (1) 第二章课程设计任务内容 (2) 2.1设计背景 (2) 2.2简易文本编辑器设计内容 (2) 第三章详细设计 (3) 3.1总体结构图 (3) 3.2函数分析 (3) 3.3主函数程序流程图 (4) 3.4子函数流程图 (5) 第四章程序编码与调试 (7) 4.1程序编码 (7) 4.2编码调试 (8) 4.3运行结果 (9) 第五章课程设计心得与体会 (11) 附录1 参考文献 (12) 附录2 源程序代码 (13)

第一章课程设计目的和要求 C语言课程设计是一门实践性非常强的课程,不但要注重c语言程序设计基本知识的学习,更要注重程序设计技能的培养,使学生能够允许渐进地把握c语言程序设计的技能。通过课程设计,培养学生阅读和编写程序的能力,培养计算机程序设计的能力和素质,以及思维方法。初步积累编程经验,打下良好的计算机应用基础。 1.1课程设计的目 1.通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力, 能更好的巩固《c语言程序设计》课程学习的内容 2.掌握工程软件设计的基本方法,强化上级动手编程能力,闯过理论与实践相 结合的难关!更加了解了c语言的好处和其可用性。 3.掌握基本的程序设计过程和技巧,掌握基本的分析问题合理性,通过计算机 求解问题的能力,具备初步的高级语言程设计能力。为后续个门计算机课程 的学习和毕业设计打下结实基础。 4.通过c语言课程设计,使学生了解高级程序设计语言的结构。 1.2 基本要求 1.基本要求: ①要求用VC中的MFC控件打开和保存文件。 ②要求在设计的程序中至少能完成六种编辑功能。 ③完成的程序界面要美观,能够完成六种编辑的全过程。 2.创新要求: ①在记事本中增加工具栏,工具栏中应有常使用的工具按钮; ②在记事本中增加状态栏;

百度编辑器ueditor的toolbars的各个元素代表的功能说明

fullscreen 功能解释:全屏 source 功能:html源码 undo 功能:撤销 redo 功能:重做 bold 功能:加粗 italic 功能:斜体 underline 功能:下划线 fontborder 功能:字符边框 strikethrough 功能:删除线 superscript 功能:上标 subscript 功能:下标 removeformat 功能:清除格式 formatmatch 功能:格式刷 autotypeset 功能:自动排版 blockquote 功能:引用 pasteplain 功能:纯文本粘贴模式 forecolor 功能:字体颜色 backcolor 功能:背景色 insertorderedlist 功能:有序列表 insertunorderedlist 功能:无序列表 selectall 功能:全选 cleardoc 功能:清空文档 rowspacingtop 功能:段前距

rowspacingbottom 功能:段后距 lineheight 功能:行间距 customstyle 功能:自定义标题 paragraph 功能:段落格式 fontfamily 功能:字体 fontsize 功能:字号 directionalityltr 功能:从左向右输入 directionalityrtl 功能:从右向左输入 indent 功能:首行缩进 justifyleft 功能:居左对齐 justifycenter 功能:居中对齐 justifyright 功能:居右对齐 justifyjustify 功能:两端对齐 touppercase 功能:字母大写 tolowercase 功能:字母小写 link 功能:超链接 unlink 功能:取消链接 anchor 功能:锚点 imagenone 功能:默认 imageleft 功能:左浮动 imageright 功能:右浮动 imagecenter 功能:居中 simpleupload 功能:为选择文件【单个图片上传】

简单行编辑器 数据结构 课程设计汇总

中国矿业大学徐海学院计算机系《软件认知实践》报告 姓名:学号: 专业: 设计题目:简单行编辑器 指导教师: 2012年12月25

目录 第1章题目概述 (1) 第1.1节题目要求 (1) 第1.2节主要难点 (2) 第2章系统流程图 (3) 第3章数据结构和算法 (4) 第4章核心代码分析 (6) 第5章复杂度分析 (10) 第6章总结 (11) 参考文献 (13)

第1章题目概述 在这次课程设计中我选的题目是文本编辑,文本编辑几乎是每个使用电脑 的人都会遇到的问题,特别是网络小说作家们。在文本的编辑中,我们会时常 遇到文本信息的统计问题、小型子串的查找问题、子串的查找和删除问题等。 如果靠人自己去观察和执行相关操作的话,不仅累人,而且很容易出错。而使 用计算机程序去实现的话,则会省力不少,而且相对来说非常精确。本程序使 用了较快速的查找算法,可以大大提高检索的效率,相信这可一极大的方便用 户用电脑编辑文本文件。 第1.1节题目要求 文章编辑 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标 点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章; 实现功能 (1)文章内容的输入:包括字母、标点符号、数字等; (2)文章内容的统计:包括文章中大写字母、小写字母、数字、标点符

在线考试系统毕业论文

在线考试系统 摘要 随着计算机网络技术及相关技术的不断发展,考试的手段和媒介也在发生着巨大的变化,传统的考试方式和手段正面临着强烈的冲击。计算机网络技术应用于教育领域,经历了从传统的纸笔考试到计算机辅助考试,再到实现了真正的无纸化考试。在线式考试不仅可以节省大量的人力、物力,还可以提高考试的效率和质量,降低考试成本,使得网络考试不受时间和空间的限制,并且评测结果更为准确和客观。 将“在线考试系统”作为设计题目主要是为了把教师从传统的卷纸考试的工作中解脱出来,把学生从传统的学习方式中解脱出来。 “考试系统”主要由两个部分组成,分别是:“前台的网页设计”和“后台的题库系统服务”。该系统所能实现的主要模块功能,包括学生信息管理、管理员信息管理、考试科目管理、题库管理、自动组卷、在线考试、自动阅卷、学生成绩管理等功能。 本系统采用ASP语言进行开发,集题库管理,在线考试,实时评判于一体,本文分析了计算机考试系统的关键技术以及存在的问题。提出了实现该系统的体系结构,软件功能模块等,系统通过提高考试的效率,增强测试的反馈效果,使教师的教与学生的学更有针对性。 本系统速度快、稳定性强,为学生课程学习、个性化学习提供了灵活、方便、科学的检测手段,经过测试,该系统达到了预期的设计目标,非常适合于学校的考试工作。 关键词:在线考试; ASP技术; 数据库开发和应用; 随机生成试卷; 目录 摘要1 关键词:1 绪论2

1系统实现的关键技术3 1.1ASP技术3 1.2数据库技术4 1.2.1数据库技术概述4 1.2.2ADO与数据库的交互技术5 2系统分析6 2.1分析6 2.1.1条件的可行性6 2.1.2技术的可行性6 2.1.3经济上的可行性6 2.1.4考试系统的实用性6 2.2系统构架与开发环境6 2.2.1确定系统的构架6 2.2.2选择开发环境7 2.3系统需求分析7 3数据库分析与设计8 3.1数据流程分析8 3.2数据库概念设计9 3.3数据库逻辑设计9 4系统设计与实现10 4.1总体设计10 4.2模块的详细设计11 4.2.1管理员子系统11 4.2.2学生管理子系统13 5系统测试14 5.1测试内容14 5.3测试总结15 6结论15 参考文献15 致谢错误!未定义书签。 绪论 随着计算机技术的迅猛发展,学校教学和管理的信息化发展也有长足的进步,这就要求各个环节都均衡发展,其中之一是教师如何通过网络了解学生的学习状况。为此,配合传统课堂教学而建立的在线考试系统就显得相当必要。传统的考试都是采用纸、笔为介质的手工考试方式,即使在目前的高等学校,这种方式仍然被广泛使用。随着考试类型的不断增加和考试要求的不断提高,教师的工作量将随之增大。同时,一次考试的反馈能力弱,试题选择随意性大,人为因素明显,且考试时间地点必须固定。因此,传统的考试方式己经不能完全适应现代考试的需要。 随着人们对网络的科学性和广泛性的理解与加深,人们越来越重视考试系统的重要

ueditor文本编辑器

百度编辑器 UEditor
演示地址:https://www.doczj.com/doc/ca18306020.html,/website/onlinedemo.html Ueditor 是由百度 web 前端研发部开发所见即所得的编辑器,具有轻量,可定制,注重 用户体验等特点。Ueditor 基于 BSD 开源协议,除了具有代码精简、加载迅速的轻量级特质 外,还采用了分层理念,使开发者可以根据实际应用和需求自由定制。 Ueditor 编辑器划分为了三层架构。其中,核心层为开发者提供了诸如 range、 selection、 domUtils 类的底层 API 接口, 中间的命令插件层不仅提供了大量的基础 command, 还允许开发者基于核心层进行 command 命令的开发, 而面向用户端的界面层则可以提供自由 定制的用户交互界面。Ueditor 开源编辑器这种拥有可配性的模式,令开发者能够根据自身 需要接入任何一层进行开发。
完整版的部署与体验
一、官网上下载完整源码包,解压到任意目录,解压后的源码目录结构如下所示: _examples:编辑器完整版的示例页面 _demos:编辑器的各种使用案例 dialogs:弹出对话框对应的资源和 JS 文件 themes:样式图片和样式文件 server:涉及到服务器端操作的 PHP、JSP 等文件 third-party:第三方插件 editor_all.js:_src 目录下所有文件的打包文件 editor_all_min.js:editor_all.js 文件的压缩版,建议在正式部署时才采用 editor_config.js:编辑器的配置文件,建议和编辑器实例化页面置于同一目录 二、部署 UEditor 到实际项目(UETest)中的步骤:
图表 1 第一步:在项目的任一文件夹中建立一个用于存放 UEditor 相关资源和文件的目录,此

数据结构课程设计简易文本编辑器

课程设计说明书 课程名称:数据结构课程设计 专业:电子信息科学与技术班级:2012-1 设计人: 山东科技大学 2015年 7 月 11 日

目录 1需求分析说明 (2) 1.1主函数模块 (2) 1.2菜单显示及输出子模块 (2) 1.3查找功能子模块 (2) 1.4替换功能子模块 (2) 1.5插入功能子模块 (3) 1.6块移动功能模块 (3) 1.7删除功能模块 (3) 1.8读盘功能模块 (3) 1.9存盘功能模块 (3) 1.10测试数据 (3) 2概要设计说明 (4) 2.1设计思想 (4) 2.2模块调用图 (4) 2.3程序代码简介 (4) 3详细设计说明 (7) 3.1主函数模块 (7) 3.2菜单显示及输出子模块 (7) 3.3查找功能子模块 (7) 3.4替换子模块 (9) 3.5插入子模块 (10) 3.6块移动模块 (11) 3.7删除模块 (12) 3.8读盘功能模块 (13) 3.9存盘功能模块 (15) 3.10流程图 (16) 4调试分析 (17) 4.1遇到的问题 (17) 4.2测试结果 (18) 5用户使用说明 (22) 6课程设计总结 (24)

1需求分析说明 简易文本编辑器的总体目标:在Visual Studio的开发环境下,利用所学C 语言和数据结构的相关知识,开发一个具有良好人机界面的简易文本编辑器,实现对文本的简单修改,从而达到编辑文本以及查看文本信息的目的。 基本功能如下: (1)界面友好,易与操作。采用菜单或其它人机对话方式进行选择。 (2)能正确打开所键入的文本路径,并能够读取相应文本信息。 (3)能对打开的文本进行文本信息显示、替换、查找、块移动、删除等基本操作。 (4)能够正确对修改后的文本内容存盘。 (5)正确显示文本总行数。 以下是各功能模块的功能描述: 1.1主函数模块 主函数模块的主要功能是初始化菜单界面,功能按键选择并调用相关模块,实现软件功能。 1.2菜单显示及输出子模块 菜单显示模块的主要功能是将菜单进行显示,内容包括本设计的主要功能及相关代号。 文本显示模块的主要功能是将所要显示的文本信息通过传入的参量传入 本模块进行显示。 输出模块主要功能是输出文本所有信息。 1.3查找功能子模块 本模块的主要功能是通过输入想要查找的文本信息,返回文本中所要查找的文本信息的所处起始位置。 1.4替换功能子模块 本模块的主要功能是将输入的被替换的文本替换为替换的文本信息,并能够显示文本信息。

动态网页制作的设计论文

毕业论文动态网页的设计制作 前言 在Internet 得到广泛应用的今天,网页已经成为一种不可替代的信息交流工具,他以交互式的特点开创了人们进行信息交流的新方式。 以往的静态网页大多不能与数据库连接,交互能力有限,不能很好的实现人们交流的愿望。今天,我们可以使用各种动态网页来弥补这个缺陷,使得这种新兴的、为大家广泛接受的交流方式焕发出更强的生命力,为实现人们“沟通无界线”的理想向前迈进一步。 网页内容的新颖也是吸引访问者的重要因素之一,但纯粹的文字,只会让网页枯燥、乏味,使访问者不能为之心动,而如果加入一些图片或修饰,使之图文并貌,必定会为网站增色不少。而且网站的整体框架的形式和色调也很重要,不同的内容要配以适合的框架和色调,给访问者视觉和感觉上的协调和舒适,如果给一个内容清新的网站配以拘谨的框架和暗色调,那回使访问者心绪凝重,不想再继续浏览此网页。可见这些美工设计对于一个网站来说不可缺少的。 本篇报告将详细说明一个成功建立起来的动态网页的一些方面,包括:发布平台、软件工具、语言、连接数据库和动态效果。 1

摘要 本论文主要介绍了我在西安交大科技处所研究的一些关于Web网 站图象存储与制作的问题。 图象的设计与制作在Web网站中是一个具体问题,也是必不可 少的一部分。因为图象设计的构思、制作是反映一个网站的风格与主题, 也是吸引访问者的一种手段。而如果网站规模大,图象内容势必也会多, 所以网站的图象存储管理尤为重要。 论文中重点阐述了网站图象存储问题,详细说明了存储的两种方 式--存在硬盘上与存入数据库中,以及这两种方式的具体实现和优缺 点。 2

目录 第一章科技处动态网页分析与描述 一. 开发基于数据库的动态网页的必要性 二. 当前静态网页的弊病 三. 网页系统的发展趋势 第二章使用的软硬件介绍 一. 发布平台的选取 二. 应用软件的选取 第三章图象制作 一. 创意构思 二. 创意步骤 第四章图象存储的具体实现 一.图象存储简介 二. 两种存储方法的具体实现 1) 图象存储在数据库中 2) 图象存储在硬盘上 第五章小结 一. 当前应用 二. 心得体会 致谢 参考文献 3

【优质】ueditorword导入编辑-word范文模板 (13页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == ueditorword导入编辑 篇一:百度编辑器UEditor的插件开发 百度编辑器UEditor的插件开发 1.概述 UEditor是由百度web前端研发部开发的所见即所得富文本web编辑器,具有轻量、可定制、注重用户体验等特点,开源基于BSD协议,允许自由使用和修改代码。 2.下载UEditor 截至201X.11.27,最新版本为1.3.5,下面是具体的相关文档的下载地址: 百度官网下载地址:/website/download.html#ueditor;官方文档资料地址:/website/document.html;官方API地址:/doc/。 3.源码包文件说明 从官网上下载完整源码包,解压到任意目录,解压后的源码目录结构如下所示: ?_examples:编辑器的示例页面 ?dialogs:弹出对话框对应的资源和JS文件 ?themes:样式图片和样式文件 ?editor.config.js:编辑器的配置文件 ?editor.api.js:开发版的所有js文件导入 ?editor.all.js:使用版的所有js文件 ?lang:语言文件 ?jsp、net、php:涉及到服务器端操作的文件

?third-party:第三方插件 4.部署和使用 UEditor可供普通用户使用,同时UEditor的插件机制也为二次开发者提供了自定义插件的开发。 1)在项目的任一文件夹中建立一个用于存放UEditor相关资源和文件的目录。 2)创建简单的编辑器实例,首先在html页面中准备一个dom容器,容器可以是

,也可以是标签。 3)引入相关文件 4)创建编辑器 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

项目一:文本编辑器的设计与实现

课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注 项目一:文本编辑器的设计与实现 【项目背景】 文本编辑器有两类:单文档和多文档文本编辑器。单文档文本编辑器一次只能打开一个文件,如果要打开另一个文件,必须关闭当前打开的文件,微软的写字板程序就是单文档字处理程序。多文档文本编辑器允许同时打开多个文件,每个文件占用一个子窗口,微软的Word程序就是多文档字处理程序。本项目主要介绍建立单文档文本编辑器的方法,通过分析现有文本编辑器的功能与操作过程,利用C#开发一个新的文本编辑器。 【主要内容与技能要求】 (1)会进行复杂窗口设计 (2)会对常见的文本编辑功能进行分析与编码实现 (3)会设计多文档窗口 一、预备知识 本项目主要利用RichTextBox控件来构成文本编辑区域。 1、RichT extBox控件的主要属性 属性SelectedText、SelectionLength、SelectionStart: 属性SelectionFont: 属性SelectionColor: 属性Lines: 属性Modified: 事件SelectionChange: 事件TextChanged: 2、RichT extBox控件的主要方法 方法Clear(): 方法Copy()、Cut()、Paste(): 方法SelectAll(): 方法Find(): 方法SaveFile()和LoadFile():

课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注方法Undo(): 方法Redo(): 二、功能设计与实现 1、剪贴板功能 放RichTextBox控件到窗体。属性Name=richTextBox1,Dock=Fill,Text=""。 private void menuItemEditCut_Click(object sender,EventArgs e) { richTextBox1.Cut(); } //剪切 private void menuItemEditCopy_Click(object sender,EventArgs e) { richTextBox1.Copy(); } //拷贝 private void menuItemEditPaste_Click(object sender,EventArgs e) { richTextBox1.Paste(); } //粘贴 private void menuItemEditUndo_Click(object sender,EventArgs e) { richTextBox1.Undo(); } //撤销 private void menuItemEditRedo_Click(object sender,EventArgs e) { richTextBox1.Redo(); } //恢复 2、存取文件功能 文本编辑器都应具有文件存取功能,菜单顶级菜单项“文件”的弹出菜单中一般包括如下菜单项:新建、打开、关闭、保存和另存为等。需要用到打开文件对话框(OpenFileDialog控件)和保存文件对话框(SaveFileDialog控件)。和 两个对话框的常用属性和方法: 属性Filter:例如Filter=“纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*” 属性FilterIndex: 属性FileName: 属性InitialDirectory: 属性DefaultExt: 方法ShowDialog(): 存取文件功能实现如下:

数据结构文本编辑器终审稿)

数据结构文本编辑器文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

数据结构课程设计报告 一.需求分析 1.题目及要求 名称:简单的文本编辑器 内容:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行。 要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一字符或者子串,并将后面的字符前移。 (4)插入某一字符或者子串。 (5)查找某一字符或者子串。 存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和 范围:可以输入大写、小写的英文字母、任何数字及标点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章。 通过题目及其要求可知,本程序应实现以下功能: (1)文章内容的输入:包括字母、标点符号、数字等; (2)文章内容的统计:包括文章中大写字母、小写字母、数字、标点符号、空格以 及文章所有字数的个数的统计; (3)文章内容的处理:包括对文章内容的查找、删除以及对指定位置进行插入操作, 其中在查找的过程中统计出该字符或字符串在文章中出现的次数; 2.问题分析 本程序是对一段英文文章的内容进行处理,存储方式采用链式存储,没有文件操作,故本程序对其文本内容的所有操作都是在链表中进行的。对于文本的输入,采用头插法将文本信息存储到链表已申请好的存储空间中,在此部分设计中最大的问题在于输入文章过程中输入的字符数大于80时如何换行;对于文本内容的统计,使用循环对已存储的文章进行匹配,大写字母数、小写字母数、空格数、数字数直接通过比较即可得到,标点符号通过ASCⅡ比较即可得到;对于文本内容的处理,查找部分仍是使用循环对已存储的文章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相同,如果存在相同

4_毕业设计(论文)文献综述

毕业设计(论文) 文献综述 设计(论文)题目:基于Python的飞机大战游戏 设计与开发 学院名称:电子与信息工程学院 专业:计算机科学与技术 班级:计科12-4 姓名:刘佳炜学号12401010410 指导教师:苏日娜职称副教授 企业导师:杨高峰职称工程师 定稿日期:年月日

页面设置:A4纸,页边距:上下各2.54厘米,左:3.5厘米,右:2.5厘米。 页码:居中,首页(封面)不加页码 文献综述例: 基于Python下的飞机大战游戏设计与开发(题目四号黑体居中,段前段后各空 30磅) 摘要:本文主要以飞机大战为例,研究Python语言下的游戏设计和开发。通过pygame模块对游戏的事件响应、碰撞检测和程序优化完成设计和开发工作。通过具体实例的开发,探讨Python开发游戏的基本思路和市场前瞻。(“摘要”两个字五号黑体) 关键词:Python、pygame、游戏(五号宋体)(“关键词”三个字五号黑体) 1. 序言(一级标题:左起顶格打印,小四号黑体,段前段后各空18磅) 1.1 游戏市场的趋势(二级标题:左起顶格五号黑体打印, 段前空12磅,上面一行是一级标题的话,就不空) 在互联网和移动终端蓬勃发展的今天,游戏拥有的市场是难以预估的。而如今热门的游戏诸如:flappy bird、愤怒的小鸟和植物大战僵尸等,都偏向于简单,规模小。笔者主要从以下几个方面进行分析: (1)层出不穷的唯美界面游戏,导致玩家出现审美疲劳。 (2)偏小型、简单的游戏对于时间不充裕的白领、上班族更具备吸引力。 (3)大型的游戏开发需要消耗相当的人力、物力和财力。 (4)游戏依托的平台从电脑端逐渐转移到手机端。手机的配置差异和屏幕的尺寸都不支持游戏程序过大。 1.2 Python开发游戏的优势 Python作为一门面向对象、解释型计算机设计语言。其丰富和强大的库使之能够很轻松地和其他语言制作的模块联结起来。而其优秀的可移植性,也使得其能够在当下众多平台所支持。同时,作为Python游戏开发的首选、主要模块,pygame是专门为电子游戏设计的。其建立在SDL基础上,允许实时电子游戏研发而无需被低级语言束缚。所有需要的游戏功能和理念都完全简化为游戏逻辑本身。 综上,Python是一款完全符合游戏市场趋向的开发语言。应链管理首先在西方提出,它是过去30年中逐渐发展而形成的。在20世纪70年代,主要集中于供应链中某一特定职能企业,生产厂家、零售商、配送中心,注重的是企业内部自身的发展[1]。随着20世纪80年代的到来,企业竞争转到如何全面提高T.Q.C.S赢得竞争,T指产品的交货时间或新产品上市时间;Q是从全面质量管理到零次品率最终发展到全面满足用户要求;C是从单一产品制造成本,发展到包括运行成本、维护成本及报废后的处理成本在内的全成本尽可能最低;S是指提供优质的售前咨询服务及售后维护、增值服务。(五号宋体,1.25倍行距) 文献综述2500字以上,文献综述内容要全面,应包括对设计课题

相关主题
文本预览
相关文档 最新文档