首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
若一棵哈夫曼(Huffman)树共有9个顶点,则其叶子结点的个数为()。
查看本题答案
包含此试题的试卷
中级软件设计师《单选集》真题及答案
点击查看
你可能感兴趣的试题
一棵哈夫曼树共有9个结点则其叶子结点的个数为______
4
5
6
7
由权值分别为38625的叶子结点生成一棵哈夫曼树它的带权路径长度为______
24
48
72
53
以下关于哈夫曼树的叙述正确的是
哈夫曼树一定是满二叉树,其每层结点数都达到最大值
哈夫曼树一定是平衡二叉树,其每个结点左右子树的高度差为-1、0或1
哈夫曼树中左孩子结点的权值小于父结点、右孩子结点的权值大于父结点
哈夫曼树中叶子结点的权值越小则距离树根越远、叶子结点的权值越大则距离树根越近
下列关于哈夫曼树的叙述错误的是
一棵哈夫曼树是带权路径长度最短的二叉树
一棵哈夫曼树中叶结点的个数比非叶结点的个数大1
一棵哈夫曼树结点的度要么是0,要么是2
哈夫曼树的根结点的权值等于各个叶子结点的权值之和
一棵有n个叶子结点的哈夫曼树共有个结点
由权值为9257的四个叶子构造一棵哈夫曼树该树的带权路径长度为______
23
37
44
46
由权值为9257的四个叶子结点构造一棵哈夫曼树该树的带权路径长度为
23
37
44
46
若一棵哈夫曼Huffman树共有9个顶点则其叶子节点的个数为
4
5
6
7
设有13个值用它们组成一棵哈夫曼树则该哈夫曼树共有个结点
13
12
26
25
由权值为9257的4个叶子结点构造一棵哈夫曼树该树的带权路径长度为
23
37
44
46
由分别带权为9257的四个叶子结点构成一棵哈夫曼树该树的带权路径长度为
23
37
44
46
带权为9246的4个叶子结点构造一棵哈夫曼树该树的带权路径长度为______
21
41
36
39
若一棵哈夫曼树有2001个结点则它共有个叶结点
999
1000
1001
1002
若一棵哈夫曼树共有9个顶点则其叶子结点的个数为
4
5
6
7
由权值为36725的叶子结点生成一棵哈夫曼树它的带权路径长度为
51
23
53
74
设T是一棵二叉树除叶子结点外其他结点的度数皆为2若T中有6个叶结点试问1T树的最大深度Kmax一最小
由权值为5926的4个叶子构造一棵哈夫曼树该树的带权路径长度为
21
22
42
44
热门试题
更多
[说明]一个新的音像商店准备向比较广泛的人群出租录像带和光碟该商店的管理决定在计算机系统的支持下来运作音像商店在货架上存放着题材广泛的当前流行的电影库由于同一个电影片名可能有于不同的导演而有不同的版本因此电影用电影代码区分而不用电影片名同一个版本有多份拷贝因此音像制品用一个唯一的编号标识某个特定的电影可以存放在录像带或光碟上录像带和光碟的租金不同录像带要么是Beta格式要么是VHS格式光碟为DVD格式容量比较大一张光碟可以存储同一电影片名的不同版本每个电影都有特定的租用期用天表示并带有在租用期内的租金音像商店必须能够立即回答关于某个电影的库存和有多少供租用的带子或光碟音像商店的店员负责定购音像联系客户音像上架并对客户的询问给出答复该系统采用面向对象方法开发系统中的类以及类之间的关系用UML类图表示图1-1是该系统的用例图图1-2是该系统的类图的一部分[图1-1][图1-2]1.根据题意给出电影类的主要属性
[说明]任何一种程序都是为了解决问题而撰写的解决问题时需要实现一些特定的运算法则在策略Strategy模式下可以更换实现算法的部分而不留痕迹切换整个算法简化改为采用其他方法来解决同样问题以下是一个剪刀石头布游戏猜拳时的策略有2种方法第一种是猜赢后继续出同样的招式WinningStrategy第二种是从上一次出的招式种以概率分配方式求出下一个招式的几率ProbStrategy程序中定义了Hand类表示猜拳时的手势类内部以0石头1剪刀2布来表示Hand类的实例只会产生3个以下是C语言实现省略了不相关属性及方法方法实现体亦有所省略能够正确编译通过[C代码]typedef1*funl;enumHandValueHANDVALUE_GUU=0HANDVALUE_CHO=1HANDVALUE_PAA=2;//手势可取值依次为石头剪刀布//其大小顺序是循环相克的即石头赢剪刀剪刀赢布布赢石头boolwon;structHand*WSprevHand;structHand//手势enumHandValuehandvalue;hand[3]=HANDVALUE_GUUHANDVALUE_CHOHANDVALUE_PAA;intfightstructHand*h1structHand*h2//比较h1和h2h1代表的手势较大时返回1h1较小时返回-1相等时返回0//ifh1->handvalue==h2->handvaluereturn0;elseifh1->handvalue+1%2==h2>handvaluereturn1;elsereturn-1;structHand*getHandinthandvalue//依据手势代表的值取得手势若handvalue不合法返回NULLswitchhandvaluecase0:return&hand[0];break;case1:return&hand[1];bteak;case2;return&hand[2];break;return3;structStrategy//策略funlnextHand;//下一个手势;structHand*WSnextHandif!wonPSprevHand=getHandrand%3;returnPSprevHand;structPlayercharname[20];4strategy;//策略intwincount;intlosecount;intgamecount;;voidmainStrategyWS;WS.nextHand=WSnextHand;WSpreVHand=NULL;structPlayerWSplayer;5WSplayer.nameww;WSplayer.wincount=0;WSplayer.losecount=0;WSplayer.gamecount=0;WSplayer.strategy=&WS;
[说明]任何一种程序都是为了解决问题而撰写的解决问题时需要实现一些特定的运算法则在策略Strategy模式下可以更换实现算法的部分而不留痕迹切换整个算法简化改为采用其他方法来解决同样问题以下是一个剪刀石头布游戏猜拳时的策略有2种方法第一种是猜赢后继续出同样的招式WinningStrategy第二种是从上一次出的招式中以概率分配方式求出下一个招式的几率ProbStrategy程序中定义了Hand类表示猜拳时的手势类内部以0石头1剪刀2布来表示Hand类的实例只会产生3个以下是C++语言实现能够正确编译通过[C++代码]classHandprivate:inthandvalue;staticHand*hand0;staticHand*hand1;staticHand*hand2;1;Handinthandvaluethis->handvalue=handvalue;public:2Hand*getHandinthandvalue/*省略具体实现*/;Hand*Hand::hand0=newHand0;Hand*Hand::hand1=newHand1;Hand*Hand::hand2=newHand2;classStrategypublic:3Hand*nextHand=0;;classWinningStrategy:publicStrategyprivate:boolwon;Hand*prevHand;public:winningStrategywon=false;Hand*nextHandif!wonprevHand=Hand::getHandrand%3;returnprevHand;;classprobstrategy:publicStrategypublic:Hand*nextHandinthandvalue=0;/*省略具体实现*/returnHand::getHandhandvalue;;classPlayerprivate:stringname;Strategy*strategy;public:Playerstringname4strategythis->name=name;this->strategy=strategy;Hand*nextHand//向战略请示手势return5;;
[说明]任何一种程序都是为了解决问题而撰写的解决问题时需要实现一些特定的运算法则在策略Strategy模式下可以更换实现算法的部分而不留痕迹切换整个算法简化改为采用其他方法来解决同样问题以下是一个剪刀石头布游戏猜拳时的策略有2种方法第一种是猜赢后继续出同样的招式WinningStrategy第二种是从上一次出的招式种以概率分配方式求出下一个招式的几率ProbStrategy程序中定义了Hand类表示猜拳时的手势类内部以0石头1剪刀2布来表示Hand类的实例只会产生3个以下是Java语言实现省略了不相关属性及方法方法实现体亦有所省略能够正确编译通过[Java代码]//Hand.jav__件publicclassHandpublicstaticfinalintHANDVALUE_GUU=0;//石头publicstaticfinalintHANDVALUE_CHO=1;//剪刀publicstaticfinalintHANDVALUE_PAA=2;//布publicstaticfinalHand[]hand=newHandHANDVALUE_GUUnewHandHANDVALUE_CHOnewHandHANDVALUE_PAA;privateinthandvalue;1Handinthandvaluethis.handvalue=handvalue;public2HandgetHandinthandvalue//从值取得对象实例returnhand[handvalue];//Strategy.jav__件publicinterfaceStrategypublic3HandnextHand;//ProbStrategy.jav__件importjava.util.Random;publicclassProbStrategyimplementsStrategypublicHandnextHandinthandvalue=0;/*省略具体实现*/returnHand.getHandhandvalue;//WinningStrategy.jav__件importjava.util.Random;publicclassWinningStrategyimplementsStrategy/*省略了不相关属性*/publicHandnextHandif!wonprevHand=Hand.getHandrandom.nextInt3;returnprevHand;//Player.jav__件publicclassPlayerprivateStringname;privateStrategystrategy;publicPlayerStringname4strategythis.name=name;this.strategy=strategy;publicHandnextHand//向战略请示手势return5;
[说明]任何一种程序都是为了解决问题而撰写的解决问题时需要实现一些特定的运算法则在策略Strategy模式下可以更换实现算法的部分而不留痕迹切换整个算法简化改为采用其他方法来解决同样问题以下是一个剪刀石头布游戏猜拳时的策略有2种方法第一种是猜赢后继续出同样的招式WinningStrategy第二种是从上一次出的招式种以概率分配方式求出下一个招式的几率ProbStrategy程序中定义了Hand类表示猜拳时的手势类内部以0石头1剪刀2布来表示Hand类的实例只会产生3个以下是C语言实现省略了不相关属性及方法方法实现体亦有所省略能够正确编译通过[C代码]typedef1*funl;enumHandValueHANDVALUE_GUU=0HANDVALUE_CHO=1HANDVALUE_PAA=2;//手势可取值依次为石头剪刀布//其大小顺序是循环相克的即石头赢剪刀剪刀赢布布赢石头boolwon;structHand*WSprevHand;structHand//手势enumHandValuehandvalue;hand[3]=HANDVALUE_GUUHANDVALUE_CHOHANDVALUE_PAA;intfightstructHand*h1structHand*h2//比较h1和h2h1代表的手势较大时返回1h1较小时返回-1相等时返回0//ifh1->handvalue==h2->handvaluereturn0;elseifh1->handvalue+1%2==h2>handvaluereturn1;elsereturn-1;structHand*getHandinthandvalue//依据手势代表的值取得手势若handvalue不合法返回NULLswitchhandvaluecase0:return&hand[0];break;case1:return&hand[1];bteak;case2;return&hand[2];break;return3;structStrategy//策略funlnextHand;//下一个手势;structHand*WSnextHandif!wonPSprevHand=getHandrand%3;returnPSprevHand;structPlayercharname[20];4strategy;//策略intwincount;intlosecount;intgamecount;;voidmainStrategyWS;WS.nextHand=WSnextHand;WSpreVHand=NULL;structPlayerWSplayer;5WSplayer.nameww;WSplayer.wincount=0;WSplayer.losecount=0;WSplayer.gamecount=0;WSplayer.strategy=&WS;
[说明]在一些应用场合中需要对用户的输入数据进行检查监控以下VisualBasic程序实现了对新添加到List列表的内容进行监控拒绝向List列表添加重复信息例如在List列表中存在元素a01001a01002如果用户输入数据为aOl001或a01002系统则弹出提示信息拒绝将新数据加入List列表如果用户输入的数据不同与List列表中的任何一个元素则作为新元素加入List中VisualBasic界面显示如图11-5所示根据程序功能说明完成程序代码[代码1]BeginVB.FormForm1Caption=List列表拒绝添加重复信息//...窗体描述略BeginVB.CommandButtonCommand2Caption=退出//...窗体描述略EndBeginVB.CommandButtonommand1Caption=添加//...窗体描述略EndBeginVB.TextBoxText1//...窗体描述略EndBeginVB.ListBoxList1Height=1860ItemData=Form1.frx:0000Left=1020List=Form1.frx:0002TabIndex=0Top=525Width=2580EndBeginVB.LabelLabellBackStyle=0’TransparentCaption=请输入编号//...窗体描述略EndEnd[代码2]AttributeVB_Name=Form1AttributeVB_GlobalNameSpace=FalseAttributeVB_Creatable=FalseAttributeVB_PredeclaredId=TrueAttributeVB_Exposed=FalsePrivateSubForm_LoadListl.AddItema01001Listl.AddItema01002EndSubPrivateSubCommand1ClickDimMyvalAsLongFori=0To12If3ThenMsgBox系统不允许重复输入请重新输入ExitSubEndIf45EndSub
【说明】有如下关系数据库SSNOSNSTATUSCITYPPNOPNCOLORSWEIGHTJJNOJNCITYSPJSNOPNOJNOQTY其中S为供应单位P为零件J为工程项目SPJ为工程订购零件的订单其语义为某供应单位供应某种零件给某个工程请用SQL完成下列操作1.【问题1】求为工程J1提供红色零件的供应商代号
[说明]研究生招生系统旨在用计算机对学校的研究生招生事务进行管理研究生招生可分为报名阶段考试阶段和录取阶段招生报考前招生处要进行考前准备工作如统计招生导师考试科目以及制定报考专业标准代码等招生导师信息包括导师的姓名性别年龄出生年月所从事专业和研究方向以及所在系别考试科目包含科目代码科目的名称以及报考本科目的考试人数在报名阶段考生向招生处提交报名数据表研究生系统根据考生的报考数据确定考生准考生号并通知考生考试日期在考试阶段考试结束后考生成绩录入研究生招生系统考生可以从研究生招生系统中获取自己的考试成绩在录取阶段研究生招生系统根据考生的报考数据考试成绩外校调剂考生信息以及往年保留资格记录文件确定录取数据并形成录取文件系统统计并记录相关招生信息以供查询对被录取的考生发放录取通知书对需要保留资格的考生记录其信息以供下年度招生使用招生处可以从研究生招生系统中获得录取数据和招生情况的统计信息以供咨询数据流图11-1为研究生招生系统顶层图数据流图11-2为研究生招生系统第0层DFD图数据流图11-3为加工3的细化图[数据流图11-1][数据流图11-2][数据流图11-3]1.[问题1]数据流图11-2中有3条数据流请根据说明中的术语给出这三条数据流名称并指出起点和终点
【说明】本程序实现功能读入两个整数第1个数除以第2个数声明当除数为零时抛出异常类DivideByZeroExceptionpublicclassDivideByZeroException1publicDivideByZeroExceptionsuperAttcmptedtodividebyzero;importjava.io.*;publicclassExampleprivatestaticintquotientintnumeratorin/tdenominatorthrowsDivideByZeroExceptionifdenominator==0throw2;returnnumerator/denominator;publicstaticvoidmainStringargs[]intnumber1=0number2=0result0;trySystem.out.print1nEnterthefirstnumber:;number1=Integer.valueOfKeyboard.getString.intValue;System.out.print1nEnterthesecondnumber:;number2=Integer.Va1ueOfKeyboard.getString.intValue;result=quotientnumber1number2;catchNumberFormatExceptioneSystem.out.print1nInvalidintegerentered!;System.exit-1;catch3System.out.print1ne.toString;System.exit-1;Systcm.out.pfint1nnumber1+/+number2+=+result;其中Keyboard类的声明为:importjava.io.*;publicclassKeyboardstaticBufferedReaderinputStream=4newInputStreamReaderSystem.in;publicstaticintgetIntegertryreturnIntoger.valueOfinputStream.readLine.trim.intValue;catchExceptionee.printStackTrace;return0;publicstaticStringgetStringtryreturninputStream.readLine;catch5return0;
[说明]任何一种程序都是为了解决问题而撰写的解决问题时需要实现一些特定的运算法则在策略Strategy模式下可以更换实现算法的部分而不留痕迹切换整个算法简化改为采用其他方法来解决同样问题以下是一个剪刀石头布游戏猜拳时的策略有2种方法第一种是猜赢后继续出同样的招式WinningStrategy第二种是从上一次出的招式种以概率分配方式求出下一个招式的几率ProbStrategy程序中定义了Hand类表示猜拳时的手势类内部以0石头1剪刀2布来表示Hand类的实例只会产生3个以下是Java语言实现省略了不相关属性及方法方法实现体亦有所省略能够正确编译通过[Java代码]//Hand.jav__件publicclassHandpublicstaticfinalintHANDVALUE_GUU=0;//石头publicstaticfinalintHANDVALUE_CHO=1;//剪刀publicstaticfinalintHANDVALUE_PAA=2;//布publicstaticfinalHand[]hand=newHandHANDVALUE_GUUnewHandHANDVALUE_CHOnewHandHANDVALUE_PAA;privateinthandvalue;1Handinthandvaluethis.handvalue=handvalue;public2HandgetHandinthandvalue//从值取得对象实例returnhand[handvalue];//Strategy.jav__件publicinterfaceStrategypublic3HandnextHand;//ProbStrategy.jav__件importjava.util.Random;publicclassProbStrategyimplementsStrategypublicHandnextHandinthandvalue=0;/*省略具体实现*/returnHand.getHandhandvalue;//WinningStrategy.jav__件importjava.util.Random;publicclassWinningStrategyimplementsStrategy/*省略了不相关属性*/publicHandnextHandif!wonprevHand=Hand.getHandrandom.nextInt3;returnprevHand;//Player.jav__件publicclassPlayerprivateStringname;privateStrategystrategy;publicPlayerStringname4strategythis.name=name;this.strategy=strategy;publicHandnextHand//向战略请示手势return5;
【说明】有如下关系数据库SSNOSNSTATUSCITYPPNOPNCOLORSWEIGHTJJNOJNCITYSPJSNOPNOJNOQTY其中S为供应单位P为零件J为工程项目SPJ为工程订购零件的订单其语义为某供应单位供应某种零件给某个工程请用SQL完成下列操作1.【问题1】求为工程J1提供红色零件的供应商代号
[说明]在进行文法分析的时候通常需要检测一个单词是否在我们的单词列表里为了提高查找和定位的速度通常都要画出与单词列表所对应的单词查找树程序构造一棵二叉排序树每个节点存储一个单词按字典序列较小的在左子树较大的在右子树函数中使用的预定义符号如下typedefstructTreeNode/*二叉排序树节点*/char*word;structTreeNode*left*right;BNODE;[函数]intgetWordFILE*fptchar*word/*从文件fpt中读取单词到word中到达文件结束时返回0*/charc;c=fgetcfpt;ifc==EOFreturn0;/*跳过单词间的非字母字符*/while!tolowerc>=’a’&&tolowerc=’a’&&tolowerc0ptr->right:ptr->left;ptr=BNODE*mallocsizeofptr;ptr->left=ptr->right=NULL;ptr->word=char*mallocstrlenword+1;strcpyptr->wordword;ifp==NULL4;elseifcompres>0p->right=ptr;elsep->left=ptr;intmainFILE*fpt;charword[40];BNODE*root=NULL;iffpt=fopentext.inr==NULLprintf不能打开文件text.in!/n;return1;whilegetWordfptword==1BTree5;fclosefpt;return0;
[说明]快速排序是一种典型的分治算法采用快速排序对数组A[p..r]排序的3个步骤如下1.分解选择一个枢轴pivot元素划分数组将数组A[p..r]划分为两个子数组可能为空A[p..q-1]和A[q+1..r]使得A[q]大于等于A[p..q-1]中的每个元素小于A[q+1..r]中的每个元素q的值在划分过程中计算2.递归求解通过递归的调用快速排序对子数组A[p..q-1]和A[q+1..r]分别排序3.合并快速排序在原地排序故无需合并操作1.[问题1]下面是快速排序的伪代码请将空缺处1~3的内容填写完整伪代码中的主要变量说明如下A待排序数组pr数组元素下标从p到rq划分的位置x枢轴元素i整型变量用于描述数组下标下标小于或等于i的元素的值小于或等于枢轴元素的值j循环控制变量表示数组元素下标
[说明]任何一种程序都是为了解决问题而撰写的解决问题时需要实现一些特定的运算法则在策略Strategy模式下可以更换实现算法的部分而不留痕迹切换整个算法简化改为采用其他方法来解决同样问题以下是一个剪刀石头布游戏猜拳时的策略有2种方法第一种是猜赢后继续出同样的招式WinningStrategy第二种是从上一次出的招式中以概率分配方式求出下一个招式的几率ProbStrategy程序中定义了Hand类表示猜拳时的手势类内部以0石头1剪刀2布来表示Hand类的实例只会产生3个以下是C++语言实现能够正确编译通过[C++代码]classHandprivate:inthandvalue;staticHand*hand0;staticHand*hand1;staticHand*hand2;1;Handinthandvaluethis->handvalue=handvalue;public:2Hand*getHandinthandvalue/*省略具体实现*/;Hand*Hand::hand0=newHand0;Hand*Hand::hand1=newHand1;Hand*Hand::hand2=newHand2;classStrategypublic:3Hand*nextHand=0;;classWinningStrategy:publicStrategyprivate:boolwon;Hand*prevHand;public:winningStrategywon=false;Hand*nextHandif!wonprevHand=Hand::getHandrand%3;returnprevHand;;classprobstrategy:publicStrategypublic:Hand*nextHandinthandvalue=0;/*省略具体实现*/returnHand::getHandhandvalue;;classPlayerprivate:stringname;Strategy*strategy;public:Playerstringname4strategythis->name=name;this->strategy=strategy;Hand*nextHand//向战略请示手势return5;;
[说明]建立一个分数类使之具有下述功能建立构造函数它能防止分母为0当分数不是最简形式时进行约分以及避免分母为负数如经过类Num3-6的处理转换为经过类Num810的处理后转换为[C++代码]#include<iostream.h>#include<math.h>classNumpublic:Numintaintb;private:intnum1;intnum2;:Num::Numintaintbif1cout<<ERROR<<endl;return;intmin=fabsa<fabsbfabsa:fabsb;intx=1;forinti=1;i<=min;i++if2x=i;a/=X;b/=x;if3a=-a;b=-b;45
[说明]某学校的教学系统描述如下学生信息包括学号Sno姓名Sname性别Ssex年龄Sage入学年份Syear主修专业Smajor其中学号是入学时唯一编定的教师信息包括教工号Tno姓名Tname性别Tsex年龄Tage职称Title其中教工号是唯一编定的课程信息包括课程号Cno课程名称Cname学时Cpeiiod学分Ccredit其中课程号是唯一编定的每个专业每个年级只有一个班级这样班级就可用入学年份标识每位教师只教授特定的一门的课程每门课程可以有多个教师教授各位老师的上课地点及上课时间有所不同注意一门课程至少有一位教师教授否则这门课程就视为不存在每位学生可以同时选修多门不同的课程一门课程至少要有10位学生选修否则就取消这门课程的开设注意选修课程时要指定任课教师不能重复选修同一门课程课程结束后任课教师给选修该课程的学生一个成绩Grade注意教师不能给没有选修他所教授课程的学生成绩即使选修了其他教师教授的同一门课也不行图2-1是经分析得到的E-R图[图2-1]1.根据题意给出联系的属性实体间的联系有一对一一对多和多对多指出各联系分别属于哪一种
[说明]某学校的教学系统描述如下学生信息包括学号Sno姓名Sname性别Ssex年龄Sage入学年份Syear主修专业Smajor其中学号是入学时唯一编定的教师信息包括教工号Tno姓名Tname性别Tsex年龄Tage职称Title其中教工号是唯一编定的课程信息包括课程号Cno课程名称Cname学时Cpeiiod学分Ccredit其中课程号是唯一编定的每个专业每个年级只有一个班级这样班级就可用入学年份标识每位教师只教授特定的一门的课程每门课程可以有多个教师教授各位老师的上课地点及上课时间有所不同注意一门课程至少有一位教师教授否则这门课程就视为不存在每位学生可以同时选修多门不同的课程一门课程至少要有10位学生选修否则就取消这门课程的开设注意选修课程时要指定任课教师不能重复选修同一门课程课程结束后任课教师给选修该课程的学生一个成绩Grade注意教师不能给没有选修他所教授课程的学生成绩即使选修了其他教师教授的同一门课也不行图2-1是经分析得到的E-R图[图2-1]1.根据题意给出联系的属性实体间的联系有一对一一对多和多对多指出各联系分别属于哪一种
[说明]为了有效记录交通事故情况欲设计一个交通事故记录系统一辆汽车有一个唯一的车牌号车主购买汽车时需要提供相关信息包括身份证姓名年龄性别地址等一个车主可以拥有多辆汽车而一辆汽车只有一个车主驾驶员不一定是车主因此记录交通事故时要记录驾驶员身份证号同时记录事故发生时刻图2-1描绘了人汽车交通事故三个实体类型及实体间联系的一个E-R图[图2-1]对应的关系模式为·人身份证号姓名性别年龄地址·汽车车牌号型号·事故车牌号身份证号时刻损失描述·拥有身份证号车牌号1.指出每种关系模式的主键
【说明】某教学管理系统的用户是教学管理人员教师和学生系统主要提供学生选课管理和学生成绩管理两方面的功能1学生选修课管理主要功能是管理新学期开始时学生对选修的课程进行选课注册工作新学期开始后的前两周为学生试听选课注册时间允许校内各院系学生跨专业跨年级选修课程学生可以在校园网的任何一个终端进行选课①新学期选修课程表生成各学院教学管理人员在新学期开始前将准备开设的选修课程名称课程代码总课时上课时间学分任课教师和上课教室录入系统供学生选课使用新学期开学两周后系统自动将实际选课学生少于10人的课程停开并删除该课程教学管理人员打印学生选课注册名单和开课通知书送交有关部门和任课教师②学生选课注册新学期开学前两周为学生试听选课注册时间并允许改变或取消注册申请学生调用待选课程表系统显示课程名课程代码任课教师上课时间总课时上课教室学分和本课程已选修人数学生所选几门课程在上课时间上不能冲突若一门课程实际选课学生已达到40人时停止选课当学生退出系统时系统提示该学生所选的几门课程任课教师上课时间教室学分和学分总计③选修课程查询选修课程表信息查询用户是教师学生和教学管理人员系统显示课程名课程代码任课教师上课时间总课时上课教室学分和本课程已选修人数查询关键词可为学院名称专业授课教师等学生选课情况查询教师和教学管理人员可以查看学生的选课情况查询关键词可以为学生姓名学号课程名称课程代码授课教师等学生只能查自己所选课程内容不允许查其他同学选课情况教师简历查询用户是学生教师和教学管理人员查询关键词可为教师姓名性别职称年龄等单关键词或组合关键词④信息统计与报表生成各学院教学管理人员对学生选课注册信息进行统计按课程专业等打印汇总报表⑤把学生选课注册信息传送到财务管理系统计算学生应交纳的费用2学生成绩管理①学生考试成绩录入各学院教学管理人员将学生考试成绩录入系统录入学生成绩时系统自动检查财务系统传来的选课交费信息核对该学生是否已经交纳本门课程的费用没有交纳费用者不给成绩②成绩查询教师和教学管理人员可查询学生各门课程的成绩查询关键词可为学生姓名学号课程名课程代码等学生只能查自己各门课程的成绩不允许查其他同学成绩③成绩汇总与报表生成教学管理人员对学生考试成绩信息进行统计按学生课程专业等打印汇总报表向学校教务管理系统发送汇总信息表格等不反馈信息现在已建立教学管理最高层用例图如下1.【问题1】完成学生成绩管理子系统用例图
[说明]散列文件的存储单位称为桶BUCKET假如一个桶能存放m个记录当桶中已有m个同义词散列函数值相同的记录时存放第m+1个同义词会发生溢出此时需要将第m+1个同义词存放到另一个称为溢出桶的桶中相对地称存放前m个同义词的桶为基桶溢出桶和基桶大小相同用指针链接查找指定元素记录时首先在基桶中查找若找到则成功返回否则沿指针到溢出桶中进行查找例如设散列函数为HashKey=Keymod7记录的关键字序列为151421879629335241491963161037751531453565168705453建立的散列文件内容如图2-27所示为简化起见散列文件的存储单位以内存单元表示函数InsertToHashTableintNewElemKey的功能是若新元素NewElemKey正确插入散列文件中则返回值0否则返回值-1采用的散列函数为HashNewElemKey=NewElemKey%P其中P设定基桶的数目函数中使用的预定义符号如下
[说明]为了有效记录交通事故情况欲设计一个交通事故记录系统一辆汽车有一个唯一的车牌号车主购买汽车时需要提供相关信息包括身份证姓名年龄性别地址等一个车主可以拥有多辆汽车而一辆汽车只有一个车主驾驶员不一定是车主因此记录交通事故时要记录驾驶员身份证号同时记录事故发生时刻图2-1描绘了人汽车交通事故三个实体类型及实体间联系的一个E-R图[图2-1]对应的关系模式为·人身份证号姓名性别年龄地址·汽车车牌号型号·事故车牌号身份证号时刻损失描述·拥有身份证号车牌号1.指出每种关系模式的主键
[说明]背包问题就是有不同价值不同重量的物品n件求从这n件物品中选取一部分物品的选择方案使选中物品的总重量不超过指定的限制重量而且选中物品的价值之和为最大背包问题是一个典型的NP完全难题对该问题求解方法的研究无论是在理论上还是在实践中都具有一定的意义如管理中的资源分配投资决策装载问题等均可建模为背包问题常用的背包问题求解方法很多但本题中采用了一种新的算法来求解背包问题该算法思想为首先要对物品进行价重比排序然后按价重比从大到小依次装进包裹这种方法并不能找到最佳的方案因为有某些特殊情况存在但只要把包中重量最大的物品取出继续装入直到达到limitweight这时的物品就是limitweight的最大价值这种算法不需要逐个进行试探所以在数据非常大时执行效率主要由排序的时间复杂度决定该算法的流程图为图11-4仔细阅读程序说明和C程序流程图及源码回答问题1和问题2[流程图11-4][程序说明]structThing物品结构typedefstructBag背包结构类型input将物品按序号依次存入数组函数inbag物品按物价比入包函数init初始化函数sort对物品按价格重量比排序函数outbag取出包中weiht最大的物品函数print最佳方案输出函数[C程序]#defineN255structThingdoubleweight;doublevalue;doubledens;thing[N];typedefstmctBagThingthing[N];doubleweighttmp;doublesumvalue;bagbest;inbagdobag.thing[i]=thing[i]12i++;while3initforinti=0;i<N;i++inputthing[i].weightthing[i].valuething[i].dens=thing[i].value/thing[i].weight;;maininit;sort;inbag;dobest=bag;//把包中物品放入暂存数组outbag;//取出包中weight最大的物品4while5printbest//输出temp因为是最佳方案1.[问题1]根据程序说明及流程图部分C源码充分理解算法思想填入n处
[说明]在一公文处理系统中开发者定义了一个公文类OfficeDoc其中定义了公文具有的属性和处理公文的相应方法当公文件的内容或状态发生变化时关注此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态一个OfficeDoc对象能够关联一组DocExplorer对象当OfficeDoc对象的内容或状态发生变化时所有与之相关联的DocExplorer对象都将得到通知这种应用被称为Observer观察者模式以下代码采用Java语言实现能够正确编译通过[Java代码]
[说明]任何一种程序都是为了解决问题而撰写的解决问题时需要实现一些特定的运算法则在策略Strategy模式下可以更换实现算法的部分而不留痕迹切换整个算法简化改为采用其他方法来解决同样问题以下是一个剪刀石头布游戏猜拳时的策略有2种方法第一种是猜赢后继续出同样的招式WinningStrategy第二种是从上一次出的招式中以概率分配方式求出下一个招式的几率ProbStrategy程序中定义了Hand类表示猜拳时的手势类内部以0石头1剪刀2布来表示Hand类的实例只会产生3个以下是C++语言实现能够正确编译通过[C++代码]classHandprivate:inthandvalue;staticHand*hand0;staticHand*hand1;staticHand*hand2;1;Handinthandvaluethis->handvalue=handvalue;public:2Hand*getHandinthandvalue/*省略具体实现*/;Hand*Hand::hand0=newHand0;Hand*Hand::hand1=newHand1;Hand*Hand::hand2=newHand2;classStrategypublic:3Hand*nextHand=0;;classWinningStrategy:publicStrategyprivate:boolwon;Hand*prevHand;public:winningStrategywon=false;Hand*nextHandif!wonprevHand=Hand::getHandrand%3;returnprevHand;;classprobstrategy:publicStrategypublic:Hand*nextHandinthandvalue=0;/*省略具体实现*/returnHand::getHandhandvalue;;classPlayerprivate:stringname;Strategy*strategy;public:Playerstringname4strategythis->name=name;this->strategy=strategy;Hand*nextHand//向战略请示手势return5;;
[说明]在学校中存在以下关系a一个系有若干学生但一个学生只能在一个系b一个学生可以选修多门课程每门课程有若干学生选修c每个学生所学的每门课程都有一个成绩该校在学生信息管理数据库设计了三个基本表分别为表一表二表三a表一学生信息表STUDENTSTIDNAMEAGEDEPTNO其中STID表示学号NAME表示学生姓名AGE表示年龄DEPTNO表示系号b表二课程表COURSECOIDNAME其中COID表示课程号NAME表示课程名c表三成绩表SCORESCIDCOIDGRADE其中SCID表示学号COID表示课程号GRADE表示成绩成绩为空时表示这学期正在上的课程1.[问题1]根据要求将SQL语句补充完整1查询各系的学生数SELECT1COUNT*2GROUPBYDEPTNO2更改课程号为C601的课程名为大学物理UPDATE3SET43基于学生信息表建立一个计算机系系编号为D01的学生视图写出命令CREATEORREPLACEVIEWV_STUDENTAS5
[说明]公司IT部门决定开发一个计算机管理系统以记录期刊的传阅情况期刊在公司内部传阅员工可以要求加入传阅队列图书室登记公司收到的期刊交给名单中的第一名员工员工应在三个工作日内完成阅读员工阅读完毕后通知系统系统提醒下一位阅读者取书下一个员工必须确认已收到期刊当传阅名单中下一位员工出差在外时将无法进行传阅此时将期刊传给再下一位而将该员工作标记再次传递此书时优先考虑该员工最后一位员工阅读完毕后将期刊交还图书室以便共用系统能在员工忘记传递期刊时发出提醒信息系统详细记录期刊传阅情况当员工阅读完后通知系统系统记录该员工员工号及日期并在备注栏注明是传出同样当员工收到期刊后给系统确认系统记录该员工员工号及日期并在备注栏注明是收到公司的员工都有一个唯一的员工号公司订阅了多种期刊为每一本期刊有唯一期刊流水号产生一份传阅名单并详细记录传阅情况员工的出差情况存储在系统主机中该系统采用面向对象方法开发系统中的类以及类之间的关系用UML类图表示图1-1是该系统的类图的一部分图1-2描述了成功传递期刊的序列图[图1-1][图1-2]1.根据题意给出类传阅记录的主要属性
【说明】下面是一个用C编写的快速排序算法为了避免最坏情况取基准记录pivot时采用从leftright和mid=[left+right/2]中取中间值并交换到right位置的办法数组a存放待排序的一组记录数据类型为Tleft和right是待排序子区间的最左端点和最右端点voidquicksortinta[]intleftintrightinttemp;ifleft<righthatpivot=median3aleftright;//三者取中子程序inti=leftj=right-1;for;;whilei<j&&a[i]<pivoti++;whilei<j&&pivot<a[j]j--;ifi<jtemp=a[i];a[j]=a[i];a[i]=temp;i++;j--;elsebreak;ifa[i]>pivottemp=a[i];a[i]=a[right];a[right]=temp;quicksort1;//递归排序左子区间quieksortai+1right;//递归排序右子区间voidmedian3inta[]intleftintrightintmid=2;intk=left;ifa[mid]<a[k]k=mid;ifa[high]<a[k]k=high;//选最小记录inttemp=a[k];a[k]=a[left];a[left]=temp;//最小者交换到leftifa[mid]<a[right]temp=a[mid];a[mid]=a[right];a[right]=temp;消去第二个递归调用quicksortai+1right采用循环的办法:voidquicksortinta[]intleftintrightinttemp;intij;3intpivot=median3aleftright;//三者取中子程序i=left;j=righi-1;for;;whilei<j&&a[i]<pivoti++;whilei<j&&pivot<a[j]j--;ifi<jtemp=a[i];a[j];=a[i];a[i]=temp;i++;j--;elsebreak;ifa[i]>pivot4;a[i]=pivot;quicksoft5;//递归排序左子区间left=i+1;
【说明】1流程图描述某大型商店商品销售的数据处理流程2商店设有若干柜台同一种商品可能在几个柜台上销售各柜台每天提供一组日销售数据其格式如下日期柜台号商品代码销售数量商品代码销售数量3数据处理系统每日产生一份反映各柜台当日销售金额和商店日销售金额的日销售金额报告必要时还产生一份商品请购报告给出那些低于最低库存量的商品代码商品名称最低库存量和实际库存量处理过程中产生存档的日销售文件和临时工作文件日销售量文件和旧销售金额文件4系统中所用到的数据均来自数据文件5流程图中的商品库存文件的记录已按关键字商品代码排序1.【问题1】①指出商品库存文件的记录中必须包括哪些数据项②分别指出在日销售文件日销售量文件和日销售金额文件的记录中至少应包括哪些数据项同时不产生数据冗余③错误清单可能指出哪些错误
[说明]在进行文法分析的时候通常需要检测一个单词是否在我们的单词列表里为了提高查找和定位的速度通常都要画出与单词列表所对应的单词查找树程序构造一棵二叉排序树每个节点存储一个单词按字典序列较小的在左子树较大的在右子树函数中使用的预定义符号如下typedefstructTreeNode/*二叉排序树节点*/char*word;structTreeNode*left*right;BNODE;[函数]intgetWordFILE*fptchar*word/*从文件fpt中读取单词到word中到达文件结束时返回0*/charc;c=fgetcfpt;ifc==EOFreturn0;/*跳过单词间的非字母字符*/while!tolowerc>=’a’&&tolowerc=’a’&&tolowerc0ptr->right:ptr->left;ptr=BNODE*mallocsizeofptr;ptr->left=ptr->right=NULL;ptr->word=char*mallocstrlenword+1;strcpyptr->wordword;ifp==NULL4;elseifcompres>0p->right=ptr;elsep->left=ptr;intmainFILE*fpt;charword[40];BNODE*root=NULL;iffpt=fopentext.inr==NULLprintf不能打开文件text.in!/n;return1;whilegetWordfptword==1BTree5;fclosefpt;return0;
[说明]研究生招生系统旨在用计算机对学校的研究生招生事务进行管理研究生招生可分为报名阶段考试阶段和录取阶段招生报考前招生处要进行考前准备工作如统计招生导师考试科目以及制定报考专业标准代码等招生导师信息包括导师的姓名性别年龄出生年月所从事专业和研究方向以及所在系别考试科目包含科目代码科目的名称以及报考本科目的考试人数在报名阶段考生向招生处提交报名数据表研究生系统根据考生的报考数据确定考生准考生号并通知考生考试日期在考试阶段考试结束后考生成绩录入研究生招生系统考生可以从研究生招生系统中获取自己的考试成绩在录取阶段研究生招生系统根据考生的报考数据考试成绩外校调剂考生信息以及往年保留资格记录文件确定录取数据并形成录取文件系统统计并记录相关招生信息以供查询对被录取的考生发放录取通知书对需要保留资格的考生记录其信息以供下年度招生使用招生处可以从研究生招生系统中获得录取数据和招生情况的统计信息以供咨询数据流图11-1为研究生招生系统顶层图数据流图11-2为研究生招生系统第0层DFD图数据流图11-3为加工3的细化图[数据流图11-1][数据流图11-2][数据流图11-3]1.[问题1]数据流图11-2中有3条数据流请根据说明中的术语给出这三条数据流名称并指出起点和终点
热门题库
更多
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术
有线传输专业技术