(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号相同!!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)