======================================================================================================
某工廠制造企業為了開發軟體智能檢測以有效提升檢測效率,節約人力資源,該系統的主要功能是:
(1)基礎資訊管理。管理者對檢測标準和檢測規則等基礎資訊設定。
(2)檢測模型部署。管理者對常用機器學習方法建立的檢測模型分布。
(3)圖像采集。實時将檢測多樣的産品待檢測建分存儲,包括産品結構,生産時間,圖像信号和産品圖像。
(4)缺陷檢測。根據檢測模型和檢測品質标準對圖像采集所收到的産品檢測資訊中所有圖像進行檢測或所有圖像檢測合格。若一個産品出現一張圖像檢測不合格,就表示該産品不合格,對不合格産品,其檢測結果包括,産品型号和不合格類型。
(5)品質檢測。根據監控規則對産品品質進行監控将檢測情況展示給檢測業務員,若滿足條件。向檢測業務員發送品質檢測,品質檢測是發起遠端控制部分,檢測裝置發送控制指令進行處理。
(6)模型監控。在系統中部署的模型、産品的檢測資訊結合基礎資訊進行監測分析,将模型運作情況發給監控人員。
現采用結構化方法對智能檢測系統,進行分析與設計,獲得如圖1-1的上下文資料流圖和圖1-2的資料流圖。
問題:1.1 (4分)
使用說明中的語句對圖1-1中的實體E1~ E4的名稱。
E1:待檢測檔案
E2:管理者
E3:檢測業務員
E4:監控人員
問題:1.2 (3分)
使用說明中的語句對圖1-2中的資料存儲D1~D3的名稱。
參考的答案
D1:模型檔案
D2:産品檢測資訊檔案
D3:基礎資訊檔案
問題:1.3 (5分)
根據注明和圖中術語,補齊圖1-2中缺失的資料及起點和終點。
起點 終點 資料流
E3 p5 遠端控制指令
p2 p3 産品檢測資訊
D3 p4 基礎資訊
問題:1.4 (3分)
根據說明,采用結構化語言對缺陷檢測的加工邏輯進行描述。
缺陷檢測{
while (接收的圖像){
do{
檢測所收到的所有圖像;
if(有一張圖像檢測不合格){
Then{
傳回 産品不合格
不合格産品檢測結果=産品型号+不合格類型
}
}
}
}
}
======================================================================================================
M集團擁有多個分公司,為了友善集團公司對各個分公司職員進行有效管理,集團公司決定建構一個資訊平台以滿足公司各項業務管理需求。
【需求分析】
1、分公司關系模式需要記錄的資訊包括公司編号、名稱、經理号、可聯系位址和電話。分公司編号唯一标記分公司關系模式中的每一個元組,每個分公司各有一名經理,負責分公司的管理工作,每個分公司設立僅為本分公司服務的多個業務部,業務部包括:研發部、财務部、采購部、交易部等。
2、業務部關系模式需要記錄的資訊包括業務部的編号、名稱、位址、電話和分公司編号,業務部編号唯一标記分公司關系模式中的每一個元素,每個業務部各有一名主管負責業務部的管理工作,每個業務部有多名職員,每個職員隻能來源于一個業務部。
3、職員關系模式需要記錄的資訊包括職員号、姓名、所屬業務部編号、崗位、電話、家庭成員姓名和成員關系。其中職員号唯一标記職員關系,崗位包括:經理、主管、研發員、業務員等。
【關系模式】
分公司(分公司編号、名稱、(a)、 聯系位址 )
業務部(業務部編号、名稱、(b)、 電話)
職員(職員号、姓名、崗位、©、 電話、家庭成員姓名、關系)
【概念模式設計】
問題:2.1 (4分)
根據問題描述,補充4個聯系,完善圖2-1的實體聯系圖,聯系名可用聯系1、聯系2、聯系3和聯系4代替 ,聯系的類型為1 : 1、1 : n和m: n(或1 : 1、1: 和😗)
//聯系要用菱形表示,這裡為友善用文字形式表述
1. 分公司 ******** 1 ****** 聯系1 ******* 1 *******經理
2. 分公司 ******** 1 ****** 聯系2 ******* n ******* 業務部
3. 業務部 ******** 1 ****** 聯系3 ******* 1 ******* 主管
4. 業務部 ******** 1 ****** 聯系4 ******* n ******* 職員
問題:2.2 (3分)
根據題意将以上關系模式中的空(a) ~ ©的屬性補充完整,并填入對應位置。
(a) 經理号、電話
(b) 位址、分公司編号
(c) 所屬業務部編号
問題:2.3 (4分)
(1)分析分公司關系模式的主建和外鍵
(2)分析業務部關系模式的主建和外鍵
(1)
分公司主鍵:分公司編号
分公司外鍵:經理号
(2)
業務部主鍵:業務部編号
業務部外鍵:分公司編号
問題:2.4 (4分)
在職員關系模式中,假設每個職員有多名家庭成員,那麼職員關系模式存在什麼問題?應如何解決?
每個職員有多名家庭成員,會重複記錄職員資訊,(例如有張三有妻(張妻)兒(張兒)兩個家庭成員)
職員關系模式存儲如下:
01 張三 研發員 分公司1 tel1 張妻 夫妻
02 張三 研發員 分公司1 tel2 張兒 父子
職員号、職員姓名、崗位、公司編号、電話 這幾個屬性要多次存儲,加入一個職員有20個家庭成員,則需要重複存儲19次,造成資料備援
**解決辦法:**
對職員關系表拆分成兩個表
職員表1(職員号、職員姓名、崗位、公司編号、電話)
職員表2(職員号、家庭成員姓名、關系)
這樣便解決了資料備援問題,職員表隻需要存儲一次職員資訊
========================================================================================================================================
某房産公司,欲開發一個房産資訊管理系統,其主要功能描述如下:
1.公司銷售的房産,分為住宅和較高價的電梯大廈兩類。針對房産,系統存儲房産證明,位址,建造年份,建造面積,銷售報價,房産照片以及銷售狀态(在售,售出,停售)等資訊。對于較高價的電梯大廈,還需存儲是否有等資訊。
2. 公司雇傭了多名房産經紀,負責銷售房産,系統中需要存儲房産經紀的基本資訊,包括:姓名,家庭住址,聯系電話,房産的起止時間等等。一套房産同一時間僅由一名房産經紀負責銷售,系統中記錄房産經紀負責房産的起始時間和終止時間。
3.系統使用者包括房産經紀和系統管理者,使用者需經過系統身份驗證之後,才能登入系統。房産經紀登入系統之後,可以錄入負責銷售的房産資訊。但需要經過系統管理者的審批授權。
4.系統管理者可以從系統中導出所有房産的資訊清單,系統管理者定期将資訊和銷售的房産,進行歸納,若公司确定不再銷售某套房産,系統管理者将房産資訊從系統中删除。
現采用面向對象方法開發該系統得到如圖3-1所示的圖例和3- 2所示的圖。
問題:3.1 (7分)
(1)根據證明中描述,分别給圖3-1中A1到A2所對應的名稱以及U1到U3所對應的用例名稱。
(2)根據證明中描述,分别給圖3-1中(a)和(b)用例之間的關系。
第一次做這種軟體系統設計題
A1:房産經紀
A2:系統管理者
U1:審批授權
U2:錄入已經售出的房産資訊 //這個空看答案是填寫的:**缺失** (意思就是不用寫呗)
U3:删除已售出的房産資訊
問題:3.2 (6分)
根據證明中描述,分别給圖3-2中C1~C6所對應的類名稱。
沒圖我做啥??
問題:3.3 (2分)
圖3-2中AgentList是一個英文名稱 ,用來進一步闡述C1和C6之間的關系 ,根據(2分)
圖3-2中AgentList是一個英文名稱 ,用來進一步闡述C1和C6之間的關系 ,根據注明中的描述,繪出AgentList的主要屬性。注明中的描述,繪出AgentList的主要屬性。
沒圖我做啥??
========================================================================================================================================
希爾排序算法又稱最小增量排序算法,其基本思想是:
步驟1 :構造一個步長序列delta1、delta2…、deltak ,其中delta1=n/2 ,後面的每個delta是前一個的1/2 , deltak=1;
步驟2 :根據步長序列、進行k趟排序;
步驟3 :對第i趟排序,根據對應的步長delta,将等步長位置元素分組,對同一組内元素在原位置上進行直接插入排序。
【C代碼】
下面是算法的C語言實作。
(1)常量和變量說明
data:待排序數組data,長度為n,待排序資料記錄在data[0]、data[1]、…、data[n-1]中。
n:數組a中的元素個數。
delta:步長數組。
(2)C程式
#include <sdivio.h>
void shellsort(int data[ ], int n){
int *delta,k,i,t,dk,j;
k=n;
delta=(int *)malloc(sizeof(int)*(n/2)); //開辟空間delta,用來存放每次的步長
if(i=0) //if中的循環就是為了把每一趟排序的步長求出來
do{
( 1 ) ;
delta[i++]=k;
}while ( 2 ) ; //結束條件
i=0;
while((dk=delta[i])>0){ //dk表示步長
for(k=delta[i];k<n;++k) //每一趟
if( ( 3 ) ) { // data[k]<data[k-dk]
t=data[k];
for(j=k-dk;j>=0&&t<data[j];j-=dk){
data[j+dk]=data[j];
}/*for*/
( 4 ) ; //data[j+dk]=t;
}/*if*/
++i;
}/*while*/
}
問題:4.1 (8分)
根據說明和c代碼,填充c代碼中的空(1) ~ (4)。
填充代碼題也太難了
(1) k=k/2 //這裡k是每一步的步長
(2) k!=1 //步長為1的時候就是排序的最後一趟 答案給的是 k>1 和答案沒差別
(3) data[k]<data[k-dt] //每隔dt個元素比較大小 ,升序排序
(4) data[j+dk]=t //這是看的注釋 難道看注釋也是一個考點???
問題:4.2 (4分)
根據說明和c代碼,該算法的時間複雜度(5)O(n2) (小于、等于或大于)。該算法是否穩定(6) ( 是或否)。
由于希爾排序時間複雜度o(nlogn) < o(n^2)
希爾排序是一個不穩定的排序算法
問題:4.3 (3分)
對數組(15、9、7、8、20、-1、 4)用希爾排序方法進行排序,經過1趟排後得到的數組為(7)