主观

阅读以下说明及Visual Basic部分程序代码,将应填入(n)处的字句写在对应栏内。

 【说明】

  本程序是一个可进行数制转换的应用程序,图1所示是其运行界面。txtDec为TextBox控件名,Lblkes为转换结果label控件名。

【程序代码】

 Option Explicit

 Private Function convert(pintDec As Intege, pintS As Integer)As String

   Dim intCt As Integer,intR As Integer

   Dim strCov As String,strRes As String

   intR=pintDec Mod pintS

   Do While (1) 

     strCov=strCov & Str(intR)

      (2) 

     intR=pintDec Mod pints

   Loop

   For intCt=(3) To 1 Step-1

     strRes=strRes & Mid(strCov,intCt,1)

     Next intCt

   convert=strRes

 End Function

 Private Sub cmdQuit_Click()  ′退出

   Unload Me

 End Sub

 Private Sub optBin_Click()  ′二进制

   IblRes.Caption="转换结果:"& (4) 

 End Sub

 Private Sub optHex_Click()  ′十六进制

   IblRes.Caption="转换结果:"& (5) 

 End Sub

 Private Sub optOct_Click()  ′八进制

   IblRes.Caption="转换结果:"&Oct(Val(txtDec.Text))

 End Sub

参考答案
您可能感兴趣的试题

请认真阅读以下关于某传输系统的技术说明、状态转换图及C++代码,根据要求回答问题1和问题2。

 【说明】

 传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)和Closing(正在关闭)5种状态。触发状态的转换事件有click、complete和timeout 3种,事件与其相应的状态转换如图6-18所示。

 

 下面的【C++代码1】与【C++代码2】分别用两种不同的设计思路对传输门进行状态模拟,请填补代码段中的空缺语句。

 【C++代码1】

    const int CLOSED = 1; const int PENING = 2;

    const int PEN = 3; const int CLOSING = 4;

    const int STAYOPEN = 5;  //定义状态变量,用不同整数表示不同状态

    class Door {

    private:

    private:

     int state;                       //传输门当前状态

     void setState(int state) { this->state = stale; }   //设置当前状态

    public:

     Door () :state (CLOSED) { };

     void getState() {              //根据当前状态输出相应的字符串

      switch(state) {

       case OPENING: cout <<"OPENING" << endl;   break;

       case CLOSED: cout << "CLOSED" << endl;    break;

       case OPEN: cout << "OPEN" << endl;      break;

       case CLOSING: cout << "CLOSING" << endl;   break;

       case STAYOPEN: cout << "STAYOPEN" << endl;  break;

      }

     }

     void click() {              //发生click事件时进行状态转换

      if ( (1) ) setState(OPENING);

      else if ( (2) )   setState(CLOSING);

      else if ( (3) )   setState(STAYOPEN);

     }

     void timeout() {               //发生timeout事件时进行状态转换

      if (state == OPEN)  setState(CLOSING);

     }

     void complete() {            //发生complete事件时进行状态转换

      if (state == OPENING)  setState(OPEN);

      else if (state == CLOSING)  setState(CLOSED);

     }

    };

    int main(){

     Door aDoor;

     aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.complete();

     aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.click();

     aDoor.getState(); return 0;

    }

 【C++代码2】

    class Door {

    public:

     DoorState *CLOSED, *OPENING, *OPEN, *CLOSING, *STAYOPEN, *state;

     Door();

     virtual ~Door() { ...         //释放申请的内存,此处代码省略};

     void s

阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。

  【说明】

 以下【C程序】完成从指定数据文件中读入职工的工号和他完成产品个数的数据信息,对同一职工多次完成的产品个数进行累计,最后按如表5-11所示的格式输出职工完成产品数量的名次(ORDER),该名次是按每位职工完成的产品数量(QUANTITY)排序,之后是同一名次的职工人数(COUNT)和他们的职工号(NUMBER,同一名次的职工号以从小到大的顺序输出)。

以下【C程序】采用链表结构存储有关信息,链表中的每个表元对应一位职工。在数据输入的同时,形成一个有序链表(按完成的产品数量和工号排序)。当一个职工有新的数据输入,在累计他的完成数量时会改变原来链表的有序性,为此应对链表进行删除、查找和插入等操作。

 【C程序】

 #include<stdio. h>

 typedef struct ele{

   int no, q;

   struct ele * next;

 }elem;

 main(int argc, char ** argv){

   FILE *fp; elem *h, *u, *proc();

   if(argc==2 &&(fp=fopen(argv[1], "r"))!=NULL){

     h=proc(fp);

     fclose(fp);

     output(h);

     while(h I=NULL){

       u=h→*next; free(h); h=u;

     }

   }

 }

 elem * proc(FILE *fp){

   int n, m; elem *u, *v, *p, *base;

   base=NULL;

   fscanf(fp, "%d', &m);

   while(!feof(fp)){

     fscanf(fp, '%d', &m);

     for(v=base; v!=NULL && v->no !=n; u=v, v=v->next);

     if( (1) )

     if( (2) )

       base=v->next;

     else

       u->next=v-next;

     v->q+=m;

   else

     v=(elem *)malloc(Sizeof)elem));

   v->no=n; v->q=m; p=base;

   while(p !=NULL)

   if( (3) )break;

   else {

     u=p; p=p->next;

   }

   if( (4) )

     base=v;

   else

     u->next=v;

    (5);

   Fscanf(fp, "%d", &n);

 }

     return base;

   }

   Output(elem *head){

   int count, order; elem *u, *v;

   printf("ORDER QUANTITY COUNT NUMBER\n");

   u=head; rder=1;

   while(u !=NULL){

     for(count=1, v=u->next;(6);count++, v=v->next);

     printf("%4d%9d%6d", order, u->q, count);

     order+=count;

     for(; (7) ;printf("%4d", u->no), u=u->next);

     printf("\n");

   }

 }

请认真阅读以下函数说明、图及C程序,将程序段中(1)~(7)空缺处的语句填写完整。

  【说明】

 一般的树结构常采用孩子一兄弟表示法表示,即用二叉链表代表树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩子节点和下一个兄弟节点,例如,如图5-9(a)所示的树和如图5-9(b)所示的树的孩子一兄弟表示。

                         

 函数LevelTraverse()的功能是对给定树进行层序遍历。例如,对如图5-9所示的树进行层序遍历时,节点的访问次序为DBAEFPC。

 对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如表5-12所示。

Bool、Status类型定义如下:

   typedef enum{FALSE=0, TRUE=1}Bool;

   typedef enum{OVERFLOW=-2, UNDERFLOW=-1, ERROR=0, K=1)Status;

 树的二叉链表节点定义如下:

 typedef struct N6de{

   char data;

   struct Node *firstchild, *nextbrother;

 }Node, *TreeNode;

 【C函数程序】

 Status LevelTraverse(TreeNode root){

 /*层序遍历树,树采用孩子一兄弟表示法,root是树根节点的指针*/

 Queue tempQ;

 TreeNode ptr, brotherptr;

 if(!root)

   return ERROR;

 InitQueue(&tempQ);

  (1);

 brotherptr=root->nextbrother;

 while(brotherptr)(EnQueue(&tempQ, brotherptr);

     (2);

 }  /*end-while*/

 while( (3) ){

   (4);

  Printf("%c\t", ptr->data);

  if( (5) ) continue;

   (6);

  brotherptr=ptr->firstchiid->nextbrother;

  while(brotherptr){

    EnQueue(&tempQ, brotherptr);

    (7);

  } /*end-while*/

 }/*end-while*/

 return OK;

 } /*LevelTraverse*/

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服