2024年3月13日发(作者:)

考题

一、C/C++ 部分:

运用c函数库,c++函数库或者stl(提示:可以使用stl中的find), 写一个函数

完成如下功能:

名称: void replace_especial_char(char *pStrIn, char *pStrOut);

参数: pStrIn: 输入的字符串 pStrOut:输出的字符串

目的: 把参数输入的字符串中的所有’[‘,’]’,’ $’,’`’ 四个字符前面都加上””, 然

后再把新的字符串复制到pStrOut中。

二、Qt第一部分:

1. 任意写一个Qt的小例子。

2. Qt是否为跨平台SDK?Qt支持哪些平台下的开发?

3. 简要介绍Qt的信号槽机制。

三、Qt第二部分:

1. 列举Qt实现控件透明的方法,至少2种。

2. 使用Qt Style Sheet设置QpushButton样式。QpushButton背景为一图片, 图

片路径:/boot/data/images/; QpushButton字体颜色为蓝色。

3. 分析如下代码,补齐空白。

QGraphicsScene *scene = new QGraphicsScene();

scene->setSceneRect(0, 0, 195, 95);

QGraphicsView *view = new QGraphicsView();

( 1 ) ; // 画布添加场景

view->setGeometry(100, 0, 100, 200);

view->rotate( 2 ); // 画布顺时针旋转90度

QGraphicsTextItem *textItem = new QGraphicsTextItem();

textItem->setFont(QFont("fzhei", 16, QFont::Normal));

textItem->setPlainText(tr(“hello world”));

textItem->setPos(0, 0);

( 3 ) ; // 画布添加文本

4. 数据库中已生成表user_count, sql语句如下:

create table user_count (id INTEGER PRIMARY KEY, count float, mac varchar(12));

要求补充下面两处空格,实现函数getUserCount() 从数据库user_count表中获取

mac为’ A010012820FE’的记录的count字段值。

void DBInterface::getUserCount(float &nCount)

{

nCount = 0;

QString strSql = Qstring( 1 );

QSqlQuery query;

int bRet = (strSql);

if(!bRet)

{

qDebug() << ror().text();

return;

}

while(())

{

nCount = ( 2 );

break;

}

}

5. 根据Qt Event 处理机制,分析如下代码:

class MonitorObject : public QObject

{

public:

MonitorObject() {}

protected:

bool eventFilter(QObject *obj, QEvent *event);

};

bool MonitorObject::eventFilter(QObject *obj, QEvent *event)

{

qDebug(“eventFiltern”);

return false;

}

class MyWidget : public QWidget

{

public:

MyWidget(QWidget* parent = 0) : QWidget (parent) {}

protected:

virtual bool event(QEvent * event);

virtual void keyPressEvent(QKeyEvent * event);

};

bool MyWidget::event(QEvent * event)

{

qDebug(“eventn”);

return QWidget::event(event);

}

void MyWidget::keyPressEvent(QKeyEvent * event);

{

qDebug(“keyPressEventn”);

MyWidget:: keyPressEvent(event);

}

int main(int argc, char **argv)

{

QApplication a(argc, argv);

MonitorObject *pMonitorObject = new MonitorObject;

MyWidget *pWidget = new MyWidget;

MyWidget->installEventFilter(pMonitorObject);

MyWidget->show();

return ();

}

启动程序,当键盘事件(Key Press)发生时,列出打印信息。