用数据库vf的表单中各按钮做一个简单的计算器的步骤?

用数据库vf的表单中各按钮做一个简单的计算器的步骤?,第1张

设计步骤如下:注意只是参考一下,具体你自己看着弄,大致如下

(1)建立应用程序用户界面。

选择“新建”表单,进入表单设计器,增加一个文本框控件Textl、一个标签控件Label1和一个命令按钮组CommandGroup1,并将命令按钮组的ButtonCount属性改为16。

(2)设置对象属性如下表所示:

CommandGroup1中各按钮的属性设置

对象 属性 属性值 说明

Command1~Command10 Caption 依次改为:1、2、3、4、5、6、7、8、9、0

FontBold .T.

Command11~Command10 Caption 依次改为:.、=、+、-、*、/

FontBold .T.

(3)编写程序代码

①编写CommandGroup1的Click事件代码:

IF THISFORM.Tag=.T.

THISFORM.Text1.Value=ALLT(RIGHT(STR(THIS.Value),1))

THISFORM.Tag=〃 〃

ELSE

a=THISFORM.Text1.Value

THISFORM.Text1.Value=a+ALLT(RIGHT(STR(THIS.Value),1))

ENDIF

②编写“.”按钮Command11的Click事件代码:

a=THISFORM.Text1.Value

THISFORM.Text1.Value=a+〃.〃

③编写“=”按钮Command12的Click事件代码:

a=THISFORM.Text1.Value

THISFORM.Text1.Value=ALLT(STR(&a))

THISFORM.Tag=.T.

④编写“+”按钮Command13的Click事件代码:

a=THISFORM.Text1.Value

THISFORM.Text1.Value=a+〃+〃

THISFORM.Tag=〃 〃

⑤编写“-”按钮Command14的Click事件代码:

a=THISFORM.Text1.Value

THISFORM.Text1.Value=a+〃-〃

THISFORM.Tag=〃 〃

⑥编写“*”按钮Command15的Click事件代码:

a=THISFORM.Text1.Value

THISFORM.Text1.Value=a+〃*〃

THISFORM.Tag=〃 〃

⑦编写“/”按钮Command16的Click事件代码:

a=THISFORM.Text1.Value

THISFORM.Text1.Value=a+〃+〃

THISFORM.Tag=〃 〃

......为点分真不容易

1 select * from StuInfo

2 select 考号,姓名,语文,数学,英语 from StuMarks

3 select s1.考号,s1.姓名,s1.性别,s2.计算机基础,s2.SQL数据库

from StuInfo s1

left join StuMarks s2 on s1.学号=s2.学号

where 专业名!='计算机'

4 select 姓名,学号 from StuMarks where 语文>60 and 数学>60 and 英语>60 and 计算机基础>60 and SQL数据库>60

5 select max(语文),min(数学),avg(英语) from StuMarks

6 select 姓名,语文,数学,英语 from StuMarks where (语文+数学+英语+计算机基础+SQL数据库)>400

7 select 姓名,SQL数据库 from StuMarks

order by SQL数据库 desc

在MFC AppWized(exe)项目下做。界面自己做

1.在对话框的头文件CalculatorDlg.h中添加#include<math.h>

2.为CCalculatorDlg类添加成员数据和成员函数

double number1,number2

int NumberState,OperationState

void cal()

并在CCalculatorDlg类的构造函数中增加NumberState=1

3.添加消息按钮afx_msg void OnNumberKey(UINT nID)

afx_msg void OnOperationKey(UINT nID)

4.在CalculatorDlg.cpp文件中BEGIN_MESSAGE_MAP(CMy1Dlg, CDialog)和END_MESSAGE_MAP()间添加代码

ON_COMMAND_RANGE(IDC_NUMBER1,IDC_NUMBER10,OnNumberKey)

ON_COMMAND_RANGE(IDC_NUMBER11,IDC_NUMBER20,OnOperationKey)

5.为成员函数OnNumberKey和OnOperationKey添加代码

void CCalculatorDlg::OnNumberKey(UINT nID)

{

int n=0

switch(nID)

{

case IDC_NUMBER1:n=1break

case IDC_NUMBER2:n=2break

case IDC_NUMBER3:n=3break

case IDC_NUMBER4:n=4break

case IDC_NUMBER5:n=5break

case IDC_NUMBER6:n=6break

case IDC_NUMBER7:n=7break

case IDC_NUMBER8:n=8break

case IDC_NUMBER9:n=9break

case IDC_NUMBER10:n=0break

}

if(NumberState==1)

{

m_result=m_result*10+n

number1=m_result

UpdateData(FALSE) // 更新编辑框中的值

}

else

{

m_result=m_result*10+n

number2=m_result

UpdateData(FALSE)

}

}

void CCalculatorDlg::OnOperationKey(UINT nID)

{

switch(nID)

{

case IDC_NUMBER13: // "/"按钮

OperationState=1

UpdateData(FALSE)

m_result=0

NumberState=2

break

case IDC_NUMBER14: // "*"按钮

OperationState=2

UpdateData(FALSE)

m_result=0

NumberState=2

break

case IDC_NUMBER15: // "+"按钮

OperationState=3

UpdateData(FALSE)

m_result=0

NumberState=2

break

case IDC_NUMBER16: // "-"按钮

OperationState=4

UpdateData(FALSE)

m_result=0

NumberState=2

break

case IDC_NUMBER17: // "C"按钮,撤消用,不需要可以删除

number1=number2=m_result=0

UpdateData(FALSE)

NumberState=1

break

case IDC_NUMBER20: // "="按钮

cal() // 调用cal成员函数

break

}

}

6.为成员函数cal()添加代码

void CCalculatorDlg::cal()

{

switch(OperationState)

{

case 1:

m_result=(double)number1/number2

UpdateData(FALSE) // 更新编辑框中的结果

number1=m_result // 把此次的运算结果作为下一次运算的第一个 *** 作数

NumberState=2 // 下次输入的数作为第二个 *** 作数

break

case 2:

m_result=number1*number2

UpdateData(FALSE) // 更新编辑框中的结果

number1=m_result

NumberState=2

break

case 3:

m_result=number1+number2

UpdateData(FALSE) // 更新编辑框中的结果

number1=m_result

NumberState=2

break

case 4:

m_result=number1-number2

UpdateData(FALSE) // 更新编辑框中的结果

number1=m_result

NumberState=2

break

}

OperationState=0

}

注意按钮的ID号要和程序中的ID号相同!!!!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6775627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存