课程设计文本编辑器的设计

课程设计文本编辑器的设计
课程设计文本编辑器的设计

《高级语言程序设计》

课程设计报告

题目: 文本编辑器的设计 专业: 计算机科学与技术 班级: 14计科一班

姓名: 彭鑫 指导教师: 王峻

成绩:

计算机学院 2015年4月24日

2014-2015学年 第2学期

目录

1 设计容及要求.................................................................................... 错误!未定义书签。

1.1设计容.......................................................................................... 错误!未定义书签。

1.2具体要求 (2)

2 概要设计 (2)

2.1系统的功能简介 (3)

2.2系统功能模块图........................................................................ 错误!未定义书签。

2.3各个模块之间的主要关系 (3)

3 详细设计 (4)

3.1文件操作 (4)

3.2编辑操作 (9)

3.3工具操作 (17)

4 程序运行结果与调试 (19)

4.1 在调试过程中出现的一些问题 (19)

4.2 实验结果 (20)

5 课程设计总结与感想 (24)

参考文献 (24)

源代码 (25)

1 设计容及要求

1.1设计容

该文本编辑器运行后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文件容。其中程序的编辑项可对当前的文本进行撤销、删除、剪切、复制、粘贴、在文本里显示当前时间、全选、清除、查找、替换、统计等功能。程序的文件项可以对电脑上txt,c++等格式文件的打开、对当前文本的保存和另存、对当前文本的的新建以及退出文本编辑系统。程序的工具项为背景音乐,为用户提供了优美动听的音乐,仅在用户编辑疲惫乏力的时候尽情的享用。最后在程序的帮助项有对该小型文本编辑器的关于,用来介绍该程序,还有访问百度,访问114网页大全,为用户提供查找资料等功能服务。

1.2具体要求

基本要求:编辑器应具备对文本文件的打开、保存、新建、查找、插人、删除、修改、字符串替换、统计字数,统计行数等功能,对于超过一屏的长文件,应能够分页显示。设计用户接口命令,实现对文本的编辑

2 概要设计

2.1系统的功能简介

输入一页文字,程序实现文字、数字、空格的统计;可以删除一行信息;查找定位单词;定行位置插入;文件存盘;装入文件;并能显示输入及其他功能。

2.2系统功能模块图

运行所需环境:win7及以下各版本windows,visual C++6.0。

2.3各个模块之间的主要关系

该系统的功能主要是实现文本的输入,并对文本的相应信息进行的操作。各个模块之间的关系是相互联系的。首先,主函数包含了所有的子函数。主函数是整个系统的核心。子函数之

间也是有联系的,对文本信息的显示、删除、统计、查找、插入,存储,装入,必须是在文本信息输入的情况下进行的。因此对文本的输入是非常重要的。在文本的删除、统计、查找、插入、存储、装入、保存所有的子函数之间是没有多大联系的。

3 详细设计

3.1文件操作

(1)文件的新建的实现:

int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文本文档!!!"),TEXT("温馨提示"),MB_YESNO | MB_ICONQUESTION);

if(ret==IDYES) //根据选择如果保存

{

OPENFILENAME ofn; //文件对象

char szFile[MAX_PATH]; //文件的大小,最大

ZeroMemory(&ofn,sizeof(ofn)); //文件的初始化

ofn.lStructSize = sizeof(ofn);

ofn.lpstrFile = szFile;

ofn.lpstrFile[0] = TEXT('\0');

ofn.nMaxFile = sizeof(szFile);

ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0C++\0*.cpp\0"); //保存的文件类型

ofn.nFilterIndex = 1;

ofn.lpstrFileTitle = NULL;

ofn.nMaxFileTitle = 0;

ofn.lpstrInitialDir = NULL;

ofn.hwndOwner = hwnd;

ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

ofn.lpstrTitle=TEXT("保存");

if (GetSaveFileName(&ofn))

{

FILE *fp;

fp=fopen(szFile,"w"); //打开文件

if(fp==NULL)

{

MessageBox(NULL,TEXT("文件无法保存"),TEXT("呜呜"),MB_OK);

}

TCHAR str[10000];

TCHAR end[10000];

memset(end,0,10000);

GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str));

fputs(str,fp);

fclose(fp);

}

SetDlgItemText(hwnd,IDC_EDIT1,"");

}

else

{

SetDlgItemText(hwnd,IDC_EDIT1,"");

}

(2)文件打开的实现:

case ID_MENUITEMOPEN: //文本的打开

{

OPENFILENAME ofn;

char szFile[MAX_PATH]; //保存路径变量

ZeroMemory(&ofn,sizeof(ofn));

在这里我们使用ZeroMemory“函数”,ZeroMemory其实并不是函数,看一下ZeroMemory的定义:

ofn.lStructSize = sizeof(ofn);

ofn.lpstrFile = szFile;

//szFile是一个字符数组,那么szFile这个名字就代表这个字符数组的首地址

这是一个指针的应用,把接收选择文件名的数组的地址传递到GetOpenFileName函数中。

ofn.lpstrFile[0] = TEXT('\0');

ofn.lpstrFile[0] = TEXT('\0');效果等价于ZeroMemory(szFile,sizeof(szFile)/sizeof(char));

ofn.nMaxFile = sizeof(szFile);

ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.txt\0");

文件过滤器

*.*就表示所有文件*.txt就表示所有文本文件abc*.*就表示所有以abc开头的文件abc*.txt就表示所有以abc开头的文本文件(txt)

ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0");用“\0”分割出几个段,每两段是一组过滤器,每组的第一个段代表过滤器的显示的值,而第二段表示真正的过滤器

ofn.nFilterIndex = 1; //选择一个过滤器

ofn.lpstrFileTitle = NULL;

windows的一个惯例:结构体的指针类型别名一般是LP+结构体的名字GetOpenFileName(&ofn)而不是GetOpenFileName(ofn),因为GetOpenFileName函数要的是OPENFILENAME的指针(8)只要用户还没关闭对话框,那么GetOpenFileName函数是停住的,同步模式的PlaySound 以及getchar、scanf是一样的。用户关闭对话框,GetOpenFileName函数返回,返回值是BOOL,等于TRUE表示用户选择了文件,如果等于FALSE就表示用户选择了【取消】按钮

ofn.nMaxFileTitle = 0;

ofn.lpstrInitialDir = NULL;

ofn.hwndOwner = hwnd;

ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

if(GetOpenFileName(&ofn))

{

FILE *fp;

fp=fopen(szFile,"r");

if(fp==NULL)

{

MessageBox(NULL,TEXT("文件打开错误!"),TEXT("记事本"),MB_OK);

}

TCHAR line[256];

TCHAR end[10000];

memset(line,0,256);

memset(end,0,256);

while(!feof(fp))

{

fgets(line,sizeof(line),fp);

lstrcat(end,line);

int w=strlen(end);

end[w-1]='\0';

lstrcat(end,"\r\n");

}

SetDlgItemText(hwnd,IDC_RICHEDIT1,end);

fclose(fp); //关闭文件

}

break;

}

break;

(3)文件保存的实现:

case ID_MENUITEMSAVE: //文本的保存

{

OPENFILENAME ofnb;

char bcFile[MAX_PATH];

ZeroMemory(&ofnb,sizeof(ofnb));

ofnb.lStructSize = sizeof(ofnb);

ofnb.lpstrFile = bcFile;

ofnb.lpstrFile[0] = TEXT('\0');

ofnb.nMaxFile = sizeof(bcFile);

ofnb.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.txt\0");

ofnb.nFilterIndex = 1;

ofnb.lpstrFileTitle = NULL;

ofnb.nMaxFileTitle = 0;

ofnb.lpstrInitialDir = NULL;

ofnb.hwndOwner = hwnd;

ofnb.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST|OFN_OVERWRITEPROMPT;

if (GetSaveFileName(&ofnb))

{

FILE * fp = fopen (".txt","w"); //保存所有文件都为txt格式

TCHAR baoc [100000]; //保存的最大容量为100000

GetDlgItemText(hwnd,IDC_RICHEDIT1,baoc,sizeof(baoc));

fputs(baoc,fp);

fclose(fp);

}

}

break;

(4)退出文本编辑器的实现:

int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文本文档!!!"),TEXT("温馨提示"),MB_YESNO | MB_ICONQUESTION);

if(ret==IDYES)

{

OPENFILENAME ofn;

char szFile[MAX_PATH];

ZeroMemory(&ofn,sizeof(ofn));

ofn.lStructSize = sizeof(ofn);

ofn.lpstrFile = szFile;

ofn.lpstrFile[0] = TEXT('\0');

ofn.nMaxFile = sizeof(szFile);

ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0C++\0*.cpp\0");

ofn.nFilterIndex = 1;

ofn.lpstrFileTitle = NULL;

ofn.nMaxFileTitle = 0;

ofn.lpstrInitialDir = NULL;

ofn.hwndOwner = hwnd;

ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

ofn.lpstrTitle=TEXT("保存");

if (GetSaveFileName(&ofn))

{

FILE *fp;

fp=fopen(szFile,"w");

if(fp==NULL)

{

MessageBox(NULL,TEXT("文件无法保存"),TEXT("呜呜"),MB_OK);

}

TCHAR str[10000];

TCHAR end[10000];

memset(end,0,10000);

GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str));

fputs(str,fp);

fclose(fp);

}

MessageBox(NULL,TEXT("文件保存成功!放心关闭!!!"),TEXT("嘻嘻"),MB_OK);

}

EndDialog(hwnd, 0);

3.2编辑操作:

(1)剪切的实现:

case ID_MENUITEMCUT: //剪切

{ SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_CUT,0,0);

//传递对话框中的容首先获取RichEdit中的容,WM_CUT,传递要进行操作的容,0,0为两个WPARAM和LPARAM是约定的消息参数类型。

break;

}

(2)复制的实现:

case ID_MENUITEMCOPY: //复制

{ SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_COPY,0,0);

//传递对话框中的容首先获取RichEdit中的容,WM_COPY,,传递要进行操作的容,0,0为两个WPARAM和LPARAM是约定的消息参数类型。

break;

}

(3)粘贴的实现:

case ID_MENUITEMPASTE: //粘贴

{ SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_PASTE,0,0);

break;

}

(4)清除的实现:

case ID_MENUITEMEMPTY: //清除

{

SetDlgItemText(hwnd,IDC_RICHEDIT1,"");

break;

}

(5)撤销的实现:

case ID_MENUITEMUNDO: //“撤销”菜单

{

SendDlgItemMessage(hwnd,IDC_RICHEDIT1, EM_UNDO, 0, 0);

break;

}

(6)删除的实现:

case ID_MENUITEMDELETE: //删除

{

SendMessage(GetDlgItem(hwnd, IDC_RICHEDIT1), WM_CLEAR, 0, 0);

}

break;

(7)全选的实现:

case ID_MENUITEMSELECTALL: //全选

{

SendMessage(GetDlgItem(hwnd, IDC_RICHEDIT1), EM_SETSEL, 0, -1);

}

break;

(8)系统时间的实现:

VOID CALLBACK MyTimerFun(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)

{

SYSTEMTIME strLocal; //当前时间

GetLocalTime(&strLocal);

TCHAR str[256];

wsprintf(str,"%04d-%02d-%02d %02d:%02d:%02d",strLocal.wYear,strLocal.wMonth,

strLocal.wDay,strLocal.wHour,strLocal.wMinute,strLocal.wSecond);

SetDlgItemText(hwnd,IDC_EDIT2,str);

}

(9)查找功能的实现:

int count=0;

int Line_count=1;

int Row_count=1;

int num=0;

int flag=0;

TCHAR str1[256];

TCHAR temp1[5000];

TCHAR temp2[5000];

memset(temp1,0,5000);

memset(temp2,0,5000);

memset(str1,0,256);

GetDlgItemText(hwnd,IDC_EDIT_FINDWORD,str1,sizeof(str1));

if(strlen(str1)==0)

{

MessageBox(NULL,TEXT("查找的容为空,请输入容后再查找!!!"),TEXT("呜呜"),MB_OK);

}

else

{

int i=0;

int j=0;

while(str2[i]!='\0' )

{

if((str2[i]=='\n') || (Row_count==63))

{

Line_count++;

Row_count=0;

}

if(str2[i]==str1[j])

{

i++;

j++;

Row_count++;

if(str1[j]=='\0')

{

j=0;

count++;

wsprintf(temp2,"<%i>你要寻找的容在第:%i 行,第:%i 列至第:%i 列!!!",count,Line_count,(Row_count-strlen(str1)),(Row_count-1));

strcat(temp1,temp2);

strcat(temp1,"\r\n");

flag=1;

}

}

else

{

i=i-j+1;

j=0;

Row_count++;

}

if(str2[i]=='\0' && flag==1)

{

SetDlgItemText(hwnd,IDC_EDIT2,temp1);

MessageBox(NULL,temp1,TEXT("嘿嘿"),MB_OK);

}

if(str2[i]=='\0' && flag==0)

{

MessageBox(NULL,TEXT("没有你想要找的容,请重新输入查找的容"),TEXT("呜呜"),MB_OK);

break;

}

}

}

}

break;

通过简单的字符串比配算法实现其功能。

(10)替换功能的实现:

TCHAR *change::D_change(TCHAR S[], TCHAR T1[] ,TCHAR T2[]) //替换功能的主算法{

int i=0;

int j=0;

int k=0;

int l=0;

TCHAR *S1;

while((S[i]!='\0'))

{

if(S[i]==T1[j])

{

i++;

j++;

count1=i;

}

else

{

i=i-j+1;

j=0;

count1=i;

}

if(T1[j]=='\0')

{

i=i-j;

if(strlen(T1)==strlen(T2))

{

int num1=strlen(T1);

for(k=i;k

{

S[k]=T2[l];

l++;

}

j=0;

l=0;

}

else if(strlen(T1)>strlen(T2))

{

int num2=strlen(T1)-strlen(T2);

int lengthT2=strlen(T2);

for(k=i;k

{

S[k]=S[k+num2];

}

for(k=(strlen(S)-num2);k<=strlen(S);k++) {

S[k]='\0';

}

for(k=i;k<(i+lengthT2);k++)

{

S[k]=T2[l];

l++;

}

j=0;

l=0;

}

else if(strlen(T1)

{

int num3=strlen(T2)-strlen(T1);

S1=new TCHAR[strlen(S)+num3];

for(int k=0;k

{

S1[k]=S[k];

}

for(int k2=i;k2

{

S1[k2]=T2[k2-i];

}

for(int k3=i+strlen(T1);k3

{

S1[k3+num3]=S[k3];

}

S1[k3+num3]='\0';

if(S[i]=='\0')

{

return S1;

}

else

{

strcpy(S,S1);

j=0;

}

}

}

}

return S;

}

也通过字符算的比配,一一找到后,一一替换,最后返回替换后的文本容;(11)统计功能的实现:

void Total_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) {

int Line_count=1;

int Row_count=0;

int Total_count=0;

int English_count=0;

int math_count=0;

int other_count=0;

int space_count=0;

int punct_count=0;

TCHAR temp1[256];

TCHAR temp2[256];

memset(temp1,0,256);

memset(temp2,0,256);

int i=0;

while(total2[i]!='\0')

{

if((total2[i]!=' ') && (total2[i]!='\r') && (total2[i]!='\n'))

{

Total_count++;

}

if((total2[i]>='a' && total2[i]<='z') || (total2[i]>='A' && total2[i]<='Z'))

{

English_count++;

}

if(total2[i]>='0' && total2[i]<='9')

{

math_count++;

}

if(total2[i]==33 || total2[i]==34 || total2[i]==39 || total2[i]==44 || total2[i]==46 || total2[i]==58 || total2[i]==59 || total2[i]==63)

{

punct_count++;

}

if(total2[i]==' ')

{

space_count++;

}

if((total2[i]=='\n') || (Row_count==62))

{

Line_count++;

Row_count=0;

}

else

{

Row_count++;

}

i++;

}

other_count=Total_count-English_count-math_count-punct_count; wsprintf(temp2,"<1>文本的行数为:%i !",Line_count-1);

strcat(temp1,temp2);

strcat(temp1,"\r\n");

memset(temp2,0,256);

wsprintf(temp2,"<2>文本的总字符数为:%i !",Total_count);

strcat(temp1,temp2);

strcat(temp1,"\r\n");

memset(temp2,0,256);

wsprintf(temp2,"<3>文本的英文字符数为:%i !",English_count); strcat(temp1,temp2);

strcat(temp1,"\r\n");

memset(temp2,0,256);

wsprintf(temp2,"<4>文本的数字字符数为:%i !",math_count);

strcat(temp1,temp2);

strcat(temp1,"\r\n");

memset(temp2,0,256);

wsprintf(temp2,"<5>文本的空格数为:%i !",space_count);

strcat(temp1,temp2);

strcat(temp1,"\r\n");

memset(temp2,0,256);

wsprintf(temp2,"<6>文本的标点符号数为:%i !",punct_count);

strcat(temp1,temp2);

strcat(temp1,"\r\n");

memset(temp2,0,256);

wsprintf(temp2,"<7>文本的其它字符数为:%i !",other_count);

strcat(temp1,temp2);

strcat(temp1,"\r\n");

memset(temp2,0,256);

SetDlgItemText(hwnd,IDC_EDIT1,temp1);

}

通过传参,把文本信息传到副对话框中。然后对文本进行各项简单的统计

3.3工具操作:

(1)北京音乐的实现:

case ID_MENU_MUSIC:

{

TCHAR shortPath[MAX_PATH];

GetShortPathName("C:\\Documents and Settings\\user\\桌面\\edit\\邓紫棋- 寂寞星球的玫瑰.mp3",shortPath,sizeof(shortPath)); //获取音乐的途径

TCHAR cmd[MAX_PATH+10];

wsprintf(cmd,"play %s",shortPath);

mciSendString(cmd," ",0,NULL);

int ret = MessageBox(NULL,TEXT("你当前正在享受音乐!!!是否要退出"),TEXT("嘻嘻"),MB_YESNO | MB_ICONQUESTION);

if(ret==IDYES)

{

MessageBox(NULL,TEXT("还好听吧!欢迎再欣赏!再见!!!"),TEXT("嘿嘿"),MB_OK);

mciSendString("CLOSE cmd"," ",0,NULL);

break;

}

else

{

break;

}

break;

}

主要是通过mciSendString()API函数的使用。

3.4关于操作:

(1)关于对话框的弹出实现:

case ID_MENU_ABOUT:

{

HINSTANCE

hInstance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE);

DialogBox(hInstance, MAKEINTRESOURCE(IDD_ABOUT), NULL, Main_Proc);

break;

}

用DialogBox()函数实现对话框的弹出。

(2)访问百度实现:

case IDM_BAIDU: //访问百度网

{

ShellExecute(hwnd,TEXT("open"),TEXT(".baidu."),NULL,NULL,SW_SHOWNORMAL);

break;

}

(3)访问114实现:

case IDM_GOOGLE:

{

ShellExecute(hwnd,TEXT("open"),TEXT(".114la."),NULL,NULL,SW_SHOWNORMAL);

break;

}

都是ShellExecute()函数的使用。

4 程序运行结果与调试

4.1在调试过程中出现的一些问题

(1)输入语句中没有加取地址符号&

(2)误把取地址运算符&当作逻辑与&&

(3)误把赋值=当恒等==

(4)条件语句(if)后误加分号

(5)循环语句中改变了循环变量

(6)作为输出结果的变量没有赋初值

面向对象程序设计—文本编辑器的设计与实现

课程设计报告书 课程名称面向对象程序设计 设计题目文本编辑器的设计与实现 专业班级 学号 姓名 指导教师 年月

目录 1 设计时间 (1) 2 设计目的 (1) 3设计任务 (1) 4 设计内容 (1) 4.1需求分析 (1) 4.2概要设计 (1) 4.2.1功能结构图 (1) 4.3详细设计 (2) 4.3.1流程图 (3) 4.4系统的功能实现 (4) 4.4.1类或包的加载 (5) 4.4.2设计一个主类,变量的定义 (5) 4.4.3文件操作功能的实现 (6) 4.5运行测试 (25) 4.5.1文本编辑器界面 (25) 4.5.2各功能菜单界面 (25) 5 总结与展望 (26) 参考文献 (26) 成绩评定 (27)

1 设计时间 2011年12月19日~2011年12月25日 2 设计目的 本次设计是学习完《java6程序设计》课程后进行的一次全面的综合练习,目的是加深对本学期课程的理解,通过设计文本编辑器并实现其功能来熟练掌握java语言基础,初步掌握软件开发的基本方法与技术将理论课程中学到的知识运用到实践中,实现有一定规模的Java应用。 3设计任务 本次设计的主要任务是文本编辑器的设计与实现,要求设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。 4 设计内容 4.1需求分析 现在网络上各种文本编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed,xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的文本编辑器程序。 4.2概要设计 4.2.1功能结构图

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

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

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

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 程序。可以打开、新建、保存一个文本 文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复 制、粘贴、剪切、查找、替换等) ;在文本中能够插入对象。简单文本编辑器提供给用户基本的 纯文本编辑功能, 能够将用户录入的文本存储到本地磁盘中。 能够读取磁盘中现有的纯文本文件, 以及方便用户进行需要的编辑功能。

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.创新要求: ①在记事本中增加工具栏,工具栏中应有常使用的工具按钮; ②在记事本中增加状态栏;

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

课程: 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(): 存取文件功能实现如下:

在线考试系统毕业论文

在线考试系统 摘要 随着计算机网络技术及相关技术的不断发展,考试的手段和媒介也在发生着巨大的变化,传统的考试方式和手段正面临着强烈的冲击。计算机网络技术应用于教育领域,经历了从传统的纸笔考试到计算机辅助考试,再到实现了真正的无纸化考试。在线式考试不仅可以节省大量的人力、物力,还可以提高考试的效率和质量,降低考试成本,使得网络考试不受时间和空间的限制,并且评测结果更为准确和客观。 将“在线考试系统”作为设计题目主要是为了把教师从传统的卷纸考试的工作中解脱出来,把学生从传统的学习方式中解脱出来。 “考试系统”主要由两个部分组成,分别是:“前台的网页设计”和“后台的题库系统服务”。该系统所能实现的主要模块功能,包括学生信息管理、管理员信息管理、考试科目管理、题库管理、自动组卷、在线考试、自动阅卷、学生成绩管理等功能。 本系统采用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 致谢错误!未定义书签。 绪论 随着计算机技术的迅猛发展,学校教学和管理的信息化发展也有长足的进步,这就要求各个环节都均衡发展,其中之一是教师如何通过网络了解学生的学习状况。为此,配合传统课堂教学而建立的在线考试系统就显得相当必要。传统的考试都是采用纸、笔为介质的手工考试方式,即使在目前的高等学校,这种方式仍然被广泛使用。随着考试类型的不断增加和考试要求的不断提高,教师的工作量将随之增大。同时,一次考试的反馈能力弱,试题选择随意性大,人为因素明显,且考试时间地点必须固定。因此,传统的考试方式己经不能完全适应现代考试的需要。 随着人们对网络的科学性和广泛性的理解与加深,人们越来越重视考试系统的重要

文本编辑器设计

四川师范大学成都学院高级语言程序课程设计 文本编辑器设计 学生姓名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.

动态网页制作的设计论文

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

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

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

C++课程设计报告(简易文本编辑器)

面向对象程序设计课程设计报告 (2011/2012学年第二学期) 题目名称简单文本编辑器的设计 系部 专业计算机科学与技术 班级 学生 完成时间 2012年 6 月 指导老师

在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。文字存放于一个装着这样的薄卡片的盒子里,可以用读卡器来阅读它。 第一个文本编辑器是一种行编辑器,它运行在打字机型的终端上,这种编辑器并不具备在窗口和屏幕中显示的功能。它包含了一些非常短的命令(为了减少打字量)。其中一个命令能够把文件的指定部分通过打字机打印出来。编辑光标是想象中的一个插入点,通过特殊命令,可以把它移动到特定内容字符串所在的行。随后,内容字符串又被扩展成正则表达式。如果想看到文件的变化,你需要把它打印出来。相对于穿孔机来说,人们认为这种基于行的文本编辑器具有革命性的进步。如果没有它,用户就需要把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。 当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。最早的全屏编辑器中,有一种叫做O26,它是于1967年为CDC 6000系列机器的操作控制台而作的。另外一个早期的全屏编辑器是vi。vi诞生于20世纪70年代,至今,它仍是Unix和Linux的标准编辑器。全屏编辑器对视频终端的销售起到了促进的作用。 文本编辑器在Windows的应用中是一个非常重要的项目,在过去十数年中,微软对windows文本编辑器有多个版本的升级改进,而基于其他的编程环境的文本编辑器也是多如牛毛,今天我们用MFC可视化编译环境做一个简易的文本编辑器。

引言 (2) 1.课程设计目的和意义 (4) 2.详细设计 (4) 2.1需求描述 (4) 2.1.1文件 (4) 2.1.2编辑 (4) 2.1.3应用 (5) 2.1.4帮助 (5) 2.1.5高级 (5) 2.2功能描述 (5) 2.2.1文本编辑区 (5) 2.2.2文件 (7) 2.2.3编辑 (15) 2.2.4应用 (16) 2.2.5帮助 (21) 2.2.6高级 (22) 2.2.7菜单栏 (25) 2.2.7图标 (26) 2.3程序运行说明 (27) 3.课程设计总结 (30) 3.1编程日志 (30) 3.3测试报告 (31) 4.心得体会 (31) 5.参考文献 (31)

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字以上,文献综述内容要全面,应包括对设计课题

程序设计_文本编辑器的设计与实现

程序设计报告 (2014/2015学年第一学期) 题目:文档编辑器的设计与实现 专业 组长学号姓名 组员学号姓名 指导教师 指导单位 日期

成员分工组长()对文件操作功能(查找,删除,插入)的代码编 写,报告中概要设计与代码调试问题部分的撰写组员()统计功能代码的编写,翻阅书籍查找资料,报告 中课程设计总结及需求分析部分的撰写 组员()可操作的主菜单及主函数部分代码的编写,报告 整体的撰写及测试数据及其结果分析,制图等 评分细则 评分项优秀良好及格差遵守机房规章制度 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告书写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简单 评语教师签名 年月日 评 分 等 级 备注评分等级分为五种:优秀,良好,中等,及格,不及格

文档编辑器的设计与实现 一课题内容与要求 文档编辑器系统是对一个文本内容进行各种常规操作,例如:插入、删除、查找、替换等功能。通过此课题,熟练掌握文本文件的操作及用字符数组来实现字符串操作的功能。 基本要求: (1)首先文件标准化处理:如果句子有前导空格和后导空格,则删除这些空格,单词与单词之间只保留一个空格。 (2)统计功能:可方便地统计出文档中所有出现次数最多和最少的字符串。 (3)查找与替换功能:能够查找任意一个字符串在文档中出现的次数,并可以选择全部或有选择地将其替换为另一个字符串。 (4)显示功能:编辑完成后可以显示编辑后的文档。 (5)抽取功能:根据要求将文件中的某一类字符抽取,并存入另外的文件,如抽取所有的数字、抽取所有的字母等。 二需求分析 图一:文档编辑器系统的功能框架图编辑退出 统计主菜单 输入 继续上次输入重 新 输 入 大 写 字 母 个 数 小 写 字 母 个 数 数 字 的 个 数 标 点 符 号 个 数 空 格 的 个 数 所 有 字 数 查 找 字 符 串 删 除 字 符 串 插 入 字 符 串 显 示 当 前 内 容

2012年毕业设计文本一模板(开题报告)

毕业设计(论文)开题报告 (含文献综述、外文翻译) 题 目 XXXXXXXXXX (题目名与文本二一致) 姓 名 李小明(李 明双名中间空格) 学 号 3060321022 专业班级 08土木工程(结构方向)1班 指导教师 赵子龙 (周 晋双名中间空格) 分 院 土木建筑工程分院 开题日期 2012年3月10日 宁波理工学院

文献综述 文献综述题目(三号黑体,居中,1.5倍行距,段后0.5行)1. 一级标题(黑体小三,左对齐,1.5倍行距) 1.1 二级标题(二级标题,黑体四号,左对齐,1.5倍行距) 1.1.1 三级标题(三级标题,宋体小四号加粗,左对齐,1.5倍行距) 正文汉字字体、字号:小四号宋体。艺术设计专业字数不少于2500字,其他专业不少于3000字。具体内容详见毕业设计(论文)工作手册P2。 外文、数字等符号:字号与同行汉字相同,用Times New Roman 字。 行间距1.5倍行距,段前空2格,段间距为0。 参考文献必须在正文中引用,用[2]作为上标标出,但不能标在章节标题上。如:在甘特大桥之后,还有墨西哥的帕帕加约(Papagayo)大桥、美国得克萨斯州的巴顿河(Bar-ton Creek)大桥及葡萄牙的索科雷多斯(Socorridos)大桥等桥[2]。若一处正文引用多篇,则标出多篇,如:在甘特大桥之后,还有墨西哥的帕帕加约(Papagayo)大桥、美国得克萨斯州的巴顿河(Bar-ton Creek)大桥及葡萄牙的索科雷多斯(Socorridos)大桥等桥[2][3][4]。 图:正文中图用“图1”的编号,数字为文献综述内序号,正文中明示图号,如:“如图1所示”或“见图1”。 图题:图号与图名间空1格,全文必须统一。 图1桥跨总体布置立面图(单位:cm)(5号宋体,居中,1.5倍行距)公式:公式用“(1)”编号,公式单行排版,一般不与文字混排,公式编号要求右对齐,公式的括号为半角括号,公式采用公式编辑器编写,如:

文本编辑器的设计与实现

软件学院 课程设计报告书 课程名称 设计题目文本编辑器的设计与实现 专业班级 XXXXXXXXXXX 学号 xxxxxxxxxx 姓名 xxx 指导教师 2011 年11月

1 设计时间 2011年11月 2 设计目的 《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。目前文本编辑器种类很多,所提供的功能也很多,但是能满足用户实现多种功能和进行Java的编译与运行很少,不能更好的适应当前用户的要求。本设计所完成的文本编辑器功能是针对学习Java程序语言,因此我们利用Java程序设计虚拟机和软件对用户及使用者的应用过程形成一整套完整的编写代码,编译,运行。 3设计任务 文本编辑器的设计与实现:设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。 4 设计内容 4.1需求分析 需求分析的任务是确定功能必须完成的工作,也就是对目标系统提出完整、准确、清晰、具体的要求。简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能。 4.2概要设计 4.2.1程序基本功能概括

电子信息技术专业毕业设计任务书

电子信息技术专业毕业设计任务书 默认分类2008-10-10 18:35:27 阅读157 评论0字号:大中小订阅 根据电子信息专业毕业设计大纲制订本任务书。 一、毕业设计的目的 毕业设计是带有研究性质的专题研究分析、设计报告,是完成教学任务、培养合格人才的一个重要实践性教学环节。通过毕业设计,可以培养学生的开发和设计能力,提高综合运用所学知识和技能去分析、解决实际问题的能力,培养学生独立思考和综合分析、解决实际问题的能力,检验学生的学习效果。通过毕业设计,旨在使学生对所学过的基础理论和专业知识进行一次全面、系统地回顾和总结,通过对具体题目的分析,使理论与实践相结合,巩固和发展所学理论知识,掌握正确的思维方法和基本技能,提高学生独立思考能力和团结协作的工作作风,提高学生利用所学知识解决实际问题的能力及实际动手能力,促进学生建立严谨的科学态度和工作作风。 二、毕业设计题目 根据指导老师给出的毕业设计题目,学生选题。 三、指导教师及设计分组 1、指导教师:莫桂江 2、设计分组:按照学生选题和抽签分组 四、毕业(课程)设计时间及进度安排 根据学生的要求和学生就业的现实情况,在征得有关领导的同意情况下,毕业设计时间向前提前,现安排如下:

1、起止时间:2008.10.6--2009.4.30 2、进度安排: 进度安排内容及要求备注 2008.10.6-2008.11 .6 知识和技术准备,确定选题,收集原始资料 2008.11.10-2008.1 2.10 进行系统分析,确定电路模块和结构 2008.12.15-2009.3 .20 进行系统详细设计,实现各模块具体功能 2009.3.25-2009.4. 20 电路制做,系统调试,发现错误并改正 2009.4.20.-2009.4. 25 系统验收,撰写毕业设计说明书 2009.4.26-2009.4. 30 毕业答辩 五、设计原始资料 1、指导老师下达的设计题目任务书 2、指导老师制定的参考资料 3、与现场实际需要相关的原始数据、报表等 六、设计成果 1、设计成果:包括毕业设计说明书、毕业设计图纸、设计的产品

课程设计文本编辑器的设计

. 《高级语言程序设计》 课程设计报告 题目: 文本编辑器的设计 专业: 计算机科学与技术 班级: 14计科一班 : 彭鑫 指导教师: 王峻 成绩: 计算机学院 2015年4月24日 2014-2015学年 第2学期

目录 1 设计内容及要求 (2) 1.1设计内容 ..................................................................................... 错误!未定义书签。 1.2具体要求 (2) 2 概要设计 (2) 2.1系统的功能简介 (3) 2.2系统功能模块图........................................................................ 错误!未定义书签。 2.3各个模块之间的主要关系 (3) 3 详细设计 (4) 3.1文件操作 (4) 3.2编辑操作 (9) 3.3工具操作 (17) 4 程序运行结果与调试 (19) 4.1 在调试过程中出现的一些问题 (19) 4.2 实验结果 (20) 5 课程设计总结与感想 (24) 参考文献 (24) 源代码 (25)

1 设计内容及要求 1.1设计内容 该文本编辑器运行后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文件内容。其中程序的编辑项可对当前的文本进行撤销、删除、剪切、复制、粘贴、在文本里显示当前时间、全选、清除、查找、替换、统计等功能。程序的文件项可以对电脑上txt,c++等格式文件的打开、对当前文本的保存和另存、对当前文本的的新建以及退出文本编辑系统。程序的工具项为背景音乐,为用户提供了优美动听的音乐,仅在用户编辑疲惫乏力的时候尽情的享用。最后在程序的帮助项有对该小型文本编辑器的关于,用来介绍该程序,还有访问链接百度,访问114网页大全,为用户提供查找资料等功能服务。 1.2具体要求 基本要求:编辑器应具备对文本文件的打开、保存、新建、查找、插人、删除、修改、字符串替换、统计字数,统计行数等功能,对于超过一屏的长文件,应能够分页显示。设计用户接口命令,实现对文本的编辑 2 概要设计

如何用C#编写文本编辑器

摘要 本文探讨了使用C#从底层开发一个带格式的文本编辑器的任务,深入探讨了其中的文档对象模型的设计,图形化用户界面的处理和用户操作的响应,说明了其中的某些技术问题和解决之道。 前言 小弟从大学里开始接触编程也有6年了,工作4年也是干编程的活,见过不少程序,自己也编过不少,在学校编程自己觉得是搞艺术品,其实玩一些游戏,比如文明法老王星际等从某些角度看也是搞艺术品,看着自己苦心经营的建筑物和人员由少变多,由简单变复杂,心中有些成就感。编程也一样,程序从几十行写到上万行,功能由HellowWord到相当复杂而强大,心中也有不少成就感。 毕业后工作,才渐渐感悟软件开发本质上是做一个工具,这个工具给别人或者自己用。有了工具,很多问题就迎刃可解了。如此开来偶们程序员和石匠铁匠木匠是同一类人了。不过没什么,程序员本来就没高人一等,人在社会,认认真真的工作就行了。 问题 废话不多说了,现在谈谈标题提出的问题,如何用C#编写文本编辑器。本人有幸开发过一个比较复杂的文本编辑器,因此也算有点经验吧,在此来分享一下。这里所指的文本编辑器不是简单的像Windows自带的单行或多行文本编辑框,而是类似于Word的文本编辑器。 粗看起来,一个编辑器有什么好难的,其实很难的,因为我们认为容易的事对计算机来说确实天大的问题。比如大家经常上网,可以发现最近几年很多网站登录时除了输入用户名和密码后还要输入所谓的验证码,而验证码则在输入框旁边歪歪扭扭的画了出来,就像小学一年纪的学生在一张脏纸上写的一样,这样做只是为了防止程序来模拟登录,因为歪歪扭扭的文字人类可以很容易的辨认,而计算机则很不容易辨认。 例子:注册hotmail使用的验证码,其显示的字符为8UV9BKYR 。 一个文本编辑器主要处理的问题有 文件保存格式的定义,文档保存为文本格式还是二进制格式的,文档中各个信息单元保存什么信息。文档格式很重要。 和文档存储系统的交流,也就是保存和加载文档的功能,这里的文档存储系统可以是操作系统文件子系统,数据库,网络,其实文件格式定下了,各种文档存储系统差别不大。 文档加载后的文档对象维护,面对比较复杂的文档处理,需要使用面向对象的编程思想,认真分析文档结构,将加载的文档数据一点点肢解掉,每一个最小的不可分割的文档数据转换为一个对象,然后使用一个对象树来保存文档内容的层次关系,这样构造一个文档对象树。文档编辑工作就是维护这个文档对象树了。 文档对象的排版,文档加载后需要处理整个文档对象树,计算每个对象的显示大小,然后在视图区中排列要显示的对象,包括段落和文档行的计算,然后计算对象在视图区域中的直角坐标参数。

VB文本编辑器设计报告

课程设计报告 课程:Visual Basic 程序设计 课题:文本编辑器(易记本) 专业:计算机信息管理 班级: 学号: 姓名:@一路偏向北 教师: 2011-12-23

一、课程设计目的 通过一学期的Visual Basic 程序设计学习,以及平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。 二、题目及简介 文本编辑器 模仿Windows自带的本文编辑器,要求:做到有下拉式菜单栏,有最基本的文本编辑功能,包括复制、剪切、粘贴、全选、查找;同时拥有文本的管理功能,其中包括新建文本、打开、保存;以及完整的运行退出等系统应用功能,所有操作可选择设定快捷键,更快更方便地使用程序,同时对于一个小程序而言,可给出基本的使用说明以及相关信息。提示:注意使用消息框,以及使用右击弹出式菜单,注意程序的完整性可可用性。

三、设计说明 题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序功能设计说明:功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等,。要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。 本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。 四、源代码(加注释) Dim sfind As String Dim FileType, FiType As String Private Sub Form_Load() = 7500 = 5000 End Sub '设置文本编辑框的位置和大小

VB课程设计 文本编辑器

VB课程设计报告 ——文本编辑器 学院名称: 学生姓名: 专业名称: 班级:

一、课程设计题目 用Visual Basic程序设计语言编写一个简易的文本编辑器 要求:有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。 二、课程设计目的 虽然本学期的Visual Basic课程是自学的,相对于课堂学习有些不足,但通过平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB 应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。 三、课程设计说明 题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序 功能设计说明:功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等,。要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。 本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。四.源代码 Private Sub Command1_Click() Dim i As Integer If Text2.Text<>"123456"Then i=MsgBox("密码错误",5+vbExclamation,"警告") If i<>6Then End Else Text2.Text="" Text2.SetFocus End If End If Form1.Hide Form2.Show End Sub Private Sub Form_Load() Text1.Text="" Text1.MaxLength=6

相关文档
最新文档