依赖图:
代码:
@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
图片: