用plantuml画图示例


依赖图:

代码:

@startuml

skinparam defaultFontName 微软雅黑
skinparam defaultFontSize 15
skinparam monochrome true
skinparam shadowing false

frame 二进制转十进制 {
(二转十进制) --> (二转P进制): 调用
}
frame 十进制转二进制 {
(十转二进制)
}
frame 功能2新增模块 {
(输出商品信息) --> (二转十进制): 调用
}
frame 功能6新增模块 {
(修改商品信息) --> (输出分隔符并读入数): 调用
(输出分隔符并读入数) --> (十转二进制): 调用
(修改商品信息) --> (二转十进制): 调用
}
frame 主模块 {
(功能1) --> (字符串比较): 调用
(功能2) --> (字符串比较): 调用
(功能2) --> (输出商品信息): 调用
(功能3) --> (功能4): 跳转
(功能6) --> (修改商品信息): 调用
(功能8)
(功能9)
}

@enduml

图片:

依赖图

流程图:

代码:

@startuml

skinparam defaultFontName 微软雅黑
skinparam defaultFontSize 15
skinparam monochrome true
skinparam shadowing false

:开始;
repeat
    :输出提示信息并等待用户输入/
    if (用户输入的数字在1-9之间?) then (是)
        if (用户输入的数字为1?) then (是)
            :提示并等待用户输入用户名/
            if (用户名不为空?) then (是)
                :提示并等待用户输入密码/
                :逐位比较用户名]
                if (用户名正确?) then (是)
                    :逐位比较密码]
                    if (密码正确?) then (是)
                        :(AUTH) <- 1]
                        :提示登录成功/
                    else (否)
                        :(AUTH) <- 0]
                        :提示登录失败/
                    endif
                else (否)
                    :(AUTH) <- 0]
                    :提示登录失败/
                endif
            else (否)
                :(AUTH) <- 0]
                :提示以顾客身份登录/
            endif
        (否) elseif (用户输入的数字为2?) then (是)
            :提示并等待用户输入商品名称/
            repeat
                :枚举每个商品]
                :逐位比较商品名称]
                if (商品名称相等?) then (是)
                    :记录商品地址到GOOD]
                    :提示找到商品/
                    break
                else (否)
                endif
            repeat while (还有商品?) is (是) not (否)
            if (没有商品名称相等?) then (是)
                :提示没有找到/
            else (否)
            endif
        (否) elseif (用户输入的数字为3?) then (是)
            if (GOOD不为空?) then (是)
                if (GOOD记录的商品剩余数量不为0?) then (是)
                    :剩余数量-1]
                    :将返回地址传入变量return]
                    :跳转到计算商品推荐度处]
                    :([return]) <- 0]
                else (否)
                    :提示商品剩余数量为0/
                endif
            else (否)
                :提示还没选择商品/
            endif
        (否) elseif (用户输入的数字为4?) then (是)
            :依次计算商品的推荐度]
            if (变量return不等于0?) then (是)
                :返回到变量return指向的地址]
            else (否)
            endif
        (否) elseif (用户输入的数字为8?) then (是)
            :输出(CS)/
        else (否)
        endif
    else (否)
        :提示用户输错操作/
    endif
    repeat while (用户输入的数是不是9?) is (不是) not (是)
:结束;

@enduml

图片:

流程图