2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院</p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p><b>  年 月 日</b></p><p>  課程設(shè)計(jì)報(bào)告結(jié)果評(píng)定</p><p><b>  目 錄</b></p><p&

2、gt;  采用技術(shù)----------------------------------------------------------</p><p>  1、visual studio 2005編輯環(huán)境-------------------------------</p><p>  2、C#的窗體編程-------------------------------------------

3、-------</p><p>  二、選題說(shuō)明------------------------------------------------------------ 三、總體說(shuō)明-----------------------------------------------------</p><p>  1、程序的基本結(jié)構(gòu)------------------------------

4、-----------------</p><p>  程序的主要技術(shù)---------------------------------------------</p><p>  四、詳細(xì)設(shè)計(jì)------------------------------------------------------------</p><p>  1、文件操作----------

5、----------------------------------------------</p><p>  編輯操作-------------------------------------------------------</p><p>  工具操作-------------------------------------------------------</p>

6、<p>  關(guān)于操作-------------------------------------------------------</p><p>  五、編碼與調(diào)試分析--------------------------------------------------</p><p>  六、運(yùn)行結(jié)果-------------------------------------

7、-----------------------</p><p>  七、課程設(shè)計(jì)心得體會(huì)----------------------------------------------</p><p>  八、部分程序代碼-----------------------------------------------------</p><p><b>  一、

8、采用技術(shù)</b></p><p>  1. visual studio 2005編輯環(huán)境</p><p>  Visual Studio 是微軟公司推出的開(kāi)發(fā)環(huán)境。是目前最流行的 Windows 平臺(tái)應(yīng)用程序開(kāi)發(fā)環(huán)境。目前已經(jīng)開(kāi)發(fā)到 8.0 版本,也就是 Visual Studio 2005。 Visual Studio 可以用來(lái)創(chuàng)建 Windows 平臺(tái)下的 Win

9、dows 應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來(lái)創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和 Office 插件。</p><p>  Visual Studio 是一套完整的開(kāi)發(fā)工具集,用于生成 ASP.NET Web 應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動(dòng)應(yīng)用程序。Visual Basic、Visual C++、Visual C# 和 Visual J# 全都使用相同的集成開(kāi)發(fā)環(huán)境 (IDE),利用此

10、 IDE 可以共享工具且有助于創(chuàng)建混合語(yǔ)言解決方案。另外,這些語(yǔ)言利用了 .NET Framework 的功能,通過(guò)此框架可使用簡(jiǎn)化 ASP Web 應(yīng)用程序和 XML Web Services 開(kāi)發(fā)的關(guān)鍵技術(shù)。</p><p><b>  2.C#的窗體編程</b></p><p>  Windows 窗體是用于 Microsoft Windows 應(yīng)用程序開(kāi)發(fā)的、

11、基于 .NET Framework 的新平臺(tái)。此框架提供一個(gè)有條理的、面向?qū)ο蟮?、可擴(kuò)展的類集,使您能夠開(kāi)發(fā)功能豐富的 Windows 應(yīng)用程序。另外,Windows 窗體可作為多層分布式解決方案中的本地用戶界面。</p><p>  窗體是一種文檔,可以用來(lái)收集信息。它包括兩部分,一部分是由窗體設(shè)計(jì)者輸入的,填寫窗體的人無(wú)法更改的文字或圖形。窗體設(shè)計(jì)者可以插入希望得到回答的問(wèn)題、選項(xiàng)列表、信息表格等。另一部分是

12、由窗體填寫者輸入的,用于從填寫窗體者處收集信息并進(jìn)行整理的空白區(qū)域。窗體設(shè)計(jì)者可以在文檔中插入窗體域或 ActiveX 控件,為窗體填寫者提供用于收集數(shù)據(jù)的位置。</p><p><b>  二、選題說(shuō)明</b></p><p>  隨著科技的發(fā)展,人們對(duì)精神生活要求的越來(lái)越高,紙質(zhì)的手動(dòng)式的書寫方式已經(jīng)不是能夠代表新世紀(jì)的生活需要了,所以現(xiàn)在各種不同功能的文本編輯器

13、已經(jīng)悄悄走進(jìn)我們的生活和學(xué)習(xí)中,像簡(jiǎn)單的就有記事本。 但是一個(gè)簡(jiǎn)單的文本編輯器也是很重要的,是基礎(chǔ)。所以在結(jié)合自己的一個(gè)學(xué)期的很認(rèn)真的學(xué)習(xí)c#后,決定自己編譯一個(gè)類似與記事本的,但功能比記事本強(qiáng)大的文本編輯器。</p><p>  文本編輯器的基本功能: </p><p>  該文本編輯器是用windows編寫的一個(gè)程序,運(yùn)行后彈出文本編輯器的主界面,由鍵盤輸入或以打開(kāi)的方式輸入或顯示文本

14、文件內(nèi)容。其中程序的編輯項(xiàng)可對(duì)當(dāng)前的文本進(jìn)行撤銷、刪除、剪切、復(fù)制、粘貼、在文本里顯示當(dāng)前時(shí)間、全選、清除、查找、替換、統(tǒng)計(jì)等功能。程序的文件項(xiàng)可以對(duì)電腦上txt,c++等格式文件的打開(kāi)、對(duì)當(dāng)前文本的保存和另存、對(duì)當(dāng)前文本的的新建以及退出文本編輯系統(tǒng)。程序的工具項(xiàng)為背景音樂(lè),為用戶提供了優(yōu)美動(dòng)聽(tīng)的音樂(lè),僅在用戶編輯疲憊乏力的時(shí)候盡情的享用。最后在程序的幫助項(xiàng)有對(duì)該小型文本編輯器的關(guān)于,用來(lái)介紹該程序,還有訪問(wèn)鏈接百度,訪問(wèn)114網(wǎng)頁(yè)大全

15、,為用戶提供查找資料等功能服務(wù)。</p><p><b>  輸入形式:</b></p><p> ?、僦苯釉谖谋揪庉嬁蛑休斎胛谋緝?nèi)容;</p><p> ?、谝源蜷_(kāi)的方式打開(kāi)并在文本框中顯示電腦的上文本。</p><p><b>  輸出形式:</b></p><p>  

16、①對(duì)編輯框中尚無(wú)文本內(nèi)容時(shí)進(jìn)行查找、替換、統(tǒng)計(jì)等,程序會(huì)彈出一個(gè)提示尚無(wú)文本信息的小對(duì)話框,需輸入文本后再進(jìn)行以上操作。</p><p> ?、趯?duì)編輯框中已有文本內(nèi)容后進(jìn)行查找、替換、統(tǒng)計(jì)操作,程序?qū)棾雠c之對(duì)應(yīng)的對(duì)話框,根據(jù)所彈出的對(duì)話框的按鍵要求進(jìn)行之后的操作就可以。保存文件,另存為等功能都異曲同工,撤銷、刪除、剪切、復(fù)制、 粘貼、等就直接在主文本編輯框中操作,直接在其顯示操作后的文本信 息。</p&

17、gt;<p>  測(cè)試數(shù)據(jù)要求:任意一文本文件。</p><p><b>  三.總體說(shuō)明</b></p><p><b>  程序的基本結(jié)構(gòu)</b></p><p>  操作界面的主窗口為文本編輯器的主入口,類似于記事本的形式,菜單欄要如下的幾項(xiàng)(),另外還有兩個(gè)簡(jiǎn)單的toolstripe式的圖片按鈕,分別

18、是新建和保存。當(dāng)點(diǎn)擊新建的時(shí)候,會(huì)彈出我們將要編輯的文檔文本窗口,這是我們編寫文字的地方。書寫完畢后,要先確認(rèn)是否保存此文件夾,這樣就不會(huì)發(fā)生自己所編輯的內(nèi)容會(huì)丟失。</p><p><b>  程序的主要技術(shù)</b></p><p>  (1)編寫要先新建,編寫之后要有保存功能; </p><p>  (2)基本的操作功能如,復(fù)制、粘貼、剪切

19、、撤銷等;</p><p> ?。?)還可以設(shè)置文字的字體字形和字體的顏色。</p><p><b>  四、詳細(xì)設(shè)計(jì)</b></p><p><b>  〔1〕、文件操作:</b></p><p>  1、文件的新建的實(shí)現(xiàn):</p><p>  int ret=Messag

20、eBox(NULL,TEXT("是否把更改保存到新建的文本文檔!!!"),TEXT("溫馨提示"),MB_YESNO | MB_ICONQUESTION);</p><p>  if(ret==IDYES) //根據(jù)選擇如果保存</p><p><b>  {</b></p><p>  OPENFIL

21、ENAME ofn; //文件對(duì)象</p><p>  char szFile[MAX_PATH]; //文件的大小,最大</p><p>  ZeroMemory(&ofn,sizeof(ofn)); //文件的初始化</p><p>  ofn.lStructSize = sizeof(ofn);</p><p>  ofn.

22、lpstrFile = szFile;</p><p>  ofn.lpstrFile[0] = TEXT('\0');</p><p>  ofn.nMaxFile = sizeof(szFile);</p><p>  ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0C++\0*.cpp\0

23、"); //保存的文件類型</p><p>  ofn.nFilterIndex = 1;</p><p>  ofn.lpstrFileTitle = NULL;</p><p>  ofn.nMaxFileTitle = 0;</p><p>  ofn.lpstrInitialDir = NULL;</p>&

24、lt;p>  ofn.hwndOwner = hwnd;</p><p>  ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;</p><p>  ofn.lpstrTitle=TEXT("保存");</p><p>  if (GetSaveFileName(

25、&ofn)) </p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  fp=fopen(szFile,"w"); //打開(kāi)文件</p><p>  if(fp==NULL)</p><p&

26、gt;<b>  {</b></p><p>  MessageBox(NULL,TEXT("文件無(wú)法保存"),TEXT("嗚嗚"),MB_OK);</p><p><b>  }</b></p><p>  TCHAR str[10000];</p><p>

27、;  TCHAR end[10000];</p><p>  memset(end,0,10000);</p><p>  GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str));</p><p>  fputs(str,fp);</p><p>  fclose(fp);</p><

28、p><b>  }</b></p><p>  SetDlgItemText(hwnd,IDC_EDIT1,"");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {<

29、/b></p><p>  SetDlgItemText(hwnd,IDC_EDIT1,"");</p><p><b>  }</b></p><p>  2、文件打開(kāi)的實(shí)現(xiàn):</p><p>  case ID_MENUITEMOPEN: //文本的打開(kāi)</p>

30、<p><b>  {</b></p><p>  OPENFILENAME ofn;</p><p>  char szFile[MAX_PATH]; //保存路徑變量</p><p>  ZeroMemory(&ofn,sizeof(ofn));</p><p>  在這里我們使用ZeroMem

31、ory“函數(shù)”,ZeroMemory其實(shí)并不是函數(shù),看一下ZeroMemory的定義:</p><p>  ofn.lStructSize = sizeof(ofn);</p><p>  ofn.lpstrFile = szFile; </p><p>  //szFile是一個(gè)字符數(shù)組,那么szFile這個(gè)名字就代表這個(gè)字符數(shù)組的首地址</p>

32、<p>  這是一個(gè)指針的應(yīng)用,把接收選擇文件名的數(shù)組的地址傳遞到GetOpenFileName函數(shù)中。 ofn.lpstrFile[0] = TEXT('\0');</p><p>  ofn.lpstrFile[0] = TEXT('\0');效果等價(jià)于ZeroMemory(szFile,sizeof(szFile)/sizeof(char));&l

33、t;/p><p>  ofn.nMaxFile = sizeof(szFile);</p><p>  ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.txt\0");</p><p><b>  文件過(guò)濾器</b></p><p>  *.*就表示所有文件*.tx

34、t就表示所有文本文件abc*.*就表示所有以abc開(kāi)頭的文件abc*.txt就表示所有以abc開(kāi)頭的文本文件(txt) </p><p>  ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0");用“\0”分割出幾個(gè)段,每?jī)啥问且唤M過(guò)濾器,每組的第一個(gè)段代表過(guò)濾器的顯示的值,而第二段表示真正的過(guò)濾器</p><p> 

35、 ofn.nFilterIndex = 1; //選擇一個(gè)過(guò)濾器</p><p>  ofn.lpstrFileTitle = NULL;</p><p>  windows的一個(gè)慣例:結(jié)構(gòu)體的指針類型別名一般是LP+結(jié)構(gòu)體的名字GetOpenFileName(&ofn)而不是GetOpenFileName(ofn),因?yàn)镚etOpenFileName函數(shù)要的是OPENFILE

36、NAME的指針(8)只要用戶還沒(méi)關(guān)閉對(duì)話框,那么GetOpenFileName函數(shù)是停住的,同步模式的PlaySound以及getchar、scanf是一樣的。用戶關(guān)閉對(duì)話框,GetOpenFileName函數(shù)返回,返回值是BOOL,等于TRUE表示用戶選擇了文件,如果等于FALSE就表示用戶選擇了【取消】按鈕</p><p>  ofn.nMaxFileTitle = 0;</p><p

37、>  ofn.lpstrInitialDir = NULL;</p><p>  ofn.hwndOwner = hwnd;</p><p>  ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;</p><p>  if(GetOpenFileName(&ofn)) <

38、;/p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  fp=fopen(szFile,"r");</p><p>  if(fp==NULL)</p><p><b>  {</b&

39、gt;</p><p>  MessageBox(NULL,TEXT("文件打開(kāi)錯(cuò)誤!"),TEXT("記事本"),MB_OK);</p><p><b>  }</b></p><p>  TCHAR line[256];</p><p>  TCHAR end[10000];&

40、lt;/p><p>  memset(line,0,256);</p><p>  memset(end,0,256);</p><p>  while(!feof(fp))</p><p><b>  {</b></p><p>  fgets(line,sizeof(line),fp);</

41、p><p>  lstrcat(end,line);</p><p>  int w=strlen(end);</p><p>  end[w-1]='\0';</p><p>  lstrcat(end,"\r\n");</p><p><b>  }</b>&l

42、t;/p><p>  SetDlgItemText(hwnd,IDC_RICHEDIT1,end);</p><p>  fclose(fp); //關(guān)閉文件</p><p><b>  }</b></p><p><b>  break;</b></p><p><

43、b>  }</b></p><p><b>  break;</b></p><p>  3、文件保存的實(shí)現(xiàn):</p><p>  case ID_MENUITEMSAVE: //文本的保存</p><p><b>  {</b></p><p&

44、gt;  OPENFILENAME ofnb;</p><p>  char bcFile[MAX_PATH];</p><p>  ZeroMemory(&ofnb,sizeof(ofnb));</p><p>  ofnb.lStructSize = sizeof(ofnb);</p><p>  ofnb.lpstrFile =

45、 bcFile;</p><p>  ofnb.lpstrFile[0] = TEXT('\0');</p><p>  ofnb.nMaxFile = sizeof(bcFile);</p><p>  ofnb.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.txt\0");</p>

46、<p>  ofnb.nFilterIndex = 1;</p><p>  ofnb.lpstrFileTitle = NULL;</p><p>  ofnb.nMaxFileTitle = 0;</p><p>  ofnb.lpstrInitialDir = NULL;</p><p>  ofnb.hwndOwner =

47、hwnd;</p><p>  ofnb.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST|OFN_OVERWRITEPROMPT;</p><p>  if (GetSaveFileName(&ofnb))</p><p><b>  {</b></p>

48、<p>  FILE * fp = fopen (".txt","w"); //保存所有文件都為txt格式</p><p>  TCHAR baoc [100000]; //保存的最大容量為100000</p><p>  GetDlgItemText(hwnd,IDC_RICHEDIT1,baoc,sizeof(baoc))

49、;</p><p>  fputs(baoc,fp);</p><p>  fclose(fp);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p>&

50、lt;p>  退出文本編輯器的實(shí)現(xiàn):</p><p>  int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文本文檔!!!"),TEXT("溫馨提示"),MB_YESNO | MB_ICONQUESTION);</p><p>  if(ret==IDYES)</p><p><b&

51、gt;  {</b></p><p>  OPENFILENAME ofn;</p><p>  char szFile[MAX_PATH];</p><p>  ZeroMemory(&ofn,sizeof(ofn));</p><p>  ofn.lStructSize = sizeof(ofn);</p>

52、<p>  ofn.lpstrFile = szFile;</p><p>  ofn.lpstrFile[0] = TEXT('\0');</p><p>  ofn.nMaxFile = sizeof(szFile);</p><p>  ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.

53、TXT\0C++\0*.cpp\0");</p><p>  ofn.nFilterIndex = 1;</p><p>  ofn.lpstrFileTitle = NULL;</p><p>  ofn.nMaxFileTitle = 0;</p><p>  ofn.lpstrInitialDir = NULL;</p&

54、gt;<p>  ofn.hwndOwner = hwnd;</p><p>  ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;</p><p>  ofn.lpstrTitle=TEXT("保存");</p><p>  if (GetSaveFil

55、eName(&ofn)) </p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  fp=fopen(szFile,"w");</p><p>  if(fp==NULL)</p><p>

56、;<b>  {</b></p><p>  MessageBox(NULL,TEXT("文件無(wú)法保存"),TEXT("嗚嗚"),MB_OK);</p><p><b>  }</b></p><p>  TCHAR str[10000];</p><p> 

57、 TCHAR end[10000];</p><p>  memset(end,0,10000);</p><p>  GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str));</p><p>  fputs(str,fp);</p><p>  fclose(fp);</p><p&

58、gt;<b>  }</b></p><p>  MessageBox(NULL,TEXT("文件保存成功!放心關(guān)閉!!!"),TEXT("嘻嘻"),MB_OK);</p><p><b>  }</b></p><p>  EndDialog(hwnd, 0);</p>

59、<p><b>  〔2〕、編輯操作:</b></p><p><b>  1、剪切的實(shí)現(xiàn):</b></p><p>  case ID_MENUITEMCUT: //剪切</p><p>  {SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_CUT,0,0);<

60、;/p><p>  //傳遞對(duì)話框中的內(nèi)容首先獲取RichEdit中的內(nèi)容,WM_CUT,傳遞要進(jìn)行操作的內(nèi)容,0,0為兩個(gè)WPARAM和LPARAM是約定的消息參數(shù)類型。</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  2

61、、復(fù)制的實(shí)現(xiàn):</b></p><p>  case ID_MENUITEMCOPY: //復(fù)制</p><p>  {SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_COPY,0,0);</p><p>  //傳遞對(duì)話框中的內(nèi)容首先獲取RichEdit中的內(nèi)容,WM_COPY,,傳遞要進(jìn)行操作的內(nèi)容,0,0

62、為兩個(gè)WPARAM和LPARAM是約定的消息參數(shù)類型。</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  3、粘貼的實(shí)現(xiàn):</b></p><p>  case ID_MENUITEMPASTE: //粘貼

63、</p><p>  { SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_PASTE,0,0);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  4、清除的實(shí)現(xiàn):</b>

64、;</p><p>  case ID_MENUITEMEMPTY: //清除</p><p><b>  {</b></p><p>  SetDlgItemText(hwnd,IDC_RICHEDIT1,"");</p><p><b>  break;</b><

65、/p><p><b>  }</b></p><p><b>  5、撤銷的實(shí)現(xiàn):</b></p><p>  case ID_MENUITEMUNDO: //“撤銷”菜單</p><p><b>  {</b></p><p>  SendD

66、lgItemMessage(hwnd,IDC_RICHEDIT1, EM_UNDO, 0, 0);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  6、刪除的實(shí)現(xiàn):</b></p><p>  case ID

67、_MENUITEMDELETE: //刪除</p><p><b>  {</b></p><p>  SendMessage(GetDlgItem(hwnd, IDC_RICHEDIT1), WM_CLEAR, 0, 0);</p><p><b>  }</b></p><p><

68、b>  break;</b></p><p><b>  7、全選的實(shí)現(xiàn):</b></p><p>  case ID_MENUITEMSELECTALL: //全選</p><p><b>  {</b></p><p>  SendMessage(GetDlgItem(hw

69、nd, IDC_RICHEDIT1), EM_SETSEL, 0, -1);</p><p><b>  }</b></p><p><b>  break;</b></p><p>  8、系統(tǒng)時(shí)間的實(shí)現(xiàn):</p><p>  VOID CALLBACK MyTimerFun(HWND hwnd,

70、 UINT message, UINT iTimerID, DWORD dwTime)</p><p><b>  { </b></p><p>  SYSTEMTIME strLocal; //當(dāng)前時(shí)間</p><p>  GetLocalTime(&strLocal);</p><p>  TCHAR

71、 str[256];</p><p>  wsprintf(str,"%04d-%02d-%02d %02d:%02d:%02d",strLocal.wYear,strLocal.wMonth,</p><p>  strLocal.wDay,strLocal.wHour,strLocal.wMinute,strLocal.wSecond);</p>&l

72、t;p>  SetDlgItemText(hwnd,IDC_EDIT2,str);</p><p><b>  }</b></p><p>  9、查找功能的實(shí)現(xiàn):</p><p>  int count=0;</p><p>  int Line_count=1;</p><p>  in

73、t Row_count=1;</p><p>  int num=0;</p><p>  int flag=0;</p><p>  TCHAR str1[256];</p><p>  TCHAR temp1[5000];</p><p>  TCHAR temp2[5000];</p><p&

74、gt;  memset(temp1,0,5000);</p><p>  memset(temp2,0,5000);</p><p>  memset(str1,0,256);</p><p>  GetDlgItemText(hwnd,IDC_EDIT_FINDWORD,str1,sizeof(str1));</p><p>  if(st

75、rlen(str1)==0)</p><p><b>  {</b></p><p>  MessageBox(NULL,TEXT("查找的內(nèi)容為空,請(qǐng)輸入內(nèi)容后再查找!!!"),TEXT("嗚嗚"),MB_OK);</p><p><b>  }</b></p>&l

76、t;p><b>  else</b></p><p><b>  {</b></p><p><b>  int i=0;</b></p><p><b>  int j=0;</b></p><p>  while(str2[i]!='\0

77、' )</p><p><b>  {</b></p><p>  if((str2[i]=='\n') || (Row_count==63))</p><p><b>  {</b></p><p>  Line_count++;</p><p> 

78、 Row_count=0;</p><p><b>  }</b></p><p>  if(str2[i]==str1[j])</p><p>  { </p><p><b>  i++;</b></p><p><b>  j++;&l

79、t;/b></p><p>  Row_count++;</p><p>  if(str1[j]=='\0')</p><p><b>  {</b></p><p><b>  j=0;</b></p><p><b>  count++;

80、</b></p><p>  wsprintf(temp2,"<%i>你要尋找的內(nèi)容在第:%i 行,第:%i 列至第:%i 列!!!",count,Line_count,(Row_count-strlen(str1)),(Row_count-1));</p><p>  strcat(temp1,temp2);</p><p&

81、gt;  strcat(temp1,"\r\n"); </p><p><b>  flag=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b>&l

82、t;/p><p><b>  {</b></p><p><b>  i=i-j+1;</b></p><p><b>  j=0;</b></p><p>  Row_count++; </p><p><b>  }</b>&l

83、t;/p><p>  if(str2[i]=='\0' && flag==1)</p><p><b>  {</b></p><p>  SetDlgItemText(hwnd,IDC_EDIT2,temp1);</p><p>  MessageBox(NULL,temp1,TEXT(&q

84、uot;嘿嘿"),MB_OK);</p><p><b>  }</b></p><p>  if(str2[i]=='\0' && flag==0)</p><p><b>  { </b></p><p>  MessageBox(NULL,TEXT(&

85、quot;沒(méi)有你想要找的內(nèi)容,請(qǐng)重新輸入查找的內(nèi)容"),TEXT("嗚嗚"),MB_OK);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  } </b></p><p>&

86、lt;b>  }</b></p><p><b>  } </b></p><p><b>  break;</b></p><p>  通過(guò)簡(jiǎn)單的字符串比配算法實(shí)現(xiàn)其功能。</p><p>  9、替換功能的實(shí)現(xiàn):</p><p>  TCHAR *cha

87、nge::D_change(TCHAR S[], TCHAR T1[] ,TCHAR T2[]) //替換功能的主算法</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p><b>  int j=0;</b></p><p

88、><b>  int k=0;</b></p><p><b>  int l=0;</b></p><p>  TCHAR *S1;</p><p>  while((S[i]!='\0'))</p><p><b>  {</b></p>

89、<p>  if(S[i]==T1[j])</p><p><b>  {</b></p><p><b>  i++;</b></p><p><b>  j++;</b></p><p><b>  count1=i;</b></p&

90、gt;<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  i=i-j+1;</b></p><p><b>  j=0;</b>

91、;</p><p><b>  count1=i;</b></p><p><b>  }</b></p><p>  if(T1[j]=='\0')</p><p><b>  {</b></p><p><b>  i=i-

92、j;</b></p><p>  if(strlen(T1)==strlen(T2))</p><p><b>  {</b></p><p>  int num1=strlen(T1);</p><p>  for(k=i;k<i+num1;k++)</p><p><b

93、>  {</b></p><p>  S[k]=T2[l];</p><p><b>  l++;</b></p><p><b>  }</b></p><p><b>  j=0;</b></p><p><b>  l=

94、0;</b></p><p><b>  }</b></p><p>  else if(strlen(T1)>strlen(T2))</p><p><b>  {</b></p><p>  int num2=strlen(T1)-strlen(T2);</p>

95、<p>  int lengthT2=strlen(T2);</p><p>  for(k=i;k<strlen(S)-num2;k++)</p><p><b>  {</b></p><p>  S[k]=S[k+num2];</p><p><b>  }</b></p

96、><p>  for(k=(strlen(S)-num2);k<=strlen(S);k++)</p><p><b>  {</b></p><p>  S[k]='\0';</p><p><b>  } </b></p><p>  for(k=i;k

97、<(i+lengthT2);k++)</p><p><b>  {</b></p><p>  S[k]=T2[l];</p><p><b>  l++;</b></p><p><b>  }</b></p><p><b>  j

98、=0;</b></p><p><b>  l=0;</b></p><p><b>  }</b></p><p>  else if(strlen(T1)<strlen(T2))</p><p><b>  {</b></p><p&g

99、t;  int num3=strlen(T2)-strlen(T1);</p><p>  S1=new TCHAR[strlen(S)+num3];</p><p>  for(int k=0;k<i;k++)</p><p><b>  {</b></p><p>  S1[k]=S[k];</p>

100、<p><b>  }</b></p><p>  for(int k2=i;k2<strlen(T2)+i;k2++)</p><p><b>  {</b></p><p>  S1[k2]=T2[k2-i];</p><p><b>  }</b>&l

101、t;/p><p>  for(int k3=i+strlen(T1);k3<strlen(S);k3++)</p><p><b>  {</b></p><p>  S1[k3+num3]=S[k3];</p><p><b>  }</b></p><p>  S1[k

102、3+num3]='\0';</p><p>  if(S[i]=='\0')</p><p><b>  {</b></p><p>  return S1;</p><p><b>  }</b></p><p><b>  els

103、e</b></p><p><b>  {</b></p><p>  strcpy(S,S1);</p><p><b>  j=0;</b></p><p><b>  }</b></p><p><b>  }</b&g

104、t;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return S;</b></p><p><b>  }</b></p><p>  也通過(guò)字符算的比配,一一找到后

105、,一一替換,最后返回替換后的文本內(nèi)容;</p><p>  9、統(tǒng)計(jì)功能的實(shí)現(xiàn):</p><p>  void Total_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)</p><p><b>  {</b></p><p>  int Line

106、_count=1;</p><p>  int Row_count=0;</p><p>  int Total_count=0;</p><p>  int English_count=0;</p><p>  int math_count=0;</p><p>  int other_count=0;</p&

107、gt;<p>  int space_count=0;</p><p>  int punct_count=0;</p><p>  TCHAR temp1[256];</p><p>  TCHAR temp2[256];</p><p>  memset(temp1,0,256);</p><p> 

108、 memset(temp2,0,256);</p><p><b>  int i=0;</b></p><p>  while(total2[i]!='\0')</p><p><b>  {</b></p><p>  if((total2[i]!=' ') &a

109、mp;& (total2[i]!='\r') && (total2[i]!='\n'))</p><p><b>  {</b></p><p>  Total_count++;</p><p><b>  }</b></p><p>  if

110、((total2[i]>='a' && total2[i]<='z') || (total2[i]>='A' && total2[i]<='Z'))</p><p><b>  {</b></p><p>  English_count++;<

111、/p><p><b>  }</b></p><p>  if(total2[i]>='0' && total2[i]<='9')</p><p><b>  {</b></p><p>  math_count++;</p>&

112、lt;p><b>  }</b></p><p>  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)</p><p><b>

113、  {</b></p><p>  punct_count++;</p><p><b>  }</b></p><p>  if(total2[i]==' ')</p><p><b>  {</b></p><p>  space_count+

114、+;</p><p><b>  }</b></p><p>  if((total2[i]=='\n') || (Row_count==62))</p><p><b>  {</b></p><p>  Line_count++;</p><p>  Ro

115、w_count=0;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Row_count++; </p><p><b>  }</b&

116、gt;</p><p><b>  i++;</b></p><p><b>  }</b></p><p>  other_count=Total_count-English_count-math_count-punct_count;</p><p>  wsprintf(temp2,"

117、<1>文本的行數(shù)為:%i !",Line_count-1);</p><p>  strcat(temp1,temp2);</p><p>  strcat(temp1,"\r\n");</p><p>  memset(temp2,0,256);</p><p>  wsprintf(temp2,&

118、quot;<2>文本的總字符數(shù)為:%i !",Total_count);</p><p>  strcat(temp1,temp2);</p><p>  strcat(temp1,"\r\n");</p><p>  memset(temp2,0,256);</p><p>  wsprintf(t

119、emp2,"<3>文本的英文字符數(shù)為:%i !",English_count);</p><p>  strcat(temp1,temp2);</p><p>  strcat(temp1,"\r\n");</p><p>  memset(temp2,0,256);</p><p>  w

120、sprintf(temp2,"<4>文本的數(shù)字字符數(shù)為:%i !",math_count);</p><p>  strcat(temp1,temp2);</p><p>  strcat(temp1,"\r\n");</p><p>  memset(temp2,0,256);</p><p&

121、gt;  wsprintf(temp2,"<5>文本的空格數(shù)為:%i !",space_count);</p><p>  strcat(temp1,temp2);</p><p>  strcat(temp1,"\r\n");</p><p>  memset(temp2,0,256);</p>&

122、lt;p>  wsprintf(temp2,"<6>文本的標(biāo)點(diǎn)符號(hào)數(shù)為:%i !",punct_count);</p><p>  strcat(temp1,temp2);</p><p>  strcat(temp1,"\r\n");</p><p>  memset(temp2,0,256);</p

123、><p>  wsprintf(temp2,"<7>文本的其它字符數(shù)為:%i !",other_count);</p><p>  strcat(temp1,temp2);</p><p>  strcat(temp1,"\r\n");</p><p>  memset(temp2,0,256)

124、;</p><p>  SetDlgItemText(hwnd,IDC_EDIT1,temp1);</p><p><b>  }</b></p><p>  通過(guò)傳參,把文本信息傳到副對(duì)話框中。然后對(duì)文本進(jìn)行各項(xiàng)簡(jiǎn)單的統(tǒng)計(jì)</p><p><b>  〔3〕、工具操作:</b></p>

125、<p><b>  北京音樂(lè)的實(shí)現(xiàn):</b></p><p>  case ID_MENU_MUSIC:</p><p><b>  {</b></p><p>  TCHAR shortPath[MAX_PATH];</p><p>  GetShortPathName("

126、C:\\Documents and Settings\\user\\桌面\\edit\\鄧紫棋 - 寂寞星球的玫瑰.mp3",shortPath,sizeof(shortPath)); //獲取音樂(lè)的途徑</p><p>  TCHAR cmd[MAX_PATH+10];</p><p>  wsprintf(cmd,"play %s",shortPath)

127、;</p><p>  mciSendString(cmd," ",0,NULL);</p><p>  int ret = MessageBox(NULL,TEXT("你當(dāng)前正在享受音樂(lè)!!!是否要退出"),TEXT("嘻嘻"),MB_YESNO | MB_ICONQUESTION);</p><p> 

128、 if(ret==IDYES)</p><p><b>  {</b></p><p>  MessageBox(NULL,TEXT("還好聽(tīng)吧!歡迎再欣賞!再見(jiàn)!!!"),TEXT("嘿嘿"),MB_OK);</p><p>  mciSendString("CLOSE cmd",&

129、quot; ",0,NULL);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p&g

130、t;<b>  break;</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  主要是通過(guò)mciSendString()API函數(shù)的使用。</

131、p><p><b>  〔4〕、關(guān)于操作:</b></p><p>  1、關(guān)于對(duì)話框的彈出實(shí)現(xiàn):</p><p>  case ID_MENU_ABOUT:</p><p><b>  {</b></p><p>  HINSTANCE hInstance=(HINSTANCE

132、)GetWindowLong(hwnd,GWL_HINSTANCE);</p><p>  DialogBox(hInstance, MAKEINTRESOURCE(IDD_ABOUT), NULL, Main_Proc);</p><p><b>  break;</b></p><p><b>  }</b></

133、p><p>  用DialogBox()函數(shù)實(shí)現(xiàn)對(duì)話框的彈出。</p><p><b>  2、訪問(wèn)百度實(shí)現(xiàn):</b></p><p>  case IDM_BAIDU: //訪問(wèn)百度網(wǎng)</p><p><b>  {</b></p><p>  ShellExecute

134、(hwnd,TEXT("open"),TEXT("www.baidu.com"),NULL,NULL,SW_SHOWNORMAL);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  3、訪問(wèn)114實(shí)現(xiàn):</p>

135、<p>  case IDM_GOOGLE:</p><p><b>  {</b></p><p>  ShellExecute(hwnd,TEXT("open"),TEXT("www.114la.com"),NULL,NULL,SW_SHOWNORMAL);</p><p><b&

136、gt;  break;</b></p><p><b>  }</b></p><p>  都是ShellExecute()函數(shù)的使用。</p><p><b>  五、編碼與調(diào)試分析</b></p><p>  1.確定好語(yǔ)言后,設(shè)計(jì)主界面,參考windows自帶的記事本開(kāi)始設(shè)計(jì),需要

137、實(shí)現(xiàn)的各個(gè)功能現(xiàn)在主界面的下拉菜單中顯示,還有時(shí)間的顯示框的設(shè)計(jì),關(guān)于對(duì)話框的設(shè)計(jì),替換對(duì)話框的設(shè)計(jì),查找對(duì)話框的設(shè)計(jì),以及統(tǒng)計(jì)對(duì)話框的設(shè)計(jì)。接下來(lái)開(kāi)始一一實(shí)現(xiàn)其功能。</p><p>  2. 編碼與調(diào)試過(guò)程中遇到的問(wèn)題及解決辦法:</p><p>  問(wèn)題1:未考慮到生成文檔窗體在主窗體中的顯示</p><p>  解決辦法:在參照樣例程序的時(shí)候,發(fā)現(xiàn)文檔是顯示

138、在主窗體內(nèi)部,結(jié)合自己的所學(xué),發(fā)現(xiàn)設(shè)置主窗體的屬性記事本 f = new 記事本();</p><p>  f.MdiParent = this;</p><p><b>  count++;</b></p><p>  f.Text = "新建文本" + count;</p><p>  設(shè)置成Md

139、iparent屬性即可。</p><p>  問(wèn)題2:不知到什么屬性被修改,導(dǎo)致主窗體關(guān)閉失效</p><p>  解決辦法:在菜單文件中設(shè)置關(guān)閉程序的命令,并申請(qǐng)了菜單合并,不需要在新建文檔的情況下就能關(guān)閉主窗體,現(xiàn)在仍然留下一個(gè)讓人深究的問(wèn)題,究竟是什么樣的屬性才是控制最大化,最小化,以及關(guān)閉的顯隱性,有待繼續(xù)學(xué)習(xí)。這是自己在程序完成的時(shí)候出現(xiàn)的意外,但是確是我在編寫過(guò)程中遇到的最大難

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論