我打算使用plantuml把以前用powerdesigner的图重新画出来

时序图

题目:
在某在线订房系统中,顾客输入房间套数、房间类型、入住时间、入住天数等信息,系统显示符合要求的房间号;顾客确定预订的房间,系统显示预付订金信息;顾客输入信用卡账号和密码,系统请求银行信用卡系统提供支付服务;银行信用卡系统验证用户信息并返回验证通过和支付成功消息;顾客请求系统打印预订单和收据,系统打印相关资料;预订结束。
注意:代码中的:一定要用英文的,要不然很多bug。
代码:

Title: 标题:顺序图 顾客 -> 订房系统:输入预定信息 订房系统 --> 顾客:显示符合要求的房间号 loop 房间套数>0 顾客 -> 订房系统:确定预定的房间 订房系统 --> 顾客:显示预付订金信息 end loop 密码错误 顾客 -> 订房系统:输入信用卡账号和密码 订房系统 -> 信用卡系统:提交信用卡账号和密码 信用卡系统 -> 信用卡系统:验证用户信息 信用卡系统 --> 订房系统: 返回验证通过和支付成功消息 订房系统 --> 顾客:显示验证通过和支付成功消息 end 顾客 -> 订房系统:提交打印预订单和收据要求的 订房系统 -> 订房系统:打印预订单和收据 订房系统 -> 顾客:显示预定结束

示例图:
image.png

流程图

题目:
数据库调度流程图
代码:

  1. @startuml
  2. (*) --> 管理系统的调用
  3. --> 权限验证
  4. if 是否有权限 then
  5. ->[true] 更新数据库
  6. else
  7. ->[false] 拒绝调用
  8. endif
  9. 拒绝调用-->(*)
  10. 更新数据库-->(*)
  11. @enduml

示例图:
flow-chart2.png

用例图

题目:
某企业为了方便员工用餐,为企业餐厅开发了一个订餐系统(COS:Cafeteria Ordering System),企业员工可通过企业内联网使用该系统。该系统功能描述如下:
(1) 企业的任何员工都可以查看菜单和今日特价;
(2) 系统的顾客是注册到系统的员工,可以在线订餐(以下操作均需先登录)、注册工资支付、修改订餐信息和删除订餐信息,在注册工资支付时需要通过工资系统进行身份验证;
(3) 餐厅员工是特殊的顾客,可以进行备餐(系统记录备餐信息)、生成付费请求和请求送餐,其中对于注册使用工资支付的顾客生成付费请求并发送给工资系统;
(4) 菜单管理员是餐厅员工的一种,可以管理菜单;
(5) 送餐员也是餐厅员工的一种,可以打印送餐说明、记录送餐信息(如送餐时间)以及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。
代码:

  1. @startuml
  2. left to right direction
  3. skinparam packageStyle rectangle
  4. skinparam usecase{
  5. BackgroundColor<<Main>> gold
  6. BorderColor<<Main>> YellowGreen
  7. ArrowColor blue
  8. }
  9. actor 送餐员
  10. actor 菜单管理员
  11. actor 餐厅员工
  12. actor 顾客
  13. actor 员工
  14. actor 工资系统
  15. :餐厅员工:<|-up-送餐员
  16. :餐厅员工:<|-up-菜单管理员
  17. :顾客:<|-up-餐厅员工
  18. :员工:<|-up-顾客
  19. rectangle COS{
  20. usecase 查看菜单 <<Main>>
  21. usecase 查看今日特价 <<Main>>
  22. usecase 注册 <<Main>>
  23. usecase 登录 <<Main>>
  24. usecase 在线订餐 <<Main>>
  25. usecase 注册工资支付 <<Main>>
  26. usecase 修改订餐信息 <<Main>>
  27. usecase 删除订餐信息 <<Main>>
  28. usecase 备餐 <<Main>>
  29. usecase 生成付费请求 <<Main>>
  30. usecase 请求送餐 <<Main>>
  31. usecase 管理菜单 <<Main>>
  32. usecase 打印送餐说明 <<Main>>
  33. usecase 记录送餐信息 <<Main>>
  34. usecase 记录收费 <<Main>>
  35. usecase 注册工资支付 <<Main>>
  36. usecase 生成付费请求 <<Main>>
  37. }
  38. :员工:-right->(查看菜单)
  39. :员工:-right->(查看今日特价)
  40. :员工:-right--->(注册)
  41. :顾客:-right->(在线订餐)
  42. :顾客:-right->(注册工资支付)
  43. :顾客:-right->(修改订餐信息)
  44. :顾客:-right->(删除订餐信息)
  45. :餐厅员工:-right->(备餐)
  46. :餐厅员工:-right->(生成付费请求)
  47. :餐厅员工:-right->(请求送餐)
  48. :菜单管理员:-right->(管理菜单)
  49. :送餐员:-right->(打印送餐说明)
  50. :送餐员:-right->(记录送餐信息)
  51. :送餐员:-right->(记录收费)
  52. :工资系统:-left->(注册工资支付)
  53. :工资系统:-left->(生成付费请求)
  54. (注册).>(登录) : extend
  55. (在线订餐).> (登录) : include
  56. (注册工资支付).> (登录) : include
  57. (修改订餐信息).> (登录) : include
  58. (删除订餐信息).> (登录) : include
  59. (备餐).> (登录) : include
  60. (生成付费请求).> (登录) : include
  61. (请求送餐).> (登录) : include
  62. (管理菜单).> (登录) : include
  63. (打印送餐说明).> (登录) : include
  64. (记录送餐信息).> (登录) : include
  65. (记录收费).> (登录) : include
  66. @enduml

示例图:
diagram1.png

状态图

题目:
某销售信息管理系统中销售部员工可以提交订单,刚提交的订单为“初始”状态;系统管理员可以处理订单,如果订单无误,则
修改订单为“备货”状态,否则将订单退还给提交订单的销售部员工修改,员工此时可以取消订单;仓库管理员备货完毕后可将订单状态改为“发货”状态;销售部员工在确认客户已经收到货物后,可将订单改为“关闭”状态。
代码:

  1. @startuml
  2. hide empty description
  3. [*] --> 初始状态:提交订单/Submit
  4. state 初始状态: do/Handle
  5. state 初始状态: do/Modify Status
  6. state 修改状态: do/Modify Status
  7. state 修改状态: exit/Cancel
  8. state 备货状态: do/Modify
  9. state 发货状态: do/Confirm
  10. state 发货状态: do/Close
  11. state 关闭状态
  12. 初始状态 --> 修改状态: 处理订单[订单有误]/Handle
  13. 初始状态 --> 备货状态: 处理订单[订单无误]/Handle & Modify Status
  14. 备货状态 --> 发货状态: 发货[已发货]/Modify Status
  15. 发货状态 --> 关闭状态: 确认订单[客户已收到货物]/Confirm & Close
  16. 修改状态 --> 初始状态: 修改完毕/Modify Order
  17. 修改状态 --> [*]:取消订单/Cancel
  18. 关闭状态 --> [*]
  19. @enduml

示例图:
statementDiagram.png

组件图

题目:
Help.h是一个头文件,被Calculate.cpp和Filter.cpp引用,而Calculate.cpp又引用了Filter.cpp。此外,Filter.cpp还引用了头文件FileReader.h,Display.cpp又依赖于Calculate.cpp的运算结果
代码:

  1. @startuml
  2. component Display.cpp
  3. component Calculate.cpp
  4. component Help.h
  5. component Filter.cpp
  6. component FileReader.h
  7. () interface_1
  8. Display.cpp -- interface_1
  9. interface_1 -- Calculate.cpp
  10. Calculate.cpp ..> Help.h
  11. Calculate.cpp ..> Filter.cpp
  12. Filter.cpp ..> Help.h
  13. Filter.cpp ..> FileReader.h
  14. @enduml

示例图:
component-diagram.png

类图

题目:
集合类的关系。
代码:

  1. @startuml
  2. interface Iterable{
  3. Iterator() : Iterator<T>
  4. forEach(Consumer<? super T> action) : void
  5. spliterator() : Spliterator<T>
  6. }
  7. interface Collection{
  8. add(Object o) : boolean
  9. addAll(Collection c): boolean
  10. clear() : void
  11. remove(Object o):boolean
  12. removeAll(Collection c):boolean
  13. contains(Object o): boolean
  14. contains(Collection c): boolean
  15. isEmpty() : boolean
  16. size() : int
  17. retainAll(Collection c):boolean
  18. toArray(): Object[]
  19. }
  20. interface List{
  21. get(int index): E
  22. set(int index,E element):E
  23. indexOf(Object o):int
  24. lastIndexOf(Object o):int
  25. sort(Comparator<? super E> c):void
  26. subList(int fromIndex,int toIndex):List<E>
  27. }
  28. interface Queue{
  29. offer(E e): boolean
  30. poll(): E
  31. element(): E
  32. peek(): E
  33. }
  34. interface Set
  35. interface Deque{
  36. offerLast(E e):boolean
  37. offerFirst(E e):boolean
  38. addLast(E e):void
  39. addFirst(E e):void
  40. removeFirst():E
  41. removeLast():E
  42. pollFirst():E
  43. pollLast():E
  44. getFirst():E
  45. getLast():E
  46. peekFirst():E
  47. peekLast():E
  48. pop():E
  49. push(E e):void
  50. }
  51. interface SortedSet{
  52. comparator():Comparator<? super E>
  53. subSet(E fromElement,E toElement):SorteddSet<E>
  54. headSet(E toElement):SortedSet<E>
  55. tailSet(E fromElement):SortedSet<E>
  56. first():E
  57. last():E
  58. }
  59. class ArrayList
  60. class LinkedList
  61. class Vector
  62. class Stack
  63. class ArrayDeque
  64. class PriorityQueue
  65. class HashSet
  66. class LinkedHashSet
  67. class TreeSet
  68. Iterable <|-- Collection
  69. Collection <|-- List
  70. Collection <|-- Queue
  71. Collection <|-- Set
  72. List <|.. ArrayList
  73. List <|.. LinkedList
  74. List <|.. Vector
  75. Vector <|-- Stack
  76. Queue <|-- Deque
  77. Deque <|.. LinkedList
  78. Deque <|.. ArrayDeque
  79. Queue <|.. PriorityQueue
  80. Set <|-- SortedSet
  81. SortedSet <|.. TreeSet
  82. Set <|.. HashSet
  83. Set <|.. LinkedHashSet
  84. @enduml

示例图:
class-diagram.png

思维导图

题目:
io流思维导图
代码:

  1. @startmindmap
  2. * I/O
  3. ** 字节流
  4. *** InputStream
  5. **** ByteArrayInputStream
  6. **** PipedInputStream
  7. **** FilterInputStream
  8. ***** BufferedInputStream
  9. ***** DataInputStream
  10. ***** PushbackInputStream
  11. **** FileInputStream
  12. **** ObjectInputStream
  13. *** OutputStream
  14. **** ByteArrayOutputStream
  15. **** PipedOutputStream
  16. **** FilterOutputStream
  17. ***** BufferedOutputStream
  18. ***** DataOutputStream
  19. ***** PrintStream
  20. **** FileOutputStream
  21. **** ObjectOutputStream
  22. ** 字符流
  23. *** Reader
  24. **** CharArrayReader
  25. **** PipedReader
  26. **** FilterReader
  27. ***** PushbackReader
  28. **** BufferedReader
  29. **** InputStreamReader
  30. ***** FileReader
  31. *** Writer
  32. **** CharArrayWriter
  33. **** PipedWriter
  34. **** FilterWriter
  35. **** BufferedWriter
  36. **** OutputStreamWriter
  37. ***** FileWriter
  38. **** PrintWriter
  39. @endmindmap

示例图:
startmindmap.png