实验三.类图答案第一题:问题:软件学院打算开发一个学生选课系统。„新的系统允许学生利用局域网上的PC机来注册本学期的课程,并可以查看自己已学的所有课程的所有成绩。新的系统允许教师决定要教哪些课程,并通过管理员更新数据库,教师在学期末登记自己教授的课程的成绩。„学院已有课程目录(coursecatalog)数据库部分,课程目录数据库中保存了所有的课程信息新的学生注册系统将读取课程目录数据库中的课程信息,但不会修改数据库中的课程信息。管理员通过其它系统来维护课程信息†在每个学期初,学生可以获取这个学期所开设的所有课程的目录,在课程目录中包含每门课的详细信息,如professor(讲课教师,因为后面约定老师可以有教授、副教授和讲师3种类型),department,prerequisite等。†每个学生在一个学期,根据自己所在系的培养计划,必修课必须选,选修课自愿,但一学期不可超过8门课程,不少于3门课程。(第8周周二到周五可以退课,但必须保证本学期课程不少于3门,退课需交纳50/门的费用,由计费系统扣费,扣费成功后,该门课程从学生的选课计划中删除,否则,退课不成功)†每门课的学生人数最多为200人,最少为30人,如果选修课学生人数少于30人,该门课将被取消,必修课无最低人数限制。在每个学期,有一个选课期,在这个时间段内,学生可以改变他们的选课计划(Schedule),注册系统允许学生在这段时间内可以增加或删除所选课程,选课最后一天只能选课,不可退课,在学期结束的时候,学生可以通过系统查询成绩,由于学生成绩属于敏感信息,因此系统要有安全措施来防止非授权的存取。(学生查询成绩前,需要先评教)。†教师可以读取系统来获取他们所教的课程的信息,可以了解哪些学生选了他们的课,也可以登记该门课程的学生成绩。†教师分为讲师、副教授、教授。此系统涉及到得参与者有:①学生;②教师;③管理员;④课程目录数据库;⑤计费系统。此系统的类图如下:0..10..*0..*0..10..10..*student-----nameaddressIDagesex:std::string:std::string:int:int:char++++++++getteacher()addschedule()getcshedule()deleteschedule()getID()getname()getage()getsex():void:void:void:void:int:std::string:int:charteacher----nameIDkindsphone:std::string:int:std::string:int+++++getname()getID()getphone()selectcourse()givegoals():std::string:int:int:void:intcourse------CnameCIDCnumCteachedCgoalsCtime:std::string:int:int:std::string:int:intschedule-semester:int++++++++commit()selectcourse()changecourse()delete()submit()updata()save()pass():void:void:void:void:void:void:void:void第二题问题描述:使用信用卡可以在AMT机上进行取款,针对一次取款,建立类图、顺序图。系统的类图如下:0..10..10..10..1顾客---姓名账户密码:std::string:long:int+++取钱()存钱()清单():int:int:voidATM--机号单位:int:int++++取钱()存钱()处理账号()处理密码():int:int:int:int工作人员-ID:int++验证账户()验证密码():int:int第三题问题描述:针对下述问题,建立一个类图:有两种顾客,一种是常客,享受公司的一些优惠待遇;另一种是散户。系统的类图如下:0..10..1顾客--nameID:std::string:int++getname()getID():void:int散户--nameID:std::string:int++付钱()选货():int:void雇员--nameID:int:int++取货()收钱():void:void常户--nameID:std::string:int+++付钱()选货()优惠():int:void:void第四题根据下面的陈述画出类图1)学生包括本科生、研究生两种。2)研究生的一部分利用课余时间担任助教。3)教师包括助教、讲师和教授三种。4)一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。