面向对象程序设计-课程设计-实验报告(3)

2020-04-18 06:21

}

BOOL CCreditDlg::OnInitDialog() {

CDialog::OnInitDialog();

m_spinMonth.SetRange(0,360); //设置最大贷款月数为360,即30年 return TRUE; }

void CCreditDlg::OnCalc() //”计算”功能响应函数 {

UpdateData(true);

double rate=m_dRate/100;

m_dPay=m_dLoan*(rate*pow(1+rate,m_nMonth))/(pow(1+rate,m_nMonth)-1); m_dTotalPay=m_dPay*m_nMonth; UpdateData(false); }

//IntegerCalculator.cpp

#include \

#include \李知澳 1.h\#include \

CIntegerCalculator::CIntegerCalculator(CWnd* pParent /*=NULL*/) : CDialog(CIntegerCalculator::IDD, pParent) {

m_nValue = 0; m_nChoice = 0; m_nOperand1=0; m_nOperand2=0; m_nOperator=-1;

m_bOperator=false; //默认没有单击运算符 }

void CIntegerCalculator::DoDataExchange(CDataExchange* pDX) {

CDialog::DoDataExchange(pDX);

DDX_Text(pDX, IDC_VALUE, m_nValue);

DDX_Radio(pDX, IDC_RADIODEC, m_nChoice); }

void CIntegerCalculator::OnB1() //数字”1”按钮响应函数 {

m_nValue=m_nValue*10+1; UpdateData(false); }

void CIntegerCalculator::OnB2() //数字”2”按钮响应函数 {

m_nValue=m_nValue*10+2;

11

UpdateData(false); }

void CIntegerCalculator::OnB3() //数字”3”按钮响应函数 {

m_nValue=m_nValue*10+3; UpdateData(false); }

void CIntegerCalculator::OnB4() //数字”4”按钮响应函数 {

m_nValue=m_nValue*10+4; UpdateData(false); }

void CIntegerCalculator::OnB5() //数字”5”按钮响应函数 {

m_nValue=m_nValue*10+5; UpdateData(false); }

void CIntegerCalculator::OnB6()//数字”6”按钮响应函数 {

m_nValue=m_nValue*10+6; UpdateData(false); }

void CIntegerCalculator::OnB7()//数字”7”按钮响应函数 {

m_nValue=m_nValue*10+7; UpdateData(false); }

void CIntegerCalculator::OnB8()//数字”8”按钮响应函数 {

m_nValue=m_nValue*10+8; UpdateData(false); }

void CIntegerCalculator::OnB9()//数字”9”按钮响应函数 {

m_nValue=m_nValue*10+9; UpdateData(false); }

void CIntegerCalculator::OnB0() //数字”0”按钮响应函数 {

m_nValue=m_nValue*10+0; UpdateData(false); }

void CIntegerCalculator::OnBc() //”清空”按钮响应函数 {

12

m_nValue=0;

m_nOperator=-1;

m_bOperator=false; //置标识位 m_nOperand1=0; //清空数据 m_nOperand2=0;

UpdateData(false); //更新显示 }

void CIntegerCalculator::OnBequal() //“=”按钮响应函数 {

if(m_bOperator==false) //判断是否单击过运算符 {

AfxMessageBox(\输入错误,请单击运算符\ return; }

m_nOperand2=m_nValue; //获得第二个操作数 if(m_nChoice==1) //如果选八进制 {

//将运算数转换为十进制

m_nOperand1=octToDec(m_nOperand1); m_nOperand2=octToDec(m_nOperand2); }

switch(m_nOperator) {

case 1:

m_nValue=m_nOperand1+m_nOperand2; break; case 2:

m_nValue=m_nOperand1-m_nOperand2; break; case 3:

m_nValue=m_nOperand1*m_nOperand2; break; case 4:

if(m_nOperand2==0) //判断除数是否为0 {

AfxMessageBox(\除数不能为零,请重新计算!\ OnBc(); //调用“清空”响应函数 }

m_nValue=m_nOperand1/m_nOperand2; break; }

if(m_nChoice==1) {

char s8[30];

13

itoa(m_nValue,s8,8); //将计算结果以八进制显示 m_nValue=atoi(s8); }

UpdateData(false); //显示计算结果

m_nValue=0; //为下一次运算做准备 }

void CIntegerCalculator::OnBadd() “+”按钮响应函数 {

m_nOperator=1; m_bOperator=true; m_nOperand1=m_nValue; m_nValue=0; }

void CIntegerCalculator::OnBsub() “-”按钮响应函数 {

m_nOperator=2; m_bOperator=true; m_nOperand1=m_nValue; m_nValue=0; }

void CIntegerCalculator::OnBmul() //“*”按钮响应函数 {

m_nOperator=3; m_bOperator=true; m_nOperand1=m_nValue; m_nValue=0; }

void CIntegerCalculator::OnBdiv() //“/”按钮响应函数 {

m_nOperator=4; m_bOperator=true; m_nOperand1=m_nValue; m_nValue=0; }

void CIntegerCalculator::OnRadiodec() //十进制功能 {

CButton *p8=((CButton *)GetDlgItem(IDC_B8));//通过ID得到按钮控件对象指针 p8->EnableWindow(true); //使按钮可用

CButton *p9=((CButton *)GetDlgItem(IDC_B9)); p9->EnableWindow(true); transform(); //进制转换 }

void CIntegerCalculator::OnRadiooct() //八进制功能 {

14

CButton *p8=((CButton *)GetDlgItem(IDC_B8)); p8->EnableWindow(false); //使按钮不可用 CButton *p9=((CButton *)GetDlgItem(IDC_B9)); p9->EnableWindow(false); transform(); }

void CIntegerCalculator::transform() //进制转换 {

UpdateData(true); //获得数据

if(m_nChoice==0) //如果选择十进制

m_nValue=octToDec(m_nValue); //将八进制转换为十进制 else //如果选择八进制 {

char s8[30];

itoa(m_nValue,s8,8);

m_nValue=atoi(s8); //更新界面,显示转换后结果 }

UpdateData(false); }

int CIntegerCalculator::octToDec(int value) //八进制转换为十进制 {

int result=0; //结果 int num=0; //次幂 while(value!=0) {

int low=value; //取个位数 int mul=1;

for(int i=0;i

mul*=8; }

result=result+low*mul; //累加结果 num++;

value=value/10; //去掉个位数 }

return result; //返回计算结果 }

void CIntegerCalculator::OnCheckchoice() //复选框控件功能 {

CButton *pChoice=((CButton*)GetDlgItem(IDC_CHECKCHOICE)); if(BST_CHECKED==pChoice->GetCheck()) {

CButton *pDec=((CButton*)GetDlgItem(IDC_RADIODEC)); pDec->EnableWindow(true);

15


面向对象程序设计-课程设计-实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:扬州市第三人民医院敬老月活动总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: