程序设计课程设计实验报告(qt实验报告)信息科学与技术学院软件三班高文博2010050703092011年5月实验1:计算当初存入本金的钱数。
(12题)1.实验目的、要求目的:1)熟悉qt中的常用属性;2)熟悉vbox hbox模型及怎样根据需求设计控件,边框等;3)熟悉各个槽函数的使用,准确的将c++语言转换成qt语言,将控件功能与函数结合起来。
要求:1)掌握对控件的文本色,背景色等常用属性的设置。
2)掌握对控件、边框尺寸与结构的设置3)掌握对函数的设置2.实验设备笔记本电脑,已安装Qt 开发环境。
3.实验内容、步骤●先在vc++上进行编译。
●应用qt3.38进行编译,运行。
实验步骤:1)根据题目需求在草纸上画出结构图;2)根据草图用代码设计整体框架和控件;3)在qt上运行;4)运行成功后根据功能添加函数;5)在头文件中添加头文件。
6)将添加的功能函数与功能控件相连;7)分别对每个函数进行测试;8)将整个程序在qt运行调试;9)运行通过后给每个函数写注释;实验代码如下所示A (1)主框架结构代码#include"gwbsave.h"GwbSave::GwbSave(QWidget*parent,const char*name):QWidget(parent,name) {//??vBox=new QVBoxLayout(this);vBox->setMargin(5);vBox->setSpacing(5);label=new QLabel("Please input the lilv:",this,"label");vBox->addWidget(label);//??hBox=new QHBoxLayout(this);hBox->setMargin(5);hBox->setSpacing(5);vBox->addLayout(hBox);le1=new QLineEdit(this,"le1");hBox->addWidget(le1);//?,??hBox2=new QHBoxLayout(this);hBox2->setMargin(5);hBox2->setSpacing(5);vBox->addLayout(hBox2);leResult=new QLineEdit(this,"leResult");leResult->setReadOnly(true);leResult->setPaletteBackgroundColor(Qt::gray);hBox->addWidget(leResult);//аgrid=new QGridLayout(this,1,5,5,10);vBox->addLayout(grid);btnResult=new QPushButton("Result",this,"btnResult");grid->addWidget(btnResult,0,2);btnClean=new QPushButton("Clean",this,"btnClean");grid->addWidget(btnClean,0,3);btnExit=new QPushButton("Exit",this,"btnExit");grid->addWidget(btnExit,0,4);connect(btnExit,SIGNAL(clicked()),this,SLOT(close())); // connect(btnClean,SIGNAL(clicked()),this,SLOT(slotClean())); //? connect(btnResult,SIGNAL(clicked()),this,SLOT(slotExit()));//}(2)主窗体结构视图B(1)添加函数后的全部代码a头文件//#ifndef GWBSAVE_H#define GWBSAVE_H#include<qwidget.h>#include<qlayout.h>#include<qlineedit.h>#include<qpushbutton.h>#include<qlabel.h>#include<qdatetime.h>//class GwbSave:public QWidget{Q_OBJECTpublic:GwbSave(QWidget*parent=0,const char*name=0);//构造函数。
int i;//double t;//double n;//public slots:void slotExit();void slotClean();private:QVBoxLayout*vBox; //多级嵌套布局时,使用Layout更好QHBoxLayout*hBox; //布局算式有关的控件QHBoxLayout*hBox2;QGridLayout*grid; //布局四个按钮。
QLabel*label;QLineEdit*le1;QLineEdit*leResult;QPushButton*btnExit,*btnClean,*btnResult;//定义几个按钮。
};#endifb实现文件#include"gwbsave.h"GwbSave::GwbSave(QWidget*parent,const char*name):QWidget(parent,name) {//定义标签,输出提示语言。
vBox=new QVBoxLayout(this);vBox->setMargin(5);vBox->setSpacing(5);label=new QLabel("Please input the lilv:",this,"label");vBox->addWidget(label);//输入利率的框体。
hBox=new QHBoxLayout(this);hBox->setMargin(5);hBox->setSpacing(5);vBox->addLayout(hBox);le1=new QLineEdit(this,"le1");hBox->addWidget(le1);//输出结果的框体。
hBox2=new QHBoxLayout(this);hBox2->setMargin(5);hBox2->setSpacing(5);vBox->addLayout(hBox2);leResult=new QLineEdit(this,"leResult");leResult->setReadOnly(true);leResult->setPaletteBackgroundColor(Qt::gray);hBox->addWidget(leResult);//定义几个按钮,并实现其排布。
grid=new QGridLayout(this,1,5,5,10);vBox->addLayout(grid);btnResult=new QPushButton("Result",this,"btnResult");grid->addWidget(btnResult,0,2);btnClean=new QPushButton("Clean",this,"btnClean");grid->addWidget(btnClean,0,3);btnExit=new QPushButton("Exit",this,"btnExit");grid->addWidget(btnExit,0,4);connect(btnExit,SIGNAL(clicked()),this,SLOT(close())); //退出按钮信号链接。
connect(btnClean,SIGNAL(clicked()),this,SLOT(slotClean())); //清除按钮链接connect(btnResult,SIGNAL(clicked()),this,SLOT(slotExit()));// 结果按钮链接。
}void GwbSave::slotClean()//把字符清零的槽函数。
{le1->setText(QString::number(0));leResult->setText(QString::number(0));}void GwbSave::slotExit() //实现求应该存入多少钱的函数。
int i; double t=0; double n;n=le1->text().toDouble();for(i=0;i<5;i++)//i0-4t=(t+1000)/(1+n*12);//??leResult->setText(QString::number(t)); }C主函数#include<qapplication.h>#include"gwbsave.h"int main(int argc,char**argv){QApplication app(argc,argv);GwbSave mainWindow;mainWindow.setGeometry(100,100,250,150);app.setMainWidget(&mainWindow);mainWindow.show();return app.exec();}(2)函数功能实现视图(1)输入利率(2)点击”result”键计算出应存入本金。
(2)点击clean键结果全部清零。
(3)点击exit退出界面。
C添加的函数(1)void GwbSave::slotClean()//把字符清零的槽函数。
{le1->setText(QString::number(0));leResult->setText(QString::number(0));}(2)void GwbSave::slotExit() //实现求应该存入多少钱的函数。