Mermaid Modelling Syntax === ## 1. FLow Chart * Euclide GCD ```mermaid graph LR st((Start)) --> iput[/"Read a, b"/] iput --> op1["int tmp"] op1 --> cond1{"b != 0"} cond1 --> |True| op2["tmp <- b <br> b <- a % b <br> a <- tmp"] op2 --> cond1 cond1 --> |False| op3["result <- a"] op3 --> oput[/"print result"/]; oput --> e e((End)) ``` * Quadratic Equation ```mermaid graph LR; st((Start)) --> iput[/"Read a, b, c"/] e((end)) iput --> cond1{a = 0} cond1 --> |True| cond2{b = 0} cond1 --> |False| op[Del = b*b + 4*a*c] cond2 --> |True| cond3{c = 0} cond2 --> |False| oput1[/"Phương trình có nghiệm: <br> x = -c/b"/] cond3 --> |True| oput2[/"Phương trình có vô số nghiệm"/] cond3 --> |False| oput3[/"Phương trình vô nghiệm"/] op --> cond5{Del > 0} cond5 --> |True| oput4[/"Phương trình có 2 nghiệm phân biệt: <br> x1 = (b*b - sqrt(Del)) / (2*a) <br> x2 = (b*b + sqrt(Del)) / (2*a)"/] cond5 --> |False| cond6{Del = 0} cond6 --> |True| oput5[/"Phương trình có nghiệm kép:<br> x = -b/(2*a)"/] cond6 --> |False| oput6[/"Phương trình vô nghiệm"/] oput1 --> e oput2 --> e oput3 --> e oput4 --> e oput5 --> e oput6 --> e ``` ## 2. Class Diagram ```mermaid classDiagram Customer <|-- PremiumCustomer Customer <|-- RegularCustomer Customer : custName: String Customer : custID: String Customer : custPhNum: int Customer: purchaseItem() Customer: requestBill() Customer: enterCustDetail() PremiumCustomer : premiumDiscount: int PremiumCustomer: enterCustDetail() RegularCustomer : regularDiscount: int RegularCustomer: enterCustDetail() Customer "1" *-- "1"Address: Has Address : street: String Address : city: String Address : state: String Address : zipcode: int Address: enterStreet() Address: enterCity() Address: enterState() Address: enterZipcode() Customer"1" -- "*"Product: Is Sold To Product : productID: int Product : productName: String Product : productPrice: Float Product: getPrice() Product: setPrice() Product -- PurchaseDetail Customer -- PurchaseDetail PurchaseDetail : custID: int PurchaseDetail : quaranty: int PurchaseDetail : purchaseDate: Date PurchaseDetail : productID: int PurchaseDetail: calculateTotalAmt() PurchaseDetail: generatePurchaseList() Bill --o Customer: Belongs to Bill : payableAmt Bill: calculatePayableAmt() Bill: generateBill() Bill ..>Discount Discount : discountType Discount : discountValue Discount: SelectDiscount() Discount..>PurchaseDetail Bill..>PurchaseDetail Bill..|> PaymentCounter: Accepts class PaymentCounter{ << interface >> calculatePayableAmt() generateBill() } ``` ## 3. Sequence Diagram ```mermaid sequenceDiagram participant Customer participant Search Page participant Search Results Page participant Catalog participant Search Results activate Customer Customer ->> Search Page: 1: onSearch(author) activate Search Page Search Page ->> Search Page: 1.1: validateSearchCriteria() alt author entered Search Page ->> Catalog: 1.2: searchByAuthor(author) activate Catalog Catalog ->> Search Results: 1.2.1: create() activate Search Results Search Results ->> Search Results Page: 1.2.1.1: display() activate Search Results Page deactivate Search Results Page deactivate Search Results else author not entered deactivate Catalog Search Page ->> Search Page: 1.3: displayErrorMessage() end deactivate Search Page deactivate Customer ``` ## 4. State Chart Diagram ### ATM State Machine Diagram ```mermaid stateDiagram s1: PrintReceipt s2: DispenseMoney s3: AccountActions s4: Idle s2 --> s1 s3 --> s2 s3 --> s1 [*] --> s4 s1 --> [*] s2 --> [*] s4 --> VerifyAccount state VerifyAccount{ state "VerifyCard" as s5 s5:cardSubmitted / s5:readCard / s5:returnCard / s6: CardValid s7: PinCorrect state "VerifyPin" as s8 s8 : pinSubmitted / s8 : checkPin / s8 : returnCard / s9: PinInCorrect s5 --> CardValid CardValid --> s6: cardValid s6 --> s8 s8 --> PinCorrect PinCorrect --> s7: [PinValid] PinCorrect --> s9:[else] s9 --> s8: [tries < maxtries] / tries++ } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up