吴涛 TAO WU

第二次随堂练习

🎒 本科生课程 📚 面向对象程序设计(OOP)

截止时间 (Deadline)

2026/09/14 23:59:59

Exercise Requirements

绘图工具:

下载链接:Drawio 31.4.5

提交格式:

学号_姓名_第2次随堂练习/
  |- 随堂练习一_图书.drawio
  |- 随堂练习二_关系图.drawio
  |- 随堂练习三_校园选课系统.drawio

例:2025xxxx_张三_第2次随堂练习/
    |- 随堂练习一_图书.drawio
    |- 随堂练习二_关系图.drawio
    |- 随堂练习三_校园选课系统.drawio

随堂练习一

设计图书(Book)类的UML图,需包含以下内容:

  • 属性:
    • ISBN号(唯一标识)、书名、作者、出版年份、库存量
  • 方法:
    • 借阅书籍(减少库存量,返回是否成功)
    • 归还图书(增加库存量)
    • 获取图书详情(返回所有属性的字符串)

要求标注所有属性与方法的可见性(public/private)

随堂练习二

设计下列关系的UML图,需包含以下内容:

设计“学生(Student)”与“课程(Course)”的关联类图,需包满足以下要求:

  • 学生属性:学号、姓名、年级
  • 学生方法:选课、退课
  • 课程属性:课程号、课程名、学分
  • 课程方法:添加学生、移除学生
  • 关联关系:
    • 一个学生可以选择多门课(最大9门)
    • 一门课程可被多个学生选择(无上限)

设计“形状(Shape)”及其特殊类的类图,结构如下:

  • 一般类:Shape
    • 属性:颜色
    • 抽象方法:计算面积、计算周长
  • 特殊类1:Circle
    • 新增属性:半径
    • 重写父类的面积和周长计算方法
  • 特殊类2:Rectangle
    • 新增属性:长、宽
    • 重写父类的面积和周长计算方法

设计以下两个场景的类图,明确整体与部分的关系:

  • 场景 1:“电脑(Computer)” 与 “CPU”“内存(Memory)” “硬盘(HardDisk)”
    • 关系:电脑由 CPU、内存、硬盘组成,部件无法脱离电脑独立存在(组合关系)
  • 场景 2:“班级(Class)” 与 “学生(Student)”
    • 关系:班级包含学生,学生可脱离班级存在(聚合关系)

随堂练习三

设计校园选课系统的UML图,需完成以下基本任务:

基础任务:

  • 学生具有学号、姓名、年级,可以选课和退课。
  • 课程具有课程号、课程名和学分,可以添加或移除学生。
  • 一个学生最多选择9门课程;一门课程可被任意数量学生选择。
  • 每次选课需要记录选课时间、成绩和状态。
  • 教师可以讲授多门课程,一门课程在一个学期由一位教师负责。
  • 必修课和选修课都属于课程,但学分规则可能不同。