UML第五次作業

2022-08-10 18:06:12 字數 3801 閱讀 3939

1.簡單狀態:使用

([*])開始和結束狀態圖;使用

-->新增箭頭。

@startuml

[*] --> state1

state1 --> [*]

state1 : this is a string

state1 : this is another string

state1 -> state2

state2 --> [*]

@enduml

2.合成狀態:乙個狀態也可能是合成的,必須使用關鍵字

state和花括號來定義合成狀態。

@startuml

scale 350 width

[*] --> notshooting

state notshooting

state configuring

}@enduml

使用->定義水平箭頭,也可以使用下列格式強制設定箭頭方向:

@startuml

[*] -up-> first

first -right-> second

second --> third

third -left-> last

@enduml

6.注釋:可以用

note left of, note right of, note top of, note bottom of 關鍵字來定義注釋;還可以定義多行注釋

;以及浮動注釋。

顯示引數:

用skinparam

改變字型和顏色。

可以在如下場景中使用:

還可以為狀態的構造型別指定特殊的字型和顏色。

1.以《電梯控制》系統、《銀行賬戶》系統為例,分析系統中的狀態及狀態轉換。

電梯狀態機圖:

電梯存在待載、上公升、下降和樓間停4種基本狀態。電梯無人承載時停在某樓層

,處在待載狀態。當有人進人電梯

,並且當前樓層比目標樓層低

,則電梯上公升。如果當前樓層比目標樓層高

,則電梯下降。在上公升或下降狀態

,如果到了某個目標樓層

,電梯執行停止,進人樓間停狀態

,等待人的進出。如果所有人都在本層下完,電梯回到待載狀態。如果電梯中還有人,則判斷目標樓層是否比當前樓層高,如果高於當前樓層則上公升,如果低於當前樓層則下降。

銀行賬戶狀態機圖:

銀行賬戶存在空額有餘額和負債三種狀態。初建立的賬戶沒有存款,處在空額狀態。賬戶在空額狀態時,如果向其中存款,進人有餘額狀態,如果從賬戶取款,則進人負債狀態。賬戶在有餘額狀態時,如果向賬戶存款,餘額增加

,但仍然還在有餘額狀態。如果從賬戶取款,若取款額小於餘額,賬戶仍在有餘額狀態

;若取款額等於餘額

,則取款後賬戶回到空額狀態

;若取款額大於賬戶餘額,則取款後賬戶進人負債狀態。賬戶處於負債狀態時,如果取款,餘額減少,但仍然處在負債狀態。如果給賬戶存款,當存款額小於負債額,則賬戶仍然在負債狀態

;如果存款額等於負債額

,則存款後賬戶回到空額狀態

;如果存款額大於負債額,存款後賬戶進入有餘額狀態。

2.指令碼及狀態圖

電梯控制:

@startuml

[*] --> 待載

待載 -up-> 上公升

: 進入

[目標樓層

>

當前樓層

]/關門上行

上公升 -down-> 樓間停

: [進人/出人

]/停機開門

待載 -down-> 下降

: 進入

[目標樓層

<

當前樓層

]/關門下行

下降 -up-> 樓間停

: [進人/出人

]/停機開門

樓間停 -up-> 上公升

:[目標樓層

>

當前樓層

]/關門上行

樓間停 -down-> 下降

:[目標樓層

<

當前樓層

]/關門下行

樓間停 -left-> 待載

:[無人

]/關門

@enduml

銀行賬戶

@startuml

[*] --> 空額

空額 -down-> 有餘額

: 存款/餘額

=餘額+存款額

空額 -down-> 負債

: 取款

[取款額

<

最大限額

]/餘額=餘額

-存款額

有餘額 --> 有餘額

: 存款/餘額

=餘額+存款額

有餘額 --> 有餘額

: 取款

[取款額

<

餘額]/餘額=

餘額-取款額有餘額 -right-> 負債

: 取款

[取款額

>

餘額]/餘額=

餘額-取款額有餘額 -up-> 空額

: 取款

[取款額=餘額

]/餘額=餘額

-取款額

負債 --> 負債

: 取款

[取款額

<

最大限額

]/餘額=餘額

-存款額

負債 --> 負債

: 存款

[存款額

<

負債額]/餘額=

餘額+存款額負債 -left-> 有餘額

: 存款

[存款額

>

負債額]/餘額=

餘額+存款額負債 -up-> 空額

: 存款

[存款額

=負債額

]/餘額=餘額

+存款額

空額 -up-> [*]

@enduml

第五次作業

一 問題及 include using namespace std class time void add a minute void add an hour void add seconds int n void add minutes int n void add hours int n voi...

第五次作業

當我們在討論多型性的時候,通常會用過載函式進行舉例,而這次發現的問題主要在過載運算子上,因此我希望通過對過載運算子的測試來得出乙個結論。我們想知道為什麼前置運算子和後置運算子會有區別,因此設計了乙個實驗來證明它 得到最終結果如預期那樣。通過這次作業,我能感受到前置和後置運算子的區別,通過x 和y x...

第五次作業

insert into student sno,sname,s sdept,sage values 201215128 陳冬 男 is 18 建表時規定學號唯一,而在建表時已經加入了該學號,所以不能有兩個相同學號。3.70 insert into student sno,sname,s sdept,...