首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
阅读下列说明和数据流图,回答问题1-问题3。 【说明】 某医院收费系统的主要功能是收取病人门诊的各项费用。系统的收费功能分为3个方面:病历收费、挂号收费和根据处方单内容收取检查或药物费用。 ...
查看本题答案
包含此试题的试卷
中级软件设计师《问答集》真题及答案
点击查看
你可能感兴趣的试题
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内[说明]下面给出的是某房产管理系统的一套分
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
试题二 阅读以下关于结构化软件系统建模的叙述在答题纸上回答问题1至问题3某公司拟开发一个商
试题二 阅读以下关于结构化软件系统建模的叙述在答题纸上回答问题1至问题3某公司拟开发一个商
在数据库设计的需求分析阶段应当形成1这些文档可以作为2阶段的设计依据空白1处应选择
程序文档、数据字典和数据流图
需求说明文档、程序文档和数据流图
需求说明文档、数据字典和数据流图
需求说明文档、数据字典和程序文档
试题二 阅读以下关于结构化软件系统建模的叙述在答题纸上回答问题1至问题3某公司拟开发一个商
【问题1】使用【说明】中给出的词汇将数据流图1-1中1~4处的数据流补充完整
阅读以下关于结构化软件系统建模的叙述在答题纸上回答问题1至问题3 某公司拟开发一个商业情报
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内[说明]下面给出的是某房产管理系统的一套分
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内[说明]下面给出的是某房产管理系统的一套分
阅读下列说明及数据流图回答问题1问题2和问题3 【说明】某学校建立了一个网上作业提交
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
阅读下列说明和数据流图回答问题1至问题3[说明]考务处理系统具有如下功能1对考生送来的报名单进行检查
阅读下列说明及数据流图回答问题1问题2和问题3 【说明】某学校建立了一个网上作业提交
阅读下列说明和图回答问题1至问题3 【说明】某汽车数字仪表板将完成下述功能 1通过模/数转换实现
阅读下列说明和数据流图回答问题1至问题3[说明]考务处理系统具有如下功能1对考生送来的报名单进行检查
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
热门试题
更多
试题1~试题4是必答题阅读以下某建账软件的技术说明和数据流图根据要求回答问题1~问题6 [说明] 某商业银行已有一套基于客户机/服务器C/S模式的储蓄系统X和一套建账软件Y建账软件Y主要用于将储蓄所手工处理的原始数据转换为系统X所需的数据格式该建账软件具有以下功能 1分户账录入手工办理业务时建立的每个分户账数据均由初录员和复录员分别录入以确保数据的正确性 2初录/复录比对将初录员和复录员录入的数据进行一一比较并标记两套数据是否一致 3数据确认当上述两套数据完全一致后将其中任一套作为最终进入系统X的原始数据 4汇总核对和打印对经过确认的数据进行汇总并和会计账目中的相关数据进行核对以确保数据的整体正确性并打印输出经过确认的数据为以后核查可能的错误提供依据该建账软件需要打印的分户账清单样式如表3-8所示 表3-8分户账清单样式表 储蓄所 账号 开户日 户名 其他分户账数据 储蓄所A 6436135720082010999 2008-08-15 小郭 储蓄所A合计 共XXXX户总余额YYYYYYY.YY元 储蓄所B 8436135720082009888 2008-08-25 小谢 储蓄所B合计 共XXXX户总余额YYYYYYY.YY元 储蓄所N 储蓄所N合计 共XXXX户总余额YYYYYYY.YY元 5数据转换将经过确认的数据转换为储蓄系统X需要的中间格式数据 6数据清除为加快初录和复录的处理速度在数据确认之后可以有选择地清除初录员和复录员录入的数据 该软件的数据流图如图3-17~图3-19所示图中部分数据流数据文件的格式如下 初录分户账=储蓄所号+账号+户名+开户日+开户金额+当前余额+性质 复录分户账=储蓄所号+账号+户名+开户日+开户金额+当前余额+性质 会计账目=储蓄所号+总户数+总余额操作结果=初录操作结果+比对操作结果+复录操作结果 [问题3] 请使用[说明]中数据字典条目定义形式将以下1和2空缺处的内容填写完整初录数据= 1复录数据=2
UPUnifiedProcess每个阶段结束时都会产生一些主要的工作成果在初启阶段最重要的工作成果是
[问题2]如果将关系模式R分解为 R1A#B#E R2B#CD 指出关系模式R2的键并说明该关系模式最高满足第几范式在1NF~BCNF之内
试题1~试题4是必答题阅读以下某建账软件的技术说明和数据流图根据要求回答问题1~问题6 [说明] 某商业银行已有一套基于客户机/服务器C/S模式的储蓄系统X和一套建账软件Y建账软件Y主要用于将储蓄所手工处理的原始数据转换为系统X所需的数据格式该建账软件具有以下功能 1分户账录入手工办理业务时建立的每个分户账数据均由初录员和复录员分别录入以确保数据的正确性 2初录/复录比对将初录员和复录员录入的数据进行一一比较并标记两套数据是否一致 3数据确认当上述两套数据完全一致后将其中任一套作为最终进入系统X的原始数据 4汇总核对和打印对经过确认的数据进行汇总并和会计账目中的相关数据进行核对以确保数据的整体正确性并打印输出经过确认的数据为以后核查可能的错误提供依据该建账软件需要打印的分户账清单样式如表3-8所示 表3-8分户账清单样式表 储蓄所 账号 开户日 户名 其他分户账数据 储蓄所A 6436135720082010999 2008-08-15 小郭 储蓄所A合计 共XXXX户总余额YYYYYYY.YY元 储蓄所B 8436135720082009888 2008-08-25 小谢 储蓄所B合计 共XXXX户总余额YYYYYYY.YY元 储蓄所N 储蓄所N合计 共XXXX户总余额YYYYYYY.YY元 5数据转换将经过确认的数据转换为储蓄系统X需要的中间格式数据 6数据清除为加快初录和复录的处理速度在数据确认之后可以有选择地清除初录员和复录员录入的数据 该软件的数据流图如图3-17~图3-19所示图中部分数据流数据文件的格式如下 初录分户账=储蓄所号+账号+户名+开户日+开户金额+当前余额+性质 复录分户账=储蓄所号+账号+户名+开户日+开户金额+当前余额+性质 会计账目=储蓄所号+总户数+总余额操作结果=初录操作结果+比对操作结果+复录操作结果 [问题5]加工1录入比对处理除能够检查出初录数据和复录数据不一致之外还应检测的错误有3
某指令流水线由5段组成各段所需要的时间如图3-1所示连续输入10条指令时的吞吐率为
阅读下列算法说明和流程图根据要求回答问题1~问题3 [说明] 某机器上需要处理n个作业job1job2jobn其中 1每个作业jobi1≤i≤n的编号为ijobi有一个收益值P[i]和最后期限值d[i] 2机器在一个时刻只能处理一个作业而且每个作业需要一个单位时间进行处理一旦作业开始就不可中断每个作业的最后期限值为单位时间的正整数倍 3job1~jobn的收益值呈非递增顺序排列即p[1]≥p[2]≥≥p[n] 4如果作业jobi在其期限之内完成则获得收益p[i]如果在其期限之后完成则没有收益 为获得较高的收益采用贪心策略求解在期限之内完成的作业序列图3-25是基于贪心策略求解该问题的流程图 1整型数组J[]有n个存储单元变量k表示在期限之内完成的作业数J[1..k]存储所有能够在期限内完成的作业编号数组J[1..k里的作业按其最后期限非递减排序即d[J[1]]≤≤d[J[k]] 2为了便于在数组J中加入作业增加一个虚拟作业job0并令d[0]=0J[0]=0 3算法大致思想是先将作业job1的编号1放入J[1]然后依次对每个作业jobi2≤i≤n进行判定看其能否插入到数组J中若能则将其编号插入到数组J的适当位置并保证J中作业按其最后期限非递减排列否则不插入 jobi能插入数组J的充要条件是jobi和数组J中已有作业均能在其期限之内完成 4流程图中的主要变量说明如下i循环控制变量表示作业的编号 k表示在期限内完成的作业数 r若jobi能插入数组J则其在数组J中的位置为r+1 q循环控制变量用于移动数组J中的元素 [问题2] 假设有6个作业job1job2job6 完成作业的收益数组p=p[1]p[2]p[3]p[4]p[5]p[6]=908050302010 每个作业的处理期限数组d=d[1]d[2]d[3]d[4]d[5]d[6]=121343 请应用试题中描述的贪心策略算法给出在期限之内处理的作业编号序列4 按作业处理的顺序给出得到的总收益为5
[说明] 已知某企业的采购审批是分级进行的即根据采购金额的不同由不同层次的主管人员来审批主任可以审批5万元以下不包括5万元的采购单副董事长可以审批5万元至10万元不包括10万元的采购单董事长可以审批10万元至50万元不包括50万元的采购单50万元及以上的采购单就需要开会讨论决定 采用责任链设计模式ChainofResponsibility对上述过程进行设计后得到的类图如图3-28所示 [Java代码]
在C++中使用静态成员解决同一个类的不同对象之间的数据共享问题以下关于一个类的静态成员的叙述中说法错误的是
阅读下列说明根据要求回答问题1~问题3 [说明] 某地区举行篮球比赛需要开发一个比赛信息管理系统来记录比赛的相关信息[需求分析结果] 1.登记参赛球队的信息记录球队的名称代表地区成立时间等信息系统记录球队的每个队员的姓名年龄身高体重等信息每个球队有一个教练负责管理球队一个教练仅负责一个球队系统记录教练的姓名年龄等信息 2.安排球队的训练信息比赛组织者为球队提供了若干个场地供球队进行适应性训练系统记录现有的场地信息包括场地名称场地规模位置等信息系统可为每个球队安排不同的训练场地如表3-9所示系统记录训练场地安排的信息 表3-9训练安排表 球队名称 场地名称 训练时间 解放军 一号球场 2008-06-091400-1800 解放军 一号球场 2008-06-120900-1200 解放军 二号球场 2008-06-111400-1800 山西 一号球场 2008-06-100900-1200 3.安排比赛该赛事聘请有专职裁判每场比赛只安排一个裁判系统记录裁判的姓名年龄级别等信息系统按照一定的规则首先分组然后根据球队场地和裁判情况安排比赛每场比赛的对阵双方分别称为甲队和乙队记录参赛球队比赛时间比分场地名称等信息如表3-10所示 表3-10比赛安排表 A组 甲队乙队 场地名称 比赛时间 裁判 比分 解放军北京 一号球场 2008-06-171500 李大明 天津山西 一号球场 2008-06-171900 胡学梅 B组 甲队乙队 场地名称 比赛时间 裁判 比分 上海安徽 二号球场 2008-06-171500 丁鸿平 山东辽宁 二号球场 2008-06-171900 郭爱琪 4.所有球员教练和裁判可能出现重名情况[概念模型设计] 根据需求阶段收集的信息设计的实体联系图和关系模式不完整如下1.实体联系图图3-20 2.关系模式 教练教练编号姓名年龄队员队员编号姓名年龄身高体重a 球队球队名称代表地区成立时间b 场地场地名称场地规模位置训练记录c 裁判裁判编号姓名年龄级别比赛记录d [问题1] 根据问题描述补充4个联系完善图3-20的实体联系图
阅读以下技术说明根据要求回答问题1~问题4 [说明]某汽车停车场欲建立一个信息系统已经调查到的需求如下 1.在停车场的入口和出口分别安装一个自动栏杆一台停车卡打印机一台读卡器和一个车辆通过传感器等其示意图见如图3-21所示 2.当汽车到达入口时驾驶员按下停车卡打印机的按钮获取停车卡当驾驶员拿走停车卡后系统命令栏杆自动抬起汽车通过入口后入口处的传感器通知系统发出命令栏杆自动放下 3.在停车场内分布着若干个付款机器驾驶员将在入口处获取的停车卡插入付款机器并缴纳停车费付清停车费之后将获得一张出场卡用于离开停车场 4.当汽车到达出口时驾驶员将出场卡插入出口处的读卡器如果这张卡是有效的系统命令栏杆自动抬起汽车通过出口后出口传感器通知系统发出命令栏杆自动放下若这张卡是无效的系统不发出栏杆抬起命令而发出告警信号 5.系统自动记录停车场内空闲的停车位的数量若停车场当前没有车位系统将在入口处显示车位已满信息这时停车卡打印机将不再出卡只允许场内汽车出场 根据上述描述采用面向对象方法对其进行分析与设计得到如表3-11所示的类/用例/状态列表如图3-22所示的用例图如图3-23所示的初始类图以及如图3-24所示的描述入口自动栏杆行为的UML状态图 表3-11类/用例/状态列表 用例名 说明 类名 说明 状态名 说明 Carentry 汽车进入停车场 CentralComputer 停车场信息系统 Idle 空闲状态汽车可以进入停车场 Carexit 汽车离开停车场 PaymentMachine 付款机器 Disable 没有车位 ReportStatistics 记录停车场的相关信息 CarPark 停车场保存车位信息 AwaitEntry 等待汽车进入 Barrier 自动护栏 AwaitTicketTake 等待打印停车卡 Carentrywhenfull 没有车位时汽车请求进入停车场 EntryBarrier 入口的护栏 AwaitEnable 等待停车场内有空闲车位 ExitBarrier 出口的护栏 [问题2] 根据说明中的描述使用表3-11给出的类的名称给出图3-23中的A~D所对应的类
在面向对象软件开发过程中采用设计模式
[说明]某旅馆的电话服务如下可以拨分机号和外线号码分机号是从7201至7299外线号码先拨9然后是市话号码或长话号码长话号码是以区号和市话号码组成区号是从100到300中任意的数字串市话号码是以局号和分局号组成局号可以是455466888552中任意一个号码分局号是任意长度为4的数字串要求写出在数据字典中电话号码的数据条目的定义即组成
[问题4]用SQL语言写出操作把数学系全体学生的成绩置零
已知一个线性表382574635248假定采用散列函数hkey=key%7计算散列地址并散列存储在散列表A[06]中若采用线性探测法解决冲突则在该散列表上进行等概率成功查找的平均查找长度为
某WindowsXP计算机安装无线网卡后用于添加无线网络的“无线网络属性‘关联’”选项卡配置界面如图3-2所示若“网络验证A”项的值选择为“开放式”则“数据加密D”项可供选择的值有“已禁用”和“”
[说明]1对给定的字符集合及相应的权值采用哈夫曼算法构造最优二叉树并用结构数组存储最优二叉树例如给定字符集合{abcd及其权值2745可构造如图3-26所示的最优二叉树以及相应的结构数组Ht如表3-12所示其中数组元素Ht[0]不用 表3-12结构数组Ht 数组下标 ch weight parent lchild rchild 1 a 2 5 0 0 2 b 7 7 0 0 3 c 4 5 0 0 4 d 5 6 0 0 5 6 6 1 3 6 18 0 2 6 7 结构数组Ht的类型定义如下2用0或1标识最优二叉树中分支的规则是从一个结点进入其左右孩子结点就用0或1标识该分支示例见图3-263若用上述规则标识最优二叉树的每条分支后从根结点开始到叶子结点为止按经过分支的次序将相应标识依次排列可得到由01组成的一个序列称此序列为该叶子结点的前缀编码例如图3-26所示的叶子结点abcd的前缀编码分别是110011110[函数说明1]函数voidLeafCodeintrootintn的功能是采用非递归方法遍历最优二叉树的全部叶子结点为所有的叶子结点构造前缀编码其中形参root为最优二叉树的根结点下标形参n为叶子结点个数在函数voidLeafCodeintrootintn构造过程中将Ht[p].weight域用做被遍历结点的遍历状态标志[函数4.1][函数说明2]函数voidDecodechar作图buffintroot的功能是将前缀编码序列翻译成叶子结点的字符序列并输出其中形参root为最优二叉树的根结点下标形参buff指向前缀编码序列[函数4.2]
基于构件的开发CBD模型融合了模型的许多特征该模型本质是演化的采用迭代方法开发软件
[问题2]使用关系代数表达式写出查询所有年龄在20岁以下的学生姓名和年龄
试题1~试题4是必答题阅读以下某建账软件的技术说明和数据流图根据要求回答问题1~问题6 [说明] 某商业银行已有一套基于客户机/服务器C/S模式的储蓄系统X和一套建账软件Y建账软件Y主要用于将储蓄所手工处理的原始数据转换为系统X所需的数据格式该建账软件具有以下功能 1分户账录入手工办理业务时建立的每个分户账数据均由初录员和复录员分别录入以确保数据的正确性 2初录/复录比对将初录员和复录员录入的数据进行一一比较并标记两套数据是否一致 3数据确认当上述两套数据完全一致后将其中任一套作为最终进入系统X的原始数据 4汇总核对和打印对经过确认的数据进行汇总并和会计账目中的相关数据进行核对以确保数据的整体正确性并打印输出经过确认的数据为以后核查可能的错误提供依据该建账软件需要打印的分户账清单样式如表3-8所示 表3-8分户账清单样式表 储蓄所 账号 开户日 户名 其他分户账数据 储蓄所A 6436135720082010999 2008-08-15 小郭 储蓄所A合计 共XXXX户总余额YYYYYYY.YY元 储蓄所B 8436135720082009888 2008-08-25 小谢 储蓄所B合计 共XXXX户总余额YYYYYYY.YY元 储蓄所N 储蓄所N合计 共XXXX户总余额YYYYYYY.YY元 5数据转换将经过确认的数据转换为储蓄系统X需要的中间格式数据 6数据清除为加快初录和复录的处理速度在数据确认之后可以有选择地清除初录员和复录员录入的数据 该软件的数据流图如图3-17~图3-19所示图中部分数据流数据文件的格式如下 初录分户账=储蓄所号+账号+户名+开户日+开户金额+当前余额+性质 复录分户账=储蓄所号+账号+户名+开户日+开户金额+当前余额+性质 会计账目=储蓄所号+总户数+总余额操作结果=初录操作结果+比对操作结果+复录操作结果 [问题1] 不考虑数据确认处理加工2请指出图3-17~图3-19数据流图中可能存在的错误
【说明】数据排序将给定的n个整数分别按照升序和降序进行排列 classSortInt_1 { intijktemp; voidSortIntinta1a2[]{//升序排序 fori=0;i<a1-1;i++{ k=i; forj=i+1;j<a1;j++ if1k=j; ifk!=i{ temp=a2[i];a2[i]=a2[k];a2[k]=temp; } } } } classSortlnt_22 { intijktemp; voidSortlntinta1a2[]{//降序排序 fori=0;i<a1-1;i++{ k=i; forj=i+1;j<a1;j++ if3k=j; ifk!=i{ temp=a2[i];a2[i]=a2[k];a2[k]=temp; } } } } ClassTestOverLoad{ PublicstaticvoidmainStringargs[] { inta[]={105510035879010016}; Sortlnt_1newlnt1=4; Newlnt1.SortInta.lengtha;//调用SortInt_1类的方法 System.out.println升序排列的数据; Forinti=0;i<8;i++ System.out.printa[i]+; system.out.println; SortInt_2newInt2=newsortint_2;//创建类SortInt_2的对象 5; System.out.println降序排列的数据:; Forinti=0;i<8;i++ System.out.printa[i]+; } }
在极限编程XP开发方法中策略有助于避免兼容性和接口问题建立能及早发现错误的冒烟测试环境
[问题4]在E-R模型中如果实体间是1:N的联系如何设计相应部分的关系模型
中华人民共和国政府信息公开条例自2008年5月1日起施行某教授于2008年6月1日自行将该条例译成英文投递给某国家的核心期刊并于2008年11月1日发表国家相关部门认为该教授的译文质量很高经与该教授协商于2009年1月5日发文将该译文定为官方正式译文
利用海明码HammingCode纠正单位错如果信息码字为1011101则至少需要加入位冗余位
阅读以下技术说明根据要求回答问题1~问题4 [说明]某汽车停车场欲建立一个信息系统已经调查到的需求如下 1.在停车场的入口和出口分别安装一个自动栏杆一台停车卡打印机一台读卡器和一个车辆通过传感器等其示意图见如图3-21所示 2.当汽车到达入口时驾驶员按下停车卡打印机的按钮获取停车卡当驾驶员拿走停车卡后系统命令栏杆自动抬起汽车通过入口后入口处的传感器通知系统发出命令栏杆自动放下 3.在停车场内分布着若干个付款机器驾驶员将在入口处获取的停车卡插入付款机器并缴纳停车费付清停车费之后将获得一张出场卡用于离开停车场 4.当汽车到达出口时驾驶员将出场卡插入出口处的读卡器如果这张卡是有效的系统命令栏杆自动抬起汽车通过出口后出口传感器通知系统发出命令栏杆自动放下若这张卡是无效的系统不发出栏杆抬起命令而发出告警信号 5.系统自动记录停车场内空闲的停车位的数量若停车场当前没有车位系统将在入口处显示车位已满信息这时停车卡打印机将不再出卡只允许场内汽车出场 根据上述描述采用面向对象方法对其进行分析与设计得到如表3-11所示的类/用例/状态列表如图3-22所示的用例图如图3-23所示的初始类图以及如图3-24所示的描述入口自动栏杆行为的UML状态图 表3-11类/用例/状态列表 用例名 说明 类名 说明 状态名 说明 Carentry 汽车进入停车场 CentralComputer 停车场信息系统 Idle 空闲状态汽车可以进入停车场 Carexit 汽车离开停车场 PaymentMachine 付款机器 Disable 没有车位 ReportStatistics 记录停车场的相关信息 CarPark 停车场保存车位信息 AwaitEntry 等待汽车进入 Barrier 自动护栏 AwaitTicketTake 等待打印停车卡 Carentrywhenfull 没有车位时汽车请求进入停车场 EntryBarrier 入口的护栏 AwaitEnable 等待停车场内有空闲车位 ExitBarrier 出口的护栏 [问题4] 简要解释图3-22中用例U1和U3之间的extend关系的内涵
包package是UML的
[说明]编写一个学生类Student要求 1学生类Student属性有 id:long型代表学号 name:String类对象代表姓名 age:int型代表年龄 sex:boolen型代表性别其中true表示男false表示女 phone:String类对象代表联系电话 2学生类Student的方法有 StudentlongiStringnintabooleansStringp 有参构造函数形参表中的参数分别初始化学号姓名 年龄性别和联系电话 intgetAge获取年龄作为方法的返回值 booleangetSex获取性别作为方法的返回值 StringgetPhone获取联系电话作为方法的返回值 publicStringtoString以姓名性别学号联系电话的形式作为方法的返 importjava.applet.Applet; importjava.awt.*; publicclassStudentextendsApplet{ longid; Stringnamephone; intage; booleansex; StudentlongiStringnintabooleansStringp { id=i; name=n; age=a; sex=s; phone=p; { publicvoidpaintGraphicsg { Studentx=newStudent5000xiaoliu89true8989898; 1; 2 g.drawstringx.getPhone140140; } intgetAge {returnage;} booleangetsex {returnsex;} StringgetPhone {returnphone;} StringToString { 3 } }
阅读以下说明和图回答问题1和问题2将答案写在答卷的对应栏内 【说明】 银行客户需要从ATM取100元他向ATM的读卡机插卡读卡机读取卡号然后ATM屏幕初始化ATM提示输入PIN密码客户输入PIN123456ATM打开他的账户密码有效因此ATM提示选择事务客户选择取钱ATM提示输入金额客户输入100元 ATM验证账户上有足够的钱就从账上减去100元ATM吐出100元并退出客户的卡 【问题1】根据上面的描述完成下述的时序图
【说明】用克鲁斯卡尔算法求解给定图的最小生成树 #include<stdio.h> #include<stdlib.h> #defineMAXN30 typedefstruct {intv1v2;/*一条边依附的两个顶点*/ intweight;/*边上的权值*/ }EDGE; typedefstruct {intVnum;/*图中的顶点数目*/ EDGEe[MAXN*MAXN-1/2];/*图中的边*/ }Graph; typedefstructnode{/*用链表存储同一个连通分量的顶点*/ intv; structnode*next; }Alist; voidheapadjustEDGEdata[]intsintm {/*将元素序列data[s..m]调整为小顶堆堆顶元素最小元素为data[s]*/ intj; EDGEt; t=data[s];/*备份元素data[s]为其找到适当位置后再插入*/ forj=2*s+1;j<=m;j=j*2+1{/*沿值较小的子结点向下筛选*/ ifj<m&&1++j; if!t.weight>data[j].weightbreak; data[s]=data[j];s=j;/*用s记录待插入元素的位置下标*/ }/*for*/ data[s]=t;/*将备份元素插入由s所指出的插入位置*/ }/*heapadjust*/ intcreat_graphGraph*p/*输入图中的顶点及边返回图中边的数目*/ {intk=0;/*记录图中边的数目*/ intn; intv1v2; intw; printfvertexnumberofthegraph:; scanf%d&n;/*输入图中的顶点数目*/ ifn<1return0; p->Vnum=n; do{printfedgevertex1vertex2weight:; scanf%d%d%d&V1&v2&w; ifv1>=0&&v1<n&&v2>=0&&v2<n{ p->e[k].v1=v1;p->e[k].v2=v2;p->e[k].weight=w; k++; }/*if*/ }while!2; returnk;/*返回图中边的数目*/ }/*creat_graph*/ intkruskalGraphGintenumberinttree[][3] {/*用kruskal算法求无向连通图G的最小生成树图中边所得数目为enumber*/ /*数组tree[][3]中存放生成树中边的顶点和边上的权值函数返回生成树的代价*/ intikmc=0; intv1v2; Alist*p*q*a[MAXN]; fori=0;i<G.Vnum;++i{/*将每个连通分量中的顶点存放在一个单链表中*/ a[i]=Alist*mallocsizeofAlist; if!a[i]{ printf/nmernoryallocationerror!; exit0; }/*if*/ a[i]->v=i;a[i]->next=NULL; }/*for*/ fori=enumber-1;i>=0;--i/*按照边上的权值建立小顶堆*/ heapadjust3; k=G.Vnum;/*k用于计算图中的连通分量数目*/ m=enumber-1; i=0; do{ v1=G.e[0].v1;v2=G.e[0].v2; p=a[v1]; whilep&&p->v!=v2{/*判断当前选择的边的顶点是否在一个连通分量中*/ q=p;p=p->next; } if!p{/*当前边的顶点不在一个连通分量中*/ p=q; p->next=a[G.e[0].v2]; p=a[G.e[0].v1;/*加入边v1v2将两个连通分量合并为一个*/ whilep{a[p->v]=4;p=p->next;} k--;/*连通分量数目减少一个*/ tree[i][0]=v1;/*记录加入最小生成树的边*/ tree[i][1]=v2; tree[i][2]=G.e[0].weight; c+=G.e[0].weight; ++i; }/*if*/ G.e[0]=G.e[m]; m--; heapadjust5; }whilek>1;/*当所有顶点不在同一个连通时继续*/ returnc;/*返回最小生成树的代价*/ }/*kruskal*/ voidmainvoid {intienumber; inttree[MAXN][3]; intcost=0; GraphG; enumber=creat_graph&G; cost=-kruskalGenumbertree; printfMinimum-Costspanningtreekruskal/n; printfedge/tweight/t/n; fori=0;i<G.Vnum-1;++i printfv%d–v%d/t%d/ntree[i][0]tree[i][1]tree[i][2]; printfCost%d/ncost; }
阅读下列说明根据要求回答问题1~问题3 [说明] 某地区举行篮球比赛需要开发一个比赛信息管理系统来记录比赛的相关信息[需求分析结果] 1.登记参赛球队的信息记录球队的名称代表地区成立时间等信息系统记录球队的每个队员的姓名年龄身高体重等信息每个球队有一个教练负责管理球队一个教练仅负责一个球队系统记录教练的姓名年龄等信息 2.安排球队的训练信息比赛组织者为球队提供了若干个场地供球队进行适应性训练系统记录现有的场地信息包括场地名称场地规模位置等信息系统可为每个球队安排不同的训练场地如表3-9所示系统记录训练场地安排的信息 表3-9训练安排表 球队名称 场地名称 训练时间 解放军 一号球场 2008-06-091400-1800 解放军 一号球场 2008-06-120900-1200 解放军 二号球场 2008-06-111400-1800 山西 一号球场 2008-06-100900-1200 3.安排比赛该赛事聘请有专职裁判每场比赛只安排一个裁判系统记录裁判的姓名年龄级别等信息系统按照一定的规则首先分组然后根据球队场地和裁判情况安排比赛每场比赛的对阵双方分别称为甲队和乙队记录参赛球队比赛时间比分场地名称等信息如表3-10所示 表3-10比赛安排表 A组 甲队乙队 场地名称 比赛时间 裁判 比分 解放军北京 一号球场 2008-06-171500 李大明 天津山西 一号球场 2008-06-171900 胡学梅 B组 甲队乙队 场地名称 比赛时间 裁判 比分 上海安徽 二号球场 2008-06-171500 丁鸿平 山东辽宁 二号球场 2008-06-171900 郭爱琪 4.所有球员教练和裁判可能出现重名情况[概念模型设计] 根据需求阶段收集的信息设计的实体联系图和关系模式不完整如下1.实体联系图图3-20 2.关系模式 教练教练编号姓名年龄队员队员编号姓名年龄身高体重a 球队球队名称代表地区成立时间b 场地场地名称场地规模位置训练记录c 裁判裁判编号姓名年龄级别比赛记录d [问题3] 如果考虑记录一些特别资深的热心球迷的情况每个热心球迷可能支持多个球队热心球迷的基本信息包括姓名住址和喜欢的俱乐部等根据这一要求修改图3-20的实体联系图给出修改后的关系模式
热门题库
更多
中级信息系统管理工程师
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术