未分类题

某省针对每年举行的足球联赛,拟开发一套信息管理系统,以方便管理球队、球员、主教练、主裁判、比赛等信息。
【需求分析】
(1)系统需要维护球队、球员、主教练、主裁判、比赛等信息。
球队信息主要包括:球队编号、名称、成立时间、人数、主场地址、球队主教练。
球员信息主要包括:姓名、身份证号、出生日期、身高、家庭住址。
主教练信息主要包括:姓名、身份证号、出生日期、资格证书号、级别。
主裁判信息主要包括:姓名、身份证号、出生日期、资格证书号、获取证书时间、级别。
(2)每支球队有一名主教练和若干名球员。一名主教练只能受聘于一支球队,一名球员只能效力于一支球队。每支球队都有自己的唯一主场场地,且场地不能共用。
(3)足球联赛采用主客场循环制,一周进行一轮比赛,一轮的所有比赛同时进行。
(4)一场比赛有两支球队参加,一支球队作为主队身份、另一支作为客队身份参与比赛。一场比赛只能有一名主裁判,每场比赛有唯一的比赛编码,每场比赛都记录比分和日期。
【概念结构设计】
根据需求分析阶段的信息,设计的实体联系图(不完整)如图2-1所示。
中级软件设计师,历年真题,2015年上半年(下午)《软件设计师》真题
【逻辑结构设计】
根据概念结构设计阶段完成的实体联系图,得出如下关系模式(不完整):
球队(球队编号,名称,成立时间,人数,主场地址)
球员(姓名,身份证号,出生日期,身高,家庭住址,(1))
主教练(姓名,身份证号,出生日期,资格证书号,级别,(2))
主裁判(姓名,身份证号,出生日期,资格证书号,获取证书时间,级别)
比赛(比赛编码,主队编号,客队编号,主裁判身份证号,比分,日期)
【问题1】(6分)
补充图2-1中的联系和联系的类型。
图2-1中的联系”比赛“应具有的属性是哪些?
【问题2】(4分)
根据图2-1,将逻辑结构设计阶段生成的关系模式中的空(1)~(2)补充完整。
【问题3】(5分)
现在系统要增加赞助商信息,赞助商信息主要包括赞助商名称和赞助商编号。
赞助商可以赞助某支球队,一支球队只能有一个赞助商,但赞助商可以赞助多支球队。赞助商也可以单独赞助某些球员,一名球员可以为多个赞助商代言。请根据该要求,对图2-1进行修改,画出修改后的实体间联系和联系的类型。

【参考答案】

【问题1】

比赛联系应具有的属性包括:比赛编码,比分,日期。
【问题2】
(1)球队编......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

未分类题
某图书管理系统中管理着两种类型的文献:图书和论文。现在要求统计所有馆藏文献的总页码(假设图书馆中有一本540页的图书和两篇各25页的论文,那么馆藏文献的总页码就是590页)。采用Visitor(访问者)模式实现该要求,得到如图5-1所示的类图。图5-1 Visitor模式类图【C++代码】class LibraryVisitor;class LibraryItemInterface{public:(1);};class Article:public LibraryItemInterface{private:string?m_title; 论文名string?m_author; 论文作者int m_start_page;int m_end_page;public:Article(string p_author,string p_title,int p_start_page,int p_end_page);int getNumberOfPages( );void accept(Library Visitor*visitor);};class Book:public LibraryItemInterface{private:string?m_title; 书名string?m_author; 作者int m_pages; 页数public:Book(string p_author,string p_title,int p_pages);int getNumberOfPages( );void accept(LibraryVisitor*visitor);};class LibraryVisitor{public:(2);(3);virtual void printSum( )=0;};class LibrarySumPrintVisitor:public LibraryVisitor{ 打印总页数private:int sum;public:LibrarySumPrintVisitor( );void visit(Book*p_book);void visit(Article*p_article);void printSum( );}; visitor.cppint Article::getNumberOfPages( ){retum m_end_page-m_start_page;}void Article::accept(LibraryVisitor*visitor){(4);}Book::Book(string p_author,string p_title,int p_pages){m_title=p_title;m_author=p_author;m_pages=p_pages;}int Book::getNumberOfPages( ){return m_pages;}void Book::accept(LibraryVisitor*visitor){(5);} 其余代码省略