1、数据结构论文目录一、需求分析2(一)、开发背景2(二)、项目目标2(三)、运行环境2(四)、项目任务书2二、技术路线2(一)、总体路线2(二)、详细设计3方案一、C语言设计部分3方案二、VC+设计部分8三、工程进度22四、测试分析23五、个人总结23六、用户手册24七、参考文献241、需求分析(一)、开发背景随着计算机技术的发展,人们的生活也越来越简单化,比如人们不需要再去手写大量的稿件,只需用计算机打字输入,打印。为了更方便人们对文档修改的操作,我们运用数据结构的知识和mfc编程提供的函数,编写合理的查找和替换算法,用以实现对文本中有的字符,查找出来并替换掉的操作。(二)、项目目标本项目主要
2、实现以下功能打开一篇英文文章,在该文章中找出所有给定的单词对所有给定的单词替换为另外一个单词,再存盘。(三)、运行环境硬件环境:处理器Intel(R)Core(TM)2 Duo CPU T6400 2.00GHz 2.00GHz内存(RAM):2.00GB系统类型:32位操作系统软件环境:Windows XPVisual C+ 6.0(四)、项目任务书本程序我们分别用C语言和VC+设计了两个程序,由两人合作完成,其中韩丽霞为总负责,承担字符串查找与替换的总体规划与模块功能的设计,其中代码部分也主要由她完成,赵永恒则负责文档的撰写,以及查找用VC+设计窗体化的资料。2、技术路线(一)、总体方案(
3、二)、详细设计方案一、语言设计方案部分所用函数介绍1、程序预编译函数(即头文件)简析1、#include:程序所需要的输入和输出操作的有关信息2、#include:程序中字符串函数的有关信息3、#include:程序中动态存储分配函数的有关信息2、程序中相关函数的解析输入流成员函数用于从磁盘文件中输入,这些成员函数包括:Open函数 get函数 Getline函数 read函数Seekg函数和tellg函数 close函数我们的程序中用到的getline函数功能:是允许从输入流中读取多个字符,并且允许指定输入终止字符(默认值是换行字符),在读取完成后,从读取的内容中删除该终止字符。例:Cin.
4、getline(s,1000,n);功能:字符类型数组S从键盘连续读入一串字符,直到遇到回车符n时停止,字符个数最多不超过1000个3、程序所涉及知识点1.头文件2.输入输出函数3.字符串操作函数4.数组操作5.辅助指针变量四、程序流程图五、程序代码如下:#include#include#includevoid change(char *ptrm,char t,char *ptr_str) int k=0,i,j,len; char *ptrs=t; len=strlen(t); while(*ptrm!=0) /外层循环,移动母串指针 i=0; k=0; while(*(ptrs+i)!=0
5、) /内层循环,匹配字符串 if(*(ptrs+i)=*(ptrm+k) /如果该位匹配,后移一位,继续匹配下一位 i+;k+; else break; /if(*(ptrs+i)=0) 说明上面的内层循环已经匹配玩字字符串的最后一位 if(*(ptrs+i)=0) /当已经匹配了字符串,母串指针后移len单元,减少尝试次数,优化算法,然后将所匹配的字符串替换掉 for(j=0;jlen;j+) /将所匹配的字符串替换掉 *(ptrm+j)=*(ptr_str+j); for(j=0;jlen;j+) ptrm+; /这行代码就是实现母串指针后移len单元 else ptrm+; /如果匹配不
6、成功,那么母串指针后移一个单元,继续匹配 void main() char s100,t100,t1100; cout请输入文本一:endl; cin.getline(s,100,n); cout请输入查找的字符串:endl; cin.getline(t,100,n); cout请输入替换的字符串:endl; cin.getline(t1,100,n); change(s,t,t1); cout替换后的新文本为:sLoadIcon(IDR_MAINFRAME);void CSearchReplaceStrDlg:DoDataExchange(CDataExchange* pDX) CDialo
7、g:DoDataExchange(pDX); /AFX_DATA_MAP(CSearchReplaceStrDlg) DDX_Text(pDX, IDC_EDIT1, m_strData); DDX_Text(pDX, IDC_EDIT2, m_strFind); DDX_Text(pDX, IDC_EDIT3, m_strReplace); /AFX_DATA_MAPBEGIN_MESSAGE_MAP(CSearchReplaceStrDlg, CDialog) /AFX_MSG_MAP(CSearchReplaceStrDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT
8、() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_REPLACE, OnReplace) ON_BN_CLICKED(IDC_SEARCH, OnSearch) /AFX_MSG_MAPEND_MESSAGE_MAP()/ CSearchReplaceStrDlg message handlersBOOL CSearchReplaceStrDlg:OnInitDialog() CDialog:OnInitDialog(); / Add About. menu item to system menu. / IDM_ABOUTBOX must be in the
9、 system command range. ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); / Set the icon for this dialog. The framework does this automatically / when the applications main window is not a dialog Se
10、tIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE); / Set small icon / TODO: Add extra initialization here return TRUE; / return TRUE unless you set the focus to a controlvoid CSearchReplaceStrDlg:OnSysCommand(UINT nID, LPARAM lParam) if (nID & 0xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; d
11、lgAbout.DoModal(); else CDialog:OnSysCommand(nID, lParam); / If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CSearchReplaceStrDlg:OnPaint() if (I
12、sIconic() CPaintDC dc(this); / device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); / Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIc
13、on + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; / Draw the icon dc.DrawIcon(x, y, m_hIcon); else CDialog:OnPaint(); / The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CSearchReplaceStrDlg:OnQueryDragIcon() return (HCURSOR) m_hIcon;void CSearchReplaceStrDlg:OnReplace() / TODO: Add your control notification handler code here程序源代码UpdateData(true); if(m_strFind.IsEmpty() AfxMessageBox(查找的字符串为空!);/判断编辑框字符串是否为空 return; int num; num=m_strData.Replace(m_strFind,m_strReplace);/替换字符串 CString str; str.Format(共完成了%d处替换,num); AfxMessageB
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1