第一篇:中南大學 課程設計實踐報告
中南大學
本科生課程設計(實踐)任務書、設計報告
(大學計算機基礎)
題 目 理想世界 學生姓名 李杰 指導教師 邵自然 學 院 湘雅醫學院 臨床醫學與醫學技術
專業班級 1105班
學生學號
2211110512
計算機基礎教學實驗中心
年 月 日
課程設計實踐報告 理想世界 李杰
我選的主題是理想世界,我的思想是從圖片來展現理想世界的樣子,用圖片表達我想說的內容。
設計的步驟:從以上兩個方面入手,目錄作為主頁,主頁內容是理想世界中frontpage的一些介紹,并且引入一些優美的圖片,再一個個的建立超鏈接。在引入一些解決手段,創建連接理想世界。在理想世界這個鏈接中從圖片來展現理想世界的樣子,用圖片表達我想說的內容。,也可以用一些flash動畫,還可以使用word鏈接一些圖片。在理想世界這個鏈接中,也可使用word鏈接一些先驅的行動,與我們自己的所處的世界對比,ppt制作幻燈片來演示一些有效提示,讓我的理想世界最好的展現給大家。
采取的方法與手段:用Frontpage制作網頁,通過鏈接使word文檔、Powerpoint幻燈片、Flash動畫得以展示。在網頁制作中,可以通過添加圖片來使頁面更加美麗,在word文檔中可以展示藝術字、建立文本。通過powerpoint可以把某些保護環境的行動展示。Flash動畫是以鏈接的方法來參與展示。在需要一些資料的時候,可在網絡上尋找,由于不是文件,這時就可以通過復制粘貼操作來獲取資料。
遇到的問題:(1).在網頁制作中,剛開始的時候連網頁的表格布局都弄不出來,不知道該如何制作,從哪些方面入手。解決方法:先看了幾遍課本,然后跟著課本的步驟上機實踐,但是發現制作過程還是太慢,而且不熟悉frontpage網頁制作工具,因此,開始幾次的實踐都是在慢慢熟悉該工具。直到熟悉該工具后才開始去制作。在word文檔制作中,因為以前在中學的時候用過該工具,現在還有一些印象,所以經過一系列重溫操作后,word文檔的制作就熟悉了。在Powerpoint幻燈片制作中,因為是第一次接觸和使用,許多功能和手段都不知道,較難制作出符合人意的幻燈片。通過多次實驗操作來了解和熟悉它,然后就可以使用了。(2)在flash動畫制作過程中,雖然老師上課講過制作過程,但還是遇到了難題:制作的動畫中,元件不隨引導層而動,而是在關鍵幀之間走直線,這
個問題導致了我做不出動畫,我只好一次次的嘗試去做,最后成功做出來。有時還有一些小技巧,都是從同學手中問過來的。在設置背景圖片時,會發現圖片太小的話,背景就會變成多張重復的圖片拼在一起,后來經過向同學詢問后,使用圖片編輯器對背景大小做了調整,使得背景和網頁內容能夠很好地融合在一起。二,網頁制作好后瀏覽時圖片顯示不出來,改文件名或者換了文件夾儲存都會導致圖片無法顯示,后來經過詢問學習之后,才知道原因即任何圖片的顯示都是依靠路徑來尋找來源,要設成相對路徑有利于在其他機子上打開。在設置主題之前插好圖片。三,剛開始做PPT時,不知道怎么插進去背景音樂和讓它連續播放,后來經過多次實踐后,發現可以在效果中設置這些。四,剛開始不會弄超鏈接,然后經過向同學詢問后才明白,在選定對象之后點擊右鍵,超鏈接,再選中連接的對象就可以了
總結:首先我們應該學會獨立思考和自我解決問題的能力,因為實踐和理論畢竟不同,在實踐中會遇到一些我們不了解的東西,這時候應該先自己摸索,實在不行就去向同學和老師詢問,一定要仔細閱讀課本,鞏固理論知識。否則很盲目,自信心也會受到打擊2,做計算機作業有時候也是一種享受,因為你會為你自己的一點點進步一點點成功而高興,增加生活情趣、3,做作業時要堅持不懈,不能在半途放棄。中途可能會遇到一些挫折,要記住“世界上沒有誰能隨隨便便成功”,只有經歷過多次失敗,才能尋找到解決問題的最好方法。4,在制作網頁的過程中,我的思想和人格也得到了升華,對大自然和地球的認識又提升到了一個另一個高度,令我受益匪淺。在全制作過程中,所有的難題都是有解決方法的,不要放棄制作機會,有難題可以去問別的同學或老師,也可以自己多次實踐來找到解決方法。我在制作過程中大部分都是自己摸索的,這樣不僅加強了自己對工具的熟悉度,同時也加強了對鍵盤的熟悉,我認為當我們自己去制作的時候,不管好壞都有助于自己,做得好,自己更有信心,鼓勵下次還能做得更好,做的不好,還可以找出錯誤,提醒自己在什么地方應該注意,在什么地方可以改正。這樣就可以更好的去改錯。有時候可以去看一看別人的作品,看一下別人是怎么做的,想一想哪里值得借鑒,如果是自己,怎么做會更好。這樣,在看的時
候可以加強對工具的熟悉,了解一些技巧,增加自己的見識。
這次的網頁制作對于我來說與有很大的收獲,我學會了,如何制作網頁,如何在網頁上表達自己的觀點,以及網頁制作的一些基本技巧,和網頁制作過程中 最常見,最基本問題的解決。By臨床與醫技1105 李杰 2211110512 4
第二篇:中南大學《數字信號處理》課程設計報告
中南大學
《現代信號處理》 課程設計報告
學 院: 專業班級:
姓 名:
學 號:
指導老師:
設計時間:
前 言
《現代信號處理》課程設計與《現代信號處理》課程配套,是通信工程類專業的重要實踐環節。數字信號處理是每一個電子信息科學工作者必須掌握的重要知識。它采用計算機仿真軟件,以數值計算的方法對信號進行分析、變換、濾波、檢測、估計與識別等加工處理,以達到提取信息便于使用的目的。
通信工程專業的培養目標是具備通信技術的基本理論和應用技術,能從事電子、信息、通信等領域的工作。鑒于我校充分培養學生實踐能力的辦學宗旨,對本專業學生的培養要進行工程素質培養、拓寬專業口徑、注重基礎和發展潛力。特別是培養學生的創新能力,以實現技術為主線多進行實驗技能的培養。學生通過《現代信號處理》課程設計這一重要環節,可以將本專業的主干課程《現代信號處理》從理論學習到實踐應用,對數字信號處理技術有較深的了解,進一步增強學生動手能力和適應實際工作的能力。
目 錄
前 言............................................................2 第一章 設計目的及要求.............................................4
1.1 課程設計目的................................................4 1.2 課程設計要求................................................4 1.3 課程設計選做題目............................................4 第二章 設計題目及思想.............................................5
2.1 各題目的設計思想............................................5
2.1.1 第一題................................................5 2.1.2 第二題...............................................6 2.1.3 第三題...............................................6 2.1.4 第四題...............................................7 2.1.5 第五題...............................................7 2.1.6 第六題...............................................8 2.2 GUI界面設計思想............................................9 第三章 調試及結果分析............................................12 3.1 GUI界面的結果與調試.......................................12 3.2 各題目的結果與調試.........................................12 3.2.1 第一題...............................................12 3.2.2 第二題...............................................13 3.2.3 第三題...............................................14 3.2.4 第四題...............................................15 3.2.5 第五題...............................................16 3.2.6 第六題...............................................21 第四章 課程設計總結..............................................24 4.1 課程設計所遇問題及解決方案.................................24 4.2 課程設計心得體會...........................................25 附錄:............................................................26 參考文獻..........................................................35 第一章 設計目的及要求
1.1 課程設計目的
1.全面復習課程所學理論知識,鞏固所學知識重點和難點,將理論與實踐很好地結合起來。
2.掌握信號分析與處理的基本方法與實現
3.提高綜合運用所學知識獨立分析和解決問題的能力; 4.熟練使用一種高級語言進行編程實現。
1.2 課程設計要求
一、使用MATLAB(或其它開發工具)編程實現上述內容,寫出課程設計報告。濾波器設計題目應盡量避免使用現成的工具箱函數。為便于分析與觀察,設計中所有頻譜顯示中的頻率參數均應對折疊頻率歸一化。
二、課程設計報告的內容包括:
(1)課程設計題目和題目設計要求;(2)設計思想和系統功能分析;
(3)設計中關鍵部分的理論分析與計算,關鍵模塊的設計思路;(4)測試數據、測試輸出結果,及必要的理論分析和比較;
(5)總結,包括設計過程中遇到的問題和解決方法,設計心得與體會等;(6)參考文獻;(7)程序源代碼清單。
三、課程設計考核要求:
課程考核分三部分,一部分是上機率,占20%;第二部分是檢查成績,最后兩次上機為檢查時間,占50%;第三部分為課程設計報告,占30%。注意:
(1)演示系統使用GUI界面或混合編程實現集成打包發布,酌情加分。(2)若發現程序或課程設計報告雷同,一律不及格。
1.3 課程設計選做題目
選題1.音樂信號處理:
1)獲取一段音樂或語音信號,設計單回聲濾波器,實現信號的單回聲產 生。給出加入單回聲前后的信號頻譜。
2)設計多重回聲濾波器,實現多重回聲效果。給出加入多重回聲后的信號頻譜。
3)設計均衡器,使得得不同頻率的混合音頻信號,通過一個均衡器后,增強或削減某些頻率區域。
選題二.對混有噪聲的音樂信號進行濾波:
1)在一段音樂信號中混入兩個頻率的正弦型干擾信號,利用FFT計算該混合信號的頻譜并確定干擾信號的頻譜;
2)利用二階帶阻濾波器設計一個能濾出干擾信號的梳狀濾波器; 3)利用梳狀濾波器濾除信號中的噪聲,播放處理前后的信號,并比較處理前后的結果
本次課程設計共有6道必做題目,并且我們并沒有系統的學過MATLAB,所以我并沒有做選做題。
第二章 設計題目及思想
2.1 各題目的設計思想
2.1.1 第一題
一、題目:
1.給定模擬信號:xa(t)?e?1000t
1)選擇采樣頻率Fs = 5000Hz和合適的信號長度,采樣得到序列 x1(n)。求并畫出x1(n)及其序列傅里葉變換 |X1(ejw)|。
2)選擇采樣頻率Fs = 1000Hz和合適的信號長度,采樣得到序列 x2(n)。求并畫出x2(n)及其序列傅里葉變換 |X2(ejw)|。3)說明|X1(ejw)|與|X2(ejw)|間的區別,為什么?
二、思想:
第一題主要的考查點是對連續時間信號的抽樣,對抽樣信號進行傅里葉變換以及不同采樣頻率對幅頻特性曲線的影響等。主要的理論依據如下:
(1)對連續時間信號的抽樣:設連續時間信號為x(t),則對其采樣得到的離散時間信號為x(n)=x(nT),T為采樣周期;
(2)離散時間信號的傅里葉變換:X(e)?FT[x(n)]?j?
由于抽樣后的離散時間信號題目沒有給出,故應先對連續信號做抽樣,后再對離散時間信號進行傅里葉變換。本次我直接采用輸入公式的方式進行傅里葉變換。
n????x(n)e??j?n。
2.1.2 第二題
一、題目:
2.已知兩系統分別用下面差分方程描述:
y1(n)?x(n)?x(n?1)
y2(n)?x(n)?x(n?1)
試分別寫出它們的傳輸函數,并分別打印H(ejw)~w曲線。說明這兩個系統的區別。
二、思想:
第二題的主要考查點是由系統的方程得出系統的傳輸函數。而在MATLAB中有freqz函數可直接求出系統的傳輸函數,然后由abs函數以及angle函數可得出其幅頻相頻特性曲線。
2.1.3 第三題
一、題目:
3.已知已調信號x(t)?cos(?t)cos(9?t),其中調制信號cos(?t),載波為cos(9?t)。
1)選擇合適的采樣頻率及信號長度,使用FFT分析該已調信號的頻譜并畫出其幅頻特性和相頻特性曲線圖。2)對該已調信號進行解調,恢復原調制信號。
二、思想:
第三題的主要考查點是信號的調制與解調。這屬于通信原理的主要原理知識。本題第一問需要使用FFT分析已調信號的頻譜特性,在MATLAB中FFT可以直接作為函數調用,所以我選擇直接調用FFT對其進行分析。第二問中要 對已調信號進行解調。其主要思想是解調已調信號需要先將已調信號乘以載波后選擇適當的濾波器進行濾波,將其多余信號濾除。
2.1.4 第四題
一、題目:
4.已知三角波序列x1(n)和反三角波序列x2(n):
?n?1,0?n?3?4?n,0?n?3??x1(n)??8?n,4?n?7 x2(n)??n?3,4?n?7
?0,?0,其它其它??用N=8點FFT分析序列x1(n)和x2(n)的幅頻特性,觀察兩者的序列形狀和頻譜特性曲線有什么異同?繪出兩序列及其幅頻特性曲線。在x1(n)和x2(n)的末尾補零,用N=16點FFT分析這兩個信號的幅頻特性,觀察幅頻特性發生了什么變化?兩情況的FFT頻譜還有相同之處嗎?這些變化說明了什么?
二、思想:
第四題的主要考查點是FFT快速傅里葉變換的用法。而這在MATLAB中,FFT可以直接作為函數調用,所以我選擇用FFT快速傅里葉變換進行分析三角波序列。不過首先要將三角波以及反三角波的取值范圍和函數值計算出來,后才可直接對序列進行FFT變換并分析其頻譜特性。
2.1.5 第五題
一、題目:
5.設有一信號x(n)=1+cos(n)+cos(4?2?n),設計各種IIR數字濾波器以實現: 31)低通濾波器,濾除cos(2??n)的成分,保留成分1+cos(n)342)高通濾波器,濾除1+cos(n)的成分,保留成分cos(4?2?n)33)帶通濾波器,濾除1+cos(?2??n)的成分,保留成分cos(n)342?n)34)帶阻濾波器,濾除cos(n)的成分,保留成分1+cos(4要求:1)求出各個濾波器的階數,設計各濾波器。畫出各濾波器的幅頻和相 頻特性,計算濾波器的系統函數H(z)。2)畫出濾波前后信號的時域、頻域波形。
二、思想:
第五題的主要考查點是用IIR雙線性變換法設計BW類型(低通、高通、帶通以及帯阻)數字濾波器。
其主要理論依據如下:(1)正切變換實現頻率壓縮:
??2tan(?1T/2)/T
(2)雙線性變換:
s?(2/T)[(1?z?1)(1?z?1)]
或
z?(2/T?s)/(2T/? s
(3)將所需數字濾波器的邊界頻率轉換成相應類型的模擬濾波器的邊界頻率公式為:
??(2/T)tan(?/2)
其設計主要按照課中所學濾波器設計的步驟進行分步設計。但由于其系統函數的公式無法直接輸入,故采用buttord函數進行巴特沃斯濾波器的方法分析所給參數計算出其系統函數的系數矩陣。再借由系統函數的系數矩陣得出具體的系統函數。得出系統函數后便可得到相應的階數以及幅頻、相頻特性。
濾波前的信號頻域波形由先對時域波形進行FFT變換后得出。對原信號的濾波則采用直接調用filter函數進行對原函數的濾波,而頻域波形同樣經由先FFT變換分析后得出。
2.1.6 第六題
一、題目:
6.1)用Hanning窗設計一線性相位帶通數字濾波器,要求:N=15。觀察它的實際3dB和20dB帶寬。N=45,重復這一設計,觀察幅頻和相位特性的變化,注意長度N變化的影響;
2)分別改用矩形窗和Blackman窗,設計(1)中的帶通濾波器,觀察并記錄窗函數對濾波器幅頻特性的影響,比較三種窗的特點;總結窗的不同長度和不同窗對濾波器的影響
二、思想:
第六題的主要考查點是幾種主要的窗函數(矩形窗、漢寧窗、哈明窗等)對離散時間信號的截取,并用FFT對其頻譜進行分析。其主要理論依據如下:
(1)矩形窗(Rectangle Window)
wR(n)?RN(n)
其幅度函數為:
WRg(?)?sin(?N/2)/sin(?/2)
(2)漢寧(Hanning)窗——升余弦窗
wHn(n)?0.5[1?cos(2?n/(N?1))]RN(n)
其頻譜函數為:
WHn(ej?)?FT[wHn(n)]?WHng(?)e?j(N?1)?/2
其幅度函數為:
WHng(?)?0.5WRg(?)?0.25[WRg(??2?/N)?WRg(??2?/N)]
(3)哈明(Hamming)窗——改進的升余弦窗
wHm(n)?[0.54?0.46cos(2?n/(N?1))]RN(n)
其頻譜函數為:
WHm(ej?)?0.54WR(ej?)?0.23WR(ej(??2?/(N?1)))?0.23WR(ej(??2?/(N?1)))
當N??1時,其幅度函數可近似表示為:
WHmg(?)?0.54WRg(?)?0.23WRg(??2?/N)?0.23WRg(??2?/N)
2.2 GUI界面設計思想
本次課程設計由于結果中圖形太多,若一次性完成所以題目的演示則需要開創許多個新的窗口進行圖形建立,這樣不方便驗收及查看。所以最后決定采用圖形用戶(Graphical User Interface,簡稱 GUI)界面,下面對GUI界面進行簡單的一些介紹。
GUI 是 Graphical User Interface 的簡稱,即圖形用戶界面,通常人機交互圖形化用戶界面設計經常讀做“goo-ee”,準確來說 GUI 就是屏幕產品的視覺體驗和互動操作部分。
GUI 是一種結合計算機科學、美學、心理學、行為學,及各商業領域需求分析的人機系統工程,強調人—機—環境三者作為一個系統進行總體設計。
在MATLAB主界面中輸入“guide”,再敲擊回車鍵,彈出GUI界面窗口,即可新建GUI界面,如下圖所示:
圖2.5 GUI界面的新建窗口圖
在圖2.5的窗口中點擊“OK”,則可新建一個GUI界面,并進入其編輯窗口,如圖2.6所示:
圖2.6 GUI界面的編輯窗口圖
隨后便可在此窗口內編輯演示界面,此次設計主要利用的是Static Text(靜態文本)和Push Button(按鈕)。在界面中輸入相關的靜態文本,并新建若干個按鈕,再以此在每個按鈕上點擊右鍵,選擇View CallBacks調出Call Back函數,將相應設計題的源代碼輸入Call Back函數界面中對應按鈕的段落后。如圖2.7 和2.8所示:
圖2.7 調用CallBack的操作流程圖
圖2.8 CallBack代碼編輯窗口圖
如此便可以建立一個方便、美觀又直觀的演示界面,以便老師驗收時操作簡單、條理清晰、并且用時不長。第三章 調試及結果分析
3.1 GUI界面的結果與調試
這次設計的演示界面采用的是GUI界面,這一點在前面提到過,在此不贅述了,只將界面的調試結果說明一下。演示界面如圖3.1所示:
圖3.1 演示界面圖
如圖3.1所示,用戶克根據需要選擇題目,每個題中又有不同的選項,只要點擊一下對應的按鈕,相關信號的處理結果就會出現在一個新的figure窗口中。
3.2 各題目的結果與調試
3.2.1 第一題
第一題的調試結果如圖3.2所示,各圖形的意義均有明確表明。
圖3.2 第一題的調試結果圖
分析: 分別以所要求采樣頻率fs=5000Hz、1000Hz對xa(t)進行等間隔采樣,得到x(n)?xa(nT),(T?1/fs為采樣周期),可知,采樣信號的頻譜函數是在原模擬信號頻譜函數的周期延拓;若以頻率f為自變量,則以采樣頻率fs?1/T為延拓周期;對頻帶限于fc的模擬信號xa(t),根據采樣定理,只有當fs?2fc時,采樣后才不會發生頻譜混疊失真。但是在Matlab上是無法計算連續函數,只有在當fs足夠大的時候,我們才將頻譜混疊忽略不計,從而可對采樣序列進行傅里葉變換;最后應用subplot()命令實現畫圖,并注意到要歸一化。
由以上實驗得到的圖形結果可以看到:,當采樣頻率越大的時候,采樣信號的頻譜越陡峭,而其失真情況也越來越小,根據采樣定理“采樣頻率越接近信號頻率,其失真情況就越小”可以得到上述結論。
3.2.2 第二題
第二題的調試結果如圖3.3所示,各圖形的意義均有明確表明。
圖3.3 第二題的調試結果圖
分析:由于所求系統的系統方程已經由題目可知,則其零極點分布圖也可由上圖所知。故根據計算所得出其系統函數后做FFT變換所得幅頻特性和相頻特性均由上圖可知。
3.2.3 第三題
第三題的調試結果如圖3.4所示,上圖為第一問結果,下圖為第二問結果。
圖3.4 第三題的調試結果圖
分析:當已調信號進行不同點數的采樣后再經不同間隔的FFT變換后,其展現的幅頻特性以及相頻特性類似于上圖。因選取的采樣點不同則結果不同。第二問中的濾波器的設計參數由題目中的調制信號和載波決定,由此設計出的低通濾波器的系統函數圖如上。最后因濾波器的不嚴密而導致解調后的原信號有所失真,并不能完完全全的解調出原信號。
3.2.4 第四題
第四題的調試結果如圖3.5所示,圖中所代表意義均有標明
圖3.5 第四題的調試結果圖
分析:首先先根據題目中所給的三角波函數以及反三角波函數的函數式得出其波形。經由不同采樣的FFT變換后有stem畫出其圖形如上。由圖可看出三角波序列和反三角波序列在8點的FFT變換后的圖形基本一樣,沒有太大差別。而16點FFT后的圖形則有不小差異,此說明對其FFT變換時,取的點數越多,圖形差異越大。
3.2.5 第五題
第五題的調試結果第一問中低通濾波器的圖形如圖3.6所示。
圖3.6 第五題的低通濾波器調試結果圖
高通濾波器的圖形如圖3.7所示。
圖3.7 第五題的高通濾波器調試結果圖 帶通濾波器的圖形如圖3.8所示。
圖3.8 第五題的帶通濾波器調試結果圖 帶阻濾波器的圖形如圖3.9所示。
圖3.9 第五題的帶阻濾波器調試結果圖 分析:經由一下理論知識可依次求出各濾波器的參數及系統函數。(1)正切變換實現頻率壓縮:
??2tan(?1T/2)/T
(2)雙線性變換:
s?(2/T)[(1?z?1)(1?z?1)]
或
z?(2/T?s)/(2T/? s(3)將所需數字濾波器的邊界頻率轉換成相應類型的模擬濾波器的邊界頻率公式為:
??(2/T)tan(?/2)
頻域圖形均由FFT變換后可得出。此次設計IIR數字濾波器是其參數選擇并不精準,均由自己在可行范圍中嘗試得出最像的結果。但其濾波器的幅頻特性和相頻特性仍然具有失真現象。
3.2.6 第六題
第六題的調試結果依次的圖形如圖4.0所示。
圖4.0 第六題的調試結果圖
分析:此圖由上往下依次為N=15及N=45的漢明窗、布萊克曼窗和矩形窗。由圖形可以看出N越小時窗函數的主瓣范圍越大,副瓣坡度越緩。濾波器濾波功能越好。
第四章 課程設計總結
4.1 課程設計所遇問題及解決方案
拿到設計題時,完全不知道從何處入手,一開始只會按照書上的解題思路一步步來算,一步步來解這些題目,解出來后再設法將其輸入編程中,從而的到想要的答案。可是每次如此,系統輸出的結果總是和預想中的不一樣,有些甚至不知道哪里出了錯。不過后來,在翻閱了有關參考文獻后,知道了題目中大部分內容都可以通過MATLAB強大的函數工具箱里的函數直接實現。開始設計后,總是用錯函數,輸錯參數等,這類問題層出不窮,畢竟是第一次用MATLAB進行設計實踐,很多問題還是要虛心向老師和同學請教的。在很多次的請教,修改后,程序基本成功地得到了運行,調試過程中又遇到了一些小問題,大多是由于粗心 導致的,這些問題在調試過程中都得到了修正。
這次課程設計過程中遇到的主要問題是頻率歸一化的問題,開始對歸一化的概念不是很清楚。在問了班上能力較強的同學后,對這個概念深入理解了,并在程序中成功地實現了。
4.2 課程設計心得體會
通過這兩周的《現代信號處理》課程設計實踐,我學習會了MATLAB編程語言的基本概念、語法、語義和數據類型的使用特點,加深了對數字信號處理這門學科所學理論知識的理解,掌握了運用結構化程序設計的基本思想和方法,更重要的是培養了自己的自學能力。
因為這是我們第一次接觸MATLAB編程語言,在編寫程序以及調試的過程中遇到了很多困難,但是我通過去圖書館查找資料,請教同學老師,再自己一點點改善程序,最終還是編寫出一個比較完善的程序,基本實現了所有要求功能,這是最值得我欣慰的一點。
剛拿到程序設計課題時,我感覺一片茫然,因為在之前的信號處理學習中,本身對數字信號處理這門學科的學習就不精深,更何況只是在一些例題中接觸過MATLAB語言,甚至沒有看過一些基礎的書籍,更沒有上過課,所以初次遇到一個實際問題,感覺無從下手。這是由于自己對MATLAB的模塊設計不夠理解,同時對MATLAB的基本語句一無所知,不過通過請教老師懂得了首先要了解解題思路,以及若要實現此次設計需要哪些最基本的思路和函數。這樣一下子豁然開朗,掌握了基本設計思路之后,后面的編程就順利多了。至此,我真真體會到清晰地思路對成功編寫一個程序的重要性。
當然成功編寫一個程序絕非易事,之前,我總以為程序能夠正常運行,就代表著編程成功,后來我才發現我大錯特錯了。我用了三天時間,完成了程序的編寫、改錯,但我立刻發現盡管程序能夠正常運行,部分功能卻不完善,甚至不能出現自己想要的結果。經過一次又一次調試、修改又修改,一點一點發現問題并改正,我才真正發現編程遠沒有想象中的簡單,并且深刻體會到編程和單純的解題是有著多么大的不同。它需要的不僅是清晰地編程思路、編程技巧,還需要細心,有耐心有毅力。
在編程過程中,我遇到了許多問題,通過查找資料也未能找到原因,每次我想老師請教,可老師總不是萬能的,顧不到每一位同學的要求。這時,同學就是一個很好的求助對象。我們可以找曾經接觸過MATLAB的同學學習、交流、討論。這樣不僅我們可以學習,他們也可以更加鞏固他們的知識。我想這便是團隊 精神,有的時候真的是人多力量大。
最后,在此次編程過程中,我收獲的不僅僅是對上學期已學的知識的鞏固,和MATLAB這項新的工作平臺,我還學會了遇到難題時不能輕易放棄,要有迎難而上的勇氣,有時候自己一個人完成不了的理解不了的知識,多請教請教別人是一項很好的選擇等等。總之,這次課程設計讓我學會了很多,我會銘記于心,讓其在以后的學習、生活或者工作中都時刻警醒著我。
附錄:
源程序清單
%1.現代碼 figure(1)t=-0.005:0.0001:0.005;y1=exp(-1000*abs(t));T=0.0002;n=-25:1:25;y2=exp(-1000*abs(n*T));N=200;k=0:1:N;w=pi*k/N;X=y2*exp(-j*n'*w);X=real(X);w=[-fliplr(w),w(2:N+1)];X=[fliplr(X),X(2:N+1)];subplot(2,2,1);plot(t,y1);title('原函數');xlabel('t/秒');ylabel('y1(n)');subplot(2,2,2);stem(n*T,y2,'.');xlabel('n*T/秒');ylabel('y2(n)');title('(1)離散序列,fs=5000');subplot(2,3,4);plot(w/pi,X);xlabel('頻率/pi');ylabel('Xl(w)')title('(1)序列的傅里葉變換')t=-0.005:0.0001:0.005;y1=exp(-1000*abs(t));T=0.001;n=-5:1:5;y2=exp(-1000*abs(n*T));N=200;k=0:1:N;w=pi*k/N;X=y2*exp(-j*n'*w);X=real(X);w=[-fliplr(w),w(2:N+1)];X=[fliplr(X),X(2:N+1)];subplot(2,3,5);stem(n*T,y2,'.');xlabel('n*T/秒');ylabel('y2(n)');title('(2)離散序列,fs=1000');subplot(2,3,6);plot(w/pi,X);xlabel('頻率/pi');ylabel('Xl(w)')title('(2)序列的傅里葉變換')
%2.figure(1)B=[1,1];A=1;subplot(2,3,3);zplane(B,A);xlabel('實部Re');ylabel('虛部Im');title('y(n)=x(n)+x(n-1)傳輸函數零極點分布');grid on [H,w]=freqz(B,A,'whole');subplot(2,3,1);plot(w/pi,abs(H),'linewidth',2);grid on;xlabel('omega/pi');ylabel('|H(e^j^omega)|');title('幅頻響應特性');axis([0,2,0,2.2]);subplot(2,3,2);plot(w/pi,angle(H),'linewidth',2);grid on;axis([-0.1,2.1,-1.6,1.6]);xlabel('omega/pi');ylabel('phi(omega)');title('相頻響應特性');B=[1,-1];A=1;subplot(2,3,6);zplane(B,A);xlabel('實部Re');ylabel('虛部Im');title('y(n)=x(n)-x(n-1)傳輸函數零極點分布');grid on [H,w]=freqz(B,A,'whole');subplot(2,3,4);plot(w/pi,abs(H),'linewidth',2);grid on;xlabel('omega/pi');ylabel('|H(e^j^omega)|');title('幅頻響應特性 ');axis([0,2,0,2.2]);subplot(2,3,5);plot(w/pi,angle(H),'linewidth',2);grid on;xlabel('omega/pi');ylabel('phi(omega)');title('相頻響應特性');axis([-0.1,2.1,-1.6,1.6]);
%3.%(1)figure(1)t=0:1.9:100;n=0:1:99;x1=cos(pi*t);x2=cos(9*pi*t);y1=x1.*x2;y2=fft(y1,100);subplot(3,1,1);plot(t,y1);title('已調信號x');xlabel('t/秒');ylabel('y1(n)');subplot(3,1,2);stem(n,abs(y2),'.');title('幅頻特性');xlabel('頻率/pi');ylabel('幅值');pha=angle(y2);subplot(3,1,3);stem(n,pha,'.');title('相頻特性');xlabel('頻率/pi');ylabel('相位(rad)');axis([0 99-5 5]);
%(2)figure(2)t1=1;t=[0:0.05:5];x=cos(pi*t).*cos(9*pi*t);%已調信號 subplot(2,2,1);plot(t,x);title('已調信號');y=x.*cos(9*pi*t);%已調信號再乘以載波信號 wp=6*pi/5;ws=14*pi/8;Rp=3;As=30;%選定濾波器的參數,并設計模擬低通濾波器 [N,wc]=buttord(wp,ws,Rp,As,'s');[B,A]=butter(N,wc,'s');[H,w]=freqs(B,A,127);%濾波器的系統函數 subplot(2,2,2);plot(w/(2*pi),abs(H));axis([0,5,0,1]);title('濾波器系統函數');w1=linspace(0,40,64);%求y的頻譜 F1=y*exp(-j*t'*w1);F=[fliplr(F1),F1(2:64)];w=[-fliplr(w1),w1(2:64)];subplot(2,2,3);plot(w,abs(F)),title('y的頻譜');Y3=H'.*F;%通過信號的頻譜與系統函數相乘進行濾波 z=Y3*exp(j*w'*t)/pi;%濾波后的序列 subplot(2,2,4);plot(t,z);title('濾波后的序列');
%4.figure(1)n1=0:3,n2=4:7;x1=n1+1,x2=8-n2;subplot(2,3,1);stem([n1,n2],[x1,x2],'.');title('三角波序列');x=[1 2 3 4 4 3 2 1];subplot(2,3,2);stem(abs(fft(x)),'.');title('三角波序列8點FFT');x=[1 2 3 4 4 3 2 1 0 0 0 0 0 0 0 0];subplot(2,3,3);stem(abs(fft(x)),'.');title('三角波序列16點FFT');n1=0:3,n2=4:7;x1=4-n1,x2=n2-3;subplot(2,3,4);stem([n1,n2],[x1,x2],'.');title('反三角波序列');x=[4 3 2 1 1 2 3 4];subplot(2,3,5);stem(abs(fft(x)),'.');title('反三角波序列8點FFT');x=[4 3 2 1 1 2 3 4 0 0 0 0 0 0 0 0];subplot(2,3,6);stem(abs(fft(x)),'.');title('反三角波序列16點FFT');
%5.%低通 figure(1)n=0:1:24;x=1+cos(pi*n/4)+cos(2/3*pi*n);Wp=1/4*pi;Ws=2/3*pi;Ap=3;As=30;Os=2*tan(Ws/2);Op=2*tan(Wp/2);N=ceil(1/2*log10((10^(0.1*As)-1)/(10^(0.1*Ap)-1))./log10(Os/Op)), Oc1=Op*(10^(0.1*Ap)-1)^(-1/(2*N));Oc2=Os*(10^(0.1*As)-1)^(-1/(2*N));Oc=[Oc1,Oc2];Oc=min(Oc)
wp=[Wp/pi];wr=[Ws/pi];[N,wc]=buttord(wp,wr,Ap,As,'s');[b,a]=butter(N,wc,'low');sysl=tf(b,a)w=linspace(0,2*pi,500);
n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('濾波前時域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('濾波前頻域波形');
x2=filter(b,a,x1);subplot(223),plot(n,x2)title('濾波后的時域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('濾波后的頻域波形');
figure(2);freqz(b,a,1000);title('濾波器幅頻相頻響應');%高通 figure(1)n=0:1:24;x=1+cos(pi*n/4)+cos(2/3*pi*n);Wp=2*pi/3;Ws=1*pi/4;Ap=3;As=30;Os=2*tan(Ws/2);Op=2*tan(Wp/2);N=ceil(1/2*log10((10^(0.1*As)-1)/(10^(0.1*Ap)-1))./log10(Op/Os)), Oc1=(1/Op)*(10^(0.1*Ap)-1)^(-1/(2*N));Oc2=(1/Os)*(10^(0.1*As)-1)^(-1/(2*N));Oc=[Oc1,Oc2];Oc=min(Oc)
wp=[Wp/pi];wr=[Ws/pi];[N,wc]=buttord(wp,wr,Ap,As,'s');[b,a]=butter(N,wc,'high');sysl=tf(b,a)w=linspace(0,2*pi,500);
n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('濾波前時域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('濾波前頻域波形');
x2=filter(b,a,x1);subplot(223),plot(n,x2)title('濾波后的時域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('濾波后的頻域波形');
figure(2);freqz(b,a,1000);title('濾波器幅頻相頻響應');
%帶通 figure(1);wp1=(3*pi)/16;wp2=(5*pi)/16;ap=1;ws1=(1*pi)/16;ws2=(5*pi)/9;as=50;wp=[wp1/pi wp2/pi];ws=[ws1/pi ws2/pi];[N,wn]=buttord(wp,ws,ap,as);[b,a]=butter(N,wn,'bandpass');N, sysl=tf(b,a), w=linspace(0,2*pi,500);
n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('濾波前時域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('濾波前頻域波形');
x2=filter(b,a,x1);subplot(223),plot(n,x2)title('濾波后的時域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('濾波后的頻域波形')
figure(2);freqz(b,a,1000);title('濾波器幅頻相頻響應');
%帶阻 figure(1);
wp1=pi/16;wp2=(5*pi)/9;ap=1;ws1=(3*pi)/16;ws2=(5*pi)/16;as=50;wp=[wp1/pi,wp2/pi];ws=[ws1/pi,ws2/pi];[N,wc]=buttord(ws,wp,ap,as);[b,a]=butter(N,wc,'stop');w=linspace(0,2*pi,500);N, sysl=tf(b,a)
n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('濾波前時域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('濾波前頻域波形');
x2=filter(b,a,x1);subplot(223),plot(n,x2)title('濾波后的時域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('濾波后的頻域波形')
figure(2);freqz(b,a,1000);title('濾波器幅頻相頻響應');
%6.%(1)figure(1)Window=hanning(16);h=fir1(15,[0.3 0.5],Window);
freqz(h,1)title('N=15的漢寧窗');figure(2)Window=hanning(46);h=fir1(45,[0.3 0.5],Window);freqz(h,1)title('N=45的漢寧窗');%(2)figure(3)Window=blackman(16);b=fir1(15,[0.3 0.5],Window);freqz(b,1)title('N=15的布萊克曼窗');
figure(4)Window=blackman(46);b=fir1(45,[0.3 0.5],Window);freqz(b,1)title('N=45的布萊克曼窗');
figure(5)Window=boxcar(16);b=fir1(15,[0.3 0.5],Window);freqz(b,1)title('N=15的矩形窗');
figure(6)Window=boxcar(46);b=fir1(45,[0.3 0.5],Window);freqz(b,1)title('N=45的矩形窗');
參考文獻
[1]高西全,丁玉美.數字信號處理.第三版.西安:西安電子科技大學出版社,2008 [2]彭軍,李宏.信號與信息處理基礎.北京:中國鐵道出版社,2009 [3]A.V.奧本海姆,等.信號與系統.劉樹棠,譯.西安:西安交通大學出版社,1985 [4]程佩青.數字信號處理教程.第二版.北京:清華大學出版社,2001 [5]陳懷琛,吳大正,高西全.MATLAB在電子信息課程中的應用.第三版.北京:電子工業出版社,2006 [6]董長虹.MATLAB信號處理與應用.北京:國防工業出版社,2005
第三篇:中南大學計算機實踐報告
中南大學
本科生課程設計(實踐)任務書,設計報告
(大學計算機基礎)
題 目:武俠世界 學生姓名:張澤
指導老師:溫國海
學 院:粉末冶金研究院 專業班級:材化1401班
學生學號:0702140109
計算機基礎教學實驗中心
2014年1月7日
武俠世界
——計算機實踐課程設計報告
一:任務內容
要想制作好一個網頁,首先要在整體上規劃好自己網站的主題和內容,確定 自己需要傳達給訪問用戶的主要信息,然后仔細斟酌,把自己所有要表達的意念合情合理地組織起來;其次,是設計一個富有個性的頁面式樣,務求盡善盡美。這樣制作出來的主頁才會清晰、明了、內容充實。我從小就受爸爸影響,喜歡武俠小說,對武俠有一種特殊的情感,并且對武俠的一些方面的情況有較深的理解,因此我 把這次計算機實踐課程的主題定為“武俠世界”。主題實踐報告由武俠概述,武俠大家,武俠各類作品以及一個著重介紹武俠小說代表人物——金庸的PPT等組成。報告以圖片和為主,而內容以武俠小說屋重點;而人物以金庸古龍為主。
二:設計步驟
因為我選擇以“武俠世界”作為我的網頁的主題,在設計網頁的時候,我強調一種俠骨柔腸,壯懷激烈的氛圍。根據我的主題內容,我將此次網頁設計為三個網頁,第一個網頁主要介紹“武俠文化”,簡潔地對其進行一個文化角度概述,而且我從網上搜集了豐富的圖片和文獻資料添到了網頁中,并且在圖片的選擇上我特別注重圖片色彩和材料的搭配。下面我具體介紹一下:
1、制作與我所選主題有關的PPT 我從網上搜集了一些關于武俠小說宗師——“金庸”的文獻和圖片,尤其是他的一些重大成果介紹和他的武俠作品,還有許多著名評論家對他的評價,并使用Powerpoint來將其制作成有七頁的PPT。
2、使用Dreamweaver來制作網頁
我新建了三個網頁,在介紹“武俠大家”的網頁二中,我使用了超鏈接將我制作的PPT掛到了這個網頁上,并且也同樣使用超鏈接連接上下一個網頁。在網頁各個網頁中,我尤其重視圖片的應用。實際上,一張好的圖片可以抵得上千言萬語,圖片比文字更加形象生動,也更加吸引瀏覽者的興趣。
三、方法技巧
1、制作PPT 我使用微軟公司推出的Powerpoint來制作PPT,它是最優秀的演示文稿制作軟件之一,也是很簡單使用的多媒體整合平臺,我用Powerpoint制做了七張幻燈片,我在幻燈片制作過程中加入了藝術字,讓幻燈片變得更多彩,并且制作了幻燈片之間的動畫切換效果,插入合適的背景和圖片等等,通過圖文并茂的形式將實踐項目所要求的內容展現得更加生動。我在網頁的首頁插入了幾個動畫,一個動畫是實現字與“輝光”藝術效果的結合,一個動畫是圖片的轉換。并且加入了滾動式字幕,Flash技術的運用使得使得網頁“動靜結合”增加情趣與美感,從而與網頁所要表現得古箏的韻律美相呼應融合。并且我還做了圖畫運動。打開“幻燈片放映”菜單下的“自定義動畫”選項,就可以在屏幕右側出現“自定義動畫”任務窗口。動畫的整個設置過程就可以在這個窗口中完成,如果選中窗口底部的“自動預覽”選項,那么所添加的任何動畫效果都能在編輯區內得到實時的預覽。同時還可利用Powerpoint來做出一個自己滿意的圖片或者是文字的出現方式,這可讓我們的PPT更加多彩和多元化。
2、制作網頁
我使用Dreamweaver來制作網頁,Dreamweaver是世界頂級廠商adobe推出的一套擁有可視化編輯界面,它可以最快速地將PPT和Word文檔移到網頁上。Dreamweaver是唯一提供Roundtrip HTML、視覺化編輯與原始碼編輯同步的設計工具。1)插入表格
在文檔窗口中,將光標放在需要創建表格的位置,單擊“常用”快捷欄中的表格按鈕彈出的“表格”對話框,指定表格的屬性后,在文檔窗口中插入設置的表格。插入表格有助于我們規劃和美化網頁。2)插入圖像
點擊導航欄上的插入--->圖像,來插入圖片到頁面中,在網頁中插入圖片可以讓網頁變得更加漂亮、美觀,同時也更加吸引人。3)插入超鏈接
在常用功能下點擊超級鏈接圖標,點擊后,彈出超級鏈接對話框,在這里我們主要填寫鏈接和選擇目標,就可以了,然后點擊確定,還有一種方法添加超級鏈接就是選中文字后,在下方的屬性欄里css下的鏈接直接添加超級鏈接,設置好超級鏈接后,文字就會變成藍色的,并且在文字下方有下劃線。4)插入文本
要向Dreamweaver CS6文檔添加文本,可以直接在Dreamweaver CS6“文檔”窗口中鍵入文本,也可以剪切并粘貼。
用鼠標在文檔編輯窗口的空白區域點一下,窗口中出現閃動的光標,提示文字的起始位置,將文本中的文字素材復制/粘貼進來。5)保存
用鼠標點擊“文件”選項,在彈出的選項中選中“保存(S)”即可。
四:問題及解決過程
問 題1:設計網頁過程中無法插入圖片
解決過程:根據頁面彈出的窗口中的提示,知道了圖片無法插入的原因是之前網上下載的圖片的格式不對,因此我通過翻閱課本找到改格式的方法,隨后將圖片格式改了過來。
問 題2:問題二:做網頁時,之前放在網頁中的圖片無法顯示 解決過程:經上網查閱得知,在進行文件復制時,要連同圖片文件一起復制,并且不要改變文件名。
問 題3:制作超鏈接時總是鏈接不到自己想要的內容
解決過程:請教同學后得知,所要鏈接的內容要放到指定文件夾中,把鏈接內容放入正確位置后,連接成功。
五:總結
從完成計算機實踐任務的過程中,我收獲了很多。不光是計算機實踐技能方
面的收獲,同時還有對于學習態度及方法的思考。在制作網頁的過程中肯定會遇到各種各樣不同的問題,在這個發現問題解決問題的過程中,其實對于計算機實踐能力的培養能夠到積極作用。計算機實踐是一個很難得的機會去督促自己鍛煉上機能力,只有自己親自實踐才能夠從中得到一些很有價值的發現。通過這次實踐活動我將上課所學到的理論知識應用到了實際中,我對這門課程有了更深的理解。還有非常重要的兩點是——合作精神以及獨自解決問題的能力。不懂就問,互相幫助同時注重自我思考。這樣,我們才能不斷取得進步,不斷提高能力,最后取得成功!
張澤
2014年12月31日
第四篇:中南大學計算機實踐報告
中南大學
本科生課程設計(實踐)任務書、設計報告
(大學計算機基礎)
題目
學生姓名
指導教師
學院
專業班級
學生學號 美食天下 黃恰 李力 建筑與藝術學院環境設計1301班 19111301
21計算機基礎教學實驗中心 2013年12 月27日
美食天下
——計算機實踐課程設計報告
一.任務內容
要想制作好一個網頁,首先要在整體上規劃好自己網站的主題和內容,確定自己需要傳達給訪問用戶的主要信息,然后仔細斟酌,把自己所有要表達的意念合情合理地組織起來;其次,是設計一個富有個性的頁面式樣,務求盡善盡美。這樣制作出來的主頁才會清晰、明了、內容充實。美食永遠都是大家都喜歡且關注的。主題實踐報告以美食為線索展開介紹,內容包括美食的概念、美食的分類、中國各地美食、美食菜譜等內容:
1)在“美食”一大內容中,介紹到美食的定義,但是不是所有人對美食的標準都是一樣的,其實美食是不分貴賤的,只要是自己喜歡的,就可以稱之為美食。
2)在“創意美食”這部分內容中,分享了有關創意美食的精美圖片,讓大家對美食的發展有所認識。
3)在“美食菜譜”中,展示出了一些精美詳細的美食菜譜,大家可以通過菜譜學習如何烹飪美食,吃上自己親手制作的美食,從勞動中獲得快樂。
4)“中國美食”內容中則介紹了中國傳統美食悠久的歷史和來源,介紹了其豐富內涵,讓大家對中國美食有全面的了解。
5)在“美食分類”這一內容中,我介紹了中國美食八大菜系的詳細特征以及其各自的代表性食物。
通過這五大內容的介紹,旨在對美食做一個全面的解釋和分析。
二.設計步驟
首先確定了“美食天下”的主題后,我策劃將網頁的風格定為輕快明麗、簡潔清新.主題分為確定的五大內容,這份設計實踐項目在首頁之下分五大分塊。
按照計算機實踐的任務要求,也為了使網頁制作及設計精美,我在項目中運用了5個網頁,制作了5張幻燈片,從網上搜集豐富的資料添入網頁和幻燈片中,并且在首頁中加入了簡易動畫以增添藝術效果,首頁與其它網頁之間,首頁與幻燈片之間用超鏈接聯系起來,使得整個項目結構緊湊,銜接緊密。在圖片的選擇上,我重視了顏色的搭配和與文字內容的較好結合,以保證達到最佳的表達效果.下面我具體介紹一下:
1.網頁一:
網頁一我把它作為主頁,主頁的設計一定要突出主題。通過精心的設計,我把主頁營造出韻味十足的畫面,給人耳目一新的感覺的同時增加好奇感。我開門見山的把我要介紹的關于主題“美食天下”的各大內容羅列出來,能夠簡單的明了的根據觀看興趣選擇看的內容。在界面,我選擇了美食圖片,設置了字幕,加入了Flash動畫,讓界面感覺簡單而不單一并且有鮮活的動感效果。
2.網頁二和網頁
三、網頁
四、網頁五:
網頁二、三和四、五我都是以簡明清晰的風格設計,把各自介紹的內容展現出來,豐富而不繁亂。在凸顯的部分中我加入了美食元素,與flash動畫相結合,顯示出雅俗共存。并且加入與介紹內容相呼應的圖片,減少花俏的裝飾,讓頁面有錯落有致的美感。
3.PPT
在“美食天下”的PPT中,首尾兩張PPT前后呼應,為了使美食的介紹顯得前后統一,我基本上采用的相似的風格,即簡潔明快,條理清晰。但是使之“求同存異”,使PPT不顯單調,我在PPT連接上采用的不同的動畫效果,讓PPT之間呈現自然過渡。實踐步驟:1.設置幻燈片版式。2.輸入信息。3.設置應用設計版式。4.應用配色反案選擇。5.幻燈片的格式化設置。6檢查、保存幻燈片。
三.方法技巧
⑴ 我使用微軟公司推出的FrontPage來制作網頁,它的功能強大,簡單易用,功能豐富。FrontPage編輯器具有“所見即所得”的功能,而且有大量的模板和向導,只要使用工具欄或菜單,就能很簡便的美化網頁。我能將從網上搜集的各
類文字、圖片信息按自己的喜好插入網頁,因而它的設計具有很大的自主選擇性。⑵ 為了使網頁內容更豐富,我使用PowerPoint。PowerPoint是微軟公司出品的制作幻燈片的軟件,是最優秀的演示文稿編輯軟件之一,也是很簡單使用的多媒體整合平臺。我用PowerPoint制作了5個幻燈片。我在幻燈片中加入藝術字,給幻燈片放映添加“進入”藝術,添加幻燈片間的動畫切換效果,插入合適的背景等等,它們通過圖文并茂的形式把實踐項目所要表述的內容展現得更加生動。⑶ 我在網頁的首頁插入了動畫,動畫是圖片的轉換。并且加入了字幕,Flash技術的運用使得網頁“動靜結合”,增加情趣與美感,從而與網頁所要表現得效果相呼應融合。
四.困難及解決過程
學習實踐中自然遇到很多的困難和挫折,其中的主要原因是:計算機基礎不好,平時接觸的計算機知識不夠,實戰演練較少。通過實踐了解到也只有實踐才能鞏固和強化理論,理論必須加以實踐才能變成活的事物。下面介紹一下我面對的其中兩個問題的情況及解決方法。
問題一:制作的動畫插入后并沒有按我的想法放映。
解決辦法:我認真查看了一下《大學計算機基礎學習與實踐指導》書上的向導與幫助。我首先檢查了一下自己動畫設置的操作過程,沒有發現問題出在什么地方。后來經過詢問同學,才發現原來是制作完Flash后應該在“文件”中按“導入”并且進行設置。只是直接把動畫保存在可移動磁盤中。
問題二:在做幻燈片時,不知道怎樣把圖片設置為背景。
解決辦法:我嘗試在“圖片屬性”中對圖片屬性進行修改使之能成為背景,但沒有作用,圖片總是覆蓋在文字上面,在“圖片屬性”中也不能通過設置環繞方式來解決。后來知道,只要單擊鼠標右鍵,把圖片“置于底部”就可以了,并且可以任意調整圖片大小。
五.總 結
從完成計算機實踐任務的過程中,我收獲了很多。不光是計算機實踐技能方面的收獲,同時還有對于學習態度及方法的思考。我發現運用計算機來制作網頁、幻燈片并不是一件很難的事情,只要在加強理論學習的同時注重平時課后任務的實踐,就會發現它是能夠很輕松的完成的。當然,在制作網頁的過程中肯定會遇到各種各樣不同的問題,在這個發現問題解決問題的過程中,其實對于計算機實踐能力的培養能夠起到積極作用。自己的知識是靠自己努力獲得,學習是為自己而學。計算機實踐是一個很難得的機會去督促自己鍛煉上機能力,只有自己親自實踐才能夠從中得到一些很有價值的發現。
進一步的思考,會發現計算機課程的突出特點是實踐性強,上機實驗訓練是學生掌握和鞏固計算機科學理論和應用技能、引導學生通過比較、總結,促進能力培養的必須途徑。現在薄弱的理論學習基礎和計算機應用能力制約了我們使用電腦的能力的拓展。只有掌握并應用所學的理論知識,多進行實踐活動,能力才能夠得到提升,而通過對掌握的知識才能加以總結、概括,然后廣泛地遷移,能進一步系統化形成“活”的技能。因此,綜合實踐是大學計算機基礎課程教學的一個重要環節,是對教師課程教學和學生學習效果的集中檢閱,對推動學生自術學習,鍛煉實踐能力,培養創新意識,提高綜合應用各種知識的能力,培養學生的全面素質必將起到積極作用。
第五篇:中南大學(C++實踐報告)
中南大學
本科生課程設計(實踐)設計報告(程序設計基礎)題目
MFC課程設計
學生學號
學生姓名
指導教師
學院
專業班級
計算機基礎教學實驗中心 2015年
06月 14
日
一、引言
MFC(Microsoft Foundation Class Library, 微軟基礎類庫)是微軟基Windows平臺下的C++類庫集合。MFC包含了所有與系統相關的類,其中封裝了大多數的API(Application Program Interface)函數,提供了應用程序框架和開發應用程序的工具,如應用程序向導、類向導、可視化資源設計等高效工具,用消息映射處理消息響應,大大簡化了Windows應用程序的開發工作,使程序員可以從繁重的編程工作中解脫出來,提高了工作效率。
程序設計實踐旨在課堂學習的基礎上幫助學生掌握C++應用系統的開發方法和技巧。在系統學習完《C++程序設計》這門課程后,通過實踐對幾個小型C++應用程序實例設計與實現過程分析,幫助學生利用C++開發應用系統的一般方法和步驟,掌握MFC的基本知識。
這次實踐采用學生上機與老師集體輔導的方式,以完成老師下發的《C++語言課程設計任務書》為要求和目的,運用課堂上學習的C++基礎知識,采用Visual C++ MFC編程系統,以全新的角度和感知去認識C++語言在編程方面的優越性。在實踐過程中,基于對話框的MFC應用程序,達到了解基本控件,如靜態文本框、命令按鈕、編輯框、列表框、組合框等的使用的目的。還有理解Windows應用程序采用“消息傳遞、事件驅動”的運行機制。本次實踐的任務主要分為兩個部分: 使用Visual C++ MFC編程實現以下功能:
輸入一元二次方程ax2+bx+c=0 的系數a、b、c,計算并輸出兩個根x1、x2.編寫一個能對列表框進行項目添加、修改和刪除操作的應用程序。編寫一個程序,繪制-2π~2π之間的sin曲線。用定時器控制蝴蝶在窗口中飛舞。等共10道。
將第一部分中選擇3~5題,做一個綜合程序,要求有登陸界面和調用各部分的功能。總體設計
本次實踐的主要目的就是了解和掌握運用MFC編程的一般思想和具體的操作步驟。實踐主要是基于MFC的多文檔對話框和單文檔視圖,通過實踐完成第一大部分的任務之后,還要完成第二部分的綜合題目。第二部分的任務由學生自主發揮,自主找資料,詢問同學和老師。第一部分的任務比較簡單,具體的就不再描述。關于第二部分,我做了一個基于對文檔對話框。首頁為一個登陸頁面,需要輸入用戶名和密碼才能登陸,登陸后的頁面是把第一大部分的幾個題目連接起來。達到預覽的目的。
三、詳細設計
實踐前首先要認識AppWizard的工作環境。其項目工作區一共有三個選項卡分別為“ResourceView”“ClassView”“FileView”,中間是對話框設計界面,右邊是控件工具欄。實踐過程中,我們是先完成第一大部分的任務。雖然在第一次上機實踐前,我仔細地閱讀了老師給我們下發的資料,并且結合《C++程序設計實踐教程》了解相關知識,但是在實踐時結果不理想。主要是對創建對話框程序的步驟沒有掌握。在經過幾次嘗試失敗后,總結其一般步驟為:(1)建立基于對話框的MFC應用程序框架;(2)放置控件;(3)設置控件屬性;(4)為控件連接變量,即為控件命名;(5)添加并且編寫消息處理函數。
基于對話框的MFC程序設計,對各種控件的了解和使用顯得特別重要。這里就不一一詳細介紹它們的功能。控件控制欄一個有26個控件圖標,每一個圖標都可以看做一個對象,消息便是通過函數對它們進行操作。每一個控件都有兩個重要而且必不可少的基本屬性:ID和標題。ID便是該控件的標識,某些函數需要通過ID對控件進行操作。了解一定相關知識后,對課程實踐有了很大的幫助。其中“輸入一元二次方程ax2+bx+c=0 的系數a、b、c,計算并輸出兩個根x1、x2”這個題目比較復雜,而且與C++連續很緊密。其中的有這樣的語句m_x1=(-b+sqrt(b*b-4*a*c))/(2*a);m_x2=(-b-sqrt(b*b-4*a*c))/(2*a),這就是我們在課堂上學習的C++基本語句,在實踐過程中考驗學生的靈活運用能力。完成這個題目的關鍵是把每個編輯框(控件)連接好變量和選的數據類型,接下來的就是編寫消息處理函數。這道題很全面地體現了MFC的“消息傳遞、事件驅動”的思想,在操作步驟方面也在很多地方得到了實踐。
MFC編程除了基于多文本對話框以外,還有很重要的一部分是基于單文檔界面的應用程序,如Windows自帶的Notepad程序。在本次實踐的第一大部分的后5個小題就是基于單文檔的。那么首先要對其有一定的了解:文檔/視圖結構的思想是將數據的管理與顯示分離,其中文檔用于管理應用程序的數據,而視圖是用戶界面,用于顯示、打印文檔中的數據,并管理與用戶的交互。SDI具有文檔/視圖結構的應用程序框架,該框架包括應用程序類、窗口框架類、文檔類和視圖類,編程的任務是在文檔類和視圖類中添加適當的代碼。其中文檔類中一個重要的成員函數是OnNewDocument(),用戶在此添加代碼完成對數據的初始化;而視圖類中最重要的成員函數是OnDraw(),通過在該函數中添加代碼實現窗口內容的輸出。本次實踐是對單文檔的典型實例,包括: ? 利用畫筆、畫刷等工具及位圖處理的方法實現文字和圖形的輸出。? 利用定時器控件制作動畫程序。? 對鼠標和鍵盤進行編程的基本方法。
? 文件、字體、顏色等幾種通用對話框的使用方法及自定義對話框的設計、調用方法。? 菜單的設計方法。
雖然進行充分的準備,實踐中還是遇到了很多的困難和問題。在完成題目“用定時器控制蝴蝶在窗口中飛舞”時,主要的問題就是在插入蝴蝶圖片的,嘗試了幾次都沒有編譯成功。最終再詢問同學后,才知道是要把GIF格式的圖片分割成一幀一幀,然后才能插入。最后用定時器控制,達到動態的效果。在完成了第一大部分的任務后,第二部分的綜合題是一個不小的挑戰對我來說。要靠自己去網上或者圖書館查找資料。在經過一番準備后,最終決定做一個相對簡單的基于多文檔對話框的登陸界面,把幾個原來的程序文件連接起來。但是在這個過程中,完全要靠自己一步一步去探索,當然也遇到了各種各樣的困難和挑戰。關鍵是在連接各部分對話框,經過不斷的實驗,不斷的調試程序,總結的操作步驟如下:(1)創建工程,MFC Application(exe),工程命名按要求命名;(2)工程建立后有如圖對話框,將途中的靜態文本框和按鈕都刪掉,留下空白,再使用靜態文本,編輯框,按鈕和靜態圖片重新排版,并進行命名。注意靜態圖框應該第一個布置,不然運行時圖片會將其他控件覆蓋;(3)右擊密碼對應的編輯框,選擇屬性,選樣式中的密碼;(4)在Dialog上右擊選擇插入DIG,重復插入4個,依次作為菜單,題目1,題目2和題目3的對話框,并對其分別創建類,以菜單對話框為例,改一下表頭為“菜單”,在對話框空白處雙擊,點OK創建類,并對其命名(假如命名為MyMenu);(5)回到登錄界面的對話框,雙擊登錄控件,出現如圖按鈕,點擊OK,在頂端添加#include”MyMenu.h”,并OnButton1下添加以下代碼CString c_user,c_password;m_user.GetWindowText(c_user);m_password.GetWindowText(c_password);if(c_user.IsEmpty()||c_password.IsEmpty()){
MessageBox(“用戶名或密碼不能為空”,“用戶登錄信息”);
return;} if(c_user==“123”&&c_password==“123”){
CMyMenu dlg;
dlg.DoModal();//這兩段代碼是用于調用菜單對話框
}
else {
MessageBox(“用戶名或密碼不正確”,“提示”,MB_ICONINFORMATION);
return;對對話框添加背景圖片。在如下圖文件上右擊,選擇引入,然后導入已準備好的bmp格式的圖片,然后選擇登錄界面的靜態圖框右擊,進行如圖操作,這樣圖片就加入了,它會改掉按鈕和編輯框,這沒關系,運行后會顯示出來的;(7)通過以上操作,已經做好了登錄界面和實現和登錄界面與菜單對話框的連接,現在進行菜單對話框的編輯。將原有的按鈕刪除,自己加入按鈕并命名;(8)雙擊題目1,點OK,在代碼頁的頂端加入如圖代碼,并在OnButton1下加入以下代碼 CT1 dlg;dlg.DoModal();其他的按相同操作。
四、設計總結
為期為兩周的課程實踐中,我體會頗多,學到的東西也很多。我懂得了如何運用MFC編寫可視化界面的應用程序,加強了對C++的認識,復習了以前的知識,自己的邏輯思考能力,解決問題的能力也提高了不少。從而對Microsoft Visual C++有了更加深刻的認識和體會!在這次課程設計實踐過程中我還懂得了一些程序開發的重要步驟,總之,在這次課程設計實踐中,我收獲頗豐。
對于對任務的完成情況,第一部分主要按老師的步驟完成。第二部分,由學生自主選題,自主設計完成。總的來說,我個人對自己的完成情況感覺良好。當然,老師的悉心指導和同學的幫助是不能忽視的,在此感謝所有在本次課程設計實踐過程中對我細心指導的老師和不斷鼓勵和幫助我的同學們。
總之,此次課程實踐是對學生動手動腦的一次很好的鍛煉,為學生的今后發展奠定基礎。