qt编程简单的计算器.docx

上传人:b****6 文档编号:6121831 上传时间:2023-01-04 格式:DOCX 页数:15 大小:964.28KB
下载 相关 举报
qt编程简单的计算器.docx_第1页
第1页 / 共15页
qt编程简单的计算器.docx_第2页
第2页 / 共15页
qt编程简单的计算器.docx_第3页
第3页 / 共15页
qt编程简单的计算器.docx_第4页
第4页 / 共15页
qt编程简单的计算器.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

qt编程简单的计算器.docx

《qt编程简单的计算器.docx》由会员分享,可在线阅读,更多相关《qt编程简单的计算器.docx(15页珍藏版)》请在冰豆网上搜索。

qt编程简单的计算器.docx

qt编程简单的计算器

QT编程实现简易的计算器

一、 实验目的

1) 熟悉QtCreator的简单操作。

 2) 了解Qt程序编写框架。

 

3) 了解信号和槽机制,熟练掌握信号与槽在应用程序中的使用。

 

二、 实验内容 

1) 查看API手册,学习简单的Qt类的使用,如QLineEdit、QPushButton

等。

 

2) 用QtCreator创建工程,用Qt编写计算器程序。

 3) 对计算器程序进行移植。

 

三、 实验步骤 

1. 创建工程 

1) 打开QtCreator,如图1所示。

 选择File->New File or Project,然后在弹出的对话框中选择Other Project->Empty Qt project(如图2所示),然后进入下一步。

 

 选择Qt版本,这里选择使用Qt4.7.1,取消对Qt in PATH的选择(如图4所示),然后进入下一步,完成新工程的创建(如图5所示)。

实现代码

Calcuulator.h代码:

#ifndefCALCULATOR_H

#defineCALCULATOR_H

#include

#include

#include

#include

classCalculator:

publicQDialog

{

Q_OBJECT

protected:

QLineEdit*lineEditor;

QPushButton*button_0;

QPushButton*button_1;

QPushButton*button_2;

QPushButton*button_3;

QPushButton*button_4;

QPushButton*button_5;

QPushButton*button_6;

QPushButton*button_7;

QPushButton*button_8;

QPushButton*button_9;

QPushButton*button_ce;

QPushButton*button_jia;

QPushButton*button_jian;

QPushButton*button_cheng;

QPushButton*button_chu;

QPushButton*button__;

QPushButton*button_dengyu;

intnum1,num2,result;//

boolzhenghao;//

intmark;//

charfuhao;//

QStringS;//

public:

Calculator();

privateslots:

voidbutton_0_clicked();

voidbutton_1_clicked();

voidbutton_2_clicked();

voidbutton_3_clicked();

voidbutton_4_clicked();

voidbutton_5_clicked();

voidbutton_6_clicked();

voidbutton_7_clicked();

voidbutton_8_clicked();

voidbutton_9_clicked();

voidbutton_ce_clicked();

voidbutton_jia_clicked();

voidbutton_jian_clicked();

voidbutton_cheng_clicked();

voidbutton_chu_clicked();

voidbutton__clicked();

voidbutton_dengyu_clicked();

};

#endif//CALCULATOR_H

Calculator.cpp代码:

#include

#include

#include

#include

#include

#include"calculator.h"

Calculator:

:

Calculator()

{

num1=0;

num2=0;

result=0;

zhenghao=true;

mark=1;

lineEditor=newQLineEdit("0");

S="";

button_0=newQPushButton("0");

button_1=newQPushButton("1");

button_2=newQPushButton("2");

button_3=newQPushButton("3");

button_4=newQPushButton("4");

button_5=newQPushButton("5");

button_6=newQPushButton("6");

button_7=newQPushButton("7");

button_8=newQPushButton("8");

button_9=newQPushButton("9");

button_ce=newQPushButton("CE");

button_cheng=newQPushButton("*");

button_jia=newQPushButton("+");

button_jian=newQPushButton("-");

button_chu=newQPushButton("/");

button__=newQPushButton("+/-");

button_dengyu=newQPushButton("=");

QHBoxLayout*Hl1=newQHBoxLayout;

QHBoxLayout*Hl2=newQHBoxLayout;

QHBoxLayout*Hl3=newQHBoxLayout;

QHBoxLayout*Hl4=newQHBoxLayout;

QHBoxLayout*Hl5=newQHBoxLayout;

Hl1->addWidget(lineEditor);

Hl1->addWidget(button_ce);

Hl2->addWidget(button_1);

Hl2->addWidget(button_2);

Hl2->addWidget(button_3);

Hl2->addWidget(button_jia);

Hl3->addWidget(button_4);

Hl3->addWidget(button_5);

Hl3->addWidget(button_6);

Hl3->addWidget(button_jian);

Hl4->addWidget(button_7);

Hl4->addWidget(button_8);

Hl4->addWidget(button_9);

Hl4->addWidget(button_cheng);

Hl5->addWidget(button__);

Hl5->addWidget(button_0);

Hl5->addWidget(button_dengyu);

Hl5->addWidget(button_chu);

QVBoxLayout*V1=newQVBoxLayout;

V1->addLayout(Hl1);

V1->addLayout(Hl2);

V1->addLayout(Hl3);

V1->addLayout(Hl4);

V1->addLayout(Hl5);

connect(button_0,SIGNAL(clicked()),this,SLOT(button_0_clicked()));

connect(button_1,SIGNAL(clicked()),this,SLOT(button_1_clicked()));

connect(button_2,SIGNAL(clicked()),this,SLOT(button_2_clicked()));

connect(button_3,SIGNAL(clicked()),this,SLOT(button_3_clicked()));

connect(button_4,SIGNAL(clicked()),this,SLOT(button_4_clicked()));

connect(button_5,SIGNAL(clicked()),this,SLOT(button_5_clicked()));

connect(button_6,SIGNAL(clicked()),this,SLOT(button_6_clicked()));

connect(button_7,SIGNAL(clicked()),this,SLOT(button_7_clicked()));

connect(button_8,SIGNAL(clicked()),this,SLOT(button_8_clicked()));

connect(button_9,SIGNAL(clicked()),this,SLOT(button_9_clicked()));

connect(button_jia,SIGNAL(clicked()),this,SLOT(button_jia_clicked()));

connect(button_jian,SIGNAL(clicked()),this,SLOT(button_jian_clicked()));

connect(button_cheng,SIGNAL(clicked()),this,SLOT(button_cheng_clicked()));

connect(button_chu,SIGNAL(clicked()),this,SLOT(button_chu_clicked()));

connect(button_dengyu,SIGNAL(clicked()),this,SLOT(button_dengyu_clicked()));

connect(button_ce,SIGNAL(clicked()),this,SLOT(button_ce_clicked()));

connect(button__,SIGNAL(clicked()),this,SLOT(button__clicked()));

setLayout(V1);

}

voidCalculator:

:

button_0_clicked()

{

S+="0";

lineEditor->setText(S);

if(mark==1){

num1=num1*10+0;

}else{

num2=num2*10;

}

}

voidCalculator:

:

button_1_clicked(){

S+="1";

lineEditor->setText(S);

if(mark==1){

if(zhenghao){

num1=num1*10+1;

}else{

num1=num1*10-1;

}

}else{

if(zhenghao){

num2=num2*10+1;

}else{

num2=num2*10-1;

}

}

}

voidCalculator:

:

button_2_clicked(){

S+="2";

lineEditor->setText(S);

if(mark==1){

if(zhenghao){

num1=num1*10+2;

}else{

num1=num1*10-2;

}

}else{

if(zhenghao){

num2=num2*10+2;

}else{

num2=num2*10-2;

}

}

}

voidCalculator:

:

button_3_clicked(){

S+="3";

lineEditor->setText(S);

if(mark==1){

if(zhenghao){

num1=num1*10+3;

}else{

num1=num1*10-3;

}

}else{

if(zhenghao){

num2=num2*10+3;

}else{

num2=num2*10-3;

}

}

}

voidCalculator:

:

button_4_clicked(){

S+="4";

lineEditor->setText(S);

if(mark==1){

if(zhenghao){

num1=num1*10+4;

}else{

num1=num1*10-4;

}

}else{

if(zhenghao){

num2=num2*10+4;

}else{

num2=num2*10-4;

}

}

}

voidCalculator:

:

button_5_clicked(){

S+="5";

lineEditor->setText(S);

if(mark==1){

if(zhenghao){

num1=num1*10+5;

}else{

num1=num1*10-5;

}

}else{

if(zhenghao){

num2=num2*10+5;

}else{

num2=num2*10-5;

}

}

}

voidCalculator:

:

button_6_clicked(){

S+="6";

lineEditor->setText(S);

if(mark==1){

if(zhenghao){

num1=num1*10+6;

}else{

num1=num1*10-6;

}

}else{

if(zhenghao){

num2=num2*10+6;

}else{

num2=num2*10-6;

}

}

}

voidCalculator:

:

button_7_clicked(){

S+="7";

lineEditor->setText(S);

if(mark==1){

if(zhenghao){

num1=num1*10+7;

}else{

num1=num1*10-7;

}

}else{

if(zhenghao){

num2=num2*10+7;

}else{

num2=num2*10-7;

}

}

}

voidCalculator:

:

button_8_clicked(){

S+="8";

lineEditor->setText(S);

if(mark==1){

if(zhenghao){

num1=num1*10+8;

}else{

num1=num1*10-8;

}

}else{

if(zhenghao){

num2=num2*10+8;

}else{

num2=num2*10-8;

}

}

}

voidCalculator:

:

button_9_clicked(){

S+="9";

lineEditor->setText(S);

if(mark==1){

if(zhenghao){

num1=num1*10+9;

}else{

num1=num1*10-9;

}

}else{

if(zhenghao){

num2=num2*10+9;

}else{

num2=num2*10-9;

}

}

}

voidCalculator:

:

button_jia_clicked(){

S+="+";

lineEditor->setText(S);

zhenghao=true;

fuhao='+';

mark=2;

}

voidCalculator:

:

button_jian_clicked(){

S+="-";

lineEditor->setText(S);

zhenghao=true;

fuhao='-';

mark=2;

}

voidCalculator:

:

button_cheng_clicked(){

S+="*";

lineEditor->setText(S);

zhenghao=true;

fuhao='*';

mark=2;

}

voidCalculator:

:

button_chu_clicked(){

S+="/";

lineEditor->setText(S);

zhenghao=true;

fuhao='/';

mark=2;

}

voidCalculator:

:

button__clicked(){

S+="-";

lineEditor->setText(S);

zhenghao=false;

}

voidCalculator:

:

button_dengyu_clicked(){

S+="=";

//lineEditor->setText(S);

switch(fuhao){

case'+':

result=num1+num2;break;

case'-':

result=num1-num2;break;

case'*':

result=num1*num2;break;

case'/':

if(num2)result=num1/num2;break;

}

inti=0;

intresult1=result;

while(result1){

i++;

result1/=10;

}

for(;i;i--){

S+=(result/(int)pow(10,i-1)+'0');

result%=(int)pow(10,i-1);

}

lineEditor->setText(S);

zhenghao=true;

num1=num2=0;

mark=1;

S="";

}

voidCalculator:

:

button_ce_clicked()

{

zhenghao=false;

S="";

lineEditor->setText("0");

num1=num2=0;

mark=1;

}

Main代码:

#include"calculator.h"

intmain(intargc,char*argv[])

{

QApplicationapp(argc,argv);

Calculatorcal;

cal.show();

returnapp.exec();

}

运行结果

 四、总结

通过计算器设计,学到了利用Qt设计简单窗口应用程序的的方法,初步了解了使用QT工具编写窗口程序的新颖,了解了槽和信号等基本知识,学会了如何使用新工具(Qt)帮助程序开发。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1