问答题[问题3]现需了解十大最畅销(借出次数最多)图书或唱碟。为此,引入TenPopulate类以存储所有十大畅销图书或CD的名称及其被借出的次数。下列顺序图描述了某类图书或唱碟被借出后成为十大畅销图书或唱碟时对象间的消息交互。系统在一次运行过程中,应有{{U}}(1){{/U}}个TenPopulate实例对象最合适,一个TenPopulate类实例对象最多需要和{{U}}(2){{/U}}个Items_on_loan实例对象交互。
问答题【说明】 ①定义类Table的私有数据成员x和y,分别用于表示九九表中的两个乘数(x*y),它们都是int型的数据。 ②完成类Table的成员函数print()的定义,该函数以“x*y=z”的格式打印出九九表中的一个乘法算式,请使用格式化输出函数printf实现。 ③完成类Table9的成员函数print()的定义,该函数调用基类Table的print()函数,将九九表输出到屏幕。 ④补充主函数,在屏幕上输出九九表,以便测试所定义的类的正确性。 源程序文件test8_3.cpp清单如下: #include <iostream, h > #include < stdio, h > class Table (1) int z; public: void print (int x,int y,int z); ; void Table::print (int x,int y,int z) (2) Class Table9:public Table public: void print(); ; void Table9::print() (3) int x,y,z; for(i=1;i<10;i++) for(j=1;j<i+1;j++) x=i; y=j; z=i*j; Table::print(y,x,z); printf("/n"); main() //* *4* * return 0;
问答题阅读下列说明和图,回答问题1至问题2,[说明]移动电话是传统固定式电话的延伸,通过无线电网络可以与千里之外的朋友沟通而不受电话线的束缚。现在的移动电话功能更全面,除了作为电话使用外,还可以发送短信,可以管理电话簿,可以下载铃声、图案。手机由键盘、显示屏以及移动通信设备组成,移动通信设备负责发送和接收信号,与基站进行连线。打电话的流程如下:(1)用户拨电话号码,每按下一个数字键显示屏上显示相应数字;(2)按OK键进行连线,显示屏上显示“连线中…”,请求连接基站,基站通过移动电话网络连接到对方手机,若有误则返回相关信息;(3)接通后,显示屏显示“连线成功”;(4)打电话结束后,按Cancel送出断线信号,通知移动电话基站断线,基站切断连接,显示屏显示“断线成功”。该系统采用面向对象方法开发,系统中的类以及类之间的关系用UML类图表示,图3-1是该系统的用例图,图3-2是该系统的类图,图3-3描述了打电话(包括断开)的序列图。[图3-1][图3-2][图3-3]
问答题【算法说明】下面是一段插入排序的程序,将R[k+1]插入到R[1...k]的适当位置。R[0]=R[k+1];j=k;while(R[j]>R[0])R[j+1]=R[j];j--;R[j+1]=R[0];【流程图】【测试用例设计】(while循环次数为0、1、2次)表4-1测试用例表循环次数输入数据预期结果覆盖路径jR[i-2]R[i-1]R[i]R[i+1]R[0]jR[i-2]R[i-1]R[i]R[i+1]约束路径0i--122i--12(4)i--111i--11=①③1i-1322i-1-123(7)①②③i-2322i-1-(8)2(9)>=①②③2i13422i-21234>>(5)i23422i-22234>>=(6)1.【问题1】指出算法的流程图中(1)~(3)处的内容。
问答题试题五(共15分) 阅读下列说明和C函数代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 对二叉树进行遍历是二叉树的一个基本运算。遍历是指按某种策略访问二叉树的每个结点,且每个结点仅访问一次的过程。函数InOrder()借助栈实现二叉树的非递归中序遍历运算。 设二叉树采用二叉链表存储,结点类型定义如下: typedefstructBtNode{ ElemTypedata;/*结点的数据域,ElemType的具体定义省略*/ structBtNode*lchild,*rchild;/*结点的左、右孩子指针域*/ }BtNode,*BTree; 在函数InOrder()中,用栈暂存二叉树中各个结点的指针,并将栈表示为不含头结点 的单向链表(简称链栈),其结点类型定义如下: typedefstructStNode{/*链栈的结点类型*/ BTreeelem;/*栈中的元素是指向二叉链表结点的指针*/ structStNode*link; }StNode; 假设从栈顶到栈底的元素为en、en-1、…、e1,则不含头结点的链栈示意图如图5-1所示。【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*/
问答题【说明】本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。 程序用一棵有序二叉树存储这些单词及其出现的次数,边读入边建立,然后中序遍历该二叉树,将遍历经过的二叉树上的结点的内容输出。 #include <stdio.h> #include <malloc.h> #include <ctype.h> #include <string.h> #define INF "text.in" #define OUTF "wotd.out" typedef struct treenode char *word; int count; struct treenode *left,*right; BNODE int getword (FILE *fpt,char *word) char c; c=fgetc (fpt); if ( c=EOF) return 0; while(!(tolower(c)>='a' void binary_tree(BNODE **t,char *word) BNODE *ptr,*p;int compres; P=NULL; (1) ; while (ptr) /*寻找插入位置*/ compres=strcmp (word, (2) );/*保存当前比较结果*/ if (!compres) (3) ;return; else (4) ; ptr=compres>0? ptr->right:ptr->left; ptr= (BNODE*) malloc (sizeof (BNODE)) ; ptr->left = ptr->right = NULL; ptr->word= (char*) malloc (strlen (word) +1) ; strcpy (ptr->word, word); ptr->count - 1; if (p==NULL) (5) ; else if (compres > 0) p->right = ptr; else p->left = ptr; void midorder (FILE **fpt, BNODE *t) if (t==NULL) return; midorder (fpt, t->left); fprintf (fpt, "%s %d/n", t->word, t->count) midorder (fpt, t->right); void main() FILE *fpt; char word[40]; BNODE *root=NULL; if ((fpt=fopen (INF,"r")) ==NULL) printf ("Can't open file %s/n", INF ) return; while (getword (fpt, word) ==1 ) binary_tree ( fclose (fpt); fpt = fopen (OUTF, "w"); if (fpt==NULL) printf ("Can't open file %s/n", OUTF) return; midorder (fpt, root); fclose(fpt);
问答题阅读下列说明和图,回答问题1至问题3。【说明】某学校的教学系统描述如下。学生信息包括:学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、入学年份(Syear)、主修专业(Smajor),其中学号是入学时唯一编定的。教师信息包括:教工号(Tno)、姓名(Tname)、性别(Tsex)、年龄(Tage)、职称(Ttitle),其中教工号是唯一编定的。课程信息包括:课程号(Cno)、课程名称(Cname)、学时(Cperiod)、学分(Ccredit),其中课程号是唯一编定的。每个专业每个年级只有一个班级,这样班级就可用入学年份标识。每位教师只教授特定的一门的课程,每门课程可以有多个教师教授,各位老师的上课地点及上课时间有所不同。注意:一门课程至少有一位教师教授,否则这门课程就视为不存在。每位学生可以同时选修多门不同的课程,一门课程至少要有10位学生选修,否则就取消这门课程的开设。注意:选修课程时要指定任课教师,不能重复选修同一门课程。课程结束后,任课教师给选修该课程的学生一个成绩(Grade)。注意:教师不能给没有选修他所教授课程的学生成绩,即使选修了其他教师教授的同一门课也不行。如图9-11所示是经分析得到的E-R图。
问答题【说明】已知某企业欲开发一家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器如下图(a)所示。该遥控器共有4今按钮,编号分别是0至3,按钮0和2能够遥控打开电器1和电器2,按钮1和3则能遥控关闭电器1和电器2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如下图(b)所示。图(b)中,类RomoteController的方法onPrcssButton(intbutton)表示当遥控器按键按下时调用的方法,参数为按键的编号;command接口中on和off方法分别用于控制电器的开与关;Light中turnLight(intdegree)方法用于调整电灯灯光的强弱,参数degree值为0时表示关灯,值为100时表示开灯并且将灯光亮度调整到最大;TV中sctChannel(intchannel)方法表示设置电视播放的频道,参数channel值为0时表示关闭电视,为1时表示开机并将频道切换为第1频道。【Java代码】classLight{//电灯类publicvoidtrunLight(intdegree){//调整灯光亮度,0表示关灯,100表示亮度最大}};classTV{//电视机类publicvoidsetChannel(intchannel){//0表示关机,1表示开机并切换到1频道}};interfaceCommand{//抽象命令类voidon();voidoff();};classRemoteController{//遥控器类protectedCommand[]commands=newCommand[4];//遥控器有4个按钮,按照编号分别对应4个Command对象publicvoidonPressButton(intbutton){//按钮被按下时执行命令对象中的命令if(button%2==0)commands[button].on();elsecommands[button].off();}publicvoidsetCommand(intbutton,Commandcommand){{{U}}(1){{/U}}=command;//设置每个按钮对应的命令对象}};classLightCommandimplementsCommand{//电灯命令类protectedLightlight;//指向要控制的电灯对象publicvoidon(){light.trunLight(100););publicvoidoff(){light.{{U}}(2){{/U}};);publicLightCommand(Lightlight){this.light=light;);};classTVCommandimplementsCommand{//电视机命令类protectedTvtv;//指向要控制的电视机对象publicvoidon(){tv.{{U}}(3){{/U}};};publicvoidoff(){tv.setChanne1(0);};publicTVCommand(TVtv){this.tv=tv;};};publicclassrs{publicstaticvoidmain(String[]args){Lightlight=newLight();TVtv=newTV();//创建电灯和电视对象LightCommandlightCommand=newLightCommand(light);TVCommandtvCommand=newTVCommand(tv);RemoteControllerremoteController=newRemoteController();//设置按钮和命令对象remoteController.setCommand(0,{{U}}(4){{/U}});...//此处省略设置按钮1、按钮2和按钮3的命令对象代码}}本题中,应用命令模式能够有效让类{{U}}(5){{/U}}和类{{U}}(6){{/U}}、类{{U}}(7){{/U}}之间的耦合性降至最小。
问答题设有m台完全相同的机器运行n个独立的任务,运行任务i所需要的时间为ti,要求确定一个调度方案是的完成所有任务所需要的时间最短。 假设任务已经按照其运行时间从大到小排序,算法基于最长运行时间作业优先的策略;按顺序先把每个1务分配到一台机器上,然后将剩余的任务一次放入最先空闲的机器。 [C代码] 下面是算法的C语言实现。 (1)常量和变量说明 m:机器数。 n:任务数。 t[]:输入数组,长度为n,其中每个元素表示任务的运行时间,下标从0开始。 s[][]:二维数组,长度为m*n,下标从0开始,其中元素s[i][j]表示机器i运行的任务j的编号。 d[]:数组,长度为m其中元素d[i]表示机器i的运行时间,下标从0开始。 count[]:数组,长度为m,下标从0开始,其中元素count[i]表示机器i运行的任务数。 i:循环变量。 j:循环变量。 k:临时变量。 max:完成所有任务的时间。 min:临时变量。 (2)函数schedule void schedule() int i,j,k max=0; for(i=0;i<m;i++) d[i]=0; for(j=0;j<n;j++) s[i][j]=0; for(i=0;i<m;i++) //分配前m个任务 s[i][0]=i; ______; count[i]=1; for(______;i<n;i++) //分配后n-m个任务 int min=d[0]; k=0; for(j=1;j<n;j++) //确定空闲机器 if(rain>d[j]) min=d[j]; k=j; //机器k空闲 ______; count[k]=count[k]+1; d[k]=d[k]+t[i]; for(i=0;i<m;i++) //确定完成所有任务所需要的时间 if(______) max=d[i];
问答题【程序说明】
本程序先从文件读人各考生的准考证号(设为整型数)及成绩,并将其存放在一棵检索二叉树上,二叉树结点的健值是成绩,每个结点带一链表,链表结点存放取得该成绩的考生的准考证号。然后,程序按中序遍历检索二叉树,从高分到低分输出结果,使每行输出成绩及其取得成绩的考生的准考证号。
【程序】
#include < stdio. h >
typedef struet idnode {
int id;
struct idnode * next;
} ldNode;
typedef struct marknode I
int mark;
ldNode * head;
struct marknode * left, * right;
} MarkNode;
char fname [ ] = "sp07.dat";
main( )
{ int id, mark;
MarkNode * root = null;
FILE * fp = fopen(fname," r" );
if(!fp) {
printf("file%s open error, /n" , fname);
exit(0);
}
while (!feop(fp)) {
fscanf(fp," %d%d",
btree(
}
fclose(fp);
print(root);
}
btree(MarkNod * * mpptr, int id, int mark)
{ ldNode * ip;
MarkNode *mp = * mpptr;
if{{U}} (1) {{/U}}{
if (mark==p->mark) addldNODE ({{U}} (2) {{/U}}, id);
else if ( mark >mp -> mark) btree (
else btree(
} else
Imp = ( marknode * ) malloc(sizeo (marknode) );
mp -> mark = mark;
mp -> left =mp -> right = NULL;
{{U}}(3) {{/U}}
addldNode(
{{U}}(4) {{/U}};
}
}
addldNode(ldNode * * ipp, int id)
{ ldNode * ip = * ipp;
if ({{U}} (5) {{/U}})addldNode ({{U}} (6) {{/U}}), id;
else {
ip = (ldNode * )malloc(sizeof(ldNode) );
sp - > id = id;
ip -> next = NULL;
{{U}} (7) {{/U}}
}
}
print(MarkNode * rap)
{ ldNode *ip, *ip0;
if (mp) {
print ( mp -> left);
printf(" %6d: /t" ,mp -> mark);
ip = mp -> head;
while(ip) {
printf(" %6d" ,ip -> id);
ip0 =ip;
ip = ip -> next;
free (ip0);
}
printf(" /n" ); printf( mp -> right); free(mp);
}
}
问答题阅读下列说明和Java代码,回答下列问题。[说明]在超市销售管理系统中通常需要根据顾客需求打印购物小票,在购物小票中体现所购买的物品名称、数量、单价及总价等信息,以及购物时间、收银员号码等基本信息。而且有的需要打印票据的头信息(如欢迎辞等),有的需要打印票据的页脚信息(如促销打折广告提示信息等),有的只需要打印票据的内容。并且这些信息的内容及打印位置也需要根据具体情况而发生变动,相当于是对购物小票的额外装饰了。以上这些功能采用装饰器(Decorator)设计模式来设计,得到的类图如图7-16所示。以下Java代码可为购物小票动态添加各种抬头和注释信息。[Java代码]importjava.util.*;abstractclasscxlaopiaopublic______=0;;classjutixiaopiao______publicvoidDaYinXiaoPiao()System.out.println("票据正文");;______classczhuangshixiaopiao)______cxiaopiaoxpobj;publicczhuangshixiaopiao(cxiaoplsoobj)xpobj=obj;public______=0;;classheaderxiaopiaoextendsczhuangshixiaopiao)publicheaderxiaopiao(cxiaopiaoobj)extendsczhuangshixiaopiao(obj)publlcvoidDaYinXiaoPiso()System.out.printin("抬头");xpobj.DaYinXiaoPiso();;classfooterxiaopiaoextendsczhuangshixiaopiaopublicfooterxiaopiao(cxiaopiaoobj)extendsczhuangshixiaopiao(obj)publicvoidDaYinXlaoPiao()xpobj.DaYinXiaoPiao();System.out.println("脚注");;publicclassxiaopiaopublicstaticvoidmainStringargs[])czhuangshixiaopiaoxiaopiao=newheaderxiaopiao(newfooterxiaopiao(newcjutixiaopiao));xiaopiao.DaYinXiaoPiao();System.out.println();return0;装饰器(Decorator)模式是一种______型设计模式,其设计意图是:______。
问答题【说明】某直达列车车票预售系统接受顾客的订票、取票和售票处工作人员的查询业务。1.顾客为了提前订票,可向系统提供个人信息及其预订购的车次及日期,系统根据个人信息是否齐全以及车次是否正确来判断订票单是否合格。对于合格的订票单系统,如果相应的车次有剩余票,则记录顾客个人信息以及订票信息,并向顾客提供取票单。2.到了可以取票的时间,顾客向系统提供取票单,在检查单据合格的情况下,系统向顾客提供火车票。3.售票处的工作人员可以利用系统查询各车次车票的售票情况。该直达列车车票预售系统的分层数据流图中部分数据流和文件的组成如下:文件:火车时刻表=车次+开车时间+到站时间+起始站+终点站+上铺票价+下铺票价订票信息表=车次+车票日期+旅客身份证号+座位号+是否领票旅客信息表=旅客身份证号+姓名+性别+联系电话座位表=车次+座位号数据流:订票单=旅客姓名+性别+身份证号+联系电话+车次十车票日期车票=车次+起始站生终点站+开车日期+开车时间+座位号+票价假定顶层图是正确的,“火车时刻表”和“座位表”文件已由其他系统生成。【数据流图】
问答题[说明]传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)、Closing(~在关闭)5种状态。触发状态的转换事件有click、complete和timeout3种。事件与其相应的状态转换如下图所示。下面的Java程序1与Java程序2分别用两种不同的设计思路对传输门进行状态模拟,请填补代码中的空缺。[Java程序1]publicclassDoor{publicstaticfinalintCLOSED=1;publicstaticfinalintOPENING=2;publicstaticfinalintOPEN=3;publicstaticfinalintCLOSING=4;publicstaticfinalintSTAYOPEN=5;privateintstate=CLOSED;//定义状态变量,用不同整数表示不同状态privatevoidsetState(intstate){this.state=state;}//设置传输门当前状态publicvoidgetState(){//此处代码省略,本方法输出状态字符串//例如,当前状态为CLOSED时,输出字符串为"CLOSED"}publicvoidclick()//发生click事件时进行状态转换{if______setState(OPENING);elseif(______)setState(CLOSING);elseif(______state==OPEN_)setState(STAYOPEN);//发生timeout事件时进行状态转换publicvoidtimeout(){if(state==OPEN)setState(CLOSING);}publicvoidcomplete()//发生complete事件时进行状态转换{if(state==OPENING)setState(OPEN);elseif(state==CLOSING)setState(CLOSED);}publicstaticvoidmain(String[]args){DooraDoor=newDoor();aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();aDoor.getState();aDoor.click();aDoor.getState();aDoor.click();aDoor.getState();return;}}[Java程序2]publicclassDoor{publicfinalDoorStateCLOSED=newDoorClosed(this);publicfinalDoorStateOPENING=newDoorOpening(this);publicfinalDoorStateOPEN=newDoorOpen(this);publicfinalDoorStateCLOSING=newDoorClosing(this);publicfinalDoorStateSTAYOPEN=newDoorStayOpen(this);privateDoorStatestate=CLOSED;//设置传输门当前状态publicvoidsetState(DoorStatestate){this.state=state;}publicvoidgetState(){//根据当前状态输出对应的状态字符串System.out.println(state.getClass().getName());}publicvoidclick(){______;}//发生click事件时进行状态转换publicvoidtimeout(){______;}//发生timeout事件时进行状态转换publicvoidcomplete(){______;}//发生complete事件时进行状态转换publicstaticvoidmain(String[]args){DooraDoor=newDoor();aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();aDoor.getState();aDoor.timeout();aDoor.getState();return;}}publicabstractclassDoorState//定义所有状态类的基类{protectedDoordoor;publicDoorState(Doordoor){this.door=door;}publicvoidclick(){}publicvoidcomplete(){}publicvoidtimeout(){}}classDoorClosedextendsDoorState//定义一个基本的Closed状态{publicDoorClosed(Doordoor){super(door);}publicvoidclick(){______;}//该类定义的其余代码省略}//其余代码省略
问答题8.
问答题
阅读下列说明和图表,回答问题1到问题3。 [说明]
在多道程序系统中,各个程序之间是并发执行的,共享系统资源。CPU需要在各个运行的程序之间来回地切换,这样的话,要想描述这些多道的并发活动过程就变得很困难。为此,操作系统设计者提出了进程的概念。
进程是具有独立功能的程序关于某个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位。
问答题【说明】下面是一个Applet程序,其功能是根据给出的小时,分钟和秒数计算相等的秒数,即将1分钟化为60秒,依此类推。要求建立一个时间类,时间参数均作为类的成员变量,并且给出换算时间的方法,也作为这个类的成员函数,可以供外部对象进行调用。同时还需要在输出窗口中显示换算结果,并且将结果写到out3_3.txt文件中,本题给出确定的时间为4小时23分47秒,要求换算成以秒做单位的时间。程序运行结果如图11所示。importjava.io.*;importjava.awt.*;impOrtjava.applet.*;/*<appletcode=ex7_7.classwidth=800height=400></applet>*/publicclassex7_7extendsAPPlet{publicvoidpaint(Graphicsg){intnSum;classmyTime7_7{publicinth;publicintm;publicints;publicintout;publicintcaculateSecond(){{{U}}(1){{/U}};returnout;}}myTime7_7objTime7_7=newmyTime7_7();ObjTime7_7.h=4;ObjTime7_7.m=23;ObjTime7_7.s=47;nSum=objTime7_7.{{U}}(2){{/U}};g.drawString("时:"+objTime7_7.h,20,30);g.drawString("分:"+objTime7_7.m,20,50);g.drawString("秒:"+objTime7_7.s,20,70);g.drawString({{U}}(3){{/U}});try{FileOutputStreamfos7_7=newFileOutputStream("out7_7.txt");BufferedOutputStreambos7_7=newBufferedOutputStream(fos7_7,1024);PrintStreamps7_7=newPrintStream(bos7_7,false);SyStem.setOut(ps7_7);System.out.println({{U}}(4){{/U}});ps7_7.close();}catch(|OExceptionioe){{{U}}(5){{/U}}(ioe);}}}ex7_7.htm|<HTML><HEAD><TITLE>ex7_7</TITLE></HEAD><BODY><appletcode="ex7_7.class"width=800height=400></applet></BODY></HTML>
问答题对文法G[S]:S→a|∧|(T);T→T,S|S:回答问题1~问题3。 【表】 表4-2 预测分析表 a ∧ ( ) , # S →a →∧ (u)(2)(/u) T (u)(1)(/u) →SN →SN N (u)(3)(/u) →,SN 1. 【问题1】 对文法G进行改写,然后对每个非终结符写出不带回溯的递归子程序。
问答题从下列的3道试题(试题五至试题七)中任选1道解答,如果解答的试题数超过1道,则题号小的1道解答有效。
试题五(共15 分)
阅读以下说明和C 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
在一个简化的绘图程序中,支持的图形种类有点(point)和圆(circle),在设计过程中采用面向对象思想,认为所有的点和圆都是一种图形(shape),并定义了类型shape_t、point_t和circle_t 分别表示基本图形、点和圆,并且点和圆具有基本图形的所有特征。
问答题[问题3]
请指出问题2中给出的读者、书目关系模式的主键,以及图书、借还记录和预约登记关系模式的主键和外键。
问答题[说明]某市人才交流中心为促进当地人力资源的合理配置,加强当地企业与人才的沟通,拟建立人才信息交流网。[需求分析结果]1.每个前来登记的个人需填写《人才入库登记表》,如表2-17所示,并出示相关证件,经工作人员审核后录入个人信息。表2-17人才入库登记表个人编号:_______ 登记日期:___年___月___日姓名性别出生日期照片籍贯身份证号毕业院校专业学历证书名称1.编号2.移动电话家庭电话电子邮件求职意向及薪水职位名称最低薪水备注1.2.个人简历及特长 2.每个前来登记的企业需填写《企业信息登记表》,如表2-18所示,并出示相关证明及复印件,经工作人员核实后录入企业信息。 3.个人和企业的基本信息只需在第一次登记时填写,个人编号和企业编号由系统自动生成。个人和企业的基本信息由计算机长期存储,以后个人只需提供个人编号和求职意向信息,企业只需提供企业编号和岗位需求信息。 4.个人的求职意向信息和企业的岗位需求信息在两个工作日内由工作人员录入数据库并发布。 [概念模型设计] 根据需求阶段收集的信息,设计人才、岗位和企业的实体联系图如图2-24所示(不完整)。 表2-18企业信息登记表企业编号:_______ 登记日期:__年__月__日企业名称地址企业网址联系人联系电话电子邮件岗位需求职位专业学历薪水备注企业简介 [逻辑结构设计]1.将概念模型设计的实体联系图转换为以下关系模式人才(个人编号,姓名,性别,出生日期,身份证号,毕业院校,专业,学历,证书名称,证书编号,联系电话,电子邮件,个人简历及特长)企业(企业编号,企业名称,联系人,联系电话,地址,企业网址,电子邮件,企业简介)求职意向((2))岗位需求((3))2.由于一个人可能持有多个证书,因此对“人才”关系模式进行优化,得到如下两个新的关系模式人才((4))证书((5))根据上述的设计过程,回答以下问题。1.[问题1]在(1)空缺处填入所需的实体、联系及其属性,完成概念模型设计。
