计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
软件设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
软件设计应用技术
软件设计基础知识
软件设计应用技术
问答题阅读以下说明和图,根据要求回答问题1~问题4。[说明]某电子商务公司开办了在线电子商务网站,主要为各注册的商家提供在线商品销售功能。为更好地吸引用户,该公司计划为注册的商家提供商品(Commodity)促销(Promotion)功能。商品的分类(Category)不同,促销的方式和内容也会有所不同。注册商家可发布促销信息。商家首先要在自己所销售商品的分类中,选择促销涉及的某一具体分类,然后选出该分类的一个或多个商品(一种商品仅属于一种分类),接着制定出一个比较优惠的折扣政策和促销活动的优惠时间,最后由系统生成促销信息并将该促销信息公布在网站上。商家发布促销信息后,网站的注册用户便可通过网站购买促销商品。用户可选择参与某一个促销(Promotion)活动,并选择具体的促销商品(Commodity),输入购买数量等购买信息。系统生成相应的一份促销订单(POrder)。只要用户在优惠活动的时间范围内,通过网站提供的在线支付系统,确认在线支付该促销订单(即完成支付),就可以优惠的价格完成商品的购买活动,否则该促销订单失效。系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,如图6-18所示是该系统类图中的一部分;系统的动态行为采用UML序列图表示,如图6-19所示是发布促销的序列图。
进入题库练习
问答题创建S表时,SNo使用CHAR(5)并且唯一,SName使用CHAR(30),Status使用CHAR(8),City使用CHAR(20)。请在下列用于创建表S的SQL语句空缺处填入正确的内容。 CREATE TABLE S(SNo CHAR(5), SName CHAR(30), Status CHAR(8), City CHAR(20), ______;
进入题库练习
问答题【说明】某考务处理系统主要功能是考生管理和成绩管理:1.对考生送来的报名表进行检查。2.对合格的报名表编好准考证号码后将准考证送给考生,将汇总后的考生名单送给阅卷站。3.对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。4.填写考生通知单(内容包含该考生的准考证号、姓名、各课程成绩及最终合格/不合格标志),送给考生。5.根据考生信息及考试成绩,按地区、年龄、文化程度和职业进行成绩分类统计及试题难度分析,产生统计分析表。考务处理系统的顶层图如图1-1所示,第0层图如图1—2所示,加工2子图如图1-3所示。【数据流图】1.【问题1】指出哪张图的哪些文件可以不必画出。
进入题库练习
问答题试题六(共15分)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。采用责任链设计模式(ChainofResponsibility)对上述过程进行设计后得到的类图如图6-1所示。图6-1设计类图
进入题库练习
问答题阅读下列程序和控制流图,将应填入{{U}}(n){{/U}}的字句。【程序】下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。intGetMax(intn,intdatalist[]){intk=0;for(intj=1;j<n;j++)if(datalist[j]>datalist[k])k=j;returnk;}【控制流图】
进入题库练习
问答题[说明]对二叉树进行遍历是二叉树的一个基本运算。遍历是指按某种策略访问二叉树的每个节点,且每个节点仅访问一次的过程。函数InOrder()借助栈实现二叉树的非递归中序遍历运算。设二叉树采用二叉链表存储,节点类型定义如下:typedefstructBtNode{ElemTypedata;/*节点的数据域,ElemType的具体定义省略*/structBtNode*lchild,*rchild;/*节点的左、右孩子指针域*/}BtNode,*BTree;在函数InOrder()中,用栈暂存二叉树中各个节点的指针,并将栈表示为不含头节点的单向链表(简称链栈),其节点类型定义如下:typedefstructStNode{/*链栈的节点类型*/BTreeelem;/*栈中的元素是指向二叉链表节点的指针*/structStNode*link;}StNode;假设从栈顶到栈底的元素为en,en-1,…,e1,则不含头节点的链栈示意图如下图所示。[C程序]intInOrder(BTreeroot)/*实现二叉树的非递归中序遍历*/{BTreeptr;/*ptr用于指向二叉树中的节点*/StNode*q;/*q暂存链栈中新创建或待删除的节点指针*/StNode*stacktop=NULL;/*初始化空栈的栈顶指针stacktop*/ptr=root;/*ptr指向二叉树的根节点*/while(______||stacktop!=NULL){while(ptr!=NULL){q=(StNode*)malloc(sizeof(StNode));if(q==NULL)return-1;q→elem=ptr;______;stacktop=q;/*stacktop指向新的栈顶*/ptr=______;/*进入左子树*/}q=stacktop;______;/*栈顶元素出栈*/visit(q);/*visit是访问节点的函数,其具体定义省略*/ptr=______;/*进入右子树*/free(q);/*释放原栈顶元素的节点空间*/}return0;}/*InOrder*/
进入题库练习
问答题【说明】下面是一个用C编写的快速排序算法。为了避免最坏情况,取基准记录pivot时,采用从left、right和mid=[(left+right)/2]中取中间值,并交换到right位置的办法。数组a存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。 void quicksort (int a[], int left, int right) int temp; if (left<right) hat pivot = median3 (a, left, right); //三者取中子程序 int i = left, j = right-1; for(;;) while (i <j while (i <j if(i<j) temp = a[i]; a[j] = a[i]; a[i] = temp; i++; j--; else break; if (a[i] > pivot) temp = a[i]; a[i] = a[right]; a[right] = temp; quicksort( (1) ); //递归排序左子区间 quieksort(a,i+1 ,right); //递归排序右子区间 void median3 (int a[], int left, int right) int mid= (2) ; int k = left; if(a[mid] < a[k])k = mid; if(a[high] < a[k]) k = high; //选最小记录 int temp = a[k]; a[k] = a[left]; a[left] = temp; //最小者交换到 left if(a[mid] < a[right]) temp=a[mid]; a[mid]=a[right]; a[right]=temp;消去第二个递归调用 quicksort (a,i+1,right)。 采用循环的办法:void quicksort (int a[], int left, int right) int temp; int i,j; (3) int pivot = median3(a, left, right); //三者取中子程序 i = left; j = righi-1; for (;; ) while (i<j while (i<j if(i <j) temp = a[i]; a[j]; = a[i]; a[i]=temp; i++; j--; else break; if(a[i]>pivot) (4) ;a[i]=pivot; quicksoft ( (5) ); //递归排序左子区间 left = i+1;
进入题库练习
问答题[说明]使用MFC的CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的Socket,用于监听客户应用程序的连接请求,然后再创建新的Socket来完成连接。从客户和服务器两端读取该连接,直到一个需要处理的报文到来为止。以下C++程序将封装这些功能,这样所有应用程序需要完成的只是创建一个Socket连接,然后处理到来的报文。这将包括一个新的服务器Socket类、新客户端Socket类和新的报文队列类。创建新的服务器Socket类程序的框架如下。第1个函数ListenEx()用于通知Socket开始监听客户应用程序。第2个函数OnAccept()在接收到连接请求时被调用。在其中创建新的Socket,并立刻设置它开始从客户应用程序读取报文,这些是通过调用第3个函数RecvThread()来完成的,该函数位于它自己的线程中。[C++程序][ListenEX()函数]
进入题库练习
问答题[说明]已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。采用责任链设计模式(ChainofResponsibility)对上述过程进行设计后得到的类图如图3-28所示。[Java代码]
进入题库练习
问答题阅读下列某网上订书管理系统的说明和E-R图,根据要求回答问题1~问题3。[说明]某网上订书系统的E-R图(已消除了不必要的冗余)如图6-17所示(图中没有标出主码)。图中实体的说明如表6-10所示,相关属性说明如表6-11所示。{{B}}表6-10某网上订书系统实体说明    表6-11某网上订书系统相关属性说明{{/B}}{{B}}实体{{/B}}{{B}}说明{{/B}}{{B}}主要属性{{/B}}{{B}}说明{{/B}}Books书店内的书qty_in_stock图书库存量Customers与书店有业务的顾客year_published出版日期Orders顾客向书店下的购书单ordernum购书单编号cid顾客编号bid唯一标识每种图书的编码cardnum顾客信用卡号码orderdate填购书单日期qty订购某种图书的数量ship_date发货日期一个顾客可以在同一天填写多张购书单,每张购书单上可填写多种图书,每种图书可以订购多本,bid相同的图书在同一张购书单上不能出现多次。注:为简化起见,不考虑信用卡号码泄漏所带来的安全性等问题。
进入题库练习
问答题【说明】[程序6说明]单源最短路径的分支限界算法。const int MAXNUM=29999;#include<iostream>#include<vector>#include<algorithm>#include<functional>using namespace std;template <class VertexType,class EdgeType>class MinNode //程序中使用的最小化堆的结点说明friend class Graph<VertexType,EdgeType>public:MinNode (int nl, EdgeType length1) VexNum=nl;length=length1;bool operator>(const MinNode<VertexType,EdgeType> //记录源点序号,序号数组p及distance下标相一致。源点为初始扩展顶点 EdgeType length; //记录源点到本顶点的当前最短路径的长度,源点到自身的长度为0template<class VertexType,classEdgeType>void Graph<VertexType,EdgeType>:: shortestpath(VertexType start) int j,k,source;//source 记录源点的序号。 EdgeType*distance= (2) ; int*p=new int[MaxNumVertex]; vector<MinNode<VertexType,EdgeType> >H; for(source=0;source<MaxNumVertex;source++) if(NodeList[source]==start)break; if (source>=MaxNumVertex)cout<<”This is error!”<<end1;return; MinNode<VertexType,Edge Type> (3) ; for(k=0;k<MaxNumVertex;k++) distance[k]:MAXXUM; //记录源点到本顶点k的最终的最短路径的长度 p[k]=source; //记录最短路径上的本顶点的直接前驱顶点的序号 distance[source]=0;p[source]=-1;//m 是源点,前一顶点不存在 vector<MinNode<VertexType, EdgeType>>::iterator q; while(1) for(j=0;j<MaxNumVertex;j++) if((AdjMatrix[E.VexNum* MaxNumVertex+j]<MAXNUM) &&( (4) <distance[j])) distance[j]=E.length+AdjMatrix[E.VexNum* MaxNumVertex+j]; p[j]=E. VexNum; //记录顶点j的前一顶点 MinNode<VertexType, EdgeType> (5) ; H.push_ back(N); push_heap(H. begin(),H.end(),greater<MinNode<VertexType, EdgeType>>()); if(H.empty()=true)break; //若优先队列为空,那么算法结束 else pop_ heap(H.begin(),H. end(),greater<MinNode<VertexType, EdgeType>>()); q=H.end()-1; //从最小化堆中取路径最短的顶点 E=*q; H.pop_ back(); //删除从最小化堆中“挤”出的顶点 //end while for(k=0;k<MaxNumVertex;k++) cout<<"Shorstest path from vertex"<<k<<"is"<<distance[k]<<end1; j=k;cout<<"All vertices are:"; while(j!=source)cout<<j<<"->";j=p[j]; cout<<source<<”.”<<end1; //打印顶点的最短路径长度和至源点的最短路径上经过的顶点序列 return;
进入题库练习
问答题【问题1】 根据上述说明和实体-联系图,得到该住房管理系统的关系模式如下所示,请补充住宿关系。 房间(房间号,收费标准,床位数目) 客人(身份证号,姓名,性别,出生日期,地址) 住宿({{U}} (1) {{/U}},入住日期,退房日期,预付款额)
进入题库练习
问答题【说明】下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以在文本区已有的文本基础上追加显示10条"WelcometoChina"信息,并且文本区由滚动条控制文本的上下滚动。程序运行结果如图4所示。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;/*<appletcode="ex5_6.class"width=800height=400></applet>*/publicclassex5_6extendsJApplet{JButtonjb=newJButton("AddText");JTextPanejtp=newJTextPane();publicvoidinit(){jb.addActionListener(newActionListener()){publicvoidactionPerformed(ActionEvente){for(inti=1;i<10;i++){{U}}(1){{/U}}+"WelcometoChina!/n";}};Containercp={{U}}(2){{/U}};cp.add(newJScrollPane(jtp));cp.add({{U}}(3){{/U}});}publicstaticvoidmain(String[]args){ex5_6obj5_6=newex5_6();Stringstr=obj5_6.getClass().toString();if(str.indexOf("class")!=-1)str=str.Substring(6);JFramefrm=newJFrame(str);frm.addWindowListener(new{{U}}(4){{/U}}{publicvoidwindowClosing(WindowEventwe){System.exit(0);}});{{U}}(5){{/U}}.add(ex5_6);frm.setSize(300,400);frm.setVisble(true);}}ex5_6.htm|<HTML><HEAD><TITLE>ex5_6</TITLE></HEAD><BODY><appletcode="ex5_6.class"Width=800height=400></applet></BODY></HTML>
进入题库练习
问答题[函数5] int DeleteNode(Bitree *r,int e){ Bitree p=* r,pp,s,c; while({{U}} (1) {{/U}}){/ * 从树根结点出发查找键值为e的结点 * / pp=p; if(e<p->data) p=p->Lchild; else p=p->Rchild } if(! p)return-1;/ * 查找失败 * / if(p->Lchild && p->Rchild){/ * 处理情况③ * / s={{U}} (2) {{/U}};pp=p; while({{U}} (3) {{/U}}){pp=s;s=s->Rchild;} p->dara=s->data;P=s; } / * 处理情况①、② * / if({{U}} (4) {{/U}})c=p->Lchild; else c=p->Rchild if(p==*r) *r=c; else if({{U}} (5) {{/U}})pp->Lchild=c; else pp->Rchild=c; free(p); return 0; }
进入题库练习
问答题根据E-R图中给出的词汇,按照“有关模式名(属性,属性,…)”的格式,将此E-R图转换为3个关系模式,指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。
进入题库练习
问答题[问题1] 试将[算法2-1)和[算法2-2]中(1)~(7)处补充完整。 [问题2] 从下面的选项中选择相应的判断逻辑填补[算法2-2]中的“判断条件1”至“判断条件 3”。注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。 (a)字符是括号(b)字符是左括号(c)字符是右括号(d)栈空(e)栈不空 (f)栈顶元素表示的是与当前字符匹配的左括号 (g)栈顶元素表示的是与当前字符匹配的右括号
进入题库练习
问答题【问题4】 加工1(录入比对处理)除能够检查出初录数据和复录数据不一致外,还应当检测出下列哪些错误。 ①输入的无效字符 ②输入的半个汉字 ③显示器无法显示 ④初录员重复录入同一账户 ⑤汇总数据与会计账目不符 ⑥打印机卡纸
进入题库练习
问答题【程序说明】 定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边形顶点数、各顶点的纵横坐标、当多边形顶点数为0时,链表创建结束。(3)编写一个函数disp,删除链表中的所有结点。需要注意的是:要先释放结点数据内存,再删除结点,如果在释放结点数据内存单元之前删除结点,则无法找到结点数据内存单元的地址,也就无法释放数据的内存单元。 【程序】 #include "iomanip.h" struct polygon { int n; int* x; int *y; polygon * next; }; void Push(polygon * & head,int n) { polygon * newNOde=newpolygon; newNOde=newpo,Ygon; newNOde->next={{U}} (1) {{/U}}; newNOde->x=new int [n]; newNOde->y=new int[n]; newNOde->n={{U}} (2) {{/U}}; for(int i=0;i<={{U}} (3) {{/U}};i++){ cout<<“请输入多边形各顶点x、y坐标,坐标值之间用空格分隔:”; cin>>newNOde->x[i]>>newNOde->y[i]; } {{U}} (4) {{/U}}=head; //在head前不需要额外的。 head=newNOde; } polygon * create() { polygon * head=NULL; polygon * tail; int n; cout<<“请输入多边形顶点的个数(顶点个数为0时结束):”; cin>>n; if(n==0)return{{U}} (5) {{/U}}; Push(head,{{U}} (6) {{/U}}; tail=head; cout<<“请输入多边形顶点的个数(顶点个数为0时结束):”; cin>>n; while(n!=0) { Push(tail->next,{{U}} (7) {{/U}}; //在tail->next增加结点 tail =tail->next; //advance tail to point to last node cout<<“请输入多边形顶点的个数(顶点个数为0时结束):”; cin>>n; } return head; } void disp(polygon * head) { int i,No=1; cout<<setw(10)<<"x" <<setw(6)<<"y"<<end1; while(head!=NULL) { cout<<“第” <<No<<“结点:” <<end1; for(i=0;i<=head->n-1;i++) cout<<setw(10)<<head- >x[i]<<setw(6)<<head- >y[i]<<endl; {{U}} (8) {{/U}}; head={{U}} (9) {{/U}}; }//Match while statement } void del(polygon * head) { polygon * p; while(head!=NULL) { p={{U}} (10) {{/U}}; head=head->next; delete p->x; delete P->y; deletep; }//Match while statement } void main() { polygon * head; head=create(); disp(head); del(head); }
进入题库练习
问答题阅读以下技术说明,根据要求回答下列问题。[说明]某汽车停车场欲建立一个信息系统,已经调查到的需求如下。1.在停车场的入口和出口分别安装一个自动栏杆、一台停车卡打印机、一台读卡器和一个车辆通过传感器等,其示意图见图8-18。2.当汽车到达入口时,驾驶员按下停车卡打印机的按钮获取停车卡。当驾驶员拿走停车卡后,系统命令栏杆自动抬起;汽车通过入口后,入口处的传感器通知系统发出命令,栏杆自动放下。3.在停车场内分布着若干个付款机器。驾驶员将在入口处获取的停车卡插入付款机器,并缴纳停车费。付清停车费之后,将获得一张出场卡,用于离开停车场。4.当汽车到达出口时,驾驶员将出场卡插入出口处的读卡器。如果这张卡是有效的,系统命令栏杆自动抬起;汽车通过出口后,出口传感器通知系统发出命令,栏杆自动放下。若这张卡是无效的,系统不发出栏杆抬起命令而发出告警信号。5.系统自动记录停车场内空闲的停车位的数量。若停车场当前没有车位,系统将在入口处显示“车位已满”信息。这时,停车卡打印机将不再出卡,只允许场内汽车出场。根据上述描述,采用面向对象方法对其进行分析与设计,得到如表8-8所示的类/用例/状态列表,如图8-19所示的用例图,如图8-20所示的初始类图以及如图8-21所示的描述入口自动栏杆行为的UML状态图。表8-8类/用例/状态列表用户名说明类名说明状态名说明Carentry汽车进入停车场CentralComputer停车场信息系统Idle空闲状态,汽车可以进入停车场Carexit汽车离开停车场PaymentMachine付款机器Disable没有车位ReportStatistics记录停车场的相关信息CarPark停车场,保存车位信息AwaitEntry等待汽车进入Barrier自动护栏AwaitTicketTake等待打印停车卡Carentrywhenfull没有车位时,汽车请求进入停车场EntryBarrier入口的护栏AwaitEnable等待停车场内有空闲车位ExitBarrier出口的护栏
进入题库练习
问答题[说明]在数据链路层扩展局域网时使用网桥。网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能:当网桥收到一个帧时,并不是向所有的端口转发此帧,而是先检查此帧的目的MAC地址,然后确认将该帧转发到哪个端口。最简单的网桥有两个端口(即接口)。网桥的每个端口与一个网段相连。每当收到一个帧时,通过查找转发表将收到的帧转发。当一个网桥刚刚连接到局域网上时,其转发表是空的,此时若收到一个帧,按照以下算法处理和建立自己的转发表:(1)从端口x收到的无差错的帧(如有差错即丢弃),在转发表中查找目的站MAC地址;(2)如有,则查找出到此MAC地址应走的端口d,然后进行(3),否则转到(5);(3)如到这个MAC地址去的端口d=x,则丢弃此帧(因为这表示不需要经网桥进行转发),否则从端口d转发此帧;(4)转到(6);(5)向网桥除x以外的所有端口转发此帧(这样做可以保证找到目的站);(6)如源站不在转发表中,则将源站MAC地址加入转发表,登记该帧进入网桥的端口号,设置计时器,然后转到(8),如源站在转发表中,则执行(7);(7)更新计时器;(8)等待新的数据帧,转到(1)。这时,网桥就在转发表中登记以下三个信息:站地址——登记收到帧的源MAC地址、端口——登记收到的帧进入该网桥的端口号、时间——登记收到的帧进入该网桥的时间。现有五个工作站分别连接在三个局域网上,并且用两个网桥连接起来,如图3-1。每一个网桥的两个端口号都标明在图上。在一开始,两个网桥中的转发表都是空的。以后有以下各站向其他的站发送了数据帧,即H1发送给H5,H3发送给H2,H4发送给H3,H2发送给H1。[图3-1]
进入题库练习