第一篇:軟件實驗
《軟件技術(shù)基礎(chǔ)》實驗報告
實驗一:
順序表的操作
班 級
0801210 學(xué) 號
2012212982 姓 名
蒲米
棧,然后編寫進棧和出棧的操作,讀取棧頂元素。這里棧有順序棧和鏈式棧兩種,順序棧是利用一種動態(tài)存儲的數(shù)組定義,而鏈式棧是一個無頭節(jié)點,只是在頭部插入和刪除元素的單鏈表。使用順序棧要先為存儲元素的數(shù)組申請一個空間,然后編寫進棧和出棧取棧頂元素的操作。#include
printf(“此棧表已滿”);pst->top++;pst->st[pst->top]=x;} void pop(struct stack *pt,int *p){ if(pt->top==-1)
printf(“此棧表為空”);*p=pt->st[pt->top];pt->top--;} void main(){ struct stack T;struct stack *t=&T;int a[n];int i;printf(“請輸入數(shù)組的值:”);for(i=0;i<5;i++){
scanf(“%d”,&a[i]);} T.top=-1;for(i=0;i<5;i++)
push(t,a[i]);for(i=0;i<5;i++){
pop(t,&a[i]);
printf(“%dn”,a[i]);
}
}
四、算法。
順序棧的算法:
1、順序棧的初始化。
2、進棧操作
3、出棧操作
4、取棧頂元素。鏈式棧的算法:
1、進棧操作
若棧不滿,則在棧頂插入元素x作為新的棧頂。
2、出棧操作
若棧不空,則刪除棧頂?shù)脑兀胑返回其值。
五、實驗心得體會:
通過本次實驗我學(xué)習(xí)了棧這種特殊形式的線性表,就是只能從一端進行操作,邏輯和一般的線性表相同,只是元素的操作方式不同。
實驗五:
隊列的操作
一、實驗?zāi)康模?/p>
掌握隊列的定義及其運算,了解隊列的應(yīng)用。
二、實驗內(nèi)容:
1、掌握隊列的特點及常見算法。
2、隊列測試和應(yīng)用。要求:
設(shè)計一個主函數(shù)對循環(huán)隊列代碼進行測試。測試方法為:依次把數(shù)據(jù)元 素2,4,6,8,10入隊,然后出隊中的數(shù)據(jù)元素并在屏幕上顯示。
三、實驗思路:
使用隊列的時候要創(chuàng)建一個空隊列,這里隊列可以分為兩種存儲方式,順序存儲和鏈式存儲,順序存儲顧名思義它的存儲數(shù)據(jù)方式是連續(xù)存儲的,而鏈式存儲則是不連續(xù)的,隊頭和隊尾定義兩個指針,通過指針來操作隊列。先創(chuàng)建一個含有頭結(jié)點的空的鏈隊列,建立頭結(jié)點,在隊尾插入結(jié)點后建立好隊尾指針,判斷隊列是否為空,然后編寫出隊列的功能函數(shù)。
#include
{ if(rst->len==n)
printf(“此隊列已滿”);else {
rst->rear=(rst->rear+1)%n;
rst->data[rst->rear]=x;} } int out(struct nobe *rst){ int x;if(rst->len==0)
printf(“此隊列為空”);else {
rst->front=(rst->front+1)%n;
x=rst->data[rst->front];} return x;}
首先建立一個結(jié)構(gòu)體包含數(shù)據(jù)域與指針域,然后編寫隊列的入隊與出隊操作,最后編寫主函數(shù),在主函數(shù)調(diào)用入隊與出隊操作,實現(xiàn)程序的編程。
四、算法。隊列的算法:
1、入隊操作。
若隊列不滿,則在隊尾插入元素x作為新的隊尾。
2、出隊操作。
3、若隊列不空,則刪除隊頭元素的值。鏈隊列的算法
1、鏈隊列初始化
建立一個含有頭結(jié)點的空的鏈隊列。
2、求隊列的長度
返回隊列的元素個數(shù),即隊列的長度。
3、入隊列操作
插入元素x作為隊列新的隊尾元素。
4、出隊列操作
若隊列不空,則刪除隊頭元素,用e返回其值。
五、實驗心得體會:
隊列和棧一樣是一種特殊形式的線性表,隊列不同與棧的是它可以在一端插入,另一端刪除。
實驗六: 二叉樹的生成與遍歷
一、實驗?zāi)康模?/p>
1、熟悉二叉樹節(jié)點的定義和生成方式;
2、熟悉二叉樹鏈式結(jié)構(gòu)的生成方式;
3、掌握二叉樹遍歷算法的實現(xiàn)。
二、實驗內(nèi)容:
1.設(shè)計實現(xiàn)二叉樹的建立及遍歷算法,要求:
(1)編寫創(chuàng)建二叉鏈式存儲結(jié)構(gòu)的二叉樹程序并輸出。
(2)編寫遞歸實現(xiàn)二叉樹的先序、中序、后序遍歷算法。(3)編寫主函數(shù)測試以上二叉樹的創(chuàng)建和遍歷函數(shù)。
2.假設(shè)二叉樹采用鏈式存儲結(jié)構(gòu)進行存儲,編寫程序?qū)崿F(xiàn)二叉樹的所有葉子
結(jié)點的統(tǒng)計并輸出統(tǒng)計個數(shù)。
三、實驗思路:
首先建立一個結(jié)構(gòu)體包含數(shù)據(jù)域,左右子樹的指針三個數(shù)據(jù)元素,這里左子樹和右子樹分別為某一結(jié)點指向其左子樹和右子樹的指針。對于葉子結(jié)點或者新生成的結(jié)點,它的左子樹和右子樹的指針都是空值。定義二叉樹結(jié)構(gòu)體變量,然后編寫二叉樹的輸入和先序、中序、后序遍歷算法,最后編寫主函數(shù),在主函數(shù)中初始化二叉樹長度為零,輸入二叉樹的各個元素,再調(diào)用二叉樹的先序、中序、后序遍歷操作,輸出二叉樹,實現(xiàn)程序的編程。
四、算法。
1.二叉樹的建立:
二叉樹的遍歷算法需要先建立二叉樹,二叉樹的建立需要建立棧和數(shù)組
棧和數(shù)組的建立:
typedef struct node
/*結(jié)點定義*/ {
char
data;
struct node * lchild, * rchild;} BinTreeNode;
typedef struct{ //棧的定義
BinTreeNode * ptr;int tag;}StackNode;
二叉樹的建立:
BinTreeNode * CreateBinTree(BinTreeNode * Tree)/*,按先序序列建立二叉樹,輸入并建立一棵二叉樹Tree*/ {
char c;scanf(“%c”,&c);if(c=='&')Tree = NULL;else {
Tree=(BinTreeNode *)malloc(sizeof(BinTreeNode));
Tree->data=c;
Tree->lchild= CreateBinTree(Tree->lchild);
Tree->rchild= CreateBinTree(Tree->rchild);
}
return(Tree);}
2.先序遍歷
先序遍歷的遞歸算法:
/*二叉樹的先序遍歷*/ void PreOrder(BinTreeNode *T){ if(T!= NULL)
{
printf(“%c”,T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
} } 先序遍歷的非遞歸算法:
/*二叉樹的先序遍歷的非遞歸算法*/ void PreOrderTwo(BinTreeNode *T){
BinTreeNode *p,*S[Max];
int top=-1;
p=T;
/*初始化*/
do
{
while(p!= NULL)
{
printf(“%c”,p->data);
top++;S[top]=p;
p=p->lchild;
}
if(top >-1)/*棧非空*/
{
p=S[top];top--;/*取棧頂元素,出棧*/
p = p->rchild;
}
}while((p!= NULL)||(top>-1));
}
3、中序遍歷:
void InOrder(BinTreeNode*t){
if(t){
InOrder(t—>leftchild);
Visit(t);
InOrder(t—>rightchild);
} }
4、后序遍歷:
void PostOrder(BinTreeNode*t){
if(t){
PostOrder(t—>leftchild);
PostOrder(t—>rightchild);
visit(t);
} }
五、實驗心得體會:
二叉樹是一種非線性的數(shù)據(jù)存儲結(jié)構(gòu),描述的是結(jié)點一對多的關(guān)系,這種結(jié)構(gòu)最常用,最適合的描述方法是用鏈表的形式。每個結(jié)點都包含一個數(shù)據(jù)域和兩個指針域。
實驗七: 查找算法的實現(xiàn)
一、實驗?zāi)康模?/p>
掌握各種查找算法的特點,測試并驗證查找常見算法。
二、實驗內(nèi)容:
1.建立有序表,采用折半查找實現(xiàn)某一已知的關(guān)鍵字的查找。
2.利用折半查找算法在一個有序表中插入一個元素,并保持表的有序性。
三、實驗思路:
#include
int search(int x,int data[],int n){ int low,high,mid;low=0;high=n-1;while(low<=high){
mid=(low+high)/2;
if(data[mid]=x)
return(mid+1);
else
if(data[mid]>x)
high=mid-1;
else
low=mid+1;} return 0;}折半查找法首先定義一個一維數(shù)組表示有序表,查找的思路是將給定的數(shù)據(jù)與有序表中間位置的元素做比較,若兩者相等則查找成功,若前者小于后者,則在中間位置左邊的元素中繼續(xù)查找;若前者大于后者,則在中間位置右邊的元素中繼續(xù)查找。重復(fù)這個步驟直到查找成功。然后編寫折半查找法的算法和利用折半查找法插入元素的算法,最后編寫主函數(shù),在主函數(shù)中輸入有序表的元素,再調(diào)用折半查找法的查找和插入操作,保持有序表的有序性并輸出,實現(xiàn)程序的編程。
四、算法。
1、設(shè)置查找區(qū)間初值,設(shè)下界low=0,設(shè)上界high=length—1。
2、若low<=high,則計算中間位置mid=(low+high)/2.3、若key 若key>data[mid],則設(shè)low=mid+1并繼續(xù)執(zhí)行步驟2; 若key=data[mid]則查找成功,返回目標元素位置mid+1(位置從1計數(shù))。 4、若當(dāng)low=high時,key!=data[mid]則查找失敗,返回0.四、實驗心得體會: 折半查找法是對一個有序表進行折中查找,首先對表進行排序,則查找起來就會事半功倍。這種查找的算法直觀,形象,便于使用。 實驗八: 排序綜合實驗 一、實驗?zāi)康模?/p> 參照各種排序算法程序樣例,驗證給出的排序常見算法。 二、實驗內(nèi)容: 輸入一組關(guān)鍵字序列分別實現(xiàn)下列排序,并將上述幾種排序的算法編寫成菜 單,根據(jù)輸入的數(shù)字不同執(zhí)行對應(yīng)的排序算法(任選兩種排序方法實現(xiàn))。 1、直接插入排序。 2、冒泡排序。 3、直接選擇排序。 4、快速排序。 三、實驗思路: 首先編寫直接插入排序法和冒泡排序法,然后編寫主函數(shù),在主函數(shù)中定義一個一維數(shù)組用來記錄數(shù)據(jù),再編寫一個菜單用來選擇排序方法,最后調(diào)用直接插入排序法和冒泡排序法等操作,使用循環(huán)結(jié)構(gòu)實現(xiàn)程序的反復(fù)執(zhí)行直到退出為止。 四、算法。 直接插入排序算法void insort(int p[],int n){ int i,j,temp;for(i=1;i temp=p[i]; j=i; while(j>0&&temp { p[j]=p[j-1]; j--; } p[j]=temp;} } 冒泡排序算法void bublesort(int v[],int n){ int i,j,temp;for(i=1;i for(j=0;j { if(v[j]>v[j+1]) { temp=v[j]; v[j]=v[j+1]; v[j+1]=temp; } } } } 簡單選擇排序法void Select_Sort(datatype R[ ],intn){ /*對排序表R[1].....R[n]進行冒泡排法,n是記錄個數(shù)*/ for(i=1;i 邢臺學(xué)院信科系實驗報告 課程名稱:《計算機軟件基礎(chǔ)》 實驗類型:驗證型(驗證型、創(chuàng)新型、綜合型、設(shè)計型)實驗項目名稱:SQL語言 學(xué)生姓名: 楊揚專業(yè): 教育技術(shù)學(xué)學(xué)號: 2011121105指導(dǎo)老師:甘莉莉 實驗地點: 軟件實驗室實驗學(xué)時:2學(xué)時 實驗?zāi)康暮鸵螅?掌握SQL語言的使用方法 2利用SQL語句實現(xiàn)相關(guān)的操作 3能夠獨立寫出一些較復(fù)雜的SQL語句 主要儀器設(shè)備或者軟件:計算機 操作方法與實驗步驟: 1.使用SQL語句定義READER表,其結(jié)構(gòu)與實驗一中的表1——“讀者”表相同,然后使用插入命令在READER表中插入兩條記錄,內(nèi)容自定。 2.根據(jù)“圖書管理”數(shù)據(jù)庫中的“讀者”、“圖書”和“借書登記”3個表,使用SQL語句完成以下查詢。 (1)從“讀者”表中查找法律系讀者的所有信息。 (2)從“借書登記”表中查找尚未歸還的圖書的書號、借書證號和借書日期。 (3)從“借書登記”表中查詢每本書每次借出的天數(shù)。 (4)從“借書登記”表中查詢每本書的借閱次數(shù)。 (5)從“圖書”表中查找各出版社圖書的價格總計,并按價格降序輸出。 (6)查詢所有借過書的讀者姓名和借書日期。 (7)查詢所有借閱了“紅樓夢”的讀者的姓名和借書證號。 (8)查詢至今沒有人借閱的圖書的書名和出版社。 討論或心得: 學(xué)會了SQL語句的使用 邢臺學(xué)院信科系實驗報告 課程名稱:《計算機軟件基礎(chǔ)》 實驗類型:設(shè)計型(驗證型、創(chuàng)新型、綜合型、設(shè)計型) 實驗項目名稱:需求調(diào)查與可行性分析實驗 學(xué)生姓名:楊揚專業(yè): 教育技術(shù) 學(xué)號: 2011121105指導(dǎo)老師:甘莉莉 實驗地點: 軟件實驗室實驗學(xué)時:2學(xué)時 一、實驗?zāi)康暮鸵?/p> 目的:通過本次實驗,掌握需求調(diào)查與可行性研究的方法、過程和步驟,加深對可行性分析有關(guān)理論的理解,為學(xué)習(xí)后面的需求分析與軟件設(shè)計打下一個良好的基礎(chǔ) 要求:布置“運動會信息管理系統(tǒng)可行性分析”或其它類似題目,了解用戶業(yè)務(wù)情況、數(shù)據(jù)、網(wǎng)絡(luò)和需求情況,分析并開展可行性研究 二、主要儀器設(shè)備或者軟件 1.硬件環(huán)境 :PC 機 2.軟件環(huán)境 :Windows環(huán)境,C語言系統(tǒng)或 其它語言工具 三、操作方法與實驗步驟 (1)圍繞題目獨立進行需求收集、分析 (2)提出解決問題的初步方案 (3)從技術(shù)、操作、經(jīng)濟等方面進行可行性分析 (4)獨立寫出需求調(diào)查與可行性分析報告 四、討論或心得 為什么要進行可行性研究 ? 因為可行性研究對軟件有很大的意義 《軟件體系結(jié)構(gòu)》實驗指導(dǎo)書 實驗一 系統(tǒng)的用例模型 實驗名稱:系統(tǒng)的用例模型 實驗類型: 設(shè)計性實驗 學(xué) 時:2課時 一、實驗?zāi)康?/p> 1.熟悉用例圖的基本功能和使用方法。 2.鍛煉結(jié)合給定題目,進行有效需求分析的能力。3.掌握如何使用建模工具繪制用例圖的方法。 二、實驗器材 1.計算機一臺。 2.UML建模工具,比如軟件ArgoUML,Rational Rose 或StarUML。 三、實驗內(nèi)容 在理解用例圖的基本功能和使用方法的基礎(chǔ)上,結(jié)合具體問題,完成對系統(tǒng)的需求建模,得到用例模型后,應(yīng)針對每個用例進行業(yè)務(wù)分析,說明其具體的業(yè)務(wù)流程。用Rational Rose或StarUML工具軟件繪制系統(tǒng)的用例圖。下文以Rational Rose為例講解基本步驟。 四、實驗步驟 1.結(jié)合實際給定題目,完成系統(tǒng)的需求建模。 2.針對每個用例進行業(yè)務(wù)分析。以圖書管理系統(tǒng)中“刪除讀者信息”用例為例來說明實驗具體步驟。 (1)分析:在圖書管理系統(tǒng)中,管理員首先登錄系統(tǒng),系統(tǒng)驗證通過后,管理方可向系統(tǒng)查詢數(shù)據(jù),在查詢后,系統(tǒng)會給出提示,有沒有找到相關(guān)的數(shù)據(jù),管理員根據(jù)系統(tǒng)查詢的返回結(jié)果,進行下一步的操作,就是刪除讀者,在刪除的過程中,系統(tǒng)會對查詢得到的結(jié)果判斷該記錄是否可以刪除,若可以刪除,則給刪除提示,若不能刪除,也給相關(guān)的提示信息。 (2)根據(jù)分析結(jié)果,書寫業(yè)務(wù)流程,一般包含以下信息: ①管理員在錄入界面,輸入待刪除的讀者名; ②“業(yè)務(wù)邏輯”組件在數(shù)據(jù)庫中,查找待刪除的讀者名; ③如果不存在,則顯示出錯信息,返回步驟①,如果存在則繼續(xù); ④“業(yè)務(wù)邏輯”組件判斷“待刪除的讀者”是否可以刪除; ⑤如果不可以,則顯示出錯信息,返回步驟⑧,如果可以則繼續(xù); ⑥在數(shù)據(jù)庫中,刪除相關(guān)信息; ⑦顯示刪除成功信息; ⑧結(jié)束。 3.根據(jù)分析結(jié)果,繪制用例圖。以圖書管理系統(tǒng)中“刪除讀者信息”用例為例說明具體繪圖步驟:(1)在用例圖上雙擊main,出現(xiàn)如圖1.1所示,為繪制用例圖做好準備。 圖1.1(2)在圖中的工具欄選取Actor圖標,在右邊的圖中添加一個Actor,并輸入名稱:administrator,如圖1.2所示。 (3)在左邊的工具欄中,選取用例的圖標,在右邊的圖中畫出一個用例,并輸入用例的名稱:login。 圖1.2(4)按照步驟(3),繪制出如圖1.4和圖1.5的兩個用例。 圖1.3 圖1.4 圖1.5(5)在繪出了用例后,接下來的是繪制參與者與用例實現(xiàn),如圖1.6所示。 圖1.6 (6)根據(jù)步驟(5),同時完成如圖1.7和圖1.8。此時,刪除讀者用例圖就到此完成。其系統(tǒng)查詢讀者信息等其他的功能會在時序圖和活動圖中描繪。 (7)根據(jù)分析情況,進一步添加或細化用例圖。 圖1.7 圖1.8 五、實驗報告要求 1. 說明系統(tǒng)的需求建模結(jié)果,對主要用例整理用例圖。2. 小結(jié)實驗心得體會。 實驗二 系統(tǒng)的類模型 實驗名稱:系統(tǒng)的類模型 實驗類型: 設(shè)計性實驗 學(xué) 時:2課時 一、實驗?zāi)康?/p> 1.理解類的基本概念。 2.掌握如何從需求分析中抽象出類的方法。 3.掌握在ArgoUML,Rational Rose或StarUML中繪制類的操作方法。 二、實驗器材 1.計算機一臺。 2.ArgoUML,Rational Rose 或StarUML工具軟件。 三、實驗內(nèi)容 完成實驗一后,對給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過對用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程。本實驗需要對系統(tǒng)進行靜態(tài)建模,這就需要從系統(tǒng)的用例圖去尋找和發(fā)現(xiàn)類。用Rational Rose或StarUML工具軟件繪制系統(tǒng)的類圖。下文以Rational Rose為例講解基本步驟。 四、實驗步驟 1.分析:由前面試驗對需求的分析抽象出類。2.繪制類圖的步驟: (1)打開前面初步構(gòu)建的UML模型文件;(2)打開Rose中的邏輯視圖(Logical View),選擇分析模型(analysis model)目錄。并在其下創(chuàng)建一個子目錄并命名為:“圖書館業(yè)務(wù)功能”。 (3)用鼠標右擊“圖書館業(yè)務(wù)功能”在彈出來的菜單中選擇“New→Class diagram”項,創(chuàng)建類圖,如圖2.1所示。 (4)雙擊新建的類圖,并點右邊控件集中選中的類的圖標,并用鼠標在圖中分別拖出一個類圖,并命名為Book,如圖2.2所示。 圖2.1 圖2.2(5)接下來的一步為設(shè)置類的屬性,在新的類中雙擊該類,在打開屬性面板中,可以看到在此可以設(shè)置類的屬性和方法等其他的信息,圖2.3所示;后撞擊Attributes這個欄目,此欄目為設(shè)置類的屬性的選項,在圖中間的單擊右鍵,可以看到有一個“Insert”的選項,選中這個選項,圖2.4所示,后在出現(xiàn)的對話框中輸入相關(guān)信息如圖2.5所示;如書本的ISBN號,在Type這個方框內(nèi)輸入此屬性的類型值,同時可以看到一欄可以設(shè)置此屬性的訪問權(quán)限,一般這些屬性都設(shè)置Private這個權(quán)限,如圖2.6所示。這個類的其他屬性也可以按照以上的做法設(shè)置,最后得到的結(jié)果是圖2.7所示。 圖2.3 圖2.4 圖2.5 圖2.6(6)設(shè)置好類的屬性,現(xiàn)在來設(shè)置類的方法(也是操作),雙擊類后在彈出的菜單上選operations這個選項,可以看到圖2.8所示,在圖中的空白地方,單擊右鍵,在彈出的菜單中選insert這個選項,也就只有這個選項可用,見圖2.9,接著輸入方法名,同時可以設(shè)置該方法的返回類型,也可以在Documentations的方框內(nèi)填寫一些相關(guān)的方法說明,如圖2.12所示,設(shè)置好該方法的訪問權(quán)限,見圖2.13。類的其他方法也可以按上面來設(shè)置好,最后,得到該類的其他方法見類2.14。 圖2.7 圖2.8 圖2.9 圖2.11 圖2.10 圖2.12 圖2.13 圖2.14(7)至此,類的方法和屬性都設(shè)置好了,如圖2.15所示。 圖2.15(8)按照上面的步驟設(shè)置好所有類的屬性和方法。 (9)為各個類添加關(guān)系,由關(guān)聯(lián)、泛化、依賴等關(guān)系來靜態(tài)描述業(yè)務(wù)。 五、實驗報告要求 1.整理實驗結(jié)果。2.小結(jié)實驗心得體會。實驗三 系統(tǒng)的狀態(tài)建模 實驗名稱:系統(tǒng)的狀態(tài)建模 實驗類型: 設(shè)計性實驗 學(xué) 時:2課時 一、實驗?zāi)康?/p> 1.熟悉狀態(tài)圖的基本功能和使用方法。2.掌握如何使用建模工具繪制狀態(tài)圖方法。 二、實驗器材 1.計算機一臺。 2.ArgoUML,Rational Rose或StarUML 工具軟件。 三、實驗內(nèi)容 完成實驗一后,對給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過對用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程,但對業(yè)務(wù)處理過程的處理狀態(tài)間轉(zhuǎn)換了解仍不夠,這不利于設(shè)計人員對系統(tǒng)業(yè)務(wù)的進一步理解,而狀態(tài)圖能從對象的動態(tài)行為的角度去描述系統(tǒng)的業(yè)務(wù)活動。因此,在本實驗主要完成用例的狀態(tài)圖。 四、實驗步驟 1.業(yè)務(wù)分析:由前面實驗對用例的描述和分析得到業(yè)務(wù)動態(tài)行為的狀態(tài)分析。以用例“還書”為例,還書業(yè)務(wù)的動態(tài)行為是由:空閑(idle)、圖書查找(finding)、還書(reversion)、失敗(Failure)、歸還成功(Success)5種狀態(tài)及激活相互轉(zhuǎn)換的事件。 2.繪制狀態(tài)圖。 還書的狀態(tài)圖,還書的主要業(yè)務(wù)都是由管理員來完成,首先管理員必須先登錄系統(tǒng),并通過驗證后,便可以進行下一步的操作,查找該書的相關(guān)信息,如存在,則進行還書操作,如不存在該信息,則給出提示信息; 繪圖步驟: (1)在用例圖中的還書(revesion)用例,單擊右鍵,如圖3.1所示,新建一個狀態(tài)圖,命名為revesion狀態(tài)圖,圖3.2所示。 圖3.1 圖3.2(2)雙擊“receivesion”狀態(tài)圖,展開后,在左邊的工具欄上選取一個實心圓點,此結(jié)點為開始結(jié)點,圖3.3所示;當(dāng)還書的時候,操作者先要詢問系統(tǒng)的狀態(tài),如果系統(tǒng)忙,操作者則必需等待,因此,得到系統(tǒng)的兩種狀態(tài),如圖3.5所示。 圖3.3 圖3.4 圖3.5(3)操作者在詢問系統(tǒng)和狀態(tài)后,得到的圖3.6所示兩種狀態(tài),如果系統(tǒng)忙,操作者必需要等待、結(jié)束,如圖3.7和圖3.8所示,重返步驟(1)。 圖3.6 圖3.7 圖3.8(4)如系統(tǒng)空閑,則進行對還書的信息進行查詢操作,圖3.9所示;查詢也有兩種結(jié)果,一是查詢得到該書的相關(guān)信息,二查詢不到該書的相關(guān)信息;則此時有兩種狀態(tài),需要建立兩種狀態(tài),如圖3.10所示。 圖3.9 圖3.10(5)最后,操作者進行了操作后,系統(tǒng)會給出操作的結(jié)果給操作者;操作成功或失敗,都會有提示信息給出。整個的還書的過程便完成;圖3.11所示。 (7)根據(jù)分析設(shè)計情況,進一步添加或細化狀態(tài)圖。 圖3.11 五、實驗報告要求 1.整理實驗結(jié)果。2.小結(jié)實驗心得體會。 軟件測試實驗報告 專 業(yè) : 學(xué) 號 : 姓 名 : 任課老師 : 代碼覆蓋工具使用(Eclemam) 1、開發(fā)工具 Eclipse、JUnit、Eclemma開源工具 2、實驗?zāi)康?/p> 1)安裝Eclemma插件 2)熟練掌握Eclemma的插件用法 3、實驗要求 查閱Triangle類的覆蓋率是否達到100%,若未達到100%,通過添加測試用例,使之達到100%。 4、實驗結(jié)果 5、心得體會 在測試實驗前,我以為不會難做。就像以前的物理實驗一樣,做做實驗,做過之后交一份實驗報告就好了。直到做實驗的時候我才知道其實并不容易做,但是學(xué)到的知識與實驗的難度成正比,這使我受益匪淺。 在做實驗之前一定要將課本上的知識吃透,因為這是實驗的基礎(chǔ),否則,在老師講解實驗的時候就會聽不懂,這將增加實驗的難度,浪費時間。同時在做實驗時老師還會給我們講一些自己的親身體會和老師們在做的時候遇到的問題以及會將一些課本上沒有的知識告訴我們使我們對這門課的了解更加深入。 通過這次實驗,我學(xué)到不少實用的知識,更重要的是,做實驗的過程,思考問題的方法與其他實驗的方法是相通的,真正使我受益匪淺。第二篇:軟件基礎(chǔ)實驗
第三篇:軟件基礎(chǔ)實驗
第四篇:軟件體系結(jié)構(gòu)實驗指導(dǎo)書
第五篇:軟件測試實驗(Eclemma)