演算法實驗總結
Ⅰ 演算法課程設計報告
題目中要求的功能進行敘述分析,並且設計解決此問題的數據存儲結構,(有些題目已經指定了數據存儲的,按照指定的設計),設計或敘述解決此問題的演算法,描述演算法建議使用流程圖,進行演算法分析指明關鍵語句的時間復雜度。
給出實現功能的一組或多組測試數據,程序調試後,將按照此測試數據進行測試的結果列出來 。
對有些題目提出演算法改進方案,比較不同演算法的優缺點。
如果程序不能正常運行,寫出實現此演算法中遇到的問題,和改進方法;
2 對每個題目要有相應的源程序(可以是一組源程序,即詳細設計部分):
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
程序能夠運行,要有基本的容錯功能。盡量避免出現操作錯誤時出現死循環;
3 最後提供的主程序可以象一個應用系統一樣有主窗口,通過主菜單和分級菜單調用課程設計中要求完成的各個功能模塊,調用後可以返回到主菜單,繼續選擇其他功能進行其他功能的選擇。最好有窗口展示部分。
4 課程設計報告:(保存在word 文檔中,文件名要求 按照"姓名-學號-課程設計報告"起名,如文件名為"張三-001-課程設計報告".doc )按照課程設計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設計
在此說明每個部分的演算法設計說明(可以是描述演算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義。
c)詳細設計
各個演算法實現的源程序,對每個題目要有相應的源程序(可以是一組源程序,每個功能模塊採用不同的函數實現)
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
d)調試分析
測試數據,測試輸出的結果,時間復雜度分析,和每個模塊設計和調試時存在問題的思考(問題是哪些?問題如何解決?),演算法的改進設想。
5. 課設總結: (保存在word 文檔中)總結可以包括 : 課程設計 過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對數據結構這門課程的思考、在課程設計過程中對C課程的認識等內容;
6.實驗報告的首頁請參考如下格式:
課程設計實驗
起止日期:20 -20 學年 學期
系別 班級 學號 姓名
實驗題目 □設計性 □綜合性
自我評價
教師評語 能夠實現實驗要求的功能 □全部 □部分演算法有新意 □有 □一般程序運行通過 □全部 □部分 演算法注釋說明 □完善 □僅有功能說明介面參數說明 □有 □無按期上交列印文檔資料及源程序 □所有 □部分綜合設計說明報告結構 □合理 □不合理用戶使用說明 □完整 □不全現場演示操作有準備 □有 □無問題解答流暢 □流暢 □不流暢獨立完成實驗 □能 □不能體現團隊合作精神。 □能夠 □不能
成績
這是張表格,過來時沒調整好,不過應該看得明白。我們是這樣寫的,你可以參考一下。
Ⅱ 密碼學第一次實驗報告:DES演算法與差分攻擊
DES演算法與差分攻擊
了解DES演算法基本工作原理,體會並理解分組密碼演算法的混淆和擴散概念。了解Sbox工作原理及效果。了解DES的工作模式和填充方式。了解差分攻擊
的基本原理。
IP置換目的是將輸入的64位數據塊按位重新組合,並把輸出分為L0、R0兩部分,每部分各長32位。
表中的數字代表新數據中此位置的數據在原數據中的位置,即原數據塊的第58位放到新數據的第1位,第50位放到第2位,……依此類推,第7位放到第64位。置換後的數據分為L0和R0兩部分,L0為新數據的左32位,R0為新數據的右32位。
不考慮每個位元組的第8位,DES的密鑰由64位減至56位,每個位元組的第8位作為奇偶校驗位。產生的56位密鑰由下表生成(注意表中沒有8,16,24,32,40,48,56和64這8位):
在DES的每一輪中,從56位密鑰產生出不同的48位子密鑰,確定這些子密鑰的方式如下:
1).將56位的密鑰分成兩部分,每部分28位。
2).根據輪數,這兩部分分別循環左移1位或2位。每輪移動的位數如下表:
移動後,從56位中選出48位。這個過程中,既置換了每位的順序,又選擇了子密鑰,因此稱為壓縮置換。壓縮置換規則如下表(注意表中沒有9,18,22,25,35,38,43和54這8位):
壓縮後的密鑰與擴展分組異或以後得到48位的數據,將這個數據送人S盒,進行替代運算。替代由8個不同的S盒完成,每個S盒有6位輸入4位輸出。48位輸入分為8個6位的分組,一個分組對應一個S盒,對應的S盒對各組進行代替操作。
一個S盒就是一個4行16列的表,盒中的每一項都是一個4位的數。S盒的6個輸入確定了其對應的輸出在哪一行哪一列,輸入的高低兩位做為行數H,中間四位做為列數L,在S-BOX中查找第H行L列對應的數據(<32)。
S盒代替時DES演算法的關鍵步驟,所有的其他的運算都是線性的,易於分析,而S盒是非線性的,相比於其他步驟,提供了更好安全性
S盒代替運算的32位輸出按照P盒進行置換。該置換把輸入的每位映射到輸出位,任何一位不能被映射兩次,也不能被略去,映射規則如下表:
表中的數字代表原數據中此位置的數據在新數據中的位置,即原數據塊的第16位放到新數據的第1位,第7位放到第2位,……依此類推,第25位放到第32位。
末置換是初始置換的逆過程,DES最後一輪後,左、右兩半部分並未進行交換,而是兩部分合並形成一個分組做為末置換的輸入。末置換規則如下表:
置換方法同上
實際應用中,DES是根據其加密演算法所定義的明文分組的大小(64bits),將數據割成若干64bits的加密區塊,再以加密區塊為單位,分別進行加密處理。根據數據加密時每個加密區塊間的關聯方式,可以分為4種加密模式,包括ECB,CBC,CFB及OFB。
DES演算法其中主要起作用的演算法有:矩陣置換、擴展、左移、異或、左右互換、s盒作用 。其中對攻擊者來說最麻煩的要說s盒一步,破解des體系關鍵在s盒。
乍一看六位輸入與四位輸出貌似沒什麼關系。但事實上,對於同一個s盒具有相同輸入異或的所有輸入六比特組的輸出四比特異或值有一定規律。
具體些說,對於輸入異或相同的明文對B,B*僅有32組,而這32組輸出異或卻並不是均勻分布,而是僅分布在很少的幾個四比特值中;也可以說具有相同輸入異或且輸出四比特異或也相同的六比特輸入數量不多且分布不均勻。正是這種輸入輸出輸出異或間的不均勻性可以被攻擊者利用並破解密鑰。
結果表格:
Ⅲ java實驗報告總結
源代碼:
public class Exe1_1 {
public static void main (String args[]){
byte a1=127;
int a2=12345;
long a3=123456789L;
float a4=1.23e-5f;
double a5=1.4567e3;
char a6=65;
boolean a7=true;
System.out.println("a1="+a1+"\na2="+a2+"\na3="+a3+"\na4="+a4+"\na5="+a5+"\na6="+a6+"\na7="+a7);
}
}運行結果:
2.編寫Java小應用程序,輸出兩行字元串:「Java很有趣。」和「努力學習Java編程。」,輸出的起點坐標是(20,20),行距是50像素。源程序代碼:
import java.awt.Graphics;
import java.applet.Applet;
public class Exe1_2 extends Applet{
public void paint(Graphics g){
g.drawString("Java很有趣。",20,20);
g.drawString("努力學習Java編程。",20,70);
}
}運行情況:
3.使用算術運算符得到一個4位十進制數的各位數字並輸出,然後輸出該數的逆序數和各位數字平方後相加的和。
源程序代碼:
public class Exe1_3 {
public static void main (String args[]){
int n=3756,a,b,c,d,n1;
a=n/1000;
b=(n-1000*a)/100;
d=n%10;
c=(n%100-d)/10;
System.out.println("3756的逆序數為:"+d+" "+c+" "+b+" "+a);
System.out.print("各位數字平方後相加的和為:");
System.out.print(a*a+b*b+c*c+d*d);
}
}
運行結果:
三、實驗總結(是否完成實驗、實驗過程中的問題以及解決方法分析等)
本次是我第一次使用JAVA來進行編程,感覺很是不一樣,在前兩節課中我們學習了有關Java的一些簡單知識。然後這次的實驗是對最初的一種練習。
在第一題中,我們重要是認識java的運行環境,並且了解各種變數的數據類型。只要通過簡單的語句就可以通過運行。其中出現了一些單詞的拼寫錯誤,這些是可以修改正確的。第二題我們練習的十一個小的applet應用程序,需要設置一個網頁來顯示,這是一個很不一樣的地方,最後成功測試,裡面需要注意的是顯示位置的問題。第三題我們做的是一個有演算法要求的解決問題,在測試中出現了一點小問題,程序的演算法出了錯。還有一個問題是有關於顯示問題,最後的數據輸出需要用到兩行分別顯示字元和數據,這樣才不會出錯。
Ⅳ 高手幫做實驗報告:《演算法設計與分析基礎》三種演算法C++實現--歐幾里德輾轉相除、連續整數檢測、質因數相乘
你太強人所難了,不會問問可以,讓別人給你完成作業,有點過分,那你直接回家,等著拿畢業證多好。這些東西都不難,網上搜搜,自己調試一下,對照著實驗報告的模版自己謝謝實驗過程就ok了!
Ⅳ 2021大學生計算機實驗總結報告
實驗相對於每個人來說都有著特殊的意義,一般意義上來說他肯定是都會有不一樣的 心得體會 ,對於那些學習過實驗後的人來說記錄下這些心得體會是十分重要的,寫一份實驗心得體會他不僅僅能抒發自己的情感,與此同時我們還能學會做人,下面就讓我帶你去看看大學生計算機實驗 總結 報告 範文 5篇1,望能幫助到大家!
更多的計算機實驗總結請點擊下方↓↓↓
★計算機實訓總結範文5篇★
★大學生計算機實習總結報告★
★計算機實訓報告範文精選5篇★
★大學生計算機實習報告總結3000字★
計算機實驗報告1
一、實驗目的
1.掌握Word文檔的創建、並按指定路徑、指定文件名保存文件。
2.掌握文檔中文字的快速輸入並設置:文字的字型大小、字體、字顏色、行間距、字間距等格式。
3.掌握文檔中段落的分欄、首字下沉、底紋、邊框、頁眉頁腳等的設置 方法 。
4.掌握文檔中插入藝術字、剪貼畫、圖片及公式的方法、並設置其版式及圖片文字說明。 5.掌握規則、非規則表格的設計。
5.掌握使用Word軟體對論文、科技 文章 進行排版。
6.掌握文檔中頁面設置、文字的字體字型大小、顏色、行間距、字間距的設置。 8.掌握分頁、分節要點,按不同章節的要求,設置不同的頁眉、頁腳。
7.掌握正文及三級標題的設置,並自動生成目錄(或有修改後同步該目錄)。 10.掌握論文封面的設計。
二、實驗內容
1.單文檔圖文混排。
2.長文檔排版。
三、實驗過程及結果
計算機系統由計算機系統賴以工作的實體。後者是各種程序和文件,用於指揮全系統按指定的要求進行工作。
通常所說的計算機均指數字計算機,其運算處理的數據,是用離散數字量表示的。而模擬計算機運算處理的數據是用連續模擬量表示的。模擬機和數字機相比較,其速度快、與物理設備介面簡單,但精度低、使用困難、穩定性和可靠性差、價格昂貴。故模擬機已趨淘汰,僅在要求響應速度快,但精度低的場合尚有應用。把二者優點巧妙結合而構成的混合型計算機,尚有一定的生命力。
硬體和軟體兩部分組成。硬體包括中央處理機、存儲器和外部設備等;軟體是計算機的運行程序和相應的文檔。計算機系統具有接收和存儲信息、按程序快速計算和判斷並輸出處理計算機系統由硬體(子)系統和軟體(子)系統組成。前者是藉助電、磁、光、機械等原理構成的各種物理部件的有機組合,是電子計算機分數字和模擬兩類。
計算機實驗報告2
計算機網路課程的實驗不同於以前做過的C語言上機實驗和數據結構上機實驗,後兩者都是編程的,要求的是個人對基礎知識的掌握和熟練的應用,簡單地說就是一個人的戰場。而計算機網路課程則是一門操作性很強的課程,很多時候它更要求我們注重團隊之間的交流與配合,而不是獨自完成。
第一次實驗是雙絞線的製作,通過這個實驗讓我學到了如何製作雙絞線,也是我大學期間第一次做操作性這么強的實驗。以前的實驗都是編程,而這一次的實驗卻是完完全全地讓我們自己動手。剝皮->排序->理直->剪齊->插入->壓線,雖然實驗過去了有一段時間,但是還是能清楚地記得做法。雖然最後我們的實驗沒有成功,但是這並不代表我們沒有收獲。
第二次的實驗是Linu__的使用與DNS伺服器的配置與管理。在課堂上,由於機子的問題,Linu__不能成功打開。於是就學習了一下DNS伺服器的配置和管理。通過學習,我知道了如何添加DNSZone,如何添加主要區域,正向搜索和反向搜索,添加DNSDomain,如何設置DNS伺服器的動態更新,如何修改區域傳輸的通知列表等等。關於Linu__,下課後仍然不死心,自己在網上下了個Linu__ 操作系統 ,然後在同學的指導下一步步地裝好了。雖然說最後沒怎麼用,自己也不會用。但是當打開操作系統的那一瞬間,那個華麗麗的界面還是讓我深深地震撼了一把。不得不感嘆Linu__真的好高級。我相信,不久之後,我一定可以熟練操作Linu__系統的。
第三次試驗是有關聊天軟體和點歌軟體的配置和運用。在這個實驗里,我們開始有了更明確的分工,一個同學做客戶端,一個同學做服務端,在做這些之前,要首先修改我們的IP。但是後來我想,其實根本沒必要修改IP,實驗課程裡面要求我們修改IP,不過是讓我們對此更熟悉而已。在這次的實驗中,我扮演的是服務端的角色,按照實驗要求一步一步地操作,我們成功地用RT__軟體語音聊天。也成功地用DJ點歌服務為對方點歌。其實這次實驗給我的感覺,有點像運營商與用戶的關系,運營商通過相關設置,讓用戶可以訪問其客戶端進行相關的操作。這次的實驗為之後的模擬網站發布奠定了一定的基礎。
隨後的幾周,我們又進行了網站發布,模擬小型區域網的實驗。通過這些實驗,讓我們對身邊的計算機網路有了更為客觀、形象、具體的認識。而不是僅僅限於書本上的文字表達,或者是思維中模糊的想像。這門實驗課程,不僅是對理論課程的鞏固,更是對理論課程的擴充。除此之外,在實驗過程了,我們學會了相互合作,相互幫助,了解了團隊合作的重要性,也知道了怎麼樣和團隊成員之間協調。要想實驗成功,必須要確保每一個環節,每一個團隊成員負責的版塊都沒有出錯,合起來,整個實驗的最終目標才可以實現。
計算機實驗報告3
課程:大學計算機基礎 班級 : __________ 學號:____ 姓名:______組別: 同組者姓名: 儀器編號: 實驗日期:
實驗 windows 2000 操作[實驗目的]1. 掌握windows 2000的啟動和退出。熟悉windows 2000的桌面環境,掌握「回收站」、任務欄、幫助菜單的使用。2. 掌握windows 2000的窗口、菜單以及對話框的操作。掌握「資源管理器」和「我的電腦」的使用。3. 掌握文件與文件夾的創建、移動、復制等基本操作。4. 掌握應用程序的安裝與刪除、移動與退出,快捷方式的創建與刪除。5. 掌握windows 2000系統的設置,了解windows2000 附件的使用。[實驗環境]硬體:pentium 以上的計算機。軟體:windows2000 操作系統。[實驗內容]
見附件[實驗結果]1.建立了如下圖所示目錄樹:d: user new1.cod a user2 b bbb new2.docbbb2.完成了「計算機」快捷方式的創建。3.完成了控制面板中顯示、區域選項等屬性的設置。 實驗指導教師(簽名) 實驗成績 實驗報告批改日期: 實驗內容:2.(1)打開b文件夾 選中bbb 單擊右鍵後選擇「復制」命令 打開user文件夾 在空白處單擊右鍵後選擇「粘貼」命令。 (2)打開user文件夾 選中b 單擊右鍵後選擇「剪切」命令 打開a文件夾 在空白處單擊右鍵後選擇「粘貼」命令。 (3)打開user文件夾 選中c 單擊右鍵後選擇「刪除」命令。3.(1)單擊「開始」按鈕後選擇「搜索/文件或文件夾」命令 在搜索對話框的文件名欄中輸入「calc.e__e」 單擊「搜索」按鈕 選中找到的程序 單擊右鍵選擇「發送到桌面快捷方式」。 (2)選中桌面上的「calc.e__e」快捷圖標 右鍵單擊後選擇「重命名」 輸入「計算器」。(3)選中桌面「計算器」快捷圖標 按滑鼠左鍵拖動到「開始」菜單的「程序」選項中。(4)選中桌面上的「計算器」快捷圖標 按滑鼠左鍵拖動到「回收站」圖標上 在確認對話框中單擊「是」。4.(1)打開「控制面板」窗口 雙擊 顯示器 圖標 單擊「屏幕保護程序」選項卡 在「屏幕保護程序」下拉列表框中選擇「滾動字幕」 單擊設置按鈕 出現的對話框分別做相應的設置 單擊「應用」按鈕 單擊「確定」按鈕。 (2)打開「控制面板」窗口 雙擊顯示器圖標 單擊「圖案」按鈕 在圖案列表框中選擇「clouds」 在「顯示圖片」列表框中選擇「居中」 單擊「應用」 單擊「確定」。 (3)打開「控制面板」窗口 雙擊「區域選項」圖標 單擊「貨幣」選項卡 在「貨幣符號」下拉列表框中選擇「$」 在「貨幣正數格式」下拉列表框中選擇「¥1.1」 在「貨幣負數格式」下拉列表框中選擇「-¥1.1」 單擊「應用」按鈕 單擊「確定」按鈕。(4)打開「控制面板」窗口 雙擊「區域選項」圖標 單擊「數字」選項卡 在「小數點後面的位數」下拉列表框中選擇「2」 在「數字分組符號」下拉列表框中選擇「,」 在「組中數字個數」下拉列表框中選擇「123,456,789」 單擊「應用」按鈕 單擊「確定」按鈕。(5)打開「控制面板」窗口 雙擊「區域選項」圖標 單擊「日期」選項卡 在「短日期格式」下拉列表框中選擇「yy-mm-dd」 單擊「應用」按鈕 單擊「確定」按鈕。(6) 單擊「時間」選項卡 在「時間格式」下拉列表框中選擇「hh:mm:ss」 在「上午格式」下拉列表框中選擇「am」 在「下午格式」下拉列表框中選擇「pm」 單擊「應用」按鈕 單擊「確定」按鈕。(7)打開「控制面板」窗口 雙擊「任務欄和開始菜單」圖標 在「自動隱藏任務欄」單選按鈕前打鉤 去掉「顯示時鍾」單選按鈕前的鉤 單擊「應用」按鈕 單擊「確定」按鈕。5.(1)單擊「開始」菜單 選擇「程序/附件/畫圖」打開畫圖程序 按要求畫一副風景圖。 (2)在「畫圖」窗口中單擊「a」按鈕 輸入文字「這是我的家」(3)單擊「文件/保存」菜單 在「文件名」文本框中輸入「我的家 」存檔 (4)打開一副圖片 按[alt]+[print screen] 打開「畫圖」程序 單擊「文件/新建」菜單 在圖紙的空白出單擊右鍵選擇「粘貼」 單擊「文件/保存」菜單 在「文件名」文本框中輸入「截圖 」存檔。
計算機實驗報告4
計算機網路課程實訓已經結束幾天了.實訓期間,讓我學到了很多東西,不僅使我在理論上對網路有了全新的認識,在實踐能力上也得到了提高,真正地做到了學以致用,更學到了很多做人的道理,對我來說受益非淺。除此以外,我還學會了如何更好地與別人溝通,如何更好地去陳述自己的觀點,如何說服別人認同自己的觀點。第一次親身感受到理論與實際的相結合,讓我大開眼界。也是對以前所學知識的一個初審吧!這次實訓對於我以後學習、找工作也真是受益菲淺,在短短的幾天中相信這些寶貴的 經驗 會成為我今後成功的重要的基石。
作為一名大一的學生,經過差不多一年的在校學習,對網路有了理性的認識和理解。所以在實訓之前,網路對我來說是比較抽象的,在這次實訓中,是一次比較真實的接觸網路。讓我們親身體會了什麼是網路,以及計算機軟體、硬體等等。這次實訓也讓我深刻了解到,不管在工作中還是在生活中要和老師,同學保持良好的關系是很重要的。三人行必有我師,其實同學也是我們的老師不懂可以相互問。在這幾天的實訓中可以說是我們上大學以來學的最多有關專業的知識,比如說:虛擬機VMwareWorkstation、區域網聯網實踐、WindowsServer2003基礎、Linu__網路操作系統、網路操作系統綜合實訓、網路操作系統綜合實訓等等。這次實訓我們真正的學到了技術,這些知識基礎而富有內涵有助於我們專業知識的入門,更有助於我們未來的發展。
這次實訓我們收獲很大,對於剛入門的我們一切都是那麼的陌生。
在此期間老師給我們點起了一盞燈指引我們走向光明,這樣的情況下我們也會面對許許多多的困難,這個時候我們感受到了集體力量的偉大,我們互幫互助共同完成了實訓工作。我們在虛擬機上裝系統進行雙機互聯,我們一起裝系統一起互 相學 習,我們一起感受成功的快樂,這一刻我們共同成長。
俗話說:走過去前面依然是片藍天,每天的太陽都是新的。相反,瞻前顧後,畏首畏尾,往往會導致自我封閉錯失良機,最終會導致止步不前一事無成。「只有相信自己,別人才能相信你,才能給你機會。」絕對是至理 名言 。
在做調研的時候也是一樣,我們擁有了自信去敲門並從我們的行動中表現出來,當別人從我們身上眼裡看到這種自信時候,他們也就相信了我們自身的能力,就會給我們機會,也就會配合我們要做的事情,並樂意去做的更好;反之如果你表現的畏首畏尾的話,讓他們看不到我們自身的能力,給他們一瓶子不滿半瓶子逛盪的感覺,而且還顯得那麼幼稚那麼的不穩重,所以就會對我們的請求不屑一顧或者隨便找個借口把你打發走,而這正是我們做事情所不願意看到的。所以當一個人擁有自信的時候一切都再不那麼遙遠!
所以說無論做什麼事我們都要充滿自信地去探索去摸索敢於嘗試,真誠合作!
計算機實驗報告5
一、《軟體技術基礎》上機實驗內容
1.順序表的建立、插入、刪除。
2.帶頭結點的單鏈表的建立(用尾插法)、插入、刪除。
二、提交到個人10m硬碟空間的內容及截止時間
1.分別建立二個文件夾,取名為順序表和單鏈表。
2.在這二個文件夾中,分別存放上述二個實驗的相關文件。每個文件夾中應有三個文件(.c文件、.obj文件和.e__e文件)。
3. 截止時間:12月28日(18周周日)晚上關機時為止,屆時伺服器將關閉。
三、實驗報告要求及上交時間(用a4紙列印)
1.格式:
《計算機軟體技術基礎》上機實驗報告
用戶名se________ 學號姓名 學院
①實驗名稱:
②實驗目的:
③演算法描述(可用文字描述,也可用流程圖):
④源代碼:(.c的文件)
⑤用戶屏幕(即程序運行時出現在機器上的畫面):
2.對c文件的要求:
程序應具有以下特點:a可讀性:有注釋。
b交互性:有輸入提示。
c結構化程序設計風格:分層縮進、隔行書寫。
3. 上交時間:12月26日下午1點-6點,工程設計中心三樓教學組。 請注意:過時不候喲!
四、實驗報告內容
0.順序表的插入。
1. 順序表的刪除。
2.帶頭結點的單鏈表的插入。
3. 帶頭結點的單鏈表的刪除。
注意:1. 每個人只需在實驗報告中完成上述4個項目中的一個,具體安排為:將自己的序號對4求余,得到的數即為應完成的項目的序號。
例如:序號為85的同學,85%4=1,即在實驗報告中應完成順序表的刪除。
2. 實驗報告中的源代碼應是通過編譯鏈接即可運行的。
3. 提交到個人空間中的內容應是上機實驗中的全部內容。
大學生計算機實驗 總結報告 相關文章:
★ 計算機實訓總結範文5篇
★ 大學生計算機實訓心得體會
★ 大學生計算機專業實習報告範文5篇
★ 計算機實訓報告範文精選5篇
★ 計算機網路個人實習總結
★ 計算機實踐報告範文3000字3篇
★ 大學生計算機實習報告總結3000字
★ 計算機實習報告範文5篇
★ 大學生計算機實習報告總結3000字(3)
★ 大學生計算機實訓心得體會(2)
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm..com/hm.js?"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();Ⅵ 演算法與數據結構實驗順序表的應用實驗報告
者visual c++都行。
看看這個也許你會明白的更多一些。
實驗一 多項式相加
一、實驗目的
熟悉鏈表的使用。
掌握如何使用C語言實現鏈表的說明、創建以及結點的插入和刪除等操作。
二、實驗要求
熟悉C語言編程。
三、實驗內容
對於兩個一元多項式中所有指數相同的項,對應系數相加,若其和不為零,則構成「和多項式」的一項;對於兩個一元多項式中所有指數不相同的項,則分別復抄到「和多項式」中去。
四、實驗步驟
1. 用鏈表作一元多項式的數據結構,用C語言對鏈表作說明
2. 生成輸入一元多項式的函數
3. 輸入一元多項式A(x)和B(x)
4. 以一元多項式A(x)為和多項式,將B(x)多項式中系數加入到A(x)中去
實驗二 後綴表達式計算
一、實驗目的
熟悉棧的使用。
掌握如何使用C語言實現棧的說明、創建以及進棧和出棧等操作。
二、實驗要求
熟悉C語言編程。
三、實驗內容
先將中綴表達式(就是我們通常所見的)轉換為後綴表達式,比如 a+b*c+d 要變成 abc*+d+;轉換的方法用棧來實現,涉及到運算符的優先順序;然後用另一個棧來對後綴表達式計算結果
四、實驗步驟
1.讀入字母/數字--〉字母/數字進棧
2.讀入運算符--〉退出兩個字母/數字,用運算符計算結果,並將結果進棧
3.棧能剛好退完,則最後的即為結果。否則表明表達式有誤
實驗三 Kmp演算法
一、實驗目的
熟悉字元串的使用。
掌握如何kmp演算法實驗字元串的模式匹配。
二、實驗要求
熟悉C語言編程。
三、實驗內容
求出子串(模式串)的next,利用kmp演算法實驗模式與主串的匹配演算法。
四、實驗步驟
1.生成模式串的next函數
2.從第1個字元開始,進行模式串與主串的比較,
3.如果出現失配,將模式串的第next[j]位置開始,繼續與主串進行比較。
實驗四 Huffman 編碼
一、實驗目的
熟悉Huffman編碼方法。
了解並弄懂Huffman編碼實現信息的無損壓縮原理。
二、實驗要求
熟悉C語言編程。
三、實驗內容
1.根據給定的n個權值(w1, w2, …, wn)構成n棵二叉樹的集合F=,其中每棵二叉樹Ti中只有一個帶樹為Ti的根結點
2.在F中選取兩棵根結點的權值最小的樹作為左右子樹構造一棵新的二叉樹,且置其根結點的權值為其左右子樹權值之和
3.在F中刪除這兩棵樹,同時將新得到的二叉樹加入F中
4.重復2, 3,直到F只含一棵樹為止
四、實驗步驟
1.用C語言實現二叉樹的說明
2.輸入n個權值,並生成n個二叉樹
3.對n個二叉樹逐步生成Huffman樹
4.對Huffman樹的每個葉子結點生成編碼
實驗五 關鍵路徑
一、實驗目的
熟悉關鍵路徑的實現方法。
了解AOE-網以及關鍵路徑在工程實踐中的應用。
二、實驗要求
熟悉C語言編程。
三、實驗內容
根據輸入的弧,生成AOE-網。從始點開始,找出到終點的多條路徑,求這些路徑上的關鍵活動。由關鍵活動組成的從始點到終點的路徑,即為關鍵路徑。
四、實驗步驟
1.輸入e條弧,生成AOE-網的存儲結構。
2.從始點v0出發,令ve[0]=0,按拓撲有序求ve[j]
3.從終點vn-1出發,令vl[n-1]=ve[n-1],按逆拓撲有序求vl[i]
4.根據各頂點的ve和vl值,求每條弧(活動)ai的最早開始時間e[ai]和最遲開始時間l[ai]
5.如果e[ai]=l[ai],則ai為關鍵活動
實驗六 最短路經
一、實驗目的
熟悉最短路徑的實現方法。
了解AOE-網以及最短路徑在求解實際問題中的應用。
二、實驗要求
熟悉C語言編程。
三、實驗內容
從始點v0開始,逐步求v0到其它可達的各頂點的最短路徑,直到所有頂點計算完成為止。
四、實驗步驟
1.輸入e條弧,生成AOE-網的存儲結構。
2.初始化: S ← ;
dist[j] ← Edge[0][j], j = 1, 2, …, n-1; // n為圖中頂點個數
3.求出最短路徑的長度:
dist[k] ← min , i V- S ;
S ← S U ;
4.修改從v0到V-S集合中各頂點的最短路徑:
dist[i] ← min,
對於每一個 i 屬於 V- S ;
5.判斷:若 S = V, 則演算法結束,否則轉 2。
實驗七 二叉排序樹
一、實驗目的
熟悉二叉排序樹的使用。
掌握如何使用C語言實現二叉樹的說明、創建以及二叉排序樹的生成等操作。
二、實驗要求
熟悉C語言編程。
三、實驗內容
給定一個記錄關鍵字的值,與二叉排序樹的根結點值比較,如果小於根結點的值,則向左子樹查找;如果大於根結點的值,則向右子樹查找。如果查找到葉子結點leaf,仍沒有找到記錄,則:如果關鍵字的值小於leaf的值,則插入該leaf結點的左邊,做leaf的左孩子,否則做leaf的右孩子。
四、實驗步驟
1.用C語言實現二叉樹的說明
2.直接將輸入的值作為根結點的值
3.與根結點比較,小於則放到左子樹上,大於則放到右子樹上。
實驗八 希爾排序
一、實驗目的
熟悉希爾排序的使用。
掌握如何使用C語言實現若干記錄的排序。
二、實驗要求
熟悉C語言編程。
三、實驗內容
先將整個待排記錄序列分割成為若乾子序列分別進行直接插入排序,待整個序列中的記錄「基本有序」時,再對全體記錄進行一次直接插入排序。
四、實驗步驟
1.輸入待排序記錄
2.首先取一個整數 gap < n(待排序記錄數) 作為間隔, 將全部記錄分為 gap 個子序列, 所有距離為 gap 的記錄放在同一個子序列中
3.在每一個子序列中分別施行直接插入排序。
4.然後縮小間隔 gap, 例如取 gap = gap/2
5.重復上述的子序列劃分和排序工作,直到最後取gap = 1, 將所有記錄放在同一個序列中排序為止。
實驗九 快速排序
一、實驗目的
熟悉快速排序的使用。
掌握如何使用C語言實現若干記錄的排序。
二、實驗要求
熟悉C語言編程。
三、實驗內容
通過一趟將待排記錄分割成獨立的兩個部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小。再對兩個部分分別進行快速排序。
四、實驗步驟
1.輸入待排序的記錄,並選擇第一個記錄作為pivotkey記錄
2.從high指向的記錄開始,向前找到第一個關鍵字的值小於Pivotkey的記錄,將其放到low指向的位置,low+1
3.從low指向的記錄開始,向後找到第一個關鍵字的值大於Pivotkey的記錄,將其放到high指向的位置,high-1
4.重復2,3,直到low=high,將樞軸記錄放在low(high)指向的位置
5.重復2,3,4,直到整個記錄有序為止
實驗十 堆排序
一、實驗目的
熟悉堆排序的使用。
掌握如何使用C語言實現若干記錄的排序。
二、實驗要求
熟悉C語言編程。
三、實驗內容
首先將一個無序序列建成一個堆;然後輸出堆頂元素;在輸出堆頂元素之後,調整剩餘的元素成為一個新堆。
四、實驗步驟
1.輸入記錄,按順序創建一個完全二叉樹
2.根據篩選演算法,從最後一個結點開始,一直到根結點,逐步篩選,建造初始堆。
3.輸出堆頂記錄,將最後一個結點放到堆頂,並做篩選,重新建造一個堆
4.直到所有記錄輸出為止