久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

中南大學(xué) 網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告

時(shí)間:2019-05-14 04:13:18下載本文作者:會(huì)員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《中南大學(xué) 網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《中南大學(xué) 網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告》。

第一篇:中南大學(xué) 網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告

CENTRAL SOUTH UNIVERSITY

網(wǎng) 絡(luò) 安 全 實(shí) 驗(yàn) 報(bào) 告

學(xué)生姓名

專業(yè)班級(jí)

學(xué) 號(hào)

學(xué) 院 信息科學(xué)與工程學(xué)院 指導(dǎo)教師 劉嬪

實(shí)驗(yàn)時(shí)間 2014年12月 實(shí)驗(yàn)一 CA證書與SSL連接

應(yīng)用場(chǎng)景

在訪問Web 站點(diǎn)時(shí),如果沒有較強(qiáng)的安全措施,用戶訪問的數(shù)據(jù)是可以使用網(wǎng)絡(luò)工具 捕獲并分析出來的。在Web 站點(diǎn)的身份驗(yàn)證中,有一種基本身份驗(yàn)證,要求用戶訪問輸入 用戶名和密碼時(shí),是以明文形式發(fā)送密碼的,蓄意破壞安全性的人可以使用協(xié)議分析程序破 譯出用戶名和密碼。那我們?cè)撊绻苊饽兀靠衫肧SL 通信協(xié)議,在Web 服務(wù)器上啟用安 全通道以實(shí)現(xiàn)高安全性。

SSL 協(xié)議位于TCP/IP 協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL 協(xié) 議可分為兩層: SSL 記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL 握手協(xié)議(SSL Handshake Protocol):它建立在SSL 記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前,通訊雙 方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。每一個(gè)Windows Server 2003 證書頒發(fā) 機(jī)構(gòu)都有可供用戶和管理員使用的網(wǎng)頁。

實(shí)驗(yàn)?zāi)繕?biāo)

??掌握在Windows Server 2003 下獨(dú)立根CA 的安裝和使用。??使用WEB 方式申請(qǐng)證書和安裝證書。??建立SSL 網(wǎng)站。

??分析SSL 網(wǎng)站的數(shù)據(jù)包特點(diǎn)。

實(shí)驗(yàn)拓?fù)?/p>

VM Client

VM Server

實(shí)驗(yàn)環(huán)境

虛擬機(jī):Windows Server 2003,Windows XP,Wireshark 抓包軟件。

實(shí)驗(yàn)過程指導(dǎo)

任務(wù)一:windows server 2003 環(huán)境下獨(dú)立根CA 的安裝及使用

1、啟動(dòng)Windows Server 2003 和Windows XP,配置其IP,使其在同一局域網(wǎng)網(wǎng)段。

2、在Windows Server 2003 中,選擇【開始】|【控制面板】|【添加和刪除程序】,在彈出窗

口中選擇【添加和刪除windows 組件】,在【組件】列表框中選擇【證書服務(wù)】,再單擊【下 一步】按鈕,如下圖所示。

3、在彈出的窗口中選擇【獨(dú)立根CA】單選按鈕,單擊【下一步】按鈕,在彈出窗口中按 要求依次填入CA 所要求的信息,單擊【下一步】按鈕,如下圖所示。

4、繼續(xù)選擇【證書數(shù)據(jù)庫】、【數(shù)據(jù)庫日志】和配置信息的安裝、存放路徑,如下圖所示。

單擊【下一步】按鈕。安裝的時(shí)候,可能會(huì)彈出如下窗口,為了實(shí)驗(yàn)方便,已經(jīng)把I386 文 件夾復(fù)制到C:下,選擇【瀏覽】,選擇文件夾“C:I386”,點(diǎn)【確定】,完成安裝。

5、選擇【開始】|【程序】|【管理工具】,可以找到【證書頒發(fā)機(jī)構(gòu)】,說明CA 的安裝已經(jīng)

完成,如下圖所示。

6、從同一局域網(wǎng)中的另外一臺(tái)XP 開啟IE 瀏覽器,輸入http://windows2003 的IP/certsrv/, 選中【申請(qǐng)一個(gè)證書】,如下圖所示,在彈出的頁面中選擇【web 瀏覽器證書】。

7、在彈出窗口中填寫用戶的身份信息,完成后進(jìn)行【提交】。此種情況下,IE 瀏覽器采用 默認(rèn)的加密算法生成公鑰對(duì),私鑰保存在本地計(jì)算機(jī)中,公鑰和用戶身份信息按照標(biāo)準(zhǔn)的格式發(fā)給CA 服務(wù)器,如圖所示,單擊【是】,進(jìn)入下一步。CA 服務(wù)器響應(yīng)后,彈出證書申請(qǐng) 成功頁面,如下圖所示。

8、在根CA 所在的計(jì)算機(jī)上,選擇【開始】|【程序】|【管理工具】|【證書頒發(fā)機(jī)構(gòu)】,上

面申請(qǐng)的證書便會(huì)出現(xiàn)在窗口右邊,選擇證書單擊右鍵,選擇【所有任務(wù)】|【頒發(fā)】,進(jìn)行 證書頒發(fā),如下圖所示。證書頒發(fā)后將從【掛起的申請(qǐng)】文件夾轉(zhuǎn)入【頒發(fā)的證書】文件夾 中,表示證書頒發(fā)完成。

9、在申請(qǐng)證書的計(jì)算機(jī)上打開IE,輸入http://windows2003 的IP/certsrv/,進(jìn)入證書申請(qǐng)頁

面,選擇【查看掛起的證書申請(qǐng)狀態(tài)】,彈出的頁面中選擇一個(gè)已經(jīng)提交的證書申請(qǐng),如下 圖所示。選擇安裝此證書。

10、現(xiàn)在驗(yàn)證此CA 系統(tǒng)頒發(fā)的新證書是否可信,為此需要安裝CA 系統(tǒng)的根證書,進(jìn)入證書申請(qǐng)主頁面,選擇當(dāng)前的CA 證書進(jìn)行下載,并保存到合適路徑,如下圖所示。

11、下載完畢之后,在證書的保存目錄中查看證書信息,單擊【安裝證書】按鈕,進(jìn)入證書 導(dǎo)入向?qū)В凑漳J(rèn)的配置完成證書的導(dǎo)入,導(dǎo)入成功后,單擊【確定】按鈕,之后完成。

任務(wù)二:基于Web 的SSL 連接設(shè)置

1、在XP 中,左下角【開始】,打開【W(wǎng)ireshark】,并點(diǎn)擊開始抓包的按鈕。打開IE 瀏覽器,輸入網(wǎng)址http://windows2003 的IP/?id=1(比如:http://192.168.1.130/?id=1),然后保存Wireshark的抓包結(jié)果1。

2、選擇【開始】|【程序】|【管理工具】|【IIS(Internet 信息服務(wù))管理器】,在彈出窗口

右鍵單擊【默認(rèn)網(wǎng)站】,彈出的快捷菜單中選擇【屬性】選項(xiàng),如下圖所示。

3、在彈出窗口內(nèi)選擇【目錄安全性】標(biāo)簽,單擊【安全通信】中的【服務(wù)器證書】按鈕,如下圖所示。

4、彈出【IIS 證書向?qū)А看翱冢x中【新建證書】復(fù)選項(xiàng),一直單擊【下一步】按鈕,輸入自定義的名稱,如下圖所示。填寫相應(yīng)的信息后,單擊【下一步】按鈕。

5、彈出【請(qǐng)求文件摘要】窗口,確認(rèn)后單擊【下一步】按鈕,接著單擊【完成】按鈕,完 成服務(wù)器端證書配置,如下圖所示。

6、打開IE 瀏覽器(windows2003 中的),進(jìn)入證書申請(qǐng)主界面,如下圖所示。

7、在出現(xiàn)的網(wǎng)頁中選擇【高級(jí)證書申請(qǐng)】,如圖所示,在出現(xiàn)的網(wǎng)頁中單擊第二個(gè)選項(xiàng)【base64 編碼】。打開剛才IIS 證書向?qū)傻恼?qǐng)求文件,(默認(rèn)路徑C:certreq.txt),復(fù)制并粘貼文件

內(nèi)容到第一個(gè)文本框,如下圖所示,單擊【提交】按鈕,轉(zhuǎn)到完成提交后的頁面。

8、回到首頁,選擇【查看掛起的證書申請(qǐng)狀態(tài)】,彈出的頁面中選擇一個(gè)已經(jīng)提交的證書申 請(qǐng),如下圖所示。選擇【Base 64 編碼】,點(diǎn)擊【下載證書】,【保存】certnew.cer 文件到桌面。

9、選擇【開始】|【程序】|【管理工具】|【IIS(Internet 信息服務(wù))管理器】,在彈出窗口

右鍵單擊【默認(rèn)網(wǎng)站】,彈出的快捷菜單中選擇【屬性】選項(xiàng),在彈出窗口內(nèi)選擇【目錄安 全性】標(biāo)簽,選擇【服務(wù)器證書】,選擇【下一步】,【處理掛起的請(qǐng)求并安裝證書】選擇【下 一步】,【瀏覽】選擇剛才保存的certnew.cer 文件,如下圖所示。【下一步】【下一步】【完成】。

10、還是在【目錄安全性】下,選擇【安全通信】下的【編輯】,在下如圖所示的彈出窗口 中選中【要求安全通道(SSL)】復(fù)選項(xiàng),并在【客戶端證書】欄中選中【接受客戶端證書】 復(fù)選項(xiàng),再單擊【確定】按鈕。返回【目錄安全性】面板,單擊【應(yīng)用】按鈕及【確定】按

鈕,完成配置。

11、在XP 系統(tǒng)打開瀏覽器,輸入服務(wù)器IP 地址,進(jìn)入證書申請(qǐng)主頁面,此時(shí)會(huì)顯示錯(cuò)誤 信息頁面,要求采用https 的方式連接服務(wù)器,如圖所示。

12、把http 改成https 繼續(xù)訪問,此時(shí)瀏覽器提示你要安裝證書,安裝完證書后,就可以正 常使用了。、再次打開Wireshark,并點(diǎn)擊開始抓包的按鈕。打開IE 瀏覽器,輸入網(wǎng)址

https://windows2003 的IP/?id=1(比如:https://192.168.1.130/?id=1),然后保存Wireshark 的抓

包結(jié)果2。

14、分析比較抓包結(jié)果1 和抓包結(jié)果2 中,對(duì)IP/?id=1 請(qǐng)求處理的差異。

實(shí)驗(yàn)截圖

1、寫出windows server 2003 下獨(dú)立根CA 的配置及應(yīng)用的過程,將重要的步驟截圖并保存。如上所示,重要的步驟截圖已置于相應(yīng)步驟下。

2、寫出windows server 2003 下基于Web的SSL連接設(shè)置的過程,將重要的步驟截圖并保存。如上所示,重要的步驟截圖已置于相應(yīng)步驟下。

實(shí)驗(yàn)心得

通過此次實(shí)驗(yàn),我學(xué)會(huì)了Wireshark抓包的基本使用方法,學(xué)到了很多課本上沒有的新知識(shí),并對(duì)課本上的概念有了實(shí)際的更深的認(rèn)識(shí)。通過Wireshark所抓到的未使用SSL 連接和使用SSL 連接的信息的對(duì)比,我對(duì)HTTPS有了一定的了解,對(duì)計(jì)算機(jī)網(wǎng)絡(luò)通信中的數(shù)據(jù)傳輸安全有了大概的認(rèn)識(shí)。

HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。它是一個(gè)URI scheme(抽象標(biāo)識(shí)符體系),句法類同http:體系。用于安全的HTTP數(shù)據(jù)傳輸。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默 14 認(rèn)端口及一個(gè)加密/身份驗(yàn)證層(在HTTP與TCP之間)。這個(gè)系統(tǒng)的最初研發(fā)由網(wǎng)景公司(Netscape)進(jìn)行,并內(nèi)置于其瀏覽器Netscape Navigator中,提供了身份驗(yàn)證與加密通訊方法。現(xiàn)在它被廣泛用于萬維網(wǎng)上安全敏感的通訊,例如交易支付方面。它的主要作用可以分為兩種:一種是建立一個(gè)信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩涣硪环N就是確認(rèn)網(wǎng)站的真實(shí)性,凡是使用了 https 的網(wǎng)站,都可以通過點(diǎn)擊瀏覽器地址欄的鎖頭標(biāo)志來查看網(wǎng)站認(rèn)證之后的真實(shí)信息,也可以通過 CA 機(jī)構(gòu)頒發(fā)的安全簽章來查詢。

Wireshark所抓到的未使用SSL 連接的http 信息,信息是明文傳輸,而使用SSL連接的https 則具有安全性的ssl加密傳輸協(xié)議,更加安全。

實(shí)驗(yàn)二 配置和管理主機(jī)防火墻

應(yīng)用場(chǎng)景

對(duì)于Internet 上的系統(tǒng),不管是什么情況,首先我們要明確一點(diǎn):網(wǎng)絡(luò)是不安全的。因此,雖然創(chuàng)建一個(gè)防火墻并不能保證系統(tǒng)100%安全,但卻是絕對(duì)必要的。和社會(huì)上其它任何事物一樣,Internet 經(jīng)常會(huì)受到一些無聊的或者別有用心的人的干擾,防火墻的目的就是將這類人擋在你的網(wǎng)絡(luò)之外,同時(shí)使你仍然可以完成自己的工作。

那么構(gòu)筑怎樣的Linux 防火墻系統(tǒng)才算是足夠安全呢?這是一個(gè)很難回答的問題,因?yàn)椴煌膽?yīng)用環(huán)境對(duì)安全的要求不一樣。用一句比較恰當(dāng)而且簡單的話來回答這個(gè)問題:用戶了解自己的Linux 系統(tǒng)和設(shè)置,并且可以很好地保護(hù)好自己的數(shù)據(jù)和機(jī)密文件的安全,這對(duì)于該計(jì)算機(jī)用戶來說就可以稱之為他的計(jì)算機(jī)有足夠的安全性。

那么到底什么是防火墻呢?防火墻是一個(gè)或一組系統(tǒng),它在網(wǎng)絡(luò)之間執(zhí)行訪問控制策略。實(shí)現(xiàn)防火墻的實(shí)際方式各不相同,但是在原則上,防火墻可以被認(rèn)為是這樣一對(duì)機(jī)制:一種機(jī)制是攔阻傳輸流通行,另一種機(jī)制是允許傳輸流通過。一些防火墻偏重?cái)r阻傳輸流的通行,而另一些防火墻則偏重允許傳輸流通過。了解有關(guān)防火墻的最重要的概念可能就是它實(shí)現(xiàn)了一種訪問控制策略。

一般來說,防火墻在配置上是防止來自“外部”世界未經(jīng)授權(quán)的交互式登錄的。這大大有助于防止破壞者登錄到你網(wǎng)絡(luò)中的計(jì)算機(jī)上。一些設(shè)計(jì)更為精巧的防火墻可以防止來自外部的傳輸流進(jìn)入內(nèi)部,但又允許內(nèi)部的用戶可以自由地與外部通信。如果你切斷防火墻的話,它可以保護(hù)你免受網(wǎng)絡(luò)上任何類型的攻擊。防火墻的另一個(gè)非常重要的特性是可以提供一個(gè)單獨(dú)的“攔阻點(diǎn)”,在“攔阻點(diǎn)”上設(shè)置安全和審計(jì)檢查。與計(jì)算機(jī)系統(tǒng)正受到某些人利用調(diào)制解調(diào)器撥入攻擊的情況不同,防火墻可以發(fā)揮一種有效的“電話監(jiān)聽”和跟蹤工具的作用。防火墻提供了一種重要的記錄和審計(jì)功能;它們經(jīng)常可以向管理員提供一些情況概要,提供有關(guān)通過防火墻的傳輸流的類型和數(shù)量,以及有多少次試圖闖入防火墻的企圖等信息。

因此本實(shí)驗(yàn)將介紹如何配置linux 防火墻。

VM Client

VM Server

實(shí)驗(yàn)?zāi)繕?biāo)

1.掌握linux 下基本的iptables 知識(shí) 2.學(xué)會(huì)配置iptables VM Windows VM Linux

實(shí)驗(yàn)環(huán)境

虛擬機(jī):linux,windowsXP;linux 主機(jī)用戶名:root;密碼:root 16 實(shí)驗(yàn)過程指導(dǎo)

一.Iptables 的規(guī)則表、鏈結(jié)構(gòu)

1.規(guī)則表(iptables管理4個(gè)不同的規(guī)則表,其功能由獨(dú)立的內(nèi)核模塊實(shí)現(xiàn))filter 表:包含三個(gè)鏈INPUT OUTPUT FORWARD nat表:PREROUTING POSTROTING OUTPUT mangle 表:PREROUTING POSTROUTING INPUT OUTPUT FORWARD raw 表:OUTPUT PREROUTING 2.規(guī)則鏈

INPUT 鏈當(dāng)收到訪問防火墻本機(jī)的數(shù)據(jù)包(入站)時(shí),應(yīng)用此鏈中的規(guī)則 OUTPUT鏈當(dāng)防火墻本機(jī)向外發(fā)送數(shù)據(jù)包(出站)時(shí),應(yīng)用此鏈中的規(guī)則 FORWARD鏈?zhǔn)盏叫枰ㄟ^防火墻發(fā)送給其他地址的數(shù)據(jù)包,應(yīng)用此鏈 PREROUTING鏈做路由選擇之前,應(yīng)用此鏈

POSTROUTING鏈對(duì)數(shù)據(jù)包做路由選擇之后,應(yīng)用此鏈中的規(guī)則

二.數(shù)據(jù)包的匹配流程

1.規(guī)則表之間的優(yōu)先級(jí) raw mangle nat filter 2.規(guī)則鏈之間的優(yōu)先級(jí)

入站數(shù)據(jù)流向:來自外界的數(shù)據(jù)包到達(dá)防火墻,首先PREROUTING規(guī)則鏈處理(是否被修改地址),之后會(huì)進(jìn)行路由選擇(判斷該數(shù)據(jù)包應(yīng)該發(fā)往何處),如果數(shù)據(jù)包的目標(biāo)地址是防火墻本機(jī),那么內(nèi)核將其傳遞給INPUT 鏈進(jìn)行處理,通過以后再交給上次的應(yīng)用程序進(jìn)行響應(yīng)。

轉(zhuǎn)發(fā)數(shù)據(jù)流向:來自外界的數(shù)據(jù)包到達(dá)防火墻后,首先被PREROUTING 規(guī)則鏈處理,之后進(jìn)行路由選擇,如果數(shù)據(jù)包的目標(biāo)地址是其他外部地址,則內(nèi)核將其傳遞給FPRWARD 鏈進(jìn)行處理,然后再交給POSTROUTIING 規(guī)則鏈(是否修改數(shù)據(jù)包的地址等)進(jìn)行處理。

出站數(shù)據(jù)流向:防火墻本身向外部地址發(fā)送數(shù)據(jù)包,首先被OUTPUT 規(guī)則鏈處理,之后進(jìn)行路由選擇,然后交給POSTROUTING 規(guī)則鏈(是否修改數(shù)據(jù)包的地址等)進(jìn)行處理。3.規(guī)則鏈內(nèi)部各防火墻規(guī)則之間的優(yōu)先順序

依次按第1條規(guī)則、第2條規(guī)則、第3條規(guī)則??的順序進(jìn)行處理,找到一條能夠匹配的數(shù)據(jù)包規(guī)則,則不再繼續(xù)檢查后面的規(guī)則(使用LOG記錄日志的規(guī)則例外)。如果找不到匹配規(guī)則,就按照規(guī)則鏈的默認(rèn)策略進(jìn)行處理。

三.管理和設(shè)置iptables規(guī)則

Iptables 的基本語法格式選項(xiàng)名-A-D-I-R

功能及特點(diǎn)

在指定鏈的末尾添加(--append)一條新規(guī)則

刪除(--delete)指定鏈中的某一條規(guī)則,按規(guī)則序號(hào)或內(nèi)容確定要?jiǎng)h除的規(guī)則 在指定鏈中插入一條新規(guī)則,若未指定插入位置,則默認(rèn)在鏈的開頭插入 修改、替換指定鏈中的一條規(guī)則,按按 17-L-F-X-P-n-v-V-h--line-numbers-N

1.查看規(guī)則表

# iptables-L INPUT--line-numbers //查看filter表中INPUT鏈中的所有規(guī)則,同時(shí)顯示各條規(guī)則的順序號(hào)

規(guī)則序號(hào)或內(nèi)容確定要替換的規(guī)則 列出指定鏈中所有的規(guī)則進(jìn)行查看,若未指定鏈名,則列出表中所有鏈的內(nèi)容 清空指定鏈中的所有規(guī)則,若未指定鏈名,則清空表中所有鏈的內(nèi)容 刪除表中用戶自定義的規(guī)則鏈 設(shè)置指定鏈的默認(rèn)策略(大p)

使用數(shù)字形式顯示輸出結(jié)果,如顯示主機(jī)的IP地址而不是主機(jī)名

查看規(guī)則列表時(shí)顯示詳細(xì)的信息 查看iptables命令工具的版本信息 查看命令幫助信息

查看規(guī)則列表時(shí),同時(shí)顯示規(guī)則在鏈中的順序號(hào)

新建一條用戶自定義的規(guī)則鏈

2.刪除、清空規(guī)則

# iptables-F //不指定表名時(shí),默認(rèn)情況filter表

3.設(shè)置規(guī)則鏈的默認(rèn)策略

# iptables-t filter-P FORWARD DROP //將filter表中FORWARD規(guī)則的默認(rèn)策略設(shè)為DROP # iptables-P OUTPUT ACCEPT //將filter表中OUTPUT規(guī)則的默認(rèn)策略設(shè)為ACCEPT 18

四.條件匹配

1.通用(general)條件匹配(直接使用,而不依賴于其他的條件匹配及其擴(kuò)展)協(xié)議匹配(允許使用的協(xié)議名包含在/etc/protocols文件中)

# iptables-AINPUT-p icmp–j REJECT //拒絕進(jìn)入防火墻的所有icmp數(shù)據(jù)包

地址匹配

拒絕轉(zhuǎn)發(fā)來自192.168.1.11主機(jī)的數(shù)據(jù),允許轉(zhuǎn)發(fā)來自192.168.0./24網(wǎng)段的數(shù)據(jù) # iptables-A FORWARD-s 192.168.1.11-j REJECT

2.隱含(implicit)條件匹配(需要指定的協(xié)議匹配為前提,其對(duì)應(yīng)的功能由iptables自動(dòng)(隱含)的裝載入內(nèi)核),如果無匹配條件,默認(rèn)為REJECT。

端口匹配

僅允許系統(tǒng)管理員從202.13.0.0/16網(wǎng)段使用SSH方式遠(yuǎn)程登錄防火墻主機(jī) # iptables-A INPUT-p tcp--dport 22-s 202.13.0.0/16-j ACCEPT

五.在進(jìn)行了上述規(guī)則講解與熟悉之后,接下來的步驟進(jìn)行防火墻規(guī)則配置與測(cè)試

禁止Windows主機(jī)ping防火墻linux主機(jī),但是允許從防火墻上ping其他主機(jī)(允許接受ICMP回應(yīng)數(shù)據(jù))

1.配置linux防火墻主機(jī)ip地址,如下圖所示:

2.配置windows 主機(jī)ip地址,如下圖所示:

3.配置linux 主機(jī)防火墻規(guī)則,如下圖所示:

4.在此在windows 主機(jī)和linux 主機(jī)上進(jìn)行相互ping 測(cè)試,測(cè)試結(jié)果如下圖所示:

windows主機(jī)無法ping通linux防火墻主機(jī),但是linux主機(jī)可以ping通windows主機(jī)。

實(shí)驗(yàn)截圖

如上所示,重要的步驟截圖已置于相應(yīng)步驟下。

實(shí)驗(yàn)心得

1)如何在linux 主機(jī)上配置防火墻規(guī)則以防止DDOS 高級(jí)?

答:默認(rèn)的iptables規(guī)則是無法過濾DDOS攻擊數(shù)據(jù)的,我們需要添加過濾規(guī)則實(shí)現(xiàn)iptables擁有抗DDOS的能力:

屏蔽 SYN_RECV 的連接

-A FORWARD-p tcp-m tcp--tcp-flags FIN,SYN,RST,ACK SYN-m limit--limit 1/sec-j ACCEPT 限制IP碎片,每秒鐘只允許100個(gè)碎片,用來防止DoS攻擊-A FORWARD-f-m limit--limit 100/sec--limit-burst 100-j ACCEPT 限制ping包每秒一個(gè),10個(gè)后重新開始

-A FORWARD-p icmp-m limit--limit 1/sec--limit-burst 10-j ACCEPT 限制ICMP包回應(yīng)請(qǐng)求每秒一個(gè)

-A FORWARD-p icmp-m icmp--icmp-type 8-m limit--limit 1/sec-j ACCEPT 此處自定義一個(gè)表

-A FORWARD-j RH-Firewall-1-INPUT 完全接受 loopback interface 的封包-A RH-Firewall-1-INPUT-i lo-j ACCEPT 允許主機(jī)接受 ping-A RH-Firewall-1-INPUT-p icmp-m icmp--icmp-type any-j ACCEPT 允許連線出去后對(duì)方主機(jī)回應(yīng)進(jìn)來的封包

22-A RH-Firewall-1-INPUT-m state--state RELATED,ESTABLISHED-j ACCEPT 允許防火墻開啟指定端口

-A RH-Firewall-1-INPUT-p tcp-m state--state NEW-m tcp--dport port-j ACCEPT 限制SSH登陸

只允許在***.***.***.***上使用ssh遠(yuǎn)程登錄,從其它計(jì)算機(jī)上禁止使用ssh iptables-A INPUT-s ***.***.***.***-p tcp--dport 22-j ACCEPT iptables-A INPUT-p tcp--dport 22-j DROP

2)linux 主機(jī)防火墻處理數(shù)據(jù)包的順序是什么?

答:(1)當(dāng)包到達(dá)端口時(shí),對(duì)包報(bào)頭進(jìn)行語法分析。大多數(shù)包過濾設(shè)備只檢查IP、TCP、或UDP報(bào)頭中的字段。

(2)若一條規(guī)則阻止包傳輸或接收,則此包便不被允許。

(3)若一條規(guī)則允許包傳輸或接收,則此包便可以被繼續(xù)處理。(4)若包不滿足任何一條規(guī)則,則此包便被阻塞。

實(shí)驗(yàn)三WIFI 釣魚

步驟一 共享WIFI 工具:電腦、WIN7 系統(tǒng)、無線網(wǎng)卡

步驟

1.開始菜單-->命令提示符(cmd)-->右鍵,以管理員身份運(yùn)行 2.運(yùn)行以下命令啟用虛擬網(wǎng)卡

>netsh wlan set hostednetwork mode=allow ssid=(這里寫無線網(wǎng)名字)key=(這里是密碼)

3.網(wǎng)絡(luò)共享中心-->更改高級(jí)適配器設(shè)置-->右鍵已連接到Internet 的網(wǎng)絡(luò)連接-->屬性-->切換 到“共享”選項(xiàng)卡,選中其中的復(fù)選框,并選擇允許其共享Internet 的網(wǎng)絡(luò)連接,這里即我 們的虛擬WIFI 網(wǎng)卡

4.開啟無線網(wǎng)絡(luò),繼續(xù)在命令提示符中運(yùn)行以下命令: >netsh wlan start hostednetwork 24 即可開啟我們之前設(shè)置好的無線網(wǎng)絡(luò)(相當(dāng)于打開路由器的無線功能)

步驟二 WIFI 釣魚

工具:其他筆記本或手機(jī)、Wareshark 步驟

1.搜索到剛剛設(shè)置的WIFI,連接上(密碼為剛剛設(shè)置的key:12345679)

2.在筆記本上打開wareshark,選擇capture-->interfaces 3.選擇Packets 最多的項(xiàng),點(diǎn)擊start 按鈕

4.在手機(jī)或筆記本上打開中南大學(xué)郵箱網(wǎng)站:http://mail.csu.edu.cn/,在主機(jī)上用wareshark 捕捉

http 的包

(這里大家可以自由實(shí)驗(yàn),能監(jiān)控到連接到該WIFI 的機(jī)器的所有包的情況)5.在手機(jī)或筆記本上輸入用戶名和密碼,點(diǎn)擊登錄

6.在主機(jī)上用wareshark 捕捉到剛剛post 提交的http 包,右鍵選擇Follow tcp stream

7.可以看到剛剛提交的用戶名和密碼,且是未經(jīng)過加密的

實(shí)驗(yàn)截圖

如上所示,重要的步驟截圖已置于相應(yīng)步驟下。

實(shí)驗(yàn)心得

本次實(shí)驗(yàn)是在自己的筆記本上做的,實(shí)驗(yàn)也比較簡單,所以做得比較快效果比較好。通過本次實(shí)驗(yàn),大致了解了WIFI釣魚的操作過程,同時(shí),也讓自己有了警覺之心,要養(yǎng)成良好的WIFI使用習(xí)慣。手機(jī)會(huì)把使用過的WIFI熱點(diǎn)都記錄下來,如果WiFi開關(guān)處于打開狀態(tài),手機(jī)就會(huì)不斷向周邊進(jìn)行搜尋,一旦遇到同名的熱點(diǎn)就會(huì)自動(dòng)進(jìn)行連接,存在被釣魚風(fēng)險(xiǎn)。因此當(dāng)我們進(jìn)入公共區(qū)域后,盡量不要打開WIFI開關(guān),或者把WiFi調(diào)成鎖屏后不再自動(dòng)連接,避免在自己不知道的情況下連接上惡意WIFI。

實(shí)驗(yàn)四 SQL注入攻擊

【實(shí)驗(yàn)?zāi)康摹?/p>

SQL注入攻擊指的是通過構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序,而這些輸入大都是SQL語法里的一些組合,通過執(zhí)行SQL語句進(jìn)而執(zhí)行攻擊者所要的操作,其主要原因是程序沒有細(xì)致地過濾用戶輸入的數(shù)據(jù),致使非法數(shù)據(jù)侵入系統(tǒng)。根據(jù)相關(guān)技術(shù)原理,SQL注入可以分為平臺(tái)層注入和代碼層注入。前者由不安全的數(shù)據(jù)庫配置或數(shù)據(jù)庫平臺(tái)的漏洞所致;后者主要是由于程序員對(duì)輸入未進(jìn)行細(xì)致地過濾,從而執(zhí)行了非法的數(shù)據(jù)查詢。

本次實(shí)驗(yàn)?zāi)康氖橇私鈙ql注入的常見手段,要到兩個(gè)工具:

①dvwa(Dam Vulnerable Web Application)是用PHP+Mysql編寫的一套用于常規(guī)WEB漏洞教學(xué)和檢測(cè)的WEB脆弱性測(cè)試程序。包含了SQL注入、XSS、盲注等常見的一些安全漏洞。

② sqlmap是一個(gè)自動(dòng)化的SQL注入工具,其主要功能是掃描,發(fā)現(xiàn)并利用給定的URL的SQL注入漏洞。

【實(shí)驗(yàn)組網(wǎng)拓?fù)洹?/p>

VM Client

VM Server

【實(shí)驗(yàn)一:dvwa手動(dòng)sql注入】

1、連接好虛擬機(jī)拓?fù)鋱D,配置WindowsXP Client和Windows XP Server的IP使其在同一個(gè)局域網(wǎng)網(wǎng)段。

2、打開Server端的xampp,啟動(dòng)apache和mysql。打開Client的瀏覽器,訪問Server的IP/dvwa,如“192.168.1.32/dvwa”,登陸賬戶為admin,密碼為password。

3、選擇SQLInjection,點(diǎn)擊右下角的ViewSource,查看PHP源代碼。

4、正常測(cè)試,輸入“1”,得到正常結(jié)果,如下所示。

5、當(dāng)將輸入變?yōu)椤?”時(shí),頁面提示錯(cuò)誤“YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'''''atline1”,結(jié)果如圖。看到這個(gè)結(jié)果,可以知道,這個(gè)表單存在著注入漏洞。

6、嘗試輸入:“1’or 1=1–”注意“--”后面有空格!此時(shí)成功進(jìn)行sql注入。

7、測(cè)試查詢信息列數(shù)。利用語句order by num。這里輸入“ 1'order by 1--” 結(jié)果頁面正常顯示,注意--后面有空格。繼續(xù)測(cè)試,“ 1'order by 2--”,“ 1'order by 3--”,當(dāng)輸入3是,頁面報(bào)錯(cuò)。頁面錯(cuò)誤信息如下,Unknown column '3' in 'order clause',由此查詢結(jié)果值為2列。

8、嘗試注入“1' and 1=2 union select 1,2--”,從而得出First name處顯示結(jié)果為查詢結(jié)果第一列的值,surname處顯示結(jié)果為查詢結(jié)果第二列的值,利用內(nèi)置函數(shù)user(),及database(),version()注入得出連接數(shù)據(jù)庫用戶以及數(shù)據(jù)庫名稱:“1' and 1=2 union select user(),database()--”。

9、選擇DVWA Security,將安全級(jí)別分別設(shè)置為中、高。再運(yùn)行上面的實(shí)驗(yàn)sql語句,結(jié)合右下角的ViewSource,分析三種等級(jí)的代碼和sql注入效果有何區(qū)別。在安全級(jí)別分別設(shè)置為低時(shí),結(jié)合PHP源代碼,考慮不采用“--”的情形下,完成sql注入,寫出sql注入語句。

【實(shí)驗(yàn)二:sqlmap測(cè)試dvwa】

1、打開Server端的xampp,啟動(dòng)apache和mysql。打開Client的瀏覽器,訪問Server的IP/dvwa,如“169.254.180.158/dvwa”,登陸賬戶為admin,密碼為password。選擇DVWA Security,將安全級(jí)別分別設(shè)置為低。

2、選擇XSS reflected,輸入“alert(document.cookie)”,獲取登陸系統(tǒng)后的cookie值,截圖保存cookie值。

3、使用sqlmap查找注入點(diǎn),打開Client端的控制臺(tái)窗口,轉(zhuǎn)到目錄“C:Python27sqlmap”,輸入以下命令,注意!“169.254.180.158”表示Server的IP,“security=low;PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5”表示上一步所獲得的cookie值,請(qǐng)同學(xué)們按照實(shí)際環(huán)境 33 填寫相應(yīng)的值!“sqlmap.py-u “http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit”--cookie=“security=low;PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5””。

依據(jù)以下信息,得到可能的注入點(diǎn)是id,數(shù)據(jù)庫是mysql。

[INFO] heuristic(basic)test shows that GET parameter 'id' might be injectable(possible DBMS: 'MySQL')[INFO] GET parameter 'id' is 'MySQL UNION query(NULL)-1 to 20 columns' injectable

4、輸入“sqlmap.py-u “http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit”--cookie=“security=low;PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5”--current-db”得到當(dāng)前數(shù)據(jù)庫名。

current database: 'dvwa'

5、輸入“sqlmap.py-u “http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit”--cookie=“security=low;PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5”--current-db--tables-Ddvwa”得到數(shù)據(jù)庫所有表。

6、輸入“sqlmap.py-u “http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit”--cookie=“security=low;PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5”-T users--columns”得到user表的所有列。

7、輸入“sqlmap.py-u “http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit”--cookie=“security=low;PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5”-T users--dump”得到user表的所有列,在sqlmap詢問時(shí)候破解密碼時(shí),選擇是,sqlmap會(huì)使用自己的字典來破解密碼,得到5個(gè)用戶的密碼。此時(shí)就完成了利用sqlmap進(jìn)行“拖庫”的基本步驟。

實(shí)驗(yàn)截圖

如上所示,重要的步驟截圖已置于相應(yīng)步驟下。

實(shí)驗(yàn)心得

隨著B/S模式應(yīng)用開發(fā)的發(fā)展,使用這種模式編寫應(yīng)用程序的程序員也越來越多。但是由于程序員的水平及經(jīng)驗(yàn)也參差不齊,相當(dāng)大一部分程序員在編寫代碼的時(shí)候,沒有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患。用戶可以提交一段數(shù)據(jù)庫查詢代碼,根據(jù)程序返回的結(jié)果,獲得某些他想得知的數(shù)據(jù),這就是所謂的SQL Injection,即SQL注入。

此次的實(shí)驗(yàn)讓我了解了SQL注入攻擊的原理和過程,讓我了解到了做這方面開發(fā)的時(shí)候需要注意的安全性問題,也意識(shí)到安全的重要性和數(shù)據(jù)庫的一些欠缺,提高了自己在這方面的安全意識(shí)。在實(shí)驗(yàn)的過程中遇到了很多困難,配置上的,環(huán)境上的,還有一些需要注意的小問題。很高興順利完成了這次實(shí)驗(yàn),期待下次能使用更高級(jí)的工具進(jìn)行掃描和實(shí)施攻擊,當(dāng)然,以后的開發(fā)過程中也要特別注意這些脆弱點(diǎn)了。

第二篇:中南大學(xué)網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告

學(xué)生姓名指導(dǎo)教師學(xué) 院專業(yè)班級(jí)學(xué) 號(hào)完成時(shí)間中南大學(xué)

網(wǎng)絡(luò)安全 實(shí)驗(yàn)報(bào)告

代巍 張士庚 信息科學(xué)與工程學(xué)院 信安1201班 0909121615 年12月15日

2014

目錄

實(shí)驗(yàn)一 CA證書與SSL連接 實(shí)驗(yàn)二 WIFI釣魚 實(shí)驗(yàn)三 SQL注入攻擊

實(shí)驗(yàn)四 配置和管理主機(jī)防火墻

實(shí)驗(yàn)一 CA證書與SSL連接

一.實(shí)驗(yàn)?zāi)康?/p>

通過申請(qǐng)、安裝數(shù)字證書,掌握使用SSL建立安全通信通道的方法。掌握在Windows Server 2003 下獨(dú)立根CA 的安裝和使用。使用WEB 方式申請(qǐng)證書和安裝證書。建立SSL 網(wǎng)站。

分析SSL 網(wǎng)站的數(shù)據(jù)包特點(diǎn)。二.實(shí)驗(yàn)原理

SSL協(xié)議的工作原理、數(shù)字證書的原理

在訪問Web 站點(diǎn)時(shí),如果沒有較強(qiáng)的安全措施,用戶訪問的數(shù)據(jù)是可以使用網(wǎng)絡(luò)工具 捕獲并分析出來的。在Web 站點(diǎn)的身份驗(yàn)證中,有一種基本身份驗(yàn)證,要求用戶訪問輸入

用戶名和密碼時(shí),是以明文形式發(fā)送密碼的,蓄意破壞安全性的人可以使用協(xié)議分析程序破

譯出用戶名和密碼。那我們?cè)撊绻苊饽兀靠衫肧SL 通信協(xié)議,在Web 服務(wù)器上啟用安

全通道以實(shí)現(xiàn)高安全性。

SSL 協(xié)議位于TCP/IP 協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL 協(xié) 議可分為兩層: SSL 記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)

之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL 握手協(xié)議(SSL Handshake Protocol):它建立在SSL 記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前,通訊雙

方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。每一個(gè)Windows Server 2003 證書頒發(fā)

機(jī)構(gòu)都有可供用戶和管理員使用的網(wǎng)頁。三.實(shí)驗(yàn)環(huán)境

虛擬機(jī):Windows Server 2003,Windows XP,Wireshark 抓包軟件。四.實(shí)驗(yàn)過程

任務(wù)一:windows server 2003 環(huán)境下獨(dú)立根CA 的安裝及使用

1、windows server 2003 環(huán)境下獨(dú)立根CA 的安裝及使用,啟動(dòng)Windows Server 2003 和Windows XP,配臵其IP,使其在同一局域網(wǎng)網(wǎng)段。在Windows Server 2003 中,選擇【開始】|【控制面板】|【添加和刪除程序】,在彈出窗口中選擇【添加和刪除windows 組件】,在【組件】列表框中選擇【證書服務(wù)】,再單擊【下一步】按鈕,如下圖所示。

2、在彈出的窗口中選擇【獨(dú)立根CA】單選按鈕,單擊【下一步】按鈕,在彈出窗口中按要求依次填入CA 所要求的信息,單擊【下一步】按鈕,如下圖所示。

3、繼續(xù)選擇【證書數(shù)據(jù)庫】、【數(shù)據(jù)庫日志】和配臵信息的安裝、存放路徑,如下圖所示,單擊【下一步】按鈕。安裝的時(shí)候,可能會(huì)彈出如下窗口,為了實(shí)驗(yàn)方便,已經(jīng)把I386 文件夾復(fù)制到C:下,選擇【瀏覽】,選擇文件夾“C:I386”,點(diǎn)【確定】,完成安裝。

4、選擇【開始】|【程序】|【管理工具】,可以找到【證書頒發(fā)機(jī)構(gòu)】,說明CA 的安裝已經(jīng)完成,如下圖所示。

5、從同一局域網(wǎng)中的另外一臺(tái)XP 開啟IE 瀏覽器,輸入http://windows2003 的IP/certsrv/,選中【申請(qǐng)一個(gè)證書】,如下圖所示,在彈出的頁面中選擇【web 瀏覽器證書】。

6、在彈出窗口中填寫用戶的身份信息,完成后進(jìn)行【提交】。此種情況下,IE 瀏覽器采用

默認(rèn)的加密算法生成公鑰對(duì),私鑰保存在本地計(jì)算機(jī)中,公鑰和用戶身份信息按照標(biāo)準(zhǔn)的格式發(fā)給CA 服務(wù)器,如圖所示,單擊【是】,進(jìn)入下一步。CA 服務(wù)器響應(yīng)后,彈出證書申請(qǐng)成功頁面,如下圖所示。

7、在根CA 所在的計(jì)算機(jī)上,選擇【開始】|【程序】|【管理工具】|【證書頒發(fā)機(jī)構(gòu)】,上面申請(qǐng)的證書便會(huì)出現(xiàn)在窗口右邊,選擇證書單擊右鍵,選擇【所有任務(wù)】|【頒發(fā)】,進(jìn)行證書頒發(fā),如下圖所示。證書頒發(fā)后將從【掛起的申請(qǐng)】文件夾轉(zhuǎn)入【頒發(fā)的證書】文件夾中,表示證書頒發(fā)完成。

8、在申請(qǐng)證書的計(jì)算機(jī)上打開IE,輸入http://windows2003 的IP/certsrv/,進(jìn)入證書申請(qǐng)頁面,選擇【查看掛起的證書申請(qǐng)狀態(tài)】,彈出的頁面中選擇一個(gè)已經(jīng)提交的證書申請(qǐng),如下圖所示。選擇安裝此證書。

9、現(xiàn)在驗(yàn)證此CA 系統(tǒng)頒發(fā)的新證書是否可信,為此需要安裝CA 系統(tǒng)的根證書,進(jìn)入證書申請(qǐng)主頁面,選擇當(dāng)前的CA 證書進(jìn)行下載,并保存到合適路徑,如下圖所示。

10、下載完畢之后,在證書的保存目錄中查看證書信息,單擊【安裝證書】按鈕,進(jìn)入證書導(dǎo)入向?qū)В凑漳J(rèn)的配臵完成證書的導(dǎo)入,導(dǎo)入成功后,單擊【確定】按鈕,之后完成。

任務(wù)二:基于Web的SSL連接設(shè)臵

1、在XP 中,左下角【開始】,打開【W(wǎng)ireshark】,并點(diǎn)擊開始抓包的按鈕。打開IE 瀏覽器,輸入網(wǎng)址http://windows2003 的IP/?id=1(比如:http://192.168.1.130/?id=1),然后保存Wireshark的抓包結(jié)果1。

2、選擇【開始】|【程序】|【管理工具】|【IIS(Internet 信息服務(wù))管理器】,在彈出窗口右鍵單擊【默認(rèn)網(wǎng)站】,彈出的快捷菜單中選擇【屬性】選項(xiàng)。

3、在彈出窗口內(nèi)選擇【目錄安全性】標(biāo)簽,單擊【安全通信】中的【服務(wù)器證書】按鈕,如下圖所示。

4、彈出【IIS 證書向?qū)А看翱冢x中【新建證書】復(fù)選項(xiàng),一直單擊【下一步】按鈕,輸入自定義的名稱,如下圖所示。填寫相應(yīng)的信息后,單擊【下一步】按鈕。

5、彈出【請(qǐng)求文件摘要】窗口,確認(rèn)后單擊【下一步】按鈕,接著單擊【完成】按鈕,完成服務(wù)器端證書配臵,如下圖所示

6、打開IE 瀏覽器(windows2003 中的),進(jìn)入證書申請(qǐng)主界面,如下圖所示。

7、在出現(xiàn)的網(wǎng)頁中選擇【高級(jí)證書申請(qǐng)】,如圖所示,在出現(xiàn)的網(wǎng)頁中單擊第二個(gè)選項(xiàng)【base64編碼】。打開剛才IIS 證書向?qū)傻恼?qǐng)求文件,(默認(rèn)路徑C:certreq.txt),復(fù)制并粘貼文件內(nèi)容到第一個(gè)文本框,如下圖所示,單擊【提交】按鈕,轉(zhuǎn)到完成提交后的頁面。

8、回到首頁,選擇【查看掛起的證書申請(qǐng)狀態(tài)】,彈出的頁面中選擇一個(gè)已經(jīng)提交的證書申請(qǐng),如下圖所示。選擇【Base 64 編碼】,點(diǎn)擊【下載證書】,【保存】certnew.cer 文件到桌面。

9、選擇【開始】|【程序】|【管理工具】|【IIS(Internet 信息服務(wù))管理器】,在彈出窗口右鍵單擊【默認(rèn)網(wǎng)站】,彈出的快捷菜單中選擇【屬性】選項(xiàng),在彈出窗口內(nèi)選擇【目錄安全性】標(biāo)簽,選擇【服務(wù)器證書】,選擇【下一步】,【處理掛起的請(qǐng)求并安裝證書】選擇【下一步】,【瀏覽】選擇剛才保存的certnew.cer 文件,如下圖所示。【下一步】【下一步】【完成】。

10、還是在【目錄安全性】下,選擇【安全通信】下的【編輯】,在下如圖所示的彈出窗口中選中【要求安全通道(SSL)】復(fù)選項(xiàng),并在【客戶端證書】欄中選中【接受客戶端證書】復(fù)選項(xiàng),再單擊【確定】按鈕。返回【目錄安全性】面板,單擊【應(yīng)用】按鈕及【確定】按鈕,完成配臵。

11、在XP 系統(tǒng)打開瀏覽器,輸入服務(wù)器IP 地址,進(jìn)入證書申請(qǐng)主頁面,此時(shí)會(huì)顯示錯(cuò)誤信息頁面,要求采用https 的方式連接服務(wù)器,如圖所示。

12、把http 改成https 繼續(xù)訪問,此時(shí)瀏覽器提示你要安裝證書,安裝完證書后,就可以正常使用了。、再次打開Wireshark,并點(diǎn)擊開始抓包的按鈕。打開IE 瀏覽器,輸入網(wǎng)址https://windows2003 的IP/?id=1(比如:https://192.168.1.130/?id=1),然后保存Wireshark 的抓包結(jié)果2。

14、分析比較抓包結(jié)果1 和抓包結(jié)果2 中,對(duì)IP/?id=1 請(qǐng)求處理的差異。

五、實(shí)驗(yàn)感想

至此,我完成了整個(gè)數(shù)字證書的安裝和使用實(shí)驗(yàn)。通過本次實(shí)驗(yàn)我學(xué)會(huì)了SSL協(xié)議的工作原理,同時(shí)了解到了CA證書的頒發(fā)機(jī)制。

任何一個(gè)安全性系統(tǒng)整體性設(shè)計(jì),都離不開數(shù)字證書的加密,可以想象加密機(jī)制對(duì)信息安全的重要性。

需要說明的是,盡管SSL能提供實(shí)際不可破譯的加密功能,但是SSL安全機(jī)制的實(shí)現(xiàn)會(huì)大大增加系統(tǒng)的開銷,增加了服務(wù)器CPU的額外負(fù)擔(dān),使得SSL加密傳輸?shù)乃俣却蟠蟮陀诜羌用軅鬏數(shù)乃俣取R虼耍瑸榱朔乐拐麄€(gè)Web網(wǎng)站的性能下降,可以考慮只把SSL安全機(jī)制用來處理高度機(jī)密的信息,例如提交包含信用卡信息的表格。

實(shí)驗(yàn)二 WIFI釣魚

一.實(shí)驗(yàn)?zāi)康?/p>

1、通過實(shí)際測(cè)試,模擬入侵者利用wifi抓包來竊取用戶數(shù)據(jù)的過程。掌握整個(gè)過程中的原理,數(shù)據(jù)分析等。

2、掌握抓包軟件的使用。二.實(shí)驗(yàn)原理

在一個(gè)可控的網(wǎng)絡(luò)環(huán)境里,劫持?jǐn)?shù)據(jù)有很多方法。比較有名的網(wǎng)絡(luò)層抓包工具有wireshark,tcpdump,都是很好的網(wǎng)絡(luò)協(xié)議分析工具。我們現(xiàn)在手機(jī)上的大多數(shù)APP應(yīng)用層都是使用的HTTP協(xié)議,因此我們很多的在web安全測(cè)試?yán)锩嬗玫降姆治龉ぞ呷鏵iddler,burp,httpanalyzer,Charles等也都是可以用來分析或者劫持APP的通信流。

用戶手機(jī)里的app默認(rèn)會(huì)進(jìn)行很多敏感的請(qǐng)求,手機(jī)會(huì)自動(dòng)去登陸和獲取最新的信號(hào);如果手機(jī)默認(rèn)會(huì)鏈接周圍已經(jīng)被保存sid的wifi;通過內(nèi)臵最常見的sid和信息,入侵者可以使得周圍的人會(huì)自動(dòng)鏈接上入侵者假設(shè)好的wifi,通過抓取相應(yīng)的數(shù)據(jù)取得里面的敏感信息,理論上是可以劫持用戶的相關(guān)密碼信息的。三.實(shí)驗(yàn)環(huán)境

帶有無線網(wǎng)卡的筆記本電腦,Wireshark 抓包軟件,智能手機(jī)。四.實(shí)驗(yàn)過程 步驟一共享WIFI 工具:電腦、WIN7 系統(tǒng)、無線網(wǎng)卡 步驟

1.開始菜單-->命令提示符(cmd)-->右鍵,以管理員身份運(yùn)行

2.運(yùn)行以下命令啟用虛擬網(wǎng)卡>netsh wlan set hostednetwork mode=allow ssid=(這里寫無線網(wǎng)名字)key=(這里是密碼)

3.網(wǎng)絡(luò)共享中心-->更改高級(jí)適配器設(shè)臵-->右鍵已連接到Internet 的網(wǎng)絡(luò)連接-->屬性-->切換

到“共享”選項(xiàng)卡,選中其中的復(fù)選框,并選擇允許其共享Internet 的網(wǎng)絡(luò)連接,這里即我們的虛擬WIFI 網(wǎng)卡

4.開啟無線網(wǎng)絡(luò),繼續(xù)在命令提示符中運(yùn)行以下命令:>netsh wlan start hostednetwork即可開啟我們之前設(shè)臵好的無線網(wǎng)絡(luò)(相當(dāng)于打開路由器的無線功能)

步驟二WIFI 釣魚工具:其他筆記本或手機(jī)、Wareshark 步驟

1.搜索到剛剛設(shè)臵的WIFI:dave,連接上(密碼為剛剛設(shè)臵的key:12345678)2.在筆記本上打開wareshark,選擇capture-->interfaces

3.選擇Packets 最多的項(xiàng),點(diǎn)擊start 按鈕

4.在手機(jī)或筆記本上打開中南大學(xué)郵箱網(wǎng)站:http://mail.csu.edu.cn/,在主機(jī)上用wareshark 捕捉http 的包(這里大家可以自由實(shí)驗(yàn),能監(jiān)控到連接到該WIFI 的機(jī)器的所有包的情況)

5.在手機(jī)或筆記本上輸入用戶名和密碼,點(diǎn)擊登錄

6.在主機(jī)上用wareshark 捕捉到剛剛post 提交的http 包,右鍵選擇Follow tcp stream

7.可以看到剛剛提交的用戶名和密碼,且是未經(jīng)過加密的

五、實(shí)驗(yàn)感想

通過這次實(shí)驗(yàn),我實(shí)際地模擬了一次入侵者通過假設(shè)釣魚WIFI網(wǎng)絡(luò),來竊取連接此網(wǎng)絡(luò)的用戶的密碼信息過程。整個(gè)過程中我成功地完成了對(duì)各種用戶數(shù)據(jù)抓包,并分析出用戶密碼。

這讓我對(duì)wifi網(wǎng)絡(luò)產(chǎn)生了新的看法,我意識(shí)到了鏈接wifi網(wǎng)絡(luò)過程當(dāng)中存在很多安全隱患,如果被圖謀不軌的人利用到,一旦泄露商業(yè)機(jī)密等重要信息,勢(shì)必會(huì)產(chǎn)生重大的經(jīng)濟(jì)損失。

隨著人們的生活越來越離不開網(wǎng)絡(luò),也越來越離不開移動(dòng)手機(jī),一般的公共廠商都已經(jīng)將wifi作為基礎(chǔ)服務(wù)進(jìn)行提供,譬如在星巴克、麥當(dāng)勞等公共場(chǎng)所邊點(diǎn)杯熱飲邊“蹭網(wǎng)”,已經(jīng)是一個(gè)基本的習(xí)慣了,甚至一些大型的電信提供商已經(jīng)嘗試將wifi作為一個(gè)基礎(chǔ)的接入。如今公共的wifi很多,尤其是免費(fèi)的,手機(jī)上還有幫助尋找免費(fèi)wifi的各類app。很多人為了省流量,看到免費(fèi)的wifi,總會(huì)去連接一下嘗試網(wǎng)上沖浪。不過,在這些免費(fèi)的wifi以及大家使用wifi的習(xí)慣,加上手機(jī)及app的默認(rèn)行為,就可以導(dǎo)致一些嚴(yán)重安全問題。

實(shí)驗(yàn)三 SQL注入攻擊

一.實(shí)驗(yàn)?zāi)康?/p>

是了解sql注入攻擊的原理,掌握網(wǎng)站的工作機(jī)制,認(rèn)識(shí)到SQL注入攻擊的防范措施,加強(qiáng)對(duì)Web攻擊的防范。

二.實(shí)驗(yàn)原理

SQL注入攻擊指的是通過構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序,而這些輸入大都是SQL語法里的一些組合,通過執(zhí)行SQL語句進(jìn)而執(zhí)行攻擊者所要的操作,其主要原因是程序沒有細(xì)致地過濾用戶輸入的數(shù)據(jù),致使非法數(shù)據(jù)侵入系統(tǒng)。

根據(jù)相關(guān)技術(shù)原理,SQL注入可以分為平臺(tái)層注入和代碼層注入。前者由不安全的數(shù)據(jù)庫配臵或數(shù)據(jù)庫平臺(tái)的漏洞所致;后者主要是由于程序員對(duì)輸入未進(jìn)行細(xì)致地過濾,從而執(zhí)行了非法的數(shù)據(jù)查詢。

三.實(shí)驗(yàn)環(huán)境

虛擬機(jī)WindowsXP系統(tǒng)、Windows2003系統(tǒng)。dvwa(Dam Vulnerable Web Application)工具,sqlmap SQL注入工具、四.實(shí)驗(yàn)過程

【實(shí)驗(yàn)一:dvwa手動(dòng)sql注入】

1、連接好虛擬機(jī)拓?fù)鋱D,配臵WindowsXP Client和Windows XP Server的IP使其在同一個(gè)局域網(wǎng)網(wǎng)段。

2、打開Server端的xampp,啟動(dòng)apache和mysql。打開Client的瀏覽器,訪問Server的IP/dvwa,如“192.168.1.32/dvwa”,登陸賬戶為admin,密碼為password

3、選擇SQLInjection,點(diǎn)擊右下角的ViewSource,查看PHP源代碼。

4、正常測(cè)試,輸入“1”,得到正常結(jié)果,如下所示。

5、當(dāng)將輸入變?yōu)椤?”時(shí),頁面提示錯(cuò)“YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'''''atline1”,結(jié)果如圖。看到這個(gè)結(jié)果,可以知道,這個(gè)表單存在著注入漏洞。

6、嘗試輸入:“1’or 1=1–”注意“--”后面有空格!此時(shí)成功進(jìn)行sql注入。

7、測(cè)試查詢信息列數(shù)。利用語句order by num。這里輸入“ 1'order by 1--” 結(jié)果頁面正常顯示,注意--后面有空格。繼續(xù)測(cè)試,“ 1'order by 2--”,“ 1'order by 3--”,當(dāng)輸入3是,頁面報(bào)錯(cuò)。頁面錯(cuò)誤信息如下,Unknown column '3' in 'order clause',由此查詢結(jié)果值為2列。

8、嘗試注入“1' and 1=2 union select 1,2--”,從而得出First name處顯示結(jié)果為查詢結(jié)果第一列的值,surname處顯示結(jié)果為查詢結(jié)果第二列的值,利用內(nèi)臵函數(shù)user(),及database(),version()注入得出連接數(shù)據(jù)庫用戶以及數(shù)據(jù)庫名稱:“1' and 1=2 union select user(),database()--”。

9、選擇DVWA Security,將安全級(jí)別分別設(shè)臵為中、高。再運(yùn)行上面的實(shí)驗(yàn)sql語句,結(jié)合右下角的ViewSource,分析三種等級(jí)的代碼和sql注入效果有何區(qū)別。在安全級(jí)別分別設(shè)臵為低時(shí),結(jié)合PHP源代碼,考慮不采用“--”的情形下,完成sql注入,寫出sql注入語句。

【實(shí)驗(yàn)二:sqlmap測(cè)試dvwa】

1、打開Server端的xampp,啟動(dòng)apache和mysql。打開Client的瀏覽器,訪問Server的IP/dvwa,如“192.168.1.32/dvwa”,登陸賬戶為admin,密碼為password。選擇DVWA Security,將安全級(jí)別分別設(shè)臵為低。

2、選擇XSS reflected,輸入“alert(document.cookie)”,獲取登陸系統(tǒng)后的cookie值,截圖保存cookie值。

3、使用sqlmap查找注入點(diǎn),打開Client端的控制臺(tái)窗口,轉(zhuǎn)到目錄“C:Python27sqlmap”,輸入以下命令,注意!“192.168.1.32”表示Server的IP,“security=low;PHPSESSID=tvitu9mog097jl4ctfsqhbs9o6”表示上一步所獲得的cookie值,請(qǐng)同學(xué)們按照實(shí)際環(huán)境填寫相應(yīng)的值!“sqlmap.py-u http://192.168.1.32/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit--cookie=“security=low;PHPSESSID=tvitu9mog097jl4ctfsqhbs9o6””。

依據(jù)以下信息,得到可能的注入點(diǎn)是id,數(shù)據(jù)庫是mysql。

[INFO] heuristic(basic)test shows that GET parameter 'id' might be injectable(possible DBMS: 'MySQL')

[INFO] GET parameter 'id' is 'MySQL UNION query(NULL)-1 to 20 columns' injectable

4、輸入“sqlmap.py-u “http://192.168.1.32/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit”--cookie=“security=low;PHPSESSID=tvitu9mog097jl4ctfsqhbs9o6”--current-db”得到當(dāng)前數(shù)據(jù)庫名。

current database: 'dvwa'

5、輸入“sqlmap.py-u “http://192.168.1.32/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit”--cookie=“security=low;PHPSESSID=tvitu9mog097jl4ctfsqhbs9o6”--current-db--tables-Ddvwa”得到數(shù)據(jù)庫所有表。

6、輸入“sqlmap.py-u “http://192.168.1.32/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit”--cookie=“security=low;PHPSESSID=tvitu9mog097jl4ctfsqhbs9o6”-T users--columns”得到user表的所有列。

7、輸入“sqlmap.py-u “http://192.168.1.32/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit”--cookie=“security=low;PHPSESSID=tvitu9mog097jl4ctfsqhbs9o6”-T users--dump”得到user表的所有列,在sqlmap詢問時(shí)候破解密碼時(shí),選擇是,sqlmap會(huì)使用自己的字典來破解密碼,得到5個(gè)用戶的密碼。此時(shí)就完成了利用sqlmap進(jìn)行“拖庫”的基本步驟。五.實(shí)驗(yàn)感想

通過實(shí)驗(yàn),我明白了帶有參數(shù)的動(dòng)態(tài)網(wǎng)頁,很多都是沒有進(jìn)行過濾的。如果能夠被SQL注入工具,就存在安全隱患,有可能就因?yàn)檫@個(gè)漏洞,入侵者就可以得到登錄權(quán)限并控制整個(gè)服務(wù)器。

從實(shí)驗(yàn)可以看出,只要是帶有參數(shù)的動(dòng)態(tài)網(wǎng)頁,且此網(wǎng)頁訪問了數(shù)據(jù)庫,就有可能存在SQL注入攻擊,因此SQL注入攻擊潛在的發(fā)生概率相對(duì)于其他Web攻擊要高很多,危害面也更廣。其主要危害包括:獲取系統(tǒng)控制權(quán)、未經(jīng)授權(quán)狀況下操作數(shù)據(jù)庫的數(shù)據(jù)、惡意篡改網(wǎng)頁內(nèi)容、私自添加系統(tǒng)帳號(hào)或數(shù)據(jù)庫使用者帳號(hào)等。

目前基于數(shù)據(jù)庫的網(wǎng)絡(luò)應(yīng)用越來越多。與此同時(shí),用于搜索SQL注入點(diǎn)的軟件在網(wǎng)絡(luò)上隨處可見,攻擊者只需要具備少量的專業(yè)知識(shí)就可以利用這些軟件尋找目標(biāo)進(jìn)行攻擊。攻擊目標(biāo)和攻擊者的增加使得SQL注入攻擊在近幾年出現(xiàn)擴(kuò)大的趨勢(shì)

為了防止SQL注入帶來的危害,在網(wǎng)站開發(fā)的過程中,需要對(duì)需要輸入?yún)?shù)的模塊進(jìn)行過濾,并加入相關(guān)權(quán)限認(rèn)證模塊。

實(shí)驗(yàn)四 配置和管理主機(jī)防火墻

一.實(shí)驗(yàn)?zāi)康?/p>

1.學(xué)習(xí)配臵和管理主機(jī)防火墻,介紹如何配臵linux 防火墻。2.掌握linux 下基本的iptables 知識(shí),學(xué)會(huì)配臵iptables

二.實(shí)驗(yàn)原理

對(duì)于Internet 上的系統(tǒng),不管是什么情況,首先我們要明確一點(diǎn):網(wǎng)絡(luò)是不安全的。因此,雖然創(chuàng)建一個(gè)防火墻并不能保證系統(tǒng)100%安全,但卻是絕對(duì)必要的。和社會(huì)上其它任何事物一樣,Internet 經(jīng)常會(huì)受到一些無聊的或者別有用心的人的干擾,防火墻的目的就是將這類人擋在你的網(wǎng)絡(luò)之外,同時(shí)使你仍然可以完成自己的工作。因?yàn)椴煌膽?yīng)用環(huán)境對(duì)安全的要求不一樣。用一句比較恰當(dāng)而且簡單的話來回答這個(gè)問題:用戶了解自己的Linux 系統(tǒng)和設(shè)臵,并且可以很好地保護(hù)好自己的數(shù)據(jù)和機(jī)密文件的安全,這對(duì)于該計(jì)算機(jī)用戶來說就可以稱之為他的計(jì)算機(jī)有足夠的安全性。防火墻是一個(gè)或一組系統(tǒng),它在網(wǎng)絡(luò)之間執(zhí)行訪問控制策略。實(shí)現(xiàn)防火墻的實(shí)際方式各不相同,但是在原則上,防火墻可以被認(rèn)為是這樣一對(duì)機(jī)制:一種機(jī)制是攔阻傳輸流通行,另一種機(jī)制是允許傳輸流通過。一些防火墻偏重?cái)r阻傳輸流的通行,而另一些防火墻則偏重允許傳輸流通過。了解有關(guān)防火墻的最重要的概念可能就是它實(shí)現(xiàn)了一種訪問控制策略。

一般來說,防火墻在配臵上是防止來自“外部”世界未經(jīng)授權(quán)的交互式登錄的。這大大有助于防止破壞者登錄到你網(wǎng)絡(luò)中的計(jì)算機(jī)上。一些設(shè)計(jì)更為精巧的防火墻可以防止來自外部的傳輸流進(jìn)入內(nèi)部,但又允許內(nèi)部的用戶可以自由地與外部通信。如果你切斷防火墻的話,它可以保護(hù)你免受網(wǎng)絡(luò)上任何類型的攻擊。防火墻的另一個(gè)非常重要的特性是可以提供一個(gè)單獨(dú)的“攔阻點(diǎn)”,在“攔阻點(diǎn)”上設(shè)臵安全和審計(jì)檢查。與計(jì)算機(jī)系統(tǒng)正受到某些人利用調(diào)制解調(diào)器撥入攻擊的情況不同,防火墻可以發(fā)揮一種有效的“電話監(jiān)聽”和跟蹤工具的作用。防火墻提供了一種重要的記錄和審計(jì)功能;它們經(jīng)常可以向管理員提供一些情況概要,提供有關(guān)通過防火墻的傳輸流的類型和數(shù)量,以及有多少次試圖闖入防火墻的企圖等信息。

三.實(shí)驗(yàn)環(huán)境

虛擬機(jī):linux,windowsXP;linux 主機(jī)用戶名:root;密碼:root 四.實(shí)驗(yàn)過程 1.查看規(guī)則表

# iptables-L INPUT--line-numbers //查看filter表中INPUT鏈中的所有規(guī)則,同時(shí)顯示各條規(guī)則的順序號(hào)

2.刪除、清空規(guī)則

# iptables-F //不指定表名時(shí),默認(rèn)情況filter表

3.設(shè)臵規(guī)則鏈默認(rèn)策略

# iptables-t filter-P FORWARD DROP //將filter表中FORWARD規(guī)則的默認(rèn)策略設(shè)為DROP # iptables-P OUTPUT ACCEPT //將filter表中OUTPUT規(guī)則的默認(rèn)策略設(shè)為ACCEPT 4.通用(general)條件匹配(直接使用,而不依賴于其他的條件匹配及其擴(kuò)展)協(xié)議匹配(允許使用的協(xié)議名包含在/etc/protocols文件中)# iptables-AINPUT-p icmp–j REJECT //拒絕進(jìn)入防火墻的所有icmp數(shù)據(jù)包

地址匹配

拒絕轉(zhuǎn)發(fā)來自192.168.1.11主機(jī)的數(shù)據(jù),允許轉(zhuǎn)發(fā)來自192.168.0./24網(wǎng)段的數(shù)據(jù)

# iptables-A FORWARD-s 192.168.1.11-j REJECT

5.隱含(implicit)條件匹配(需要指定的協(xié)議匹配為前提,其對(duì)應(yīng)的功能由iptables自動(dòng)(隱含)的裝載入內(nèi)核),如果無匹配條件,默認(rèn)為REJECT。端口匹配

僅允許系統(tǒng)管理員從202.13.0.0/16網(wǎng)段使用SSH方式遠(yuǎn)程登錄防火墻主機(jī) # iptables-A INPUT-p tcp--dport 22-s 202.13.0.0/16-j ACCEPT # iptables-A INPUT-p tcp--dport 22-j DROP

6.禁止Windows主機(jī)ping防火墻linux主機(jī),但是允許從防火墻上ping其他主機(jī)(允許接受ICMP回應(yīng)數(shù)據(jù))配臵linux防火墻主機(jī)ip地址,如下圖所示:

7.配臵windows 主機(jī)ip 地址,如下圖所示:

8.配臵linux 主機(jī)防火墻規(guī)則,如下圖所示:

9.在此在windows 主機(jī)和linux 主機(jī)上進(jìn)行相互ping 測(cè)試,測(cè)試結(jié)果如下圖所示:

五.實(shí)驗(yàn)感想

通過本次實(shí)驗(yàn),掌握了防火墻保護(hù)PC機(jī)避免被攻擊的方法;在實(shí)驗(yàn)中,要先設(shè)臵規(guī)則,這樣PC1和PC2之間就可以相互通信,方便做模擬實(shí)驗(yàn);防火墻在抗攻擊過程中起到了很好的作用,保護(hù)主機(jī)免受外來攻擊。

鍛煉了解決問題的能力。比如兩個(gè)主機(jī)之間不能連通,問題可能有:雙絞線本身有問題導(dǎo)致不能連通,電腦網(wǎng)卡未打開導(dǎo)致不連通等等。連通與否可以通過用Ping命令檢查網(wǎng)絡(luò)連接狀況,其中在登錄和設(shè)臵防火墻的時(shí)候也遇到很多問題,但是總的來說是完成了相關(guān)的實(shí)驗(yàn),并利用基本的網(wǎng)絡(luò)知識(shí),鍛煉了實(shí)踐動(dòng)手能力。通過具體的操作,基本掌握了防火墻抗攻擊的配臵方式與方法,更加深入的了解防火墻的重要作用。

了解了防火墻的基本操作及原理,為以后打下基礎(chǔ),雖然各個(gè)廠商,各種產(chǎn)品的具體操作不一樣,但是基本原理是相通的,通曉原理便可舉一反三。同時(shí)培養(yǎng)了冷靜分析解決問題的能力。

第三篇:中南大學(xué) 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告

專業(yè)班級(jí): 指導(dǎo)老師:余臘生 姓

名: 學(xué)

號(hào): 實(shí)驗(yàn)一 單鏈表的基本操作的實(shí)現(xiàn)

一、實(shí)驗(yàn)?zāi)康?/p>

掌握單鏈表的基本操作:建立、插入、刪除、查找等運(yùn)算。

二、實(shí)驗(yàn)儀器

安裝VC++的PC機(jī)。

三、實(shí)驗(yàn)原理

利用線性表的特性以及其鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)特點(diǎn)對(duì)線性表進(jìn)行相關(guān)操作。

四、實(shí)驗(yàn)內(nèi)容

程序中演示了單鏈表的創(chuàng)建、插入、刪除和查找。程序如下:

#include #include #include #include typedef struct node { int data;struct node *next;} NODE;/******************************************/ NODE *Create(){ NODE *p,*head;int x;head=(NODE *)malloc(sizeof(NODE));head->next=NULL;printf(“Input data,-1 to End!n”);

scanf(“%d”,&x);while(x!=-1){ p=(NODE *)malloc(sizeof(NODE));p->data=x;p->next=head->next;head->next=p;scanf(“%d”,&x);} return(head);} /******************************************/ void Output(NODE *head){ NODE *p;p=head;printf(“Begin to dump the LinkList...n”);while(p->next!=NULL){ printf(“->%d”,p->next->data);p=p->next;} printf(“nThe LinkList ended!n”);} /******************************************/ int Listlen(NODE *head){ int i=0;NODE *p=head;while(p->next!=NULL){ i++;p=p->next;} return(i);} /******************************************/ int Get(NODE *head,int i){ int j=0;NODE *p=head;while(p->next&&jnext;} if(!p->next||j>i)return(0);else return(p->data);} /******************************************/ void Del(NODE *head,int i){ NODE *p=head;int j=0;while(p->next&&jnext;} if(!p->next||j>i-1)printf(“the position is wrongn”);else p->next=p->next->next;} /******************************************/ void Ins(NODE *head,int i,int e){ NODE *p=head,*q;int j=0;while(p->next&&jnext;} if(!p->next&&j>i-1)printf(“Wrong positionn”);else { q=(NODE *)malloc(sizeof(NODE));q->data=e;q->next=p->next;p->next=q;} } /******************************************/ main(){ NODE *head;int length;int i,element;system(“CLS”);head=Create();Output(head);length=Listlen(head);printf(“the length of the link is %dn”,length);printf(“input the order :n”);scanf(“%d”,&i);element=Get(head,i);printf(“the element of the order is %dn”,element);printf(“input the del position n”);scanf(“%d”,&i);Del(head,i);Output(head);printf(“Input the insert posion and element:n”);scanf(“%d%d”,&i,&element);Ins(head,i,element);Output(head);getch();}

五、數(shù)據(jù)記錄及處理

1、運(yùn)行程序,輸入下面一組數(shù)據(jù): 93 94 12 13 20 14 鏈表順序:14 20 13 12 94 93

2、刪除第二個(gè)數(shù)據(jù)結(jié)點(diǎn),在第一個(gè)位置插入數(shù)據(jù)20。

運(yùn)行結(jié)果如下: 插入結(jié)果:14 13 12 94 93 刪除結(jié)果:20 14 13 12 94 93 運(yùn)行結(jié)果截圖:

實(shí)驗(yàn)二 棧和隊(duì)列的實(shí)現(xiàn)

一、目的和要求

1.理解隊(duì)列和棧的順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。通過本實(shí)驗(yàn),熟悉隊(duì)列、棧的結(jié)構(gòu)特點(diǎn); 2.熟悉隊(duì)列、棧結(jié)構(gòu)上的操作與算法的實(shí)現(xiàn)。

二、實(shí)驗(yàn)內(nèi)容

1.隊(duì)列的基本操作和應(yīng)用。2.棧的基本操作和應(yīng)用。

三、儀器、設(shè)備和材料

1.適合實(shí)驗(yàn)要求的計(jì)算機(jī)系統(tǒng)。2.VC++編程平臺(tái)。

四、實(shí)驗(yàn)原理

隊(duì)列與棧是一種操作受限制的線性表,在了解線性表的基本原理的基礎(chǔ)上,理解與完成此項(xiàng)實(shí)驗(yàn)。

五、實(shí)驗(yàn)步驟

1.采用隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)。

2.用菜單的形式完成隊(duì)列的建立,出隊(duì),入隊(duì)等基本操作。3.采用棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

4.用菜單的形式完成棧的出棧、入棧等基本操作。

六、程序算法

#include #include #define OVERFLOW-2 #define ERROR 0 #define OK 1 #define MAX 100 //棧的最大值 typedef int SElemType;typedef int QElemType;typedef struct {SElemType *base;

SElemType *top;}SqStack;

SqStack InitStacka()//順序存儲(chǔ)實(shí)現(xiàn)棧的初始化 {SqStack S;S.base=(SElemType *)malloc(MAX*sizeof(SElemType));if(!S.base)exit(OVERFLOW);S.top=S.base;return(S);}

void Pusha(SqStack &S,int x)//順序存儲(chǔ)實(shí)現(xiàn)棧的入棧操作 {if(S.top-S.base>=MAX)exit(OVERFLOW);*S.top++=x;}

void Popa(SqStack &S)//順序存儲(chǔ)實(shí)現(xiàn)棧的出棧操作 {SElemType *p;int x;if(S.top==S.base)return;else {p=S.top;x=*--S.top;printf(“t刪除的棧頂元素是%dnt出棧操作完成后的棧為:n”,x);} } void printa(SqStack S)//輸出 {SElemType *p;p=S.base;printf(“t”);while(p!=S.top){printf(“%d ”,*(p++));} printf(“n”);}

typedef struct SqNode {SElemType data;SqNode *Link;}*Sqptr,NODE;typedef struct {Sqptr top;}Stack;

Stack InitStackb()//鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)棧的初始化 {Stack S;S.top=(Sqptr)malloc(sizeof(NODE));if(!S.top)exit(OVERFLOW);S.top->Link=NULL;return(S);}

void Pushb(Stack &S,int x)//鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)棧的入棧操作 {Sqptr p;p=(Sqptr)malloc(sizeof(NODE));if(!p)return;p->data=x;p->Link=S.top->Link;S.top->Link=p;}

void Popb(Stack &S)//鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)棧的出棧操作 {int x;Sqptr p;if(S.top->Link==NULL)return;else {p=S.top->Link;

x=p->data;

S.top->Link=p->Link;

printf(“t刪除的棧頂元素是%dn”,x);

free(p);} }

typedef struct QNode {QElemType data;struct QNode *next;}*QueuePtr,QNode;typedef struct {QueuePtr front;QueuePtr rear;}LinkQueue;LinkQueue InitQueue()//鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)隊(duì)列的初始化 {LinkQueue Q;Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));if(!Q.front)exit(OVERFLOW);Q.front->next=NULL;

return(Q);} void EnQueue(LinkQueue &Q,QElemType x)//鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)隊(duì)列的入隊(duì) {QueuePtr p;p=(QueuePtr)malloc(sizeof(QNode));if(!p)exit(OVERFLOW);p->data=x;p->next=NULL;Q.rear->next=p;Q.rear=p;} void DeQueue(LinkQueue &Q)//鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)隊(duì)列的出隊(duì) {int x;if(Q.front==Q.rear)return;QueuePtr p;p=Q.front->next;x=p->data;printf(“t刪除的隊(duì)頭元素是:%dn”,x);Q.front->next=p->next;if(Q.rear==p)Q.rear=Q.front;free(p);return;}

typedef struct {SElemType *base;int front,rear;}SqQueue;SqQueue InitQueueb()//順序存儲(chǔ)實(shí)現(xiàn)隊(duì)列的初始化 {SqQueue S;S.base=(SElemType *)malloc(MAX*sizeof(SElemType));if(!S.base)exit(OVERFLOW);S.front=S.rear=0;return(S);} void EnQueueb(SqQueue &S,int x)

//順序存儲(chǔ)實(shí)現(xiàn)隊(duì)列的入隊(duì) {if((S.rear+1)%MAX==S.front)return;S.base[S.rear]=x;S.rear=(S.rear+1)%MAX;} void DeQueueb(SqQueue &S)//順序存儲(chǔ)實(shí)現(xiàn)隊(duì)列的出隊(duì) {int x;if(S.front==S.rear)return;x=S.base[S.front];S.front=(S.front+1)%MAX;printf(“t刪除的隊(duì)頭元素是:%dn”,x);} void main(){int choice;int n,x;printf(“nn”);printf(“t1.采用鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)棧的初始化、入棧、出棧操作n”);printf(“t2.采用順序存儲(chǔ)實(shí)現(xiàn)棧的初始化、入棧、出棧操作n”);printf(“t3.采用鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)隊(duì)列的初始化、入隊(duì)、出隊(duì)操作n”);printf(“t4.采用順序存儲(chǔ)實(shí)現(xiàn)隊(duì)列的初始化、入隊(duì)、出隊(duì)操作n”);printf(“t請(qǐng)選擇:”);scanf(“%d”,&choice);switch(choice){case 1:Stack Sa;

printf(“t1.鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)棧的初始化n”);

printf(“t2.鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)棧的入棧操作n”);

printf(“t3.鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)棧的出棧操作n”);

while(1){

printf(“t請(qǐng)選擇:”);

scanf(“%d”,&n);

switch(n)

{case 1:Sa=InitStackb();

printf(“t鏈?zhǔn)酱鎯?chǔ)棧的初始化完成!n”);break;

case 2:printf(“t以'0'結(jié)束n”);printf(“t”);

scanf(“%d”,&x);

while(x){

Pushb(Sa,x);scanf(“%d”,&x);}

printf(“t鏈?zhǔn)酱鎯?chǔ)棧的入棧操作完成!n”);break;

case 3:Popb(Sa);break;}}break;

case 2:SqStack S;

printf(“t1.順序存儲(chǔ)實(shí)現(xiàn)棧的初始化n”);

printf(“t2.順序存儲(chǔ)實(shí)現(xiàn)棧的入棧操作n”);

printf(“t3.順序存儲(chǔ)實(shí)現(xiàn)棧的出棧操作n”);

while(1){

printf(“t請(qǐng)選擇:”);

scanf(“%d”,&n);

switch(n)

{ case 1:S=InitStacka();

printf(“t順序存儲(chǔ)棧的初始化完成!n”);break;

case 2:printf(“t以'0'結(jié)束n”);

printf(“t”);

scanf(“%d”,&x);

while(x){

Pusha(S,x);

scanf(“%d”,&x);}

printf(“t順序存儲(chǔ)棧的入棧操作完成!n”);

printa(S);break;

case 3:Popa(S);

printa(S);break;}}break;

case 3:LinkQueue Q;

printf(“t1.鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)隊(duì)的初始化n”);

printf(“t2.鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)隊(duì)的入棧操作n”);

printf(“t3.鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)隊(duì)的出棧操作n”);

while(1){

printf(“t請(qǐng)選擇:”);

scanf(“%d”,&n);

switch(n)

{

case 1:Q=InitQueue();

printf(“t鏈?zhǔn)酱鎯?chǔ)隊(duì)的初始化完成!n”);break;

case 2:printf(“t以'0'結(jié)束n”);printf(“t”);scanf(“%d”,&x);

while(x){

EnQueue(Q,x);scanf(“%d”,&x);}

printf(“t鏈?zhǔn)酱鎯?chǔ)隊(duì)的入棧操作完成!n”);break;

case 3:DeQueue(Q);break;}}break;

case 4:SqQueue Sv;

printf(“t1.順序存儲(chǔ)實(shí)現(xiàn)隊(duì)的初始化n”);

printf(“t2.順序存儲(chǔ)實(shí)現(xiàn)隊(duì)的入棧操作n”);

printf(“t3.順序存儲(chǔ)實(shí)現(xiàn)隊(duì)的出棧操作n”);

while(1){

printf(“t請(qǐng)選擇:”);

scanf(“%d”,&n);

switch(n)

{case 1:Sv=InitQueueb();

printf(“t鏈?zhǔn)酱鎯?chǔ)棧的初始化完成!n”);break;

case 2:printf(“t以'0'結(jié)束n”);printf(“t”);scanf(“%d”,&x);

while(x){

EnQueueb(Sv,x);scanf(“%d”,&x);}

printf(“t鏈?zhǔn)酱鎯?chǔ)棧的入棧操作完成!n”);break;

case 3: DeQueueb(Sv);break;}}break;} } 程序調(diào)試截圖:

1.采用鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)棧的初始化、入棧、出棧操作

2.采用順序存儲(chǔ)實(shí)現(xiàn)棧的初始化、入棧、出棧操作

3.采用鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)隊(duì)列的初始化、入隊(duì)、出隊(duì)操作

4.采用順序存儲(chǔ)實(shí)現(xiàn)隊(duì)列的初始化、入隊(duì)、出隊(duì)操作

七、心得體會(huì)

實(shí)踐才能出真知,在通過了上機(jī)操作后,才發(fā)現(xiàn)了許多在平時(shí)上理論課的時(shí)候沒有想到的方方面面,編寫程序時(shí)發(fā)現(xiàn)很多語法的錯(cuò)誤,以及很多英語單詞的記不熟,記錯(cuò),程序函數(shù)錯(cuò)用等等,我想需要在以后多多練習(xí),才能逐步解決這些問題。實(shí)驗(yàn)三 二叉樹的建立和遍歷

一、目的和要求

1、了解二叉樹的建立的方法及其遍歷的順序,熟悉二叉樹的三種遍歷

2、檢驗(yàn)輸入的數(shù)據(jù)是否可以構(gòu)成一顆二叉樹

二、實(shí)驗(yàn)內(nèi)容

1.二叉樹的建立和遍歷

三、儀器、設(shè)備和材料

1.適合實(shí)驗(yàn)要求的計(jì)算機(jī)系統(tǒng)。2.VC++編程平臺(tái)。

四、實(shí)驗(yàn)的描述和算法

1、實(shí)驗(yàn)描述

二叉樹的建立首先要建立一個(gè)二叉鏈表的結(jié)構(gòu)體,包含根節(jié)點(diǎn)和左右子樹。因?yàn)槎斓拿恳粋€(gè)左右子樹又是一顆二叉樹,所以可以用遞歸的方法來建立其左右子樹。二叉樹的遍歷是一種把二叉樹的每一個(gè)節(jié)點(diǎn)訪問完并輸出的過程,遍歷時(shí)根結(jié)點(diǎn)與左右孩子的輸出順序構(gòu)成了不同的遍歷方法,這個(gè)過程需要按照不同的遍歷的方法,先輸出根結(jié)點(diǎn)還是先輸出左右孩子,可以用選擇語句實(shí)現(xiàn)。

2、算法

#include #include using namespace std;template struct BinTreeNode

//二叉樹結(jié)點(diǎn)類定義 { T data;

//數(shù)據(jù)域

BinTreeNode *leftChild,*rightChild;

//左子女、右子女域

BinTreeNode(T x=T(),BinTreeNode* l =NULL,BinTreeNode* r = NULL)

:data(x),leftChild(l),rightChild(r){}

//可選擇參數(shù)的默認(rèn)構(gòu)造函數(shù) };//-----------template void PreOrder_2(BinTreeNode *p)

//非遞歸前序遍歷 { stack * > S;while(p!=NULL ||!S.empty()){

while(p!=NULL)

{

cout<

data;

//訪問根結(jié)點(diǎn)

S.push(p);

p=p->leftChild;

//遍歷指針進(jìn)到左子女結(jié)點(diǎn)

}

if(!S.empty())

//棧不空時(shí)退棧

{

p=S.top();

S.pop();

p = p->rightChild;

//遍歷指針進(jìn)到右子女結(jié)點(diǎn)

} } } //--template void InOrder_2(BinTreeNode *p)

//非遞歸中序遍歷 { stack* > S;do {

while(p!=NULL)

//遍歷指針未到最左下的結(jié)點(diǎn),不空

{

S.push(p);

p=p->leftChild;

}

if(!S.empty())

//棧不空時(shí)退棧

{

p=S.top();

S.pop();

cout<

data;

p=p->rightChild;

} } while(p!=NULL ||!S.empty());}

//----template void PostOrder_2(BinTreeNode *p)//非遞歸后序遍歷 { stack * > S;stack tag;//定義一個(gè)新的棧用來保存tag域判別根結(jié)點(diǎn)的左右子樹是否均遍歷過

while(p!= NULL ||!S.empty())

//左子樹經(jīng)過結(jié)點(diǎn)加L進(jìn)棧

{

while(p!=NULL)

{

S.push(p);//首先將t和tag為入棧,遍歷左子樹

tag.push(0);//遍歷左子樹前的現(xiàn)場(chǎng)保護(hù)

p=p->leftChild;

}

while(!S.empty()&& tag.top()==1)

{

p=S.top();

S.pop();

tag.pop();

cout<

data;//最后訪問根結(jié)點(diǎn)。

}

if(!S.empty())

{

tag.pop();

tag.push(1);//遍歷右子樹前的現(xiàn)場(chǎng)保護(hù),修改棧頂tag為,遍歷右子樹

p=S.top();

// 取棧頂保存的指針

p=p->rightChild;

}

else

break;

} } template void InOrder_1(BinTreeNode * subTree){//遞歸函數(shù):中序次序遍歷以subTree為根的子樹。

if(subTree!=NULL)

//NULL是遞歸終止條件

{

InOrder_1(subTree->leftChild);//中序遍歷根的左子樹

cout<data;

//訪問根結(jié)點(diǎn)

InOrder_1(subTree->rightChild);//中序遍歷根的右子樹

} } template void PreOrder_1(BinTreeNode * subTree){//遞歸函數(shù):前序遍歷以subTree為根的二叉樹。if(subTree!=NULL)

//遞歸結(jié)束條件

{

cout<data;//訪問根結(jié)點(diǎn)

PreOrder_1(subTree->leftChild);

//前序遍歷根的左子樹

PreOrder_1(subTree->rightChild);

//前序遍歷根的右子樹

} } template void PostOrder_1(BinTreeNode * subTree){//遞歸函數(shù):后序次序遍歷以subTree為根的子樹。

if(subTree!=NULL)

//NULL是遞歸終止條件

{

PostOrder_1(subTree->leftChild);//后序遍歷根的左子樹

PostOrder_1(subTree->rightChild);//后序遍歷根的右子樹

cout<data;

//訪問根結(jié)點(diǎn)

} } //------------template void CreateBinTree(BinTreeNode * & subTree){//遞歸方式建立二叉樹

T item;

cin>>item;

if(item!=-1)

{

subTree = new BinTreeNode();

if(subTree == NULL)

{

cerr<<“存儲(chǔ)分配錯(cuò)!”<

exit(1);

}

subTree->data = item;

CreateBinTree(subTree->leftChild);//遞歸建立左子樹

CreateBinTree(subTree->rightChild);//遞歸建立右子樹

}

else subTree = NULL;

//封閉指向空子樹的指針 } int main(){

BinTreeNode * Tree = NULL;cout<<“請(qǐng)輸入每個(gè)結(jié)點(diǎn),回車確認(rèn),并以-1結(jié)束:”;CreateBinTree(Tree);

cout<<“先序遍歷二叉樹結(jié)果:”;

PreOrder_1(Tree);

cout<

cout<<“后序遍歷二叉樹結(jié)果:”;

PostOrder_1(Tree);cout<

cout<<“非遞歸中序遍歷二叉樹結(jié)果:”;InOrder_2(Tree);cout<

3、實(shí)驗(yàn)程序運(yùn)行截圖

實(shí)驗(yàn)四 散列法查找和排序

一、目的和要求

1.用散列法實(shí)現(xiàn)順序查找,折半查找。

二、儀器、設(shè)備和材料

1.適合實(shí)驗(yàn)要求的計(jì)算機(jī)系統(tǒng)。2.VC++編程平臺(tái)。

三、實(shí)驗(yàn)步驟 和程序

1、順序查找 #include #include #include #define m

#define NULLKEY 0 typedef int KeyType;

/* 假設(shè)關(guān)鍵字為整型 */ typedef struct { KeyType key;}RecordType;typedef RecordType HashTable[m];int hash(KeyType k)/*除留余數(shù)法構(gòu)造哈希函數(shù)*/ { int h;h = k%m;return h;} int HashSearch(HashTable ht, KeyType K)/*哈希查找*/ { int h0;int i;int hi;h0=hash(K);if(ht[h0].key==NULLKEY)

return(-1);else

if(ht[h0].key==K)

return(h0);

else

/* 用線性探測(cè)再散列解決沖突 */

{

for(i=1;i<=m-1;i++)

{

hi=(h0+i)% m;

if(ht[hi].key==NULLKEY)

return(-1);

else

if(ht[hi].key==K)

return(hi);

}

return(-1);

}

} void main(){ int i,j;int n;int p;int hj;int k;int result;HashTable ht;for(i=0;i

ht[i].key = NULLKEY;printf(“請(qǐng)輸入哈希表的元素個(gè)數(shù):”);scanf(“%d”,&n);for(i=1;i<=n;i++){

printf(“請(qǐng)輸入第%d個(gè)元素:”,i);

fflush(stdin);

scanf(“%d”,&p);

j = hash(p);

if(ht[j].key == NULLKEY)

ht[j].key = p;

else

{

for(i=1;i<=m-1;i++)

{

hj=(j+i)% m;

if(ht[hj].key==NULLKEY)

{

ht[j].key = p;

}

i = m;

}

}

} } printf(“請(qǐng)輸入要查找的元素:”);fflush(stdin);scanf(“%d”,&k);result = HashSearch(ht,k);if(result ==-1)printf(“未找到!n”);else printf(“元素位置為%dn”,result);system(“pause”);運(yùn)行結(jié)果如下:

2、折半查找

#include #define N 21 void main(void){ int a[N];int i,n,num;int top,bottom,mid;int flag=1;int loc=-1;printf(“你想在多少個(gè)數(shù)中進(jìn)行折半查找,請(qǐng)輸入(1--20):”);scanf(“%d”,&n);while(n<1||n>20){

printf(“你輸入的數(shù)不正確,請(qǐng)重新輸入:n”);

printf(“你想在多少個(gè)數(shù)中進(jìn)行折半查找,請(qǐng)輸入(1--20):”);

scanf(“%d”,&n);} printf(“請(qǐng)你輸入一個(gè)整數(shù)a[1]:”);scanf(“%d”,&a[1]);i=2;while(i<=n){

printf(“請(qǐng)你輸入一個(gè)整數(shù)a[%d]:”,i);

scanf(“%d”,&a[i]);

i++;} printf(“n輸出表列n”);for(i=1;i<=n;i++){ printf(“%6d”,a[i]);} printf(“n”);printf(“請(qǐng)你輸入要查找的數(shù):”);scanf(“%d”,&num);flag=1;top=n;bottom=1;mid=(top+bottom)/2;while(flag){ printf(“top=%d,bottom=%d,mid=%d,a[i]=%dn”,top,bottom,mid,mid,a[mid]);if((num>a[top])||(num

loc=-1;

flag=0;} else if(a[mid]==num){

loc=mid;

printf(“找到數(shù)

%6d的位置%2dn”,num,loc);

break;} else if(a[mid]>num){

top=mid-1;

mid=(top+bottom)/2;} else if(a[mid]

bottom=mid+1;

mid=(top+bottom)/2;} } if(loc==-1){ printf(“%d這個(gè)數(shù)在表列中沒有找到。n”,num);} } 運(yùn)行結(jié)果如下:

第四篇:中南大學(xué)單片機(jī)實(shí)驗(yàn)報(bào)告..

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

微控制器技術(shù)實(shí)驗(yàn)報(bào)告

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

目錄

一、實(shí)驗(yàn)?zāi)康募耙?.....................................................................3

二、基本實(shí)驗(yàn)內(nèi)容..........................................................................4

三、實(shí)驗(yàn)設(shè)備.................................................................................6

四、實(shí)驗(yàn)設(shè)計(jì)思想與結(jié)果分析......................................................9 實(shí)驗(yàn)一 清零程序與拆字程序設(shè)計(jì)............................................10 實(shí)驗(yàn)二 拼字程序與數(shù)據(jù)傳送程序設(shè)計(jì).....................................13 實(shí)驗(yàn)三 排序程序與散轉(zhuǎn)程序設(shè)計(jì)............................................16 實(shí)驗(yàn)四

數(shù)字量輸入輸出實(shí)驗(yàn)....................................................18 實(shí)驗(yàn)五 定時(shí)器/計(jì)數(shù)器實(shí)驗(yàn).........................................................21 實(shí)驗(yàn)六

A/D、D/A轉(zhuǎn)換實(shí)驗(yàn).................................................24 實(shí)驗(yàn)七

串行通訊實(shí)驗(yàn)................................................................29

五、實(shí)驗(yàn)總結(jié)...............................................................................34

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

一、實(shí)驗(yàn)?zāi)康募耙?/p>

1.熟練掌握Keil C51集成開發(fā)工具的操作及調(diào)試程序的方法,包

括:仿真調(diào)試與脫機(jī)運(yùn)行間的切換方法;

2.熟練使用SST89C554RC單片機(jī)核心板及I/O擴(kuò)展實(shí)驗(yàn)系統(tǒng);

3.熟練掌握在Keil C51與Proteus仿真軟件虛擬聯(lián)機(jī)環(huán)境下,基于51單片機(jī)控制器數(shù)字接口電路的硬件、軟件設(shè)計(jì)與功能調(diào)試;

4.完成MCS51單片機(jī)指令系統(tǒng)軟件編程設(shè)計(jì)和硬件接口功能設(shè)計(jì)題;

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

二、基本實(shí)驗(yàn)內(nèi)容

實(shí)驗(yàn)一 清零程序與拆字程序設(shè)計(jì)

根據(jù)實(shí)驗(yàn)指導(dǎo)書之“第二章 單片機(jī)原理實(shí)驗(yàn)”(P17~P23頁)內(nèi)容,熟悉實(shí)驗(yàn)環(huán)境及方法,完成思考題1、2(P23)基礎(chǔ)實(shí)驗(yàn)項(xiàng)目。

實(shí)驗(yàn)二 拼字程序與數(shù)據(jù)傳送程序設(shè)計(jì)

匯編語言完成實(shí)驗(yàn)指導(dǎo)書P24思考題3、4題的基礎(chǔ)實(shí)驗(yàn)項(xiàng)目。

實(shí)驗(yàn)三 排序程序與散轉(zhuǎn)程序設(shè)計(jì)

匯編語言完成實(shí)驗(yàn)指導(dǎo)書P24思考題5、6題的基礎(chǔ)實(shí)驗(yàn)項(xiàng)目。

實(shí)驗(yàn)四 數(shù)字量輸入輸出實(shí)驗(yàn)

基本部分:閱讀、驗(yàn)證C語言程序功能。使用匯編語言編程,完成實(shí)驗(yàn)指導(dǎo)書之“3.1 數(shù)字量輸入輸出實(shí)驗(yàn)”基本實(shí)驗(yàn)項(xiàng)目(P36)。

提高部分:(任選一題)

題目一:LED交通燈控制(使用8255接口芯片)

要求:使用匯編語言編程,功能為:通過開關(guān)實(shí)現(xiàn)LED燈工作方式即時(shí)控制,完成LED交通燈的開關(guān)控制顯示功能和LED交通燈自動(dòng)循環(huán)顯示功能。

題目二:LED燈控制(使用8255接口芯片)

要求:使用匯編語言編程,功能為:通過KK1實(shí)現(xiàn)LED燈工作方式即時(shí)控制,完成LED開關(guān)控制顯示和LED燈左循環(huán)、右循環(huán)、間隔閃爍功能。

題目三:鍵盤掃描與數(shù)碼管顯示設(shè)計(jì)

要求:閱讀、驗(yàn)證P69上的C語言參考程序功能。用匯編語言完成編程與功能調(diào)試。

實(shí)驗(yàn)五 定時(shí)器/計(jì)數(shù)器實(shí)驗(yàn)

基本部分:閱讀、驗(yàn)證C語言程序功能。使用匯編語言編程,完成實(shí)驗(yàn)指導(dǎo)書之“3.3 定時(shí)/計(jì)數(shù)器實(shí)驗(yàn)”基本實(shí)驗(yàn)項(xiàng)目(P40)。

提高部分:(任選一題完成)

題目一:定時(shí)器控制LED燈

要求:由單片機(jī)內(nèi)部定時(shí)器1,按方式1工作,即作為16位定時(shí)器使用每0.05秒鐘T1溢出中斷一次。P1口的P1.0-P1.7分別接八個(gè)發(fā)光二極管。編寫程序模擬時(shí)序控制裝置。開機(jī)后第一秒鐘L1,L3亮,第二秒鐘L2,L4亮,第三秒鐘L5,L7亮,第四秒鐘L6,L8亮,第五秒鐘L1,L3,L5,L7亮,第六秒鐘L2,L4,L6,L8亮,第七秒鐘八個(gè)LED燈全亮,第八秒鐘全滅,以后又從頭開始,L1,L3亮,然后L2,L4亮??一直循環(huán)下去。

題目二:計(jì)數(shù)器實(shí)驗(yàn)

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

要求:單片機(jī)內(nèi)部定時(shí)計(jì)數(shù)器,按計(jì)數(shù)器模式和方式1工作,對(duì)P3.4(T0)引腳進(jìn)行計(jì)數(shù)。使用T1作定時(shí)器,50ms中斷一次,看T0內(nèi)每0.50來了多少脈沖,將其數(shù)值按二進(jìn)制在LED燈上顯示出來,5秒后再次測(cè)試。

題目三:急救車與交通燈(外部中斷實(shí)驗(yàn))

要求:完成交通燈基本功能基礎(chǔ)上,當(dāng)有急救車到達(dá)時(shí),兩向交通信號(hào)為全紅,以便讓急救車通過。假定急救車通過路口時(shí)間為10秒,急救車通過后,交通燈恢復(fù)中斷前狀態(tài)。本實(shí)驗(yàn)題以按鍵為中斷申請(qǐng),表示有急救車通過。

實(shí)驗(yàn)六 A/D、D/A轉(zhuǎn)換實(shí)驗(yàn)

基本部分:閱讀、驗(yàn)證C語言程序功能。使用匯編語言編程,完成實(shí)驗(yàn)指導(dǎo)書之“4.3 A/D轉(zhuǎn)換實(shí)驗(yàn)”項(xiàng)目(P64)和“4.4 D/A轉(zhuǎn)換實(shí)驗(yàn)”項(xiàng)目(P67)。

提高部分:(要求:Proteus環(huán)境下完成)

小鍵盤給定(并顯示工作狀態(tài)),選擇信號(hào)源輸出波形類型(D/A轉(zhuǎn)換方式),經(jīng)過A/D采樣后,將采樣數(shù)據(jù)用LED燈,顯示當(dāng)前模擬信號(hào)值大小及變化狀態(tài)。

實(shí)驗(yàn)七 串行通訊實(shí)驗(yàn)

基本部分:閱讀、調(diào)試C語言程序功能。使用匯編語言編程,完成實(shí)驗(yàn)指導(dǎo)書之“3.7 串口通訊實(shí)驗(yàn)”項(xiàng)目。(要求:實(shí)驗(yàn)儀器上完成)

提高部分:(要求:Proteus環(huán)境下完成)

題目一:利用單片機(jī)實(shí)驗(yàn)系統(tǒng),實(shí)現(xiàn)與PC機(jī)通訊。功能要求:將從實(shí)驗(yàn)系統(tǒng)鍵盤上鍵入的數(shù)字,字母顯示到PC機(jī)顯示器上,將PC機(jī)鍵盤輸入的字符(0-F)顯示到單片機(jī)實(shí)驗(yàn)系統(tǒng)的數(shù)碼管上。

題目二:進(jìn)行實(shí)驗(yàn)

六、實(shí)驗(yàn)七實(shí)驗(yàn)內(nèi)容綜合。

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

三、實(shí)驗(yàn)設(shè)備

軟件設(shè)備:KEIL uv2,PROTEUS7.4 硬件設(shè)備:PC機(jī),TD-51系統(tǒng)板(包括SST89E554RC單片機(jī)一片、串行通信線、接口等)

1、TD-51系統(tǒng)板 1 系統(tǒng)構(gòu)成 ○TD-51 系統(tǒng)板為開放的最小單片機(jī)系統(tǒng),采用具有在系統(tǒng)可編程和在應(yīng)用可編程技術(shù)的增強(qiáng)型51 單片機(jī),單片機(jī)內(nèi)置仿真程序,可以實(shí)現(xiàn)調(diào)試、仿真功能,配合TD 系列微機(jī)接口教學(xué) 實(shí)驗(yàn)平臺(tái)可開展單片機(jī)原理及應(yīng)用的實(shí)驗(yàn)教學(xué)。系統(tǒng)功能特點(diǎn) ○1.取代硬件仿真器的增強(qiáng)型單型

系統(tǒng)采用具有在系統(tǒng)可編程(ISP)和在應(yīng)用可編程(IAP)技術(shù)的增強(qiáng)型51 單片機(jī),單片機(jī)內(nèi)置仿真程序,完全取代傳統(tǒng)的硬件仿真器和編程器。這種先進(jìn)的單片機(jī)將仿真系統(tǒng)和應(yīng)用系統(tǒng)合二為一,大大降低了應(yīng)用開發(fā)成本,極大地提高了研發(fā)效率。把單片機(jī)的仿真開發(fā)和應(yīng)用設(shè)計(jì)提高到一個(gè)嶄新的技術(shù)領(lǐng)域。

2.先進(jìn)的集成開發(fā)調(diào)試調(diào)

使用業(yè)界著名的Keil C51 集成開發(fā)環(huán)境作為實(shí)驗(yàn)設(shè)計(jì)、調(diào)試的工具。Keil C51 提供了強(qiáng)大的調(diào)試功能,可單步、斷點(diǎn)、全速運(yùn)行程序,可觀察寄存器區(qū)、ROM 變量區(qū)、RAM 變量區(qū)等的內(nèi)容。支持匯編語言和C 語言的源語言調(diào)試。

3.靈活的組合組

采用開放的系統(tǒng)板結(jié)構(gòu),可以靈活地配合各型號(hào)接口實(shí)驗(yàn)平臺(tái)開展單片機(jī)的應(yīng)用教學(xué)。

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

4.豐富的實(shí)驗(yàn)內(nèi)容

提供了豐富的原理及接口應(yīng)用實(shí)驗(yàn)。配合接口實(shí)驗(yàn)平臺(tái)可完成數(shù)字量輸入/輸出、中斷、定時(shí)器/計(jì)數(shù)器、看門狗、低功耗、PCA、串口通訊、靜態(tài)存儲(chǔ)器、FLASH、A/D、D/A、鍵盤及數(shù)碼顯示、電子音響、點(diǎn)陣LED、LCD、步進(jìn)電機(jī)、直流電機(jī)、溫度控制等實(shí)驗(yàn)內(nèi)容。

2、SST89E554RC簡介

TD-51 系統(tǒng)板上提供了一片SST89E554RC,該器件是SST 公司推出的8 位微控制器FlashFlex51 家族中的一員,具有如下特征: ·u19982X8051 兼容,嵌入SuperFlash 存儲(chǔ)器 - 軟件完全兼容 - 開發(fā)工具兼容 - 引腳全兼容

·u24037X作電壓5V,工作時(shí)鐘0~40MHz ·1Kbyte 內(nèi)部RAM ·u20004X塊SuperFlash EEPROM,主塊32Kbyte,從塊8Kbyte,扇區(qū)為128Byte ·u26377X三個(gè)高電流驅(qū)動(dòng)端口(每個(gè)16mA)·u19977X個(gè)16 位的定時(shí)器/計(jì)數(shù)器 ·u20840X雙工、增強(qiáng)型UART - 幀錯(cuò)誤檢測(cè) - 自動(dòng)地址識(shí)別

·u20843X個(gè)中斷源,四級(jí)優(yōu)先級(jí) ·u21487X編程看門狗定時(shí)器(WDT)·u21487X編程計(jì)數(shù)陣列(PCA)·u21452XDPTR 寄存器

·u20302XEMI 模式(可禁止ALE)·SPI 串行接口

·u26631X準(zhǔn)每周期12 個(gè)時(shí)鐘,器件提供選項(xiàng)可使速度倍增,達(dá)到每周期6 個(gè)時(shí)鐘

·u20302X功耗模式

- 掉電模式,可由外部中斷喚醒 - 空閑模式

SST89E554RC 的功能框圖如圖1-2-1 所示,外部引腳如圖1-2-2 所示。SST89E554RC 的特殊功能寄存器如表1-2-1 所列。

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

四、實(shí)驗(yàn)設(shè)計(jì)思想與結(jié)果分析

實(shí)驗(yàn)一到實(shí)驗(yàn)四為軟件編程實(shí)驗(yàn),需要熟練掌握KEIL uv2編程工具的使用,通過編寫程序?qū)崿F(xiàn)實(shí)驗(yàn)要求。實(shí)驗(yàn)四到實(shí)驗(yàn)八為硬件接口實(shí)驗(yàn),需要利用TD-51系統(tǒng)板,通過KEIL uv2編寫好程序,下載到所給的SST89E554RC單片機(jī)中,按原理接好硬件接線圖,完成實(shí)驗(yàn)要求。

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)一 清零程序與拆字程序設(shè)計(jì)

實(shí)驗(yàn)調(diào)試步驟及結(jié)果分析:

(1)編寫好實(shí)驗(yàn)程序后,采用ISP模式調(diào)試。

(2)運(yùn)行程序,使用Keil51模擬器中的虛擬存儲(chǔ)器監(jiān)視內(nèi)容變化。(訪問片外存儲(chǔ)器,用“X:+地址”的格式)。

(3)在清零實(shí)驗(yàn)中。用單步跳過的調(diào)試方式。7000H-7FFFH中內(nèi)容先被寫入0FFH;然后全部清零。

(4)在拆子程序?qū)嶒?yàn)中,單步進(jìn)入調(diào)試,先在7000H中,寫入1FH,首先送低位0FH至7001H,然后送高位1H至7002H。

程序流程圖:

清零程序流程圖 拆字程序流程圖

程序清單: 清零程序:

程序如下:

ORG 0000H LJMP MAIN

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

ORG 0100H MAIN: MOV DPTR,#7000H;片內(nèi)RAM首地址

MOV A, #01H;寫入數(shù)據(jù)初值

MOV R6, #20H;循環(huán)變量

LOOP2: MOV R7, #80H LOOP1: MOVX @DPTR, A;寫數(shù)據(jù)到RAM

INC DPTR;地址加1

DJNZ R7, LOOP1

DJNZ R6, LOOP2

SJMP $

END 結(jié)果如下:

單步運(yùn)行下,第一步為:

最后一步為: 8000h為0

拆字程序:

ORG 0000H

LJMP MAIN

ORG 0100H MAIN: MOV DPTR,#7000H;MOV A,#12H;MOVX @DPTR,A;

RR A;

RR A;

RR A;

RR A;

ANL A,#0FH;高位送7001H低位

MOV DPTR,#7001H;

MOVX @DPTR,A;

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

MOV DPTR,#7000H;

MOVX A,@DPTR;

ANL A,#0FH;低位送7002H低位 MOV DPTR,#7002H;

MOVX @DPTR,A;

SJMP $;設(shè)置斷點(diǎn), 觀察實(shí)驗(yàn)結(jié)果中的內(nèi)容

END 結(jié)果如下:

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)二 拼字程序與數(shù)據(jù)傳送程序設(shè)計(jì)

實(shí)驗(yàn)步驟及結(jié)果分析:

(1)編寫好實(shí)驗(yàn)程序后,采用ISP模式調(diào)試。

(2)拼字程序里,將兩個(gè)字節(jié)內(nèi)容分別存為12H,34H。低位相拼,結(jié)果是24H。

(3)運(yùn)行程序,使用Keil51模擬器中的虛擬存儲(chǔ)器監(jiān)視內(nèi)容變化。(訪問片外存儲(chǔ)器,用“X:+地址”的格式)。

程序流程圖:

拼字程序流程圖 數(shù)據(jù)傳輸程序流程圖

程序清單:

ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV DPTR,#7000H;MOV A,#01H;MOVX @DPTR,A;

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

ANL A,#0FH;屏蔽高位

SWAP A;MOV B,A;MOV DPTR,#7001H;送7001H MOV A,#0AH;MOVX @DPTR,A;ANL A,#0FH;ORL A,B;拼送后送7002H MOV DPTR,#7002H;MOVX @DPTR,A;SJMP $;設(shè)置斷點(diǎn), 觀察實(shí)驗(yàn)結(jié)果中的內(nèi)容

END 結(jié)果如下:

數(shù)據(jù)傳輸程序

ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R2,#70H;MOV R3,#00H;源地址

MOV R4,#71H;MOV R5,#00H;目的地址

MOV R6,#00H;MOV R7,#07H;傳送個(gè)數(shù)

MOV R1,#10H;MOV R0,#07H;MOV DPH,R2;MOV DPL,R3;MOV A,R1;L0: MOVX @DPTR,A;INC DPTR;DJNZ R0,L0;賦值 L2: MOV R7,#0FFH;L1: MOV DPH,R2;MOV DPL,R3;

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

MOVX A,@DPTR;INC DPTR;MOV R2,DPH;MOV R3,DPL;MOV DPH,R4;MOV DPL,R5;MOVX @DPTR,A;INC DPTR;MOV R4,DPH;MOV R5,DPL;DJNZ R7,L1;DJNZ R6,L2;SJMP $ END

結(jié)果如下:

把7000h中的8個(gè)數(shù)據(jù)發(fā)給7100h中:

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)三 排序程序與散轉(zhuǎn)程序設(shè)計(jì)

實(shí)驗(yàn)步驟及結(jié)果分析: 排序?qū)嶒?yàn):

(1)編寫實(shí)驗(yàn)程序,編譯、鏈接無誤后聯(lián)機(jī)調(diào)試;

(2)為 30H~39H 賦初值,如:在命令行中鍵入 E CHAR D:30H=9, 11H, 5, 31H, 20H, 16H,1, 1AH, 3FH, 8 后回車,可將這 10 個(gè)數(shù)寫入 30H~39H 中;

(3)將光標(biāo)移到語句行命令,將程序運(yùn)行到該行;

(4)查看存儲(chǔ)器窗口中 30H~39H 中的內(nèi)容,驗(yàn)證程序功能;

(5)重新為 30H~39H 單元賦值,反復(fù)運(yùn)行實(shí)驗(yàn)程序,驗(yàn)證程序的正確性。

實(shí)驗(yàn)流程圖

程序清單: 散轉(zhuǎn)程序:

ORG 0000H LJMP MAIN ORG 0100H MAIN : MOV A,#01H MOV R2,A RL A ADD A,R2 MOV DPTR,#PTAB JMP @A+DPTR PTAB: LJMP PM0 LJMP PM1

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

LJMP PM2 LJMP PM3

PM0: [程序體0] PM1: [程序體1] PM2: [程序體2] PM3: [程序體3] SJMP $ END 冒泡排序子程序:

ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R0,#10H;MOV R7,#04H;ACALL MAOP SJMP $ MAOP: L1: MOV A,R0;MOV R1,A INC R1;MOV A,R7 MOV R6,A L2: MOV A,@R0 CLR C SUBB A,@R1;JC L3;MOV A,@R0;XCH A,@R1 MOV @R0,A L3: INC R1 DJNZ R6,L2;INC R0 DJNZ R7,L1;RET;END 初始地址

外循環(huán)次數(shù)(參與比較的數(shù)的個(gè)數(shù)-1)賦給初始地址 取第二個(gè)數(shù)的地址 兩數(shù)進(jìn)行比較

前數(shù)小于后數(shù)則保持位置不變 否則,交換位置 內(nèi)循環(huán)是否完成 外循環(huán)是否完成 返回主程序 17

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)四

數(shù)字量輸入輸出實(shí)驗(yàn)

實(shí)驗(yàn)步驟:(1)按圖11接好試驗(yàn)線路圖,圖中圓圈表示不要通過排線連接(2)編寫實(shí)驗(yàn)程序,編譯鏈接無誤后進(jìn)入調(diào)試狀態(tài)(3)運(yùn)行實(shí)驗(yàn)程序,觀察實(shí)驗(yàn)現(xiàn)象,驗(yàn)證程序正確性(4)按復(fù)位鍵,結(jié)束程序運(yùn)行,退出調(diào)試狀態(tài)

實(shí)驗(yàn)硬件接線圖:

程序清單: 基礎(chǔ)部分:

ORG 0000H LJMP MAIN ORG 0100H MAIN : MOV P1,#0FFH;初始化

MOV A,P1;將輸入寫進(jìn)累加器A SWAP A ANL A,#0FH MOV P1,A;輸出顯示

LJMP MAIN;循環(huán)不斷檢測(cè)P1口輸入端的新狀態(tài)

SJMP $ END LED燈控制:

ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV TMOD, #60H;設(shè)置T1為模式2,外部計(jì)數(shù)方式 MOV TH1,#0FFH;T1計(jì)數(shù)器賦初值 MOV TL1,#0FFH MOV DPTR,#7300H

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

MOV A,#80H MOVX @DPTR,A MOV DPTR,#7100H SETB TR1;開啟計(jì)數(shù)器

LEFT: MOV R0,#08H;左循環(huán) MOV A,#01H A1: MOVX @DPTR,A LCALL DELAY RL A DJNZ R0,A1 JBC TF1,RIGHT;JMP LEFT

RIGHT: MOV R0,#08H;MOV A,#80H A2: MOVX @DPTR,A LCALL DELAY RR A DJNZ R0,A2 JBC TF1,SHANSHUO;JMP RIGHT

SS: MOV R0,#08H;LP1: MOV A,#55H MOVX @DPTR,A LCALL DELAY MOV A,#0AAH MOVX @DPTR,A LCALL DELAY DJNZ R0,LP1 JBC TF1, LEFT;JMP SHANSHUO DELAY: MOV R1,#0FFH DEL1: MOV R2,0FFH DEL2: DJNZ R2, DEL2 DJNZ R1,DEL1 RET SJMP $

END 查詢T1溢出標(biāo)志,TF1=1時(shí)轉(zhuǎn)移右循環(huán) 查詢T1溢出標(biāo)志,TF1=1時(shí)轉(zhuǎn)移閃爍 查詢T1溢出標(biāo)志,TF1=1時(shí)轉(zhuǎn)移

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

結(jié)果分析:

利用計(jì)數(shù)器T1外部技術(shù)方式,當(dāng)外部輸入脈沖引腳上出現(xiàn)電平負(fù)跳變時(shí),T1計(jì)數(shù)器加一,溢出標(biāo)志TF1置一,然后改變LED燈亮的方式,同時(shí),將標(biāo)志位TF1復(fù)位,進(jìn)入下一輪的計(jì)數(shù)溢出等待。因此,而形成三種亮燈方式的自動(dòng)循環(huán)。若是用開關(guān)實(shí)現(xiàn)三種方式的亮燈,則需要在最開始和每種亮燈之后通過8255對(duì)開關(guān)狀態(tài)進(jìn)行采集并進(jìn)行判斷。因此事先還要先設(shè)置好哪個(gè)開關(guān)的閉合表示哪種亮燈方式。

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)五 定時(shí)器/計(jì)數(shù)器實(shí)驗(yàn)

實(shí)驗(yàn)步驟:

(1)編寫實(shí)驗(yàn)程序,編譯、鏈接后聯(lián)機(jī)調(diào)試;

(2)運(yùn)行實(shí)驗(yàn)程序,使用示波器觀察 P1.0引腳上的波形并記錄周期;(3)改變計(jì)數(shù)初值,觀察實(shí)驗(yàn)現(xiàn)象,驗(yàn)證程序功能。

實(shí)驗(yàn)硬件接線圖:

○1 定時(shí)器LED控制PROTEUS仿真接線圖

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

程序流程圖:

程序清單:

#include unsigned char count;

void main(){ unsigned char value, i;TMOD=0x01;TH0=0x4C;TL0=0x00;ET0=1;PT0=1;EA=1;TR0=1;while(1){ if(count==20)P1=05H;if(count==40)P1=0AH;

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

if(count==60)P1=50H;if(count==80)P1=0A0H;if(count==100)P1=55H;if(count==120)P1=0AAH;if(count==140)P1=0FFH;if(count==160)P1=00H;

count=0;} }

void Timer0()interrupt 1 { TR0=0;TH0=0x4C;TL0=0x00;TR0=1;count++;

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)六

A/D、D/A轉(zhuǎn)換實(shí)驗(yàn)

實(shí)驗(yàn)接線圖:

3LED燈PROTEUS仿真接線圖 ○程序清單:

PRO_DA EQU 7FFFH PRO_AD EQU 0BFFFH

ORG 0000H

SJMP MAIN

ORG 001BH

LJMP KEYSCAN

ORG 0030H MAIN: SETB EA

SETB EX1

SETB IT1

MOV P1,#0FH

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

TEST:

L1:

L2:

L3:

KEYSCAN:

KEY1:

MOV R3,#07FH MOV R4,#03H LOOP1:

ANL A,#0FH

KEY2:

SJMP LOOP6 LOOP3: CJNE R2,#02H,LOOP4

LOOP4:

SJMP LOOP6 LOOP5:

LOOP6: MOV R5,#0FFH MOV R5,#03H CJNE R5,#01H,L1 LCALL SQUARE AJMP TEST CJNE R5,#02H,L2 LCALL TRIANGLE AJMP TEST CJNE R5,#03H,L3 LCALL SAWTOOTH AJMP TEST ACALL T12MS;MOV R6,A ACALL SCAN JNZ KEY1 SJMP EXIT MOV R2,A MOV P1,R3 MOV A,P1 CPL A JNZ KEY2 MOV A,R3 RR A MOV R3,A DJNZ R4,LOOP1 SJMP EXIT DEC R4 CJNE R2,#01H,LOOP3 MOV A,#01H MOV A,#04H SJMP LOOP6 CJNE R2,#04H,LOOP5 MOV A,#07H CJNE R2,#08H,LOOP6 MOV A,#0AH ADD A,R4

鍵盤掃描中斷25

;

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

MOV R5,A MOV P1,#0FH

;MOV A,R6 EXIT: RETI SCAN: MOV P1,#0FH MOV A,P1 CPL A ANL A,#0FH RET T12MS:MOV R7,#15H;12MS TM: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,TM RET

SQUARE: MOV DPTR,#PRO_DA MOV A,#0FFH MOVX @DPTR,A MOV DPTR,#0BFFFH MOVX @DPTR,A ACALL DELAY MOV A,#00H MOV DPTR,#PRO_DA MOVX @DPTR,A MOV DPTR,#0BFFFH MOVX @DPTR,A ACALL DELAY RET

DELAY:MOV R0,#27H DEL1: MOV R1,#0FFH DJNZ R1,$ DJNZ R0,DEL1 RET 掃描周期20ms TRIANGLE:MOV A,#00H TLOOP:MOV DPTR,#PRO_DA MOVX @DPTR,A MOV DPTR,#PRO_AD MOVX @DPTR,A CJNE A,#0FFH,TLOOP2

;延時(shí)后再次掃描有無按鍵按下

產(chǎn)生方波

產(chǎn)生三角波 時(shí)鐘500KHz 幅值

;D/A;D/A1mv

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

COUNT1:DEC A MOV DPTR,#PRO_DA MOVX @DPTR,A MOV DPTR,#PRO_AD MOVX @DPTR,A CJNE A,#00H,COUNT1 SJMP EXIT1 TLOOP2:INC A AJMP TLOOP EXIT1:RET SAWTOOTH: MOV A,#00H SLOOP:MOV DPTR,#PRO_DA MOVX @DPTR,A MOV DPTR,#PRO_AD MOVX @DPTR,A INC A CJNE A,#00H,SLOOP RET

END 靜態(tài)存儲(chǔ)器擴(kuò)展實(shí)驗(yàn) 1)程序如下:

ORG 0000H

LJMP MAIN

ORG 0030H MAIN: MOV 8EH,02H

MOV P1,# 0FFH CLR A MOV P1,A MOV R7,#10H

MOV R0,#30H

MOV A,#00H LOOP0: MOV @R0,A

INC R0

INC A

DJNZ R7,LOOP0

MOV R7,#10H

MOV R0,#30H MOV R1,#40H

MOV DPTR,#0000H LOOP1:MOV A,@R0

MOVX @DPTR,A

產(chǎn)生鋸齒波27

;D/A

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

MOV R2,A MOVX A,@DPTR00 結(jié)果分析:

實(shí)驗(yàn)主要是對(duì)輸出波形的變化監(jiān)視。三角波的產(chǎn)生原理與鋸齒波相同,只需在鋸齒波計(jì)數(shù)達(dá)到最大值0FFH時(shí),再逐漸減1減小到00H(鋸齒波產(chǎn)生則直接從0重新開始),如此反復(fù)。另外對(duì)波形影響較大的是保持時(shí)間,即實(shí)驗(yàn)中的delay()函數(shù)決定的延遲時(shí)間。

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)七

串行通訊實(shí)驗(yàn)

實(shí)驗(yàn)步驟:

(1)串口通訊實(shí)驗(yàn)電路如圖3-7-1 所示;

(2)編寫實(shí)驗(yàn)程序,經(jīng)編譯、鏈接無誤后啟動(dòng)調(diào)試;

(3)進(jìn)入調(diào)試界面,點(diǎn)擊命令,打開串口1 監(jiān)視窗口;

(4)運(yùn)行實(shí)驗(yàn)程序,觀察此時(shí)有如圖3-7-2 所示輸出;

(5)閱讀1.7 節(jié)的內(nèi)容,首先將系統(tǒng)程序由SoftICE 切換到啟動(dòng)加載程序;

(6)將編譯生成的Hex 文件通過SSTEasyIAP11F.EXE 軟件下載到單片機(jī)內(nèi)部Flash 中;

(7)復(fù)位單片機(jī),打開超級(jí)終端或串口調(diào)試軟件,將端口號(hào)及波特率等設(shè)置好,觀察PC顯示,如圖3-7-3 和圖3-7-4 所示;

(8)實(shí)驗(yàn)結(jié)束,重新將SoftICE 下載到單片機(jī)系統(tǒng)區(qū)替換啟動(dòng)加載程序。

實(shí)驗(yàn)原理及原理圖:

MCS-51 單片機(jī)內(nèi)部的全雙工串行接口部分,包含有串行接收器和串行發(fā)送器。有兩個(gè)物理上獨(dú)立的接收緩沖器和發(fā)送緩沖器。接收緩沖器只能讀出接收的數(shù)據(jù),但不能寫入。發(fā)送緩沖器只能寫入發(fā)送的數(shù)據(jù),但不能讀出。因此可以同時(shí)收、發(fā)數(shù)據(jù),實(shí)現(xiàn)全雙工通訊。兩個(gè)緩沖器是特殊功能寄存器SBUF,它們公用地址為99H,SBUF 是不可位尋址的。此外,還有兩個(gè)寄存器SCON 和PCON 分別用于控制串行口的工作方式以及波特率,定時(shí)器T1 可以用作波特率發(fā)生器 SST89E554RC 提供了增強(qiáng)型全雙工串行接口,具有幀錯(cuò)誤檢測(cè)和自動(dòng)地址識(shí)別的功能。

由于SST89E554RC 的串口用作調(diào)試目的,所以Keil C51 軟件提供了串口模擬窗口,可以借助此窗口調(diào)試串口通訊程序。也可以將程序編譯生成目標(biāo)代碼(.HEX),脫機(jī)運(yùn)行。

實(shí)驗(yàn)接線圖:

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

○1串行通訊仿真接線圖

程序清單:

AJMP MAIN ORG 0023H AJMP URT

ORG 0030H MAIN: MOV P1,#00H LCALL URTINIT START: MOV P0,#0FH MOV A,P0 CPL A ANL A,#0FH JZ START LCALL DELAY MOV P0,#0FH MOV A,P0 ANL A,#0FH MOV R7,A MOV P0,#0F0H MOV A,P0 ANL A,#0F0H ORL A,R7 CJNE A,#0EEH,K1

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

MOV A,#30H MOV SBUF,A JNB TI,$ CLR TI K1: CJNE A,#0DEH,K2 MOV A,#31H MOV SBUF,A JNB TI,$ CLR TI K2: CJNE A,#0BEH,K3 MOV A,#39H MOV SBUF,A JNB TI,$ CLR TI KA: CJNE A,#0BBH,KB MOV A,#32H MOV SBUF,A JNB TI,$ CLR TI K3: CJNE A,#7EH,K4 MOV A,#33H MOV SBUF,A JNB TI,$ CLR TI K4: CJNE A,#0EDH,K5 MOV A,#34H MOV SBUF,A JNB TI,$ CLR TI K5: CJNE A,#0DDH,K6 MOV A,#35H MOV SBUF,A JNB TI,$ CLR TI K6: CJNE A,#0BDH,K7 MOV A,#36H MOV SBUF,A JNB TI,$ CLR TI K7: CJNE A,#7DH,K8 MOV A,#37H MOV SBUF,A JNB TI,$ CLR TI K8: CJNE A,#0EBH,K9

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

MOV A,#38H MOV SBUF,A JNB TI,$ CLR TI K9: CJNE A,#0DBH,KA MOV A,#41H MOV SBUF,A JNB TI,$ CLR TI KB: CJNE A,#7BH,KC MOV A,#42H MOV SBUF,A JNB TI,$ CLR TI KC: CJNE A,#0E7H,KD MOV A,#43H MOV SBUF,A JNB TI,$ CLR TI KD: CJNE A,#0D7H,KE MOV A,#44H MOV SBUF,A JNB TI,$ CLR TI KE: CJNE A,#0B7H,KF MOV A,#45H MOV SBUF,A JNB TI,$ CLR TI KF: CJNE A,#77H,K0 MOV A,#46H MOV SBUF,A JNB TI,$ CLR TI K0: LJMP START URTINIT: MOV SCON,#50H;設(shè)置成串口工作方式在8位URT MOV TMOD,#20H;設(shè)置T1為可重裝8位定時(shí)器 MOV TL1,#0FDH;256-FOSC/BTL/32/12 MOV TH1,#0FDH SETB TR1;開啟定時(shí)器 SETB ES;開啟串口中斷 SETB EA;開總中斷 RET

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

URT: CLR C MOV A,SBUF;接收到數(shù)據(jù)后將數(shù)據(jù)返回 MOV P1,A NEXT1:CLR RI;清接收中斷標(biāo)志 RETI

DELAY: MOV R6,#0ffh DEL1: MOV R5,#0ffh DJNZ R5,$ DJNZ R6,DEL1 RET END

結(jié)果分析:串行總線是單片機(jī)的特色。本實(shí)驗(yàn)通過兩種方式驗(yàn)證的串口的通信。ISP模式下,采用計(jì)算機(jī)軟件實(shí)現(xiàn)串口監(jiān)視。另一種是指IAP模式下,對(duì)輸入計(jì)算機(jī)串口的數(shù)據(jù)進(jìn)行跟蹤。串行通信的重點(diǎn)在于異步通信時(shí)波特率的選擇,以及傳送位數(shù)的規(guī)定。通過串口的通訊,計(jì)算機(jī)可以實(shí)現(xiàn)與D/A、A/D、PC機(jī)以及其他單片機(jī)的通信,還可以由不同的協(xié)議構(gòu)成各種網(wǎng)絡(luò)結(jié)構(gòu),方便了單片機(jī)系統(tǒng)的嵌入式應(yīng)用。

中南大學(xué)信息科學(xué)與工程學(xué)院微控制器技術(shù)實(shí)驗(yàn)報(bào)告

五、實(shí)驗(yàn)總結(jié)

我覺得軟件實(shí)驗(yàn)就是讓我們初學(xué)者熟悉keil的使用,然后復(fù)習(xí)下匯編的思想和掌握程序的流程,所以軟件實(shí)驗(yàn)可以很快的完成,并且慢慢熟悉調(diào)試的強(qiáng)大功能。硬件設(shè)計(jì)中,仿真讓我很有感觸,感覺蠻好玩的,可以摒棄麻煩的實(shí)驗(yàn)硬件自己在寢室玩而且不受硬件狀態(tài)的限制,即便出錯(cuò)了也不會(huì)損壞。

在實(shí)驗(yàn)過程中,我還學(xué)到了一些簡單的調(diào)試方法,設(shè)置斷點(diǎn)調(diào)試,單步調(diào)試,全速調(diào)試等,而且還接觸了一點(diǎn)PROTEUS軟件仿真,這都對(duì)我們的提高有非常大的促進(jìn)作用。通過實(shí)驗(yàn),對(duì)單片機(jī)應(yīng)用及編程了解得更加透徹,在實(shí)驗(yàn)中實(shí)現(xiàn)了自我能力的提升。最后,也非常感謝李老師的傾心教授。

第五篇:中南大學(xué)離散數(shù)學(xué)實(shí)驗(yàn)報(bào)告

離散數(shù)學(xué)實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn)ABC)

專業(yè)班級(jí) 學(xué)生姓名 學(xué)生學(xué)號(hào) 指導(dǎo)老師 完成時(shí)間

離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

目錄

實(shí)驗(yàn)概述..........................................................................................................2

1.1 實(shí)驗(yàn)?zāi)康?........................................................................................................2 1.2 實(shí)驗(yàn)內(nèi)容.........................................................................................................2 1.3 實(shí)驗(yàn)環(huán)境.........................................................................................................2 第二章 實(shí)驗(yàn)原理和實(shí)現(xiàn)過程......................................................................................3

2.1 實(shí)驗(yàn)原理.........................................................................................................3

2.1.1建立圖的鄰接矩陣,判斷圖是否連通................................................3 2.1.2 計(jì)算任意兩個(gè)結(jié)點(diǎn)間的距離...............................................................3 2.1.3對(duì)不連通的圖輸出其各個(gè)連通支........................................................4 2.2 實(shí)驗(yàn)過程(算法描述).................................................................................4

2.2.1 程序整體思路.......................................................................................4 2.2.2具體算法流程........................................................................................4

第三章 實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析......................................................................................6

3.1建立圖的鄰接矩陣并判斷圖是否連通的功能測(cè)試及結(jié)果分析.................6

3.1.1輸入無向圖的邊....................................................................................6 3.1.2建立圖的連接矩陣................................................................................7 3.2 其他功能的功能測(cè)試和結(jié)果分析.................................................................8

3.2.1計(jì)算節(jié)點(diǎn)間的距離................................................................................8 3.2.2判斷圖的連通性....................................................................................8 3.2.3輸出圖的連通支....................................................................................9 3.2.4退出系統(tǒng)................................................................................................9

第四章 實(shí)驗(yàn)收獲和心得體會(huì)....................................................................................10

4.1 實(shí)驗(yàn)收獲.......................................................................................................10 4.2 心得體會(huì).......................................................................................................11 第五章 實(shí)驗(yàn)源程序清單............................................................................................12

5.1 程序代碼.......................................................................................................12

I 離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

第一章 實(shí)驗(yàn)概述

1.1 實(shí)驗(yàn)?zāi)康?/p>

理解圖論的基本概念,圖的矩陣表示,圖的連通性,圖的遍歷,以及求圖的連通支方法。

通過實(shí)驗(yàn),幫助學(xué)生更好地掌握計(jì)算機(jī)科學(xué)技術(shù)常用的離散數(shù)學(xué)中的概念、性質(zhì)和運(yùn)算,培養(yǎng)邏輯思維;通過實(shí)驗(yàn)提高學(xué)生編寫實(shí)驗(yàn)報(bào)告、總結(jié)實(shí)驗(yàn)結(jié)果的能力,提高理論聯(lián)系實(shí)際的能力;使學(xué)生具備程序設(shè)計(jì)的思想,能夠獨(dú)立完成簡單的算法設(shè)計(jì)和分析。

1.2 實(shí)驗(yàn)內(nèi)容

以偶對(duì)的形式輸入一個(gè)無向簡單圖的邊,建立該圖的鄰接矩陣,判斷圖是否連通(A),并計(jì)算任意兩個(gè)結(jié)點(diǎn)間的距離(B),對(duì)不連通的圖輸出其各個(gè)連通支(C)。

注意:題目類型分為A,B,C三類,其中A為基本題,完成A類題目可達(dá)到設(shè)計(jì)的基本要求,其他均為加分題,并按字母順序分?jǐn)?shù)增加越高。

基本要求如下:程序需具有基本的容錯(cuò)控制,在輸入錯(cuò)誤時(shí)有處理手段;程序界面友好,需要輸入的地方有輸入說明,說明輸入的內(nèi)容和格式要求等;實(shí)驗(yàn)原理和實(shí)現(xiàn)過程應(yīng)該詳細(xì)分析問題,給出解決思路,描述算法思想,不能用源程序代替算法;測(cè)試數(shù)據(jù)應(yīng)全面,包括非法輸入的處理結(jié)果等都應(yīng)包含在內(nèi)。

1.3 實(shí)驗(yàn)環(huán)境

C或C++語言編程環(huán)境實(shí)現(xiàn)。離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

第二章 實(shí)驗(yàn)原理和實(shí)現(xiàn)過程

2.1 實(shí)驗(yàn)原理

2.1.1建立圖的鄰接矩陣,判斷圖是否連通

根據(jù)圖的矩陣表示法建立鄰接矩陣A,并利用矩陣的乘法和加法求出可達(dá)矩陣,從而判斷圖的連通性。

連通圖的定義:在一個(gè)無向圖 G 中,若從頂點(diǎn)vi到頂點(diǎn)vj有路徑相連(當(dāng)然從vj到vi也一定有路徑),則稱vi和vj是連通的。如果 G 是有向圖,那么連接vi和vj的路徑中所有的邊都必須同向。如果圖中任意兩點(diǎn)都是連通的,那么圖被稱作連通圖。

判斷連通圖的實(shí)現(xiàn):在圖中,從任意點(diǎn)出發(fā)在剩余的點(diǎn)中,找到所有相鄰點(diǎn)循環(huán),直到?jīng)]有點(diǎn)可以加入為止,如果有剩余的點(diǎn)就是不連通的,否則就是連通的。或者也可用WallShell算法,由圖的鄰接矩陣判斷圖是否連通。

2.1.2 計(jì)算任意兩個(gè)結(jié)點(diǎn)間的距離

圖中兩點(diǎn)i,j間的距離通過檢驗(yàn)Al中使得aij為1的最小的l值求出。路徑P中所含邊的條數(shù)稱為路徑P的長度。在圖G中,從結(jié)點(diǎn)Vi到Vj最短路徑的長度叫從Vi到Vj的距離,記為d

設(shè)圖的鄰接矩陣是A,則 所對(duì)應(yīng)的aij的值表示,點(diǎn)Vi到點(diǎn)Vj距離為n的路徑有aij條。

若aij(1),aij(2),…,aij(n-1),中至少有一個(gè)不為0,則可斷定Vi與Vj可達(dá),使aij(l)≠0的最小的l即為d(Vi,Vj)。

問題求解原理為:

(1)先構(gòu)造初始鄰接矩陣A=Vij,Vij為頂點(diǎn)Vi到頂點(diǎn)Vj的權(quán)。如果Vi和Vj之間不存在弧段或者是負(fù)向回路或者是i=j,則令Vij其值為∞。

(2)再構(gòu)造初始中間頂點(diǎn)矩陣。

(3)然后開始迭代計(jì)算(迭代的次數(shù)等于頂點(diǎn)的個(gè)數(shù)1)(4)最后查找Vi到Vj的最短路徑。離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

計(jì)算節(jié)點(diǎn)Vi與Vj之間的距離的方法為:

利用鄰接矩陣相互間相乘后得到的矩陣來判斷節(jié)點(diǎn)間的距離。如果c2[s][i][j]==0,則這兩個(gè)節(jié)點(diǎn)的距離為無窮大。如果c2[s-2][i][j]==0,c2[s-1][i][j]==1時(shí),則這兩點(diǎn)間的距離為s。

2.1.3對(duì)不連通的圖輸出其各個(gè)連通支

圖的連通支的求法則可采用圖的遍歷算法,圖的遍歷有深度優(yōu)先和廣度優(yōu)先兩種方法,其中深度優(yōu)先算法又分為遞歸和非遞歸兩種。

在無向圖中,如果任何兩點(diǎn)可達(dá),則稱圖G是連通的,如果G的子圖G’是連通的,沒有包含G’的更大的子圖G’’是連通的,則稱G’是G的連通支。

當(dāng)有判斷出關(guān)系不是連通的之后,將需要求出分支模塊

實(shí)現(xiàn)方法如下:先定義一個(gè)二維數(shù)組用來存放相應(yīng)的分塊,先選定一個(gè)點(diǎn),并將它放在數(shù)組中,然后判斷,如果后面的和他是聯(lián)通的便將它也放在同一個(gè)數(shù)組中,否則將其存入其他的數(shù)組中,后面以此類推,在輸出相應(yīng)的數(shù)組,便可判斷出連通分支。

2.2 實(shí)驗(yàn)過程(算法描述)

2.2.1 程序整體思路 本程序完成了實(shí)驗(yàn)所要求的全部功能,其基本思路是——“運(yùn)用模塊化的思想,將實(shí)現(xiàn)“求連通支”、“輸入結(jié)點(diǎn)關(guān)系”、“輸出鄰接矩陣”、“顯示兩結(jié)點(diǎn)間的距離”、“求可達(dá)矩陣”和“圖的遍歷”的子函數(shù)分開編寫,然后將它們以子函數(shù)的形式添加到主函數(shù)main的代碼后面,在要使用相應(yīng)的子函數(shù)時(shí),進(jìn)行子函數(shù)調(diào)用就可以實(shí)現(xiàn)相應(yīng)的功能了。”

本程序的一大特色就是開發(fā)者靈活使用了C語言中的數(shù)組概念來進(jìn)行開發(fā),用數(shù)組來模擬矩陣的運(yùn)算,通過相應(yīng)的算法實(shí)現(xiàn)了全部的功能。2.2.2具體算法流程

在main(){系統(tǒng)界面顯示;用do…while循環(huán)語句和switch語句實(shí)現(xiàn)功能liantongzhi(){求連通支,此子函數(shù)通過一個(gè)for循環(huán)控制遍歷每個(gè)結(jié)點(diǎn),并調(diào)1,2,3……的選擇,并調(diào)用相關(guān)的子程序;用start、goto start實(shí)現(xiàn)控制流的轉(zhuǎn)移;} 用函數(shù)DFS()求每個(gè)結(jié)點(diǎn)的連通支;} 離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

DFS(int a){通過實(shí)參與形參,將結(jié)點(diǎn)數(shù)據(jù)代入函數(shù);定義順序棧變量;通過for循環(huán)初始化;為a置已訪問標(biāo)志,已經(jīng)訪問了的元素為1;定義順序棧的第一個(gè)元素;通過while循環(huán)實(shí)現(xiàn)結(jié)點(diǎn)遍歷,棧不為空時(shí)執(zhí)行循環(huán);棧頂元素賦值;通過for循環(huán)尋找v的下個(gè)未訪問的鄰接點(diǎn);通過if條件句,若x,i是邊和節(jié)點(diǎn)i未被訪問過,處理結(jié)點(diǎn)的訪問,并進(jìn)行訪問標(biāo)志,進(jìn)棧等操作;通過if條件句,若v已訪問到的出點(diǎn),則將其退棧;}

shuru(){輸入結(jié)點(diǎn)關(guān)系;通過for循環(huán)先將矩陣所有元素賦值0;再通過另一linjiejuzhen(){輸出鄰接矩陣;通過for循環(huán),依次按格式輸出鄰接矩陣的元素;} julijuzhen(){根據(jù)A的n次方矩陣及其中元素,判斷并顯示兩結(jié)點(diǎn)間的距離;for循環(huán),根據(jù)輸入結(jié)點(diǎn)的關(guān)系,將矩陣中相應(yīng)的元素賦值,有關(guān)系則為1;} 調(diào)用子函數(shù)linjiejuzhen(),以確定并顯示距離為1的兩結(jié)點(diǎn);通過for循環(huán)顯示距離為1的結(jié)點(diǎn)對(duì);再通過一系列的for循環(huán),計(jì)算A的n次方矩陣并顯示結(jié)果,根據(jù)其中的元素,判斷并顯示結(jié)點(diǎn)間的距離;詳細(xì)算法請(qǐng)見附錄相關(guān)部分的注釋;} kedajuzhen(){求可達(dá)矩陣;通過一系列for循環(huán),根據(jù)公式,計(jì)算可達(dá)矩陣;通過for循環(huán),將矩陣中不為0的一切值賦為1以生成可達(dá)矩陣并顯示;通過for循環(huán)和if條件句的組合,根據(jù)可達(dá)矩陣的元素特點(diǎn),判斷圖的連通性,若可達(dá)矩陣矩陣中有0,則跳出循環(huán),顯示不可連接;根據(jù)判斷結(jié)果顯示內(nèi)容,不可連通或可連通;} 離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

第三章 實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析

3.1建立圖的鄰接矩陣并判斷圖是否連通的功能測(cè)試及結(jié)果分析

簡單無向圖的輸入界面友好,有清楚的操作說明,方便用戶進(jìn)行使用。

這就是集合的輸入界面。3.1.1輸入無向圖的邊 當(dāng)“6,5”時(shí),表示輸入的是六個(gè)節(jié)點(diǎn)五條邊的樹。

程序會(huì)在屏幕上顯示輸入節(jié)點(diǎn)間關(guān)系的界面,輸入的關(guān)系為“1,2;2,3;3,4;4,5;5,6” 離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

3.1.2建立圖的連接矩陣

程序返回主界面后,選擇“2”,程序會(huì)顯示建立的連接矩陣。離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

3.2 其他功能的功能測(cè)試和結(jié)果分析

3.2.1計(jì)算節(jié)點(diǎn)間的距離 當(dāng)選擇“3”時(shí),程序便會(huì)輸出各節(jié)點(diǎn)間的距離。

3.2.2判斷圖的連通性

當(dāng)選擇“4”時(shí),程序會(huì)根據(jù)可達(dá)矩陣判斷圖的連通性。離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

3.2.3輸出圖的連通支

當(dāng)選擇“5”時(shí),程序會(huì)輸出個(gè)連通支。

3.2.4退出系統(tǒng)

當(dāng)選擇“6”時(shí),程序會(huì)退出系統(tǒng)。離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

第四章 實(shí)驗(yàn)收獲和心得體會(huì)

4.1 實(shí)驗(yàn)收獲

這次離散數(shù)學(xué)實(shí)驗(yàn)是基于圖論方面知識(shí),以圖的各種矩陣為基礎(chǔ),來研究圖的一些性質(zhì)、特點(diǎn)。

我獨(dú)立完成了本次實(shí)驗(yàn)設(shè)計(jì),實(shí)現(xiàn)了A、B、C三個(gè)功能,滿足了實(shí)驗(yàn)的基本要求,心得如下。

通過這次實(shí)驗(yàn),我學(xué)會(huì)了用C語言根據(jù)圖的矩陣表示法建立鄰接矩陣A,并利用矩陣的乘法和加法求出可達(dá)矩陣,從而判斷圖的連通性。鞏固了課堂所學(xué)的圖論方面的有關(guān)知識(shí),并在實(shí)踐中學(xué)到:圖中兩點(diǎn)i,j間的距離可以通過檢驗(yàn)Al中使得aij為1的最小的l值求出;圖的連通支的求法可采用圖的遍歷算法,圖的遍歷有深度優(yōu)先和廣度優(yōu)先兩種方法,其中深度優(yōu)先算法又分為遞歸和非遞歸兩種。我選擇的算法是較為簡單、易于實(shí)現(xiàn)的深度優(yōu)先算法最簡單,查閱了相關(guān)資料,掌握了此算法的核心,最后獨(dú)立完成了本次實(shí)驗(yàn)設(shè)計(jì)。

這次離散數(shù)學(xué)實(shí)驗(yàn),從拿到題目到完成整個(gè)編程,從理論到實(shí)踐的日子里,我學(xué)到很多東西,不僅可以鞏固了以前所學(xué)過的知識(shí),而且通過查閱相關(guān)資料,學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。在這段時(shí)間里,我對(duì)于離散數(shù)學(xué)中的“邏輯”有了進(jìn)一步的理解,對(duì)C語言的理解也更進(jìn)了一步,并提高了編寫實(shí)驗(yàn)報(bào)告、總結(jié)實(shí)驗(yàn)結(jié)果的能力,提高了理論聯(lián)系實(shí)際的能力,初步具備程序設(shè)計(jì)的思想,能夠獨(dú)立完成簡單的算法設(shè)計(jì)和分析。

感受最深的是,大量的上機(jī)實(shí)踐是成為“編程高手”的必由之路,“質(zhì)變”需要有“量”的積累。

完成程序的編寫,決不意味著萬事大吉。曾經(jīng)自己認(rèn)為萬無一失的程序,實(shí)際上機(jī)運(yùn)行時(shí)可能不斷出現(xiàn)麻煩,如編譯程序檢測(cè)出一大堆錯(cuò)誤。有時(shí)程序本身不存在語法錯(cuò)誤,也能夠順利運(yùn)行,但是運(yùn)行結(jié)果顯然是錯(cuò)誤的。開發(fā)環(huán)境所提供的編譯系統(tǒng)無法發(fā)現(xiàn)這種程序邏輯錯(cuò)誤,只能靠自己的上機(jī)經(jīng)驗(yàn)分析判斷錯(cuò)誤所在。有時(shí)候一個(gè)小小錯(cuò)誤會(huì)消耗我好的時(shí)間去找,而高手一眼就看出錯(cuò)誤所在,這就是熟練程度的不同,量變到質(zhì)變的不同。離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

4.2 心得體會(huì)

這次真的使我意識(shí)到了很多原來沒有意識(shí)到的問題,有時(shí)候一些很小的問題,也會(huì)令人很是頭痛。

在剛開始編寫程序的時(shí)候,為了實(shí)現(xiàn)最基本的輸入和輸出功能,我卻花了大量的時(shí)間在那上面。原因在后來查閱的很多資料后才知道的,像scanf函數(shù)之類的小函數(shù),其實(shí)是還有很多需要注意的地方的。

之后,在編寫數(shù)組和指針的過程中,花了很大的一部分時(shí)間去研發(fā)算法,開發(fā)程序,在理論上反復(fù)證明沒有問題之后,再在計(jì)算機(jī)上進(jìn)行操作,編寫代碼,進(jìn)行調(diào)試,反復(fù)了很久,才慢慢的實(shí)現(xiàn)了全部的功能,真的是來之不易。在實(shí)驗(yàn)的過程中我們要培養(yǎng)自己的獨(dú)立分析問題,和解決問題的能力。培養(yǎng)這種能力的前題是你對(duì)每次實(shí)驗(yàn)的態(tài)度。如果你在實(shí)驗(yàn)這方面很隨便,抱著等老師教你怎么做,拿同學(xué)的報(bào)告去抄,盡管你的成績會(huì)很高,但對(duì)將來工作是不利的。在寫實(shí)驗(yàn)報(bào)告,對(duì)于思考題,有很多不懂,于是去問老師,老師的啟發(fā)了我,其實(shí)答案早就擺在報(bào)告中的公式,電路圖中,自己要學(xué)會(huì)思考。

最后,通過這次的實(shí)驗(yàn)我不但對(duì)理論知識(shí)有了更加深的理解,對(duì)于實(shí)際的操作和也有了質(zhì)的飛躍。經(jīng)過這次的實(shí)驗(yàn),我們整體對(duì)各個(gè)方面都得到了不少的提高,希望以后學(xué)校和系里能夠開設(shè)更多類似的實(shí)驗(yàn),能夠讓我們得到更好的鍛煉。離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

第五章 實(shí)驗(yàn)源程序清單

5.1 程序代碼

#include /*頭文件*/ #include #include

#define MAX 100/*宏定義*/ typedef struct { int elem[MAX];

int top;}SqStack;/*定義棧的結(jié)構(gòu)體,順序棧的類型標(biāo)識(shí)符*/

void shuru();/*各子函數(shù)聲明*/ void linjiejuzhen();void julijuzhen();void kedajuzhen();void liantongzhi();void DFS(int a);

int A[9][9],B[9][9],C[9][9],D[9][9];int i,j,k,t,v,e;int main(){ int a1;離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

printf(“*********************************************************************start:

{ printf(”n“);do **********n”);

printf(“n”);printf(“tttt系

統(tǒng)

單n”);printf(“ntt1.輸入無向圖的邊ntt2.建立圖的鄰接矩陣ntt3.計(jì)算節(jié)點(diǎn)間的距離n”);printf(“tt4.由可達(dá)矩陣判斷圖的連通性ntt5.輸出各個(gè)連通支(深度優(yōu)先DFS法)ntt6.退出系統(tǒng)n”);

printf(“********************************************************************* printf(”n“);***********n”);

printf(“n”);printf(“ntttt請(qǐng)輸入功能選項(xiàng):”);fflush(stdin);/*清空輸入緩沖區(qū),通常是為了確保不影響后面的數(shù)據(jù)讀取*/ scanf(“%d”,&a1);switch(a1)/*switch語句實(shí)現(xiàn)選擇功能*/ { case 1:system(“cls”);shuru();break;/*輸入節(jié)點(diǎn)關(guān)系,計(jì)算鄰接矩陣*/ case 2:system(“cls”);fflush(stdin);linjiejuzhen();break;/*輸出鄰接矩陣*/ case 3:system(“cls”);fflush(stdin);julijuzhen();break;/*求距離矩陣*/ case 4:system(“cls”);fflush(stdin);kedajuzhen();break;/*求可達(dá)矩陣*/ 離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

}

void liantongzhi()/*求連通支,此子函數(shù)控制遍歷每個(gè)結(jié)點(diǎn)*/ {

} void DFS(int a)/*由深度優(yōu)先DFS法求出并顯示各個(gè)連通支*/ {

int i,x;int top=0;int visited[MAX];SqStack s;/*定義s為順序棧變量*/ for(i=0;i<100;i++)visited[i]=0;/*初始化為0*/

case 5:system(“cls”);fflush(stdin);liantongzhi();break;/*求連通支*/ case 6:system(“exit”);exit(0);/*結(jié)束整個(gè)程序的運(yùn)行*/ default:system(“cls”);goto start;/*控制流轉(zhuǎn)移到start處*/ } }while(1);

for(i=1;i<=v;i++){

} printf(“%d”,i);DFS(i);/*調(diào)用子函數(shù)求連通支*/ printf(“n”);離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

}

void shuru()/*輸入結(jié)點(diǎn)關(guān)系*/ {

printf(“*********************************************************************visited[a-1]=1;/*為a置已訪問標(biāo)志,已經(jīng)訪問了的元素為1*/ top=top+1;

s.elem[top]=a-1;/*順序棧的第一個(gè)元素*/ while(top!=0)/*棧不為空時(shí)執(zhí)行循環(huán)*/ {

} x=s.elem[top];/*將棧頂元素付給x*/ for(i=0;i

if(D[x][i]!=0 &&(!visited[i]))/*若x,i是邊和節(jié)點(diǎn)i未被訪問過*/ {

} printf(”->%d“,i+1);visited[i]=1;/*為i置已訪問標(biāo)準(zhǔn)*/ top=top+1;

s.elem[top]=i;/*i進(jìn)棧*/ break;if(i==v)/*若v已訪問到的出點(diǎn),則將其退棧*/ top--;

**********n”);printf(“n”);離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

printf(“tt請(qǐng)輸入結(jié)點(diǎn)數(shù)和邊數(shù)(形式如6,5):n”);scanf(“%d,%d”,&v,&e);/*輸入結(jié)點(diǎn)和邊數(shù)*/ for(i=0;i

}

for(j=0;j

}

A[i][j]=0;C[i][j]=0;B[i][j]=0;D[i][j]=0;

printf(“n”);printf(“*******************************************************************************n”);

printf(“tt請(qǐng)輸入結(jié)點(diǎn)間的關(guān)系(形式如:1,2):n”);printf(“n”);

for(k=0;k

scanf(“%d,%d”,&i,&j);

A[i-1][j-1]=1;/*根據(jù)輸入結(jié)點(diǎn)的關(guān)系,將矩陣中相應(yīng)的元素賦值*/ A[j-1][i-1]=1;

B[i-1][j-1]=1;B[j-1][i-1]=1;

D[i-1][j-1]=1;離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

}

void linjiejuzhen()/*輸出鄰接矩陣*/ {

}

void julijuzhen()/*根據(jù)A的n次方矩陣及其中元素,判斷并顯示兩結(jié)點(diǎn)間的距離*/ {

linjiejuzhen();/*調(diào)用子函數(shù),以確定并顯示距離為1的兩結(jié)點(diǎn)*/ for(i=1;i<=v;i++){ } D[j-1][i-1]=1;

system(“cls”);

printf(“鄰接矩陣A為:n”);for(i=0;i

} printf(“n”);

for(j=0;j

printf(“t%5d”,A[i][j]);/*顯示鄰接矩陣*/

for(j=1;j<=v;j++)離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

} for(k=2;k<=v-1;k++)/*計(jì)算并顯示距離大于1的兩節(jié)點(diǎn)*/ {

} }

printf(“nn”);printf(“距離為%d的矩陣(即A%d)為:n”,k,k);{

for(i=0;i

{

} if(A[i-1][j-1]==1)printf(“結(jié)點(diǎn)%d與結(jié)點(diǎn)%d的距離為:%dn”,i,j,1);for(j=0;j

for(t=0;t

C[i][j]=C[i][j]+B[i][t]*A[t][j];/*計(jì)算矩陣中的元素*/ for(i=0;i

for(j=0;j

}

B[i][j]=C[i][j];/*將計(jì)算出的結(jié)果賦予B矩陣*/ C[i][j]=0;

for(i=0;i

{

}

for(j=0;j

printf(“n”);for(i=1;i<=v;i++)

for(j=1;j<=v;j++){ if(A[i-1][j-1]==0 && B[i-1][j-1]!= 0 && i!=j)/*判斷條件,以確定輸出對(duì)象(相關(guān)的點(diǎn))*/

}

void kedajuzhen()/*求可達(dá)矩陣*/ {

int l=1;printf(“可達(dá)矩陣為:n”);for(i=0;i

for(j=0;j

} printf(“n”);} printf(“結(jié)點(diǎn)%d與結(jié)點(diǎn)%d的距離為:%dn”,i,j,k);B[i][j]=A[i][j];離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

}

}

C[i][j]=0;

}

} C[i][j]=0;

for(k=0;k

for(i=0;i

for(j=0;j

for(t=0;t

C[i][j]=C[i][j]+B[i][t]*A[t][j];/*根據(jù)公式計(jì)算可達(dá)矩陣*/ for(i=0;i

for(j=0;j

D[i][j]=C[i][j]+D[i][j];/*根據(jù)公式計(jì)算可達(dá)矩陣*/

for(i=0;i

for(j=0;j

B[i][j]=C[i][j];/*根據(jù)公式計(jì)算可達(dá)矩陣*/

for(i=0;i

{

}

for(j=0;j

D[i][j]=1;

if(D[i][j]>=1)/*將矩陣中不為0的一切值賦為1以生成可達(dá)矩陣*/ for(i=0;i

}

for(j=0;j

printf(“t%5d”,D[i][j]);/*顯示可達(dá)矩陣*/ printf(“n”);

for(i=0;i

} if(l==0)/*根據(jù)上一步判斷結(jié)果顯示內(nèi)容*/ else printf(“ntttt該圖可連通!”);printf(“ntttt該圖不連通!”);

for(j=0;j #include 離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

#include using namespace std;typedef int datatype;typedef struct node { datatype key;struct node *lchild,*rchild;}bsnode;typedef bsnode *bstree;void insertbstree(bstree *t,datatype x){ bstree f,p;p = *t;//cout<

{

//if(x ==(p->key))//

// return;

f = p;

if(x < p->key)

p = p->lchild;

else

p = p->rchild;離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

//f = p;} //f = p;p =(bstree)malloc(sizeof(bsnode));

p->key = x;p->lchild=p->rchild=NULL;if(*t == NULL)

*t = p;else {

if(x <(f->key))

f->lchild = p;

else

f->rchild = p;}

} bstree creatbstree(bstree t){

datatype key;離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

//scanf(“%d”,&key);cin>>key;while(key!=-1){

insertbstree(&t,key);

//scanf(“%d”,&key);

cin>>key;}

return t;}

void inorder(bstree t)

{

if(t)

{

inorder(t->lchild);

printf(“%d ”,t->key);inorder(t->rchild);

}

}

int main(void){

bstree t = NULL,p;

離散數(shù)學(xué)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

//printf(“請(qǐng)輸入一個(gè)-1為結(jié)束標(biāo)記的結(jié)點(diǎn)序列:n”);cout<<“創(chuàng)建一個(gè)輸入-1為作為結(jié)束標(biāo)記:排序二叉樹:”<

//inorder(creatbstree(t));inorder(p);return 0;}

下載中南大學(xué) 網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告word格式文檔
下載中南大學(xué) 網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    中南大學(xué)多媒體實(shí)驗(yàn)報(bào)告[5篇模版]

    《多媒體技術(shù)》 實(shí)驗(yàn)報(bào)告 學(xué) 院: 信息科學(xué)與工程學(xué)院 班 級(jí): 學(xué) 號(hào): 姓 名: 1 目錄 實(shí)驗(yàn)一 圖像采集與編輯實(shí)驗(yàn) .............................................. 3 一、 二、......

    網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告(定稿)

    長江大學(xué) 網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱:利用PGP實(shí)施非對(duì)稱加密 院 系: 國際教育學(xué)院 班 級(jí): 計(jì)專71301 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)老師: 黃艷娟 時(shí) 間: 一、實(shí)驗(yàn)?zāi)康募耙?1、實(shí)驗(yàn)?zāi)康?1......

    網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告

    中南大學(xué) 網(wǎng)絡(luò)安全 實(shí)驗(yàn)報(bào)告 學(xué)生姓名 學(xué) 院 信息科學(xué)與工程學(xué)院 專業(yè)班級(jí) 完成時(shí)間 《網(wǎng)絡(luò)安全》實(shí)驗(yàn) 目錄 1.實(shí)驗(yàn)1:CA證書與SSL連接 ..........................................

    網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告

    絡(luò) 信 息 安 全》實(shí) 驗(yàn) 報(bào) 告 學(xué) 校:江蘇科技大學(xué) 專 業(yè):12級(jí)計(jì)算機(jī)科學(xué)與技術(shù)(中法)導(dǎo) 師:李永忠 學(xué) 號(hào): 學(xué)員姓名: 2014-6-4 《網(wǎng) 實(shí)驗(yàn)一 DES算法應(yīng)用 一、實(shí)驗(yàn)?zāi)康?1. 學(xué)會(huì)并......

    網(wǎng)絡(luò)安全實(shí)驗(yàn)報(bào)告

    網(wǎng)絡(luò)安全實(shí)驗(yàn) 學(xué)生:張守軍 實(shí)驗(yàn)?zāi)康?1、 一、 :我要搭建網(wǎng)絡(luò)安全實(shí)驗(yàn)環(huán)境。 配置良好的實(shí)驗(yàn)環(huán)境時(shí)進(jìn)行網(wǎng)絡(luò)安全實(shí)驗(yàn)的基礎(chǔ)工作。 1. VMware虛擬機(jī)的安裝和配置。 首先在一臺(tái)......

    中南大學(xué)基礎(chǔ)力學(xué)實(shí)驗(yàn)報(bào)告[五篇范文]

    中南大學(xué)基礎(chǔ)力學(xué)實(shí)驗(yàn)報(bào)告整理 預(yù)習(xí)報(bào)告材料的力學(xué)性質(zhì)測(cè)定實(shí)驗(yàn);靜態(tài)應(yīng)力測(cè)試實(shí)驗(yàn) 2.隹力導(dǎo)測(cè)童中,對(duì)干載茍和怫貳試杵幾榔形狀祁慚時(shí).為握薊懂的柞岌常期用 測(cè)膏法廠 對(duì)稱 3.......

    中南大學(xué)數(shù)字圖像處理實(shí)驗(yàn)報(bào)告5篇

    實(shí) 驗(yàn) 報(bào) 告 實(shí)驗(yàn)名稱 課程名稱 圖像變換及頻域?yàn)V波數(shù)字圖像處理 姓名 成 績 班級(jí) 學(xué)號(hào) 日期 地點(diǎn) 實(shí)驗(yàn)一 圖像變換及頻域?yàn)V波 一.實(shí)驗(yàn)?zāi)康?(1)編寫快速傅里葉變換算法程......

    中南大學(xué)化工原理仿真實(shí)驗(yàn)報(bào)告

    化工原理計(jì)算機(jī)仿真實(shí)驗(yàn) 班級(jí):化學(xué)工程與工藝1102班 姓名:王翔 學(xué)號(hào):1505110321 日期:2014年1月1日本套軟件系統(tǒng)包括8個(gè)單元仿真實(shí)驗(yàn): 實(shí)驗(yàn)一 離心泵性能的測(cè)試 實(shí)驗(yàn)二 管道阻力......

主站蜘蛛池模板: 开心婷婷五月激情综合社区| 西西人体午夜视频无码| 亚洲午夜成人久久久久久| 妓院一钑片免看黄大片| 久久免费只有精品国产| 精品人妻一区二区三区浪潮在线| 亚洲妇女水蜜桃av网网站| 精品毛片| 国产av在线www污污污十八禁| 日日摸天天碰中文字幕你懂的| 少妇丰满爆乳被呻吟进入| 中文有码亚洲制服av片| 特级毛片a片久久久久久| 国产成a人亚洲精v品无码| 免费看成人欧美片爱潮app| 亚洲日本一区二区三区在线不卡| 人妻无码一区二区不卡无码av| 亚洲综合憿情五月丁香五月网| 国产精品美女久久久久av爽李琼| 一出一进一爽一粗一大视频| av无码av不卡一区二区| 欧美成人看片一区二区三区尤物| 日日噜噜夜夜狠狠视频| 超碰97人人做人人爱亚洲| 人人妻人人做人人爽| 无码av免费毛片一区二区| 熟睡人妻被讨厌的公侵犯深田咏美| 国精品人妻无码一区免费视频电影| 日本特黄特色特爽大片| 免费看泡妞视频app| 国产成人无遮挡免费视频| 北条麻妃42部无码电影| 亚洲男人的天堂一区二区| 亚洲精品美女久久777777| 中国凸偷窥xxxx自由视频| 亚洲中文字幕无码天堂男人| 婷婷五月综合国产激情| 亚洲三区在线观看内射后入| 99久久精品精品6精品精品| 国产精品视频永久免费播放| 波多野结衣超清无码专区|