版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> C++面向?qū)ο笳n程設(shè)計(jì)報(bào)告</p><p> 院(系): 計(jì)算機(jī)工程學(xué)院 </p><p> 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 學(xué)生姓名: _ </p><p> 班級(jí):_
2、 _ 學(xué)號(hào): </p><p> 題目: 多功能電子詞典 _________ </p><p> 起迄日期: _2013.6.23~2013.7.5 </p><p> 設(shè)計(jì)地點(diǎn): 計(jì)算機(jī)學(xué)院機(jī)房 </p><p> 指 導(dǎo) 教 師:
3、 </p><p> 完成日期: 2013 年7月 5 日</p><p><b> 目錄</b></p><p> 一、 需求分析 -------------------------------------------------------------------------------1
4、 </p><p> 選做此課題或項(xiàng)目的---------------------------------------------------------------1</p><p> 程序所實(shí)現(xiàn)的功能----------------------------------------------------------------
5、--2</p><p> 二、 設(shè)計(jì)內(nèi)容---------------------------------------------------------------------------------3</p><p> 1. 根據(jù)所選題目,給出模塊圖-------------------------------------------------------4</p>
6、<p> 2. 畫(huà)出主程序及其主要模塊的流程圖----------------------------------------------5</p><p> 3. 編寫(xiě)程序代碼-------------------------------------------------------------------------5</p><p> 三、 調(diào)試分析-------
7、-------------------------------------------------------------------------5</p><p> 1. 實(shí)際完成的情況說(shuō)明(完成的功能,支持的數(shù)據(jù)類型等)。-------------6</p><p> 2. 程序的性能分析。----------------------------------------------
8、--------------------6</p><p> 3. 上機(jī)過(guò)程中出現(xiàn)的問(wèn)題及其解決方案。---------------------------------------6</p><p> 4. 程序中可以改進(jìn)的地方說(shuō)明。--------------------------------------------------7</p><p> 5.
9、程序中可以擴(kuò)充的功能及設(shè)計(jì)實(shí)現(xiàn)構(gòu)想。------------------------------------7</p><p> 四、 用戶手冊(cè)---------------------------------------------------------------------------------7</p><p> 五、 設(shè)計(jì)總結(jié)-----------------------
10、---------------------------------------------------------14</p><p> 六、 參考文獻(xiàn)---------------------------------------------------------------------------------17</p><p> 七、 附錄--------------------
11、-------------------------------------------------------------------23</p><p><b> 一、需求分析</b></p><p> 隨著社會(huì)的發(fā)展,在人們生活中學(xué)習(xí)外語(yǔ)變得越來(lái)越重要。 現(xiàn)在許多文件和資料都是電子版,所以更多人喜歡通過(guò)電子工具學(xué)習(xí)外語(yǔ)。為了給外語(yǔ)學(xué)習(xí)者更多便利以及實(shí)現(xiàn)無(wú)紙化的
12、教育,基于以上的原因開(kāi)發(fā)了這款多功能電子詞典。</p><p> 這個(gè)系統(tǒng)是基于電腦桌面程序的電子詞典,它主要實(shí)現(xiàn)單詞查詢、音樂(lè)播放、月歷和時(shí)鐘四個(gè)功能。查詢功能提供英語(yǔ)單詞查詢中文意思以及中文詞組查詢英語(yǔ)單詞。在查找單詞學(xué)習(xí)過(guò)程中,可以通過(guò)播放音樂(lè)放松心情,緩解學(xué)習(xí)帶來(lái)的壓力。</p><p> 本系統(tǒng)運(yùn)用MFC 應(yīng)用架構(gòu),使用C++語(yǔ)言編寫(xiě)。使用Windows7作為開(kāi)發(fā)平臺(tái),開(kāi)發(fā)環(huán)
13、境是微軟Visual C++ 6.0。隨著軟件工程技術(shù)的不斷發(fā)展,應(yīng)用面向?qū)ο蟮木幊碳夹g(shù) 已經(jīng)成為當(dāng)今軟件開(kāi)發(fā)的重要手段之一。</p><p><b> 設(shè)計(jì)內(nèi)容</b></p><p><b> 2.1、模塊圖</b></p><p> 2 功能及相應(yīng)函數(shù)調(diào)用圖</p><p><b&
14、gt; 2.3編寫(xiě)程序代碼</b></p><p><b> 1.音樂(lè)播放功能</b></p><p> void CDictionaryDlg::OnButton3() </p><p><b> { </b></p><p><b> flag++;&
15、lt;/b></p><p><b> flag%=2;</b></p><p><b> if(flag)</b></p><p> {PlaySound("D:\\Good good study\\C++\\C++課程設(shè)計(jì)\\dictionary可運(yùn)行\(zhòng)\res\\Beyond-海闊天空.wav&
16、quot;,NULL,SND_FILENAME|SND_ASYNC);</p><p><b> }</b></p><p><b> else</b></p><p> PlaySound(NULL,NULL,NULL);</p><p><b> 時(shí)鐘顯示功能</b>
17、;</p><p> void CDictionaryDlg::OnTimer(UINT nIDEvent) </p><p><b> {</b></p><p> CDialog::OnTimer(nIDEvent);</p><p> CTime time=CTime::GetCurrentTime();&
18、lt;/p><p> int hour=time.GetHour();</p><p> int Minute=time.GetMinute();</p><p> int second=time.GetSecond();</p><p> CString str;</p><p> str.Format(&qu
19、ot;%d:%d:%d",hour,Minute,second);</p><p> SetDlgItemText(IDC_EDIT2,str);</p><p><b> }</b></p><p><b> 查詢功能</b></p><p> void CDictionaryD
20、lg::OnText() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> m_text.GetWindowText(str);</p><p><b> char
21、 ch;</b></p><p> if(str.GetLength()!=0)</p><p><b> {</b></p><p> ch = str.GetAt(0);</p><p> ch = toupper(ch); //將輸入的第一個(gè)字符置成大寫(xiě)</p><p&g
22、t; str.SetAt(0,ch);</p><p> if(str.Find("?")>=0||str.Find("*")>=0) //判斷進(jìn)行模糊查詢</p><p><b> {</b></p><p><b> return;</b></p>
23、;<p><b> }</b></p><p> if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) //判斷進(jìn)行英譯漢</p><p> EntoCh(); </p>&l
24、t;p> else if(str.GetLength()!=0) //進(jìn)行漢譯英</p><p><b> ChtoEn();</b></p><p><b> }</b></p><p> else //如果ComboBox內(nèi)容為空,則清空列表和文本框</p><p>
25、;<b> {</b></p><p> m_list.ResetContent();</p><p> m_edit1.SetWindowText(" ");</p><p><b> }</b></p><p><b> }</b></p
26、><p> 判斷英譯漢或漢譯英功能實(shí)現(xiàn)</p><p> void CDictionaryDlg::OnText() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><
27、;p> m_text.GetWindowText(str);</p><p><b> char ch;</b></p><p> if(str.GetLength()!=0)</p><p><b> {</b></p><p> ch = str.GetAt(0);</p&
28、gt;<p> ch = toupper(ch); //將輸入的第一個(gè)字符置成大寫(xiě)</p><p> str.SetAt(0,ch);</p><p> if(str.Find("?")>=0||str.Find("*")>=0) //判斷進(jìn)行模糊查詢</p><p><b>
29、 {</b></p><p><b> return;</b></p><p><b> }</b></p><p> if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='
30、;Z')) //判斷進(jìn)行英譯漢</p><p> EntoCh(); </p><p> else if(str.GetLength()!=0) //進(jìn)行漢譯英</p><p><b> ChtoEn();</b></p><p><b> }</b></p&
31、gt;<p> else //如果ComboBox內(nèi)容為空,則清空列表和文本框</p><p><b> {</b></p><p> m_list.ResetContent();</p><p> m_edit1.SetWindowText(" ");</p><p>&
32、lt;b> }</b></p><p><b> }</b></p><p><b> 取消按鍵</b></p><p> void CDictionaryDlg::OnCANSEL() </p><p><b> {</b></p>
33、<p> CDialog::OnOK();</p><p><b> }</b></p><p><b> 英譯漢</b></p><p> void CDictionaryDlg::EntoCh()</p><p><b> {</b></p>
34、<p> char name0[] = {"english0.txt"};</p><p> FILE *fp;</p><p> if((fp=fopen(name0,"r"))==NULL) //打開(kāi)第一本詞典</p><p><b> {</b></p>
35、<p> m_edit1.SetWindowText("對(duì)不起!文件不能打開(kāi)!");</p><p><b> return;</b></p><p><b> }</b></p><p><b> do</b></p><p><b
36、> {</b></p><p> m_list.ResetContent(); //清空列表內(nèi)容 </p><p> fgets(buffer,1024,fp); //從文件讀入一行存放在BUFFER中</p><p><b> int i,k;</b></p><
37、;p> memset(acron,0,sizeof(acron)); //清空acron</p><p> for(i=0;buffer[i]!=' ';i++) //截取縮略詞</p><p> acron[i] = buffer[i];</p><p> while(buffer[i]==' ')
38、 i++;</p><p><b> k = i;</b></p><p> memset(english,0,sizeof(english)); //清空english </p><p> for(;buffer[i]!='#';i++) //截取英文部分</p><p>
39、english[i-k] = buffer[i];</p><p> memset(mid,0,sizeof(mid)); //清空mid</p><p> strncpy(mid,english,str.GetLength()); //將english中的從0開(kāi)始的長(zhǎng)度為str.GetLength()字符存入mid中</p><p> if
40、(strcmp(str,mid)==0) //比較str和mid</p><p><b> {</b></p><p> m_list.AddString(english); //列表輸出</p><p> i++; k = i;</p><p> memset(chinese,0,sizeof(
41、chinese)); //清空chinese</p><p> for(;buffer[i]!='\0';i++) //截取漢語(yǔ)部分</p><p> chinese[i-k] = buffer[i];</p><p><b> }</b></p><p> }while(strc
42、mp(str,mid)!=0&&!feof(fp)); //若不匹配且文件未結(jié)束</p><p> int count0 = 0;</p><p> while(strcmp(str,mid)==0&&!feof(fp)&&count0<100) </p><p><b> {</b&
43、gt;</p><p> fgets(buffer,1024,fp); //讀入</p><p><b> int i,k;</b></p><p> memset(acron,0,sizeof(acron)); </p><p> for(i=0;buffer[i]!=' ';i++
44、) //截取縮略詞</p><p> acron[i] = buffer[i];</p><p> while(buffer[i]==' ') i++;</p><p><b> k = i;</b></p><p> memset(english,0,sizeof(english)
45、); </p><p> for(;buffer[i]!='#';i++) //截取英文部分</p><p> english[i-k] = buffer[i];</p><p> memset(mid,0,sizeof(mid));</p><p> strncpy(mid,english,str.
46、GetLength());</p><p> if(strcmp(str,mid)==0) </p><p><b> {</b></p><p> m_list.AddString(english); </p><p> count0++; //控制列表中的條數(shù)在101內(nèi)</p>
47、<p><b> }</b></p><p><b> }</b></p><p> fclose(fp);</p><p> char name1[] = {"english1.txt"};</p><p> if((fp=fopen(name1,&
48、quot;r"))==NULL) //打開(kāi)第二部詞典</p><p><b> {</b></p><p> m_edit1.SetWindowText("對(duì)不起!文件不能打開(kāi)!");</p><p><b> return;</b></p><p><
49、b> }</b></p><p><b> do</b></p><p><b> { </b></p><p> fgets(buffer,1024,fp); //從文件讀入一行存放在BUFFER中</p><p><b> int
50、i,k;</b></p><p> memset(acron,0,sizeof(acron)); //清空acron</p><p> for(i=0;buffer[i]!=' ';i++) //截取縮略詞</p><p> acron[i] = buffer[i];</p><p> w
51、hile(buffer[i]==' ') i++;</p><p><b> k = i;</b></p><p> memset(english,0,sizeof(english)); //清空english </p><p> for(;buffer[i]!='#';i++) //
52、截取英文部分</p><p> english[i-k] = buffer[i];</p><p> memset(mid,0,sizeof(mid)); //清空mid</p><p> strncpy(mid,english,str.GetLength()); //將english中的從0開(kāi)始的長(zhǎng)度為str.GetLength()字符存入
53、mid中</p><p> if(strcmp(str,mid)==0) //比較str和mid</p><p><b> {</b></p><p> m_list.AddString(english); //列表輸出</p><p> i++; k = i;</p><p&
54、gt; memset(chinese,0,sizeof(chinese)); //清空chinese</p><p> for(;buffer[i]!='\0';i++) //截取漢語(yǔ)部分</p><p> chinese[i-k] = buffer[i];</p><p><b> }</b></
55、p><p> }while(strcmp(str,mid)!=0&&!feof(fp)); //若不匹配且文件未結(jié)束</p><p> int count1 = 0;</p><p> while(strcmp(str,mid)==0&&!feof(fp)&&count1<100) </p>
56、<p><b> {</b></p><p> fgets(buffer,1024,fp); //讀入</p><p><b> int i,k;</b></p><p> memset(acron,0,sizeof(acron)); </p><p> for(i
57、=0;buffer[i]!=' ';i++) //截取縮略詞</p><p> acron[i] = buffer[i];</p><p> while(buffer[i]==' ') i++;</p><p><b> k = i;</b></p><p> mem
58、set(english,0,sizeof(english)); </p><p> for(;buffer[i]!='#';i++) //截取英文部分</p><p> english[i-k] = buffer[i];</p><p> memset(mid,0,sizeof(mid));</p><p&
59、gt; strncpy(mid,english,str.GetLength());</p><p> if(strcmp(str,mid)==0)</p><p><b> {</b></p><p> m_list.AddString(english); </p><p> count1++; //
60、控制列表中的條數(shù)在101內(nèi)</p><p><b> }</b></p><p><b> }</b></p><p> //如果列表中僅剩一行,則文本框中輸出中文</p><p> if(m_list.GetCount()==1) m_edit1.SetWindowText(ch
61、inese); </p><p> else m_edit1.SetWindowText(" ");</p><p> fclose(fp);</p><p><b> }</b></p><p><b> 漢譯英</b></p><p>
62、 void CDictionaryDlg::ChtoEn()</p><p><b> {</b></p><p> char name0[] = {"chinese0.txt"};</p><p> FILE *fp;</p><p> if((fp=fopen(name0,"
63、r"))==NULL) //打開(kāi)文件</p><p><b> {</b></p><p> m_edit1.SetWindowText("對(duì)不起!文件不能打開(kāi)!");</p><p><b> return;</b></p><p><b>
64、}</b></p><p><b> do</b></p><p><b> {</b></p><p> m_list.ResetContent(); //清空列表內(nèi)容</p><p> fgets(buffer,1024,fp); //讀入</p>
65、<p><b> int i,k;</b></p><p> memset(acron,0,sizeof(acron));</p><p> for(i=0;buffer[i]!=' ';i++) //截取縮略詞</p><p> acron[i] = buffer[i];</p>&
66、lt;p> while(buffer[i]==' ') i++;</p><p><b> k = i;</b></p><p> memset(english,0,sizeof(english));</p><p> for(;buffer[i]!='#';i++) //截取英文部
67、分</p><p> english[i-k] = buffer[i];</p><p> i++; k = i;</p><p> memset(chinese,0,sizeof(chinese));</p><p> for(;buffer[i]!='\0';i++) //截取漢語(yǔ)部分</p>
68、;<p> chinese[i-k] = buffer[i];</p><p> memset(mid,0,sizeof(mid));</p><p> strncpy(mid,chinese,str.GetLength());</p><p> if(strcmp(str,mid)==0) //比較:若相等則輸出</p>
69、<p><b> {</b></p><p> m_list.AddString(chinese);</p><p><b> }</b></p><p> }while(strcmp(str,mid)!=0&&!feof(fp)); //若不匹配且文件未結(jié)束</p>
70、<p> int count0 = 0; </p><p> while(strcmp(str,mid)==0&&!feof(fp)&&count0<100)</p><p><b> {</b></p><p> fgets(buffer,1024,fp);</p>&l
71、t;p> int i=4,k;</p><p> while(buffer[i]!='#') i++;</p><p> i++; k = i;</p><p> memset(chinese,0,sizeof(chinese));</p><p> for(;buffer[i]!='\0&
72、#39;;i++) //截取漢語(yǔ)部分</p><p> chinese[i-k] = buffer[i];</p><p> memset(mid,0,sizeof(mid));</p><p> strncpy(mid,chinese,str.GetLength());</p><p> if(strcmp(str,mid)=
73、=0) //比較輸出</p><p><b> {</b></p><p> m_list.AddString(chinese);</p><p> count0++; //控制列表輸出條數(shù)不多余101</p><p><b> }</b></p><
74、p><b> }</b></p><p> fclose(fp);</p><p> char name1[] = {"chinese1.txt"};</p><p> if((fp=fopen(name1,"r"))==NULL) //打開(kāi)文件</p><p&g
75、t;<b> {</b></p><p> m_edit1.SetWindowText("對(duì)不起!文件不能打開(kāi)!");</p><p><b> return;</b></p><p><b> }</b></p><p><b> do
76、</b></p><p><b> { </b></p><p> fgets(buffer,1024,fp); //讀入</p><p><b> int i,k;</b></p><p> memset(acron,0,sizeof(acron));<
77、;/p><p> for(i=0;buffer[i]!=' ';i++) //截取縮略詞</p><p> acron[i] = buffer[i];</p><p> while(buffer[i]==' ') i++;</p><p><b> k = i;</b>&
78、lt;/p><p> memset(english,0,sizeof(english));</p><p> for(;buffer[i]!='#';i++) //截取英文部分</p><p> english[i-k] = buffer[i];</p><p> i++; k = i;</p>
79、<p> memset(chinese,0,sizeof(chinese));</p><p> for(;buffer[i]!='\0';i++) //截取漢語(yǔ)部分</p><p> chinese[i-k] = buffer[i];</p><p> memset(mid,0,sizeof(mid));</p&g
80、t;<p> strncpy(mid,chinese,str.GetLength());</p><p> if(strcmp(str,mid)==0) //比較輸出</p><p><b> {</b></p><p> m_list.AddString(chinese);</p><p>
81、<b> }</b></p><p> }while(strcmp(str,mid)!=0&&!feof(fp));</p><p> int count1 = 0;</p><p> while(strcmp(str,mid)==0&&!feof(fp)&&count1<100)
82、</p><p><b> {</b></p><p> fgets(buffer,1024,fp);</p><p> int i=4,k;</p><p> while(buffer[i]!='#') i++;</p><p> i++; k = i;&l
83、t;/p><p> memset(chinese,0,sizeof(chinese));</p><p> for(;buffer[i]!='\0';i++) //截取漢語(yǔ)部分</p><p> chinese[i-k] = buffer[i];</p><p> memset(mid,0,sizeof(mid));
84、</p><p> strncpy(mid,chinese,str.GetLength());</p><p> if(strcmp(str,mid)==0) //比較輸出</p><p><b> {</b></p><p> m_list.AddString(chinese);</p>
85、<p> count1++; //控制列表輸出條數(shù)不多余101</p><p><b> }</b></p><p><b> }</b></p><p> //如果列表中僅剩一行,則文本框中輸出中文</p><p> if(m_list.GetCount()==1)
86、 m_edit1.SetWindowText(english);</p><p> else m_edit1.SetWindowText(" ");</p><p> fclose(fp);</p><p><b> }</b></p><p><b> 三、 調(diào)試分析<
87、;/b></p><p> 1. 實(shí)際完成的情況說(shuō)明</p><p> 經(jīng)過(guò)兩個(gè)星期的不懈努力,不斷地構(gòu)思,不斷地修改,最終完成了一個(gè)擁有較多功能的多多能電子詞典。實(shí)現(xiàn)了最重要的電子詞典查詢功能。用戶界面也很友好。</p><p><b> 程序的性能分析。</b></p><p> 性能方面運(yùn)行穩(wěn)定,程序
88、查詢功能實(shí)現(xiàn)速率很高,能夠滿足日常的英語(yǔ)學(xué)習(xí)過(guò)程中需要的漢譯英和英譯漢的查詢功能。并且能夠在學(xué)習(xí)之余利用程序所包含的音樂(lè)播放器放松自己??偠灾?,程序的各方面性能還是不錯(cuò)的。</p><p> 上機(jī)過(guò)程中出現(xiàn)的問(wèn)題及其解決方案。</p><p> 在實(shí)現(xiàn)音樂(lè)播放器的過(guò)程當(dāng)中,首先通過(guò)自己的構(gòu)思,查閱了資料后知道該功能主要運(yùn)用到的函數(shù)和實(shí)現(xiàn)的方法。但是在具體實(shí)現(xiàn)時(shí),每次調(diào)試都是通過(guò)的,沒(méi)
89、有邏輯錯(cuò)誤,但是運(yùn)行程序時(shí)就是播放不出音樂(lè),系統(tǒng)給出了錯(cuò)誤提示音。后面通過(guò)查詢資料才了解到,音樂(lè)播放器在MFC中系統(tǒng)函數(shù)能支持播放的音樂(lè)格式是WAV。后面將原先在res文件夾里的音樂(lè)文件通過(guò)格式轉(zhuǎn)換器轉(zhuǎn)換成WAV格式后才得以解決。</p><p> 程序中可以改進(jìn)的地方說(shuō)明。</p><p> 本程序在設(shè)計(jì)之初希望實(shí)現(xiàn)的功能基本都已經(jīng)實(shí)現(xiàn),但是還是存在一些可以修改的地方。比如,由于所給
90、出的單詞庫(kù)單詞的數(shù)量有限,我沒(méi)能實(shí)現(xiàn)用戶自己在使用過(guò)程中能夠自己插入單詞并保存到單詞庫(kù)當(dāng)中這一功能。但是這一功能實(shí)現(xiàn)起來(lái)比較麻煩,由于我的單詞庫(kù)在設(shè)計(jì)之初就是以一定的規(guī)律來(lái)插入的,這樣是為了在查詢過(guò)程當(dāng)中系統(tǒng)在調(diào)用函數(shù)時(shí),查找并匹配到該單詞的速率能夠更加快速。如果選擇并去實(shí)現(xiàn)了這一功能,恐怕這將會(huì)打亂了我的單詞庫(kù)的排列次序。</p><p> 5. 程序中可以擴(kuò)充的功能及設(shè)計(jì)實(shí)現(xiàn)構(gòu)想。</p>&
91、lt;p> 程序在設(shè)計(jì)之初我本身是打算做出一個(gè)功能比較齊全的MP3播放器的,但是由于后面的時(shí)間限制,我將大部分時(shí)間都花在如果將英譯漢和漢譯英這兩個(gè)功能結(jié)合在一起的這一功能設(shè)計(jì)當(dāng)中去,致使后面沒(méi)有剩余時(shí)間來(lái)做一個(gè)完整的播放器。這一簡(jiǎn)單的播放器只能是播放工程里提供的音樂(lè)文件,不能用戶自行定義。假設(shè)能夠加以完善,我希望是能夠做出一個(gè)很規(guī)范的多功能音樂(lè)播放器,還會(huì)設(shè)計(jì)一個(gè)很漂亮的圖標(biāo)加載在音樂(lè)播放器上面。這是我的一個(gè)構(gòu)想。</p&
92、gt;<p><b> 四、 用戶手冊(cè)</b></p><p> 1. 程序運(yùn)行環(huán)境及結(jié)果</p><p> Windows 7 VC++6.0 開(kāi)發(fā)平臺(tái), Microsoft Visual C++6.0 集成環(huán)境。</p><p><b> 程序運(yùn)行結(jié)果</b></p><p&
93、gt;<b> 用戶使用步驟</b></p><p> 用戶進(jìn)入程序主界面時(shí),可通過(guò)以下幾個(gè)步驟使用本軟件</p><p> 查詢功能:輸入要查詢的單詞或者中文意思,在索引中將出現(xiàn)幾個(gè)備選的查詢結(jié)果,找到要查詢的單詞或者詞組,雙擊鼠標(biāo)左鍵進(jìn)入查詢結(jié)果。</p><p> 音樂(lè)播放器:?jiǎn)螜C(jī)“我的MP3”,音樂(lè)開(kāi)始播放,再次左擊,音樂(lè)停止。
94、</p><p> 時(shí)鐘功能:時(shí)鐘功能是調(diào)用系統(tǒng)函數(shù),直接讀取本臺(tái)電腦的系統(tǒng)時(shí)間并進(jìn)行顯示的,所以如果想修改現(xiàn)在時(shí)間,只要在操作系統(tǒng)windows界面的右下角時(shí)間欄直接進(jìn)行設(shè)置即可。</p><p><b> 設(shè)計(jì)總結(jié)</b></p><p> 在本次C++課程設(shè)計(jì)當(dāng)中,我在實(shí)踐中得到了也學(xué)習(xí)了很多很多的東西。較為熟練地掌握了MFC的程序
95、開(kāi)發(fā)步驟和方法,會(huì)進(jìn)行基本的界面設(shè)計(jì)和功能實(shí)現(xiàn)的源代碼開(kāi)發(fā)。一開(kāi)始拿到這個(gè)題目時(shí),覺(jué)得自己根本不可能能夠靠自己做出一個(gè)像樣的多功能電子詞典。甚至一個(gè)很簡(jiǎn)單的電子詞典都做不出來(lái),別說(shuō)多功能了。后面通過(guò)觀看了好多孫鑫的教學(xué)視頻,慢慢了解了MFC的功能實(shí)現(xiàn)方法和設(shè)計(jì)思路和步驟,開(kāi)始上手。到后面自己真的可以做到有一個(gè)想法,然后通過(guò)自己的努力,查詢文件資料設(shè)計(jì)出一個(gè)功能,并且實(shí)現(xiàn)的非常好。課程設(shè)計(jì)基本結(jié)束后,我感到特別的有成就感,看著自己做出來(lái)的
96、一個(gè)軟件,真是愛(ài)不釋手,把玩了好久。以后在學(xué)習(xí)過(guò)程中,我會(huì)因此而更加有奮斗的目的和目標(biāo)。因?yàn)榭孔约旱拇竽X和實(shí)踐做出點(diǎn)東西來(lái)確實(shí)是不容易,但是真正你做到了以后就感覺(jué),那是對(duì)自己的辛苦和付出的一種多么大的安慰和鼓勵(lì)?。〖佑?!繼續(xù)努力!</p><p><b> 六、 主要參考文獻(xiàn)</b></p><p> 1.鄭莉.C++語(yǔ)言程序設(shè)計(jì)(第3版).北京:清華大學(xué)出版社,
97、2005.7</p><p> 2.錢(qián)能.C++程序設(shè)計(jì)教程(第2版).北京:清華大學(xué)出版社,2005.8</p><p> 3. 黃維通. Visual C++面向?qū)ο笈c可視化程序設(shè)計(jì)(第2版).北京:清華大學(xué)出版 社,2003.12</p><p> 4. 劉路放. Visual C++與面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第二版). 北京:高等教育出版社,2007.8
98、</p><p> 5. 潘愛(ài)民. COM原理與應(yīng)用.北京:清華大學(xué)出版社,1999.11</p><p><b> 附錄</b></p><p> // dictionaryDlg.cpp : implementation file</p><p><b> //</b></p>
99、;<p> #include "stdafx.h"</p><p> #include "dictionary.h"</p><p> #include "dictionaryDlg.h"</p><p> #include "fstream.h"</p>
100、;<p> #include "string.h"</p><p> #include <mmsystem.h> //gequbofang</p><p> #pragma comment(lib,"WINMM.LIB") //gequbofang</p><p>
101、 #include <windows.h></p><p> #ifdef _DEBUG</p><p> #define new DEBUG_NEW</p><p> #undef THIS_FILE</p><p> static char THIS_FILE[] = __FILE__;</p><
102、;p><b> #endif</b></p><p> #define MAX 1000</p><p> // CAboutDlg dialog used for App About</p><p> class CAboutDlg : public CDialog</p><p><b>
103、{</b></p><p><b> public:</b></p><p> CAboutDlg();</p><p> // Dialog Data</p><p> //{{AFX_DATA(CAboutDlg)</p><p> enum { IDD = IDD_AB
104、OUTBOX };</p><p> //}}AFX_DATA</p><p> // ClassWizard generated virtual function overrides</p><p> //{{AFX_VIRTUAL(CAboutDlg)</p><p> protected:</p><p>
105、; virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support</p><p> //}}AFX_VIRTUAL</p><p> // Implementation</p><p> protected:</p><p> //{{AFX_MSG(C
106、AboutDlg)f</p><p> virtual void OnOK();</p><p> //}}AFX_MSG</p><p> DECLARE_MESSAGE_MAP()</p><p><b> };</b></p><p> CAboutDlg::CAboutDlg()
107、 : CDialog(CAboutDlg::IDD)</p><p><b> {</b></p><p> //{{AFX_DATA_INIT(CAboutDlg)</p><p> //}}AFX_DATA_INIT</p><p><b> }</b></p><p
108、> void CAboutDlg::DoDataExchange(CDataExchange* pDX)</p><p><b> {</b></p><p> CDialog::DoDataExchange(pDX);</p><p> //{{AFX_DATA_MAP(CAboutDlg)</p><p&g
109、t; //}}AFX_DATA_MAP</p><p><b> }</b></p><p> BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)</p><p> //{{AFX_MSG_MAP(CAboutDlg)</p><p> //}}AFX_MSG_MAP</p>
110、<p> END_MESSAGE_MAP()</p><p> /////////////////////////////////////////////////////////////////////////////</p><p> // CDictionaryDlg dialog</p><p> CDictionaryDlg::CDic
111、tionaryDlg(CWnd* pParent /*=NULL*/)</p><p> : CDialog(CDictionaryDlg::IDD, pParent)</p><p><b> {</b></p><p> //{{AFX_DATA_INIT(CDictionaryDlg)</p><p> /
112、/}}AFX_DATA_INIT</p><p> // Note that LoadIcon does not require a subsequent DestroyIcon in Win32</p><p> m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);</p><p><b> }<
113、;/b></p><p> ///////////////////////////////////////////////////////////////</p><p> //////////////</p><p> void CDictionaryDlg::DoDataExchange(CDataExchange* pDX)</p>
114、<p><b> {</b></p><p> CDialog::DoDataExchange(pDX);</p><p> //{{AFX_DATA_MAP(CDictionaryDlg)</p><p> DDX_Control(pDX, IDC_LIST1, m_list);</p><p>
115、DDX_Control(pDX, IDC_EDIT1, m_edit1);</p><p> DDX_Control(pDX, IDC_COMBO1, m_text);</p><p> //}}AFX_DATA_MAP</p><p><b> }</b></p><p> BEGIN_MESSAGE_MAP(
116、CDictionaryDlg, CDialog)</p><p> //{{AFX_MSG_MAP(CDictionaryDlg)</p><p> ON_WM_SYSCOMMAND()</p><p> ON_WM_PAINT()</p><p> ON_WM_QUERYDRAGICON()</p><p>
117、 ON_CBN_EDITCHANGE(IDC_COMBO1, OnText)</p><p> ON_EN_CHANGE(IDC_EDIT1, OnEdit1)</p><p> ON_BN_CLICKED(IDC_FIND, OnFind)</p><p> ON_BN_CLICKED(IDC_CANSEL, OnCANSEL)</p>&l
118、t;p> ON_LBN_SELCHANGE(IDC_LIST1, OnList)</p><p> ON_BN_CLICKED(IDC_LIKE, OnLike)</p><p> ON_BN_CLICKED(IDC_CLEAR, OnClear)</p><p> ON_WM_ERASEBKGND()</p><p> ON
119、_WM_SIZE()</p><p> ON_WM_TIMER()</p><p> ON_BN_CLICKED(IDC_BUTTON3, OnButton3)</p><p> ON_NOTIFY(NM_OUTOFMEMORY, IDC_SLIDER1, OnOutofmemorySlider1)</p><p> //}}AFX_
120、MSG_MAP</p><p> END_MESSAGE_MAP()</p><p> /////////////////////////////////////////////////////////////////////////////</p><p> // CDictionaryDlg message handlers</p><
121、p> BOOL CDictionaryDlg::OnInitDialog()</p><p><b> {</b></p><p> CDialog::OnInitDialog();</p><p> // Add "About..." menu item to system menu.</p>
122、<p> // IDM_ABOUTBOX must be in the system command range.</p><p> ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);</p><p> ASSERT(IDM_ABOUTBOX < 0xF000);</p><p> CMe
123、nu* pSysMenu = GetSystemMenu(FALSE);</p><p> if (pSysMenu != NULL)</p><p><b> {</b></p><p> CString strAboutMenu;</p><p> strAboutMenu.LoadString(IDS_AB
124、OUTBOX);</p><p> if (!strAboutMenu.IsEmpty())</p><p><b> {</b></p><p> pSysMenu->AppendMenu(MF_SEPARATOR);</p><p> pSysMenu->AppendMenu(MF_STRING,
125、 IDM_ABOUTBOX, strAboutMenu);</p><p><b> }</b></p><p><b> }</b></p><p> // Set the icon for this dialog. The framework does this automatically</p>
126、<p> // when the application's main window is not a dialog</p><p> SetIcon(m_hIcon, TRUE);// Set big icon</p><p> SetIcon(m_hIcon, FALSE);// Set small icon</p><p>
127、; // TODO: Add extra initialization here</p><p> return TRUE; // return TRUE unless you set the focus to a control</p><p><b> }</b></p><p> void CDictionaryDlg::On
128、SysCommand(UINT nID, LPARAM lParam)</p><p><b> {</b></p><p> if ((nID & 0xFFF0) == IDM_ABOUTBOX)</p><p><b> {</b></p><p> CAboutDlg dlgA
129、bout;</p><p> dlgAbout.DoModal();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> CDialog::OnSysComm
130、and(nID, lParam);</p><p><b> }</b></p><p><b> }</b></p><p> // If you add a minimize button to your dialog, you will need the code below</p><p&
131、gt; // to draw the icon. For MFC applications using the document/view model,</p><p> // this is automatically done for you by the framework.</p><p> void CDictionaryDlg::OnPaint() </p&g
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)--電子詞典
- java課程設(shè)計(jì)---英漢電子詞典
- java課程設(shè)計(jì)-英漢電子詞典系統(tǒng)
- java課程設(shè)計(jì)-英漢電子詞典系統(tǒng)
- 多功能漢彝電子詞典的軟件設(shè)計(jì)與實(shí)現(xiàn)
- c語(yǔ)言電子詞典代碼
- c語(yǔ)言電子詞典代碼
- 多功能漢彝電子詞典的軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)設(shè)計(jì)論文終稿 多功能電子詞典的設(shè)計(jì)與實(shí)現(xiàn)
- 電子詞典
- c語(yǔ)言課程設(shè)計(jì)——電子英漢詞典
- c語(yǔ)言課程設(shè)計(jì)——電子英漢詞典
- 電子詞典.docx
- c++課程設(shè)計(jì)---用vc++制作多功能計(jì)算器
- c++課程設(shè)計(jì)---用vc++制作多功能計(jì)算器
- 促銷策略課程設(shè)計(jì)-- 電子詞典針對(duì)留學(xué)生的促銷策略
- c++課程設(shè)計(jì)報(bào)告
- 電子詞典卡通大賽
- c++課程設(shè)計(jì)ppt
- 課程設(shè)計(jì)---多功能電子數(shù)字鐘
評(píng)論
0/150
提交評(píng)論