主观

●试题七

阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

设计一个评选优秀教师和学生的程序,其类结构如图6所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。

图6

【程序】

#include

#include

enum boolean{False,True};

class base

{

protected:

char name[8];

public:

void getname(){cout<<"姓名:";cin>>name;}

void printname(){cout<<"姓名:"<

virtual boolean isgood()=0;

}

class student: (1) 

{

int num;

public:

void getnum()

{

cout<<"考试成绩:";cin>>num;

}

boolean isgood(){return  (2) ;}

};

class teacher: (3)  public base

{

int num;

public:

void getnum()

{

cout<<"每年发表论文数:";cin>>num;

}

boolean isgood(){return (4)  ;}

};

void main()

{

base*p[50];

student*pstud;

teacher*ptech;

char ch;

int count=0;

do

{

cout<<"输入教师(t)或学生(s):";

cin>>ch;

if(ch==′s′)

{

pstud=new student;

pstud->getname();

pstud->getnum();

p[count++]=pstud;

}

else if(ch==′t′)

{

ptech=newteacher;

ptech->getname();

ptech->getnum();

p[count++]=ptech;

}

else

cout<<"输入错误"<

cout<<"继续输入吗(Y/n)";

cin>>ch;

}while(ch==′y′);

for(int i=0;i

{

if( (5) )∥若为优秀,则输出

p[i]->printname();

}

}

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

●试题六

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

【说明】

本应用程序是一个小写数字转换成大写格式的转换器,其运行窗口如图5所示。图5窗口中有两个标签(lblNumber和lblChinese)、两个文本框(txtNumber和txtChinese)和一个命令按钮(cmdChange)。当单击按钮cmdChange时,将文本框txtNumber中数字转换成中文大写,并显示在文本框txtChinese中。例如,在文本框txtNumber输入0076845,单击cmdChange按钮,将在文本框txtChinese中显示"柒万陆仟捌佰肆拾伍"。

程序中调用的函数CChinse(Strdigit As String)的功能是先删除字符串的所有前导0,再调用函数Change(Strdigit As String),将数字字符串Strdigit转换成中文大写格式。

为了防止用户在文本框txtNumber输入非数字形式的字符,程序将以空字符代替所输入的非数字有形字符。

【程序】

Private Function Transfer(Strdigit As String)As String

′完成小写向大写的转换,这段代码省略

End Function

Private Function CChinese(Strdigit As String)As String

Dim intLen,intCounter As Integer

intLen=Len(Strdigit)

If intLen>0 Then

intcounter=0

Do′过滤数字串Strdigit的前导0

intcounter=intcounter+1

Loop Until Mid(Strdigit, (1) )

intLen= (2) 

Strdigit= (3) (Strdigit,intLen)

CChinese=Transfer(Strdigit)

End If

End Function

Private Sub cmdChange_Click()

txtChinese.Text=CChinese( (4) )′调用Cchinese函数

End Sub

Private Sub txtNumber_KeyPress(KeyAscii As Integer)

Select Case KeyAscii′根据输入字符的ASCⅡ码的值进行判断

Case KeyAscii<32′保留输入的控制字符

Case 48 To 57′保留输入的数字字符

Case Else′其他情况以空字符代替

 (5) =0

End Select

End Sub

●试题三

阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

本题给出四个函数,它们的功能分别是:

1.int push(PNODE *top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。

2.int pop(PNODE *top,int *e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。

3.int enQueue(PNODE *tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。

4.int deQueue(PNODE *tail,int *e)是出队函数,形参tail是队尾指针的指针,形参e作为返回出队元素使用。

以上四个函数中,返回值为0表示操作成功,返回值为-1表示操作失败。

栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为:

typedef struct node{

int value;

struct node *next;

}NODE,*PNODE;

【函数1】

int push(PNODE *top,int e)

{

PNODE p=(PNODE)malloc (sizeof(NODE));

if (!p) return-1;

p->value =e;

 (1) ;.

*top=p;

return 0;

}

【函数2】

int pop (PNODE *top,int *e)

{

PNODE p=*top;

if(p==NULL)return-1;

*e=p->value;

 (2) ;

free(p);

return 0;

}

【函数3】

int enQueue (PNODE *tail,int e)

{PNODE p,t;

t=*tail;

p=(PNODE)malloc(sizeof(NODE));

if(!p)return-l;

p->value=e;

p->next=t->next;

 (3) ;

*tail=p;

return 0;

}

【函数4】

int deQueue(PNODE *tail,int *e)

{PNODE p,q;

if((*tail)->next==*tail)return -1;

p=(*tail)->next;

q=p->next;

*e=q->value;

 (4) =q->next;

if(*tail==q) (5) ;

free(q);

return 0;

}

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服