C++实验.docx
- 文档编号:16820664
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:19
- 大小:133.30KB
C++实验.docx
《C++实验.docx》由会员分享,可在线阅读,更多相关《C++实验.docx(19页珍藏版)》请在冰点文库上搜索。
C++实验
一、编辑对话资源如下:
二、给相应控件关联变量:
DDX_Control(pDX,IDC_SCROLLBAR2,m_ScrollBar2);
DDX_Control(pDX,IDC_SCROLLBAR1,m_ScrollBar1);
DDX_Control(pDX,IDC_ITEM2_EDIT,m_Item2_Edit);
DDX_Control(pDX,IDC_ITEM1_EDIT,m_Item1_Edit);
DDX_Text(pDX,IDC_RESULT_EDIT,m_Result_Edit);
三、给各按钮关联函数:
ON_BN_CLICKED(IDC_ADD_BUTTON,OnAddButton)
ON_BN_CLICKED(IDC_DIFFERENCE_BUTTON,OnDifferenceButton)
ON_BN_CLICKED(IDC_MULTIPLY_BUTTON,OnMultiplyButton)
ON_BN_CLICKED(IDC_DEVIDE_BUTTON,OnDevideButton)
ON_BN_CLICKED(IDC_CLEAR_BUTTON,OnClearButton)
ON_BN_CLICKED(IDC_EXIT_BUTTON,OnExitButton)
四、给函数加代码:
voidCJsqDlg:
:
OnAddButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
charcstrItem1[10],cstrItem2[10];//定义字符串,存储数据框中的值
doubledfItem1,dfItem2,dfResult;
charcBuffer[50];//定义字符串,存储结果框中的值
m_Item1_Edit.GetWindowText(cstrItem1,10);//将编辑框的内容存到变量中
m_Item2_Edit.GetWindowText(cstrItem2,10);
dfItem1=atof((LPCTSTR)cstrItem1);//将字符串转换成浮点型
dfItem2=atof((LPCTSTR)cstrItem2);
dfResult=dfItem1+dfItem2;//加法
_gcvt(dfResult,10,cBuffer);//将结果转成字符串存在cBuffer
m_Result_Edit=(LPCTSTR)cBuffer;//cBuffer值显示在结果编辑框中
UpdateData(FALSE);//用控件关联变量将窗口中的内容更新
}
voidCJsqDlg:
:
OnDifferenceButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
charcstrItem1[10],cstrItem2[10];//定义字符串,存储数据框中的值
doubledfItem1,dfItem2,dfResult;
charcBuffer[50];//定义字符串,存储结果框中的值
m_Item1_Edit.GetWindowText(cstrItem1,10);//将编辑框的内容存到变量中
m_Item2_Edit.GetWindowText(cstrItem2,10);
dfItem1=atof((LPCTSTR)cstrItem1);//将字符串转换成浮点型
dfItem2=atof((LPCTSTR)cstrItem2);
dfResult=dfItem1-dfItem2;
_gcvt(dfResult,10,cBuffer);//将结果转成字符串存在cBuffer
m_Result_Edit=(LPCTSTR)cBuffer;//cBuffer值显示在结果编辑框中
UpdateData(FALSE);//用控件关联变量将窗口中的内容更新
}
voidCJsqDlg:
:
OnMultiplyButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
charcstrItem1[10],cstrItem2[10];//定义字符串,存储数据框中的值
doubledfItem1,dfItem2,dfResult;
charcBuffer[50];//定义字符串,存储结果框中的值
m_Item1_Edit.GetWindowText(cstrItem1,10);//将编辑框的内容存到变量中
m_Item2_Edit.GetWindowText(cstrItem2,10);
dfItem1=atof((LPCTSTR)cstrItem1);//将字符串转换成浮点型
dfItem2=atof((LPCTSTR)cstrItem2);
dfResult=dfItem1*dfItem2;
_gcvt(dfResult,10,cBuffer);//将结果转成字符串存在cBuffer
m_Result_Edit=(LPCTSTR)cBuffer;//cBuffer值显示在结果编辑框中
UpdateData(FALSE);//用控件关联变量将窗口中的内容更新
}
voidCJsqDlg:
:
OnDevideButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
charcstrItem1[10],cstrItem2[10];//定义字符串,存储数据框中的值
doubledfItem1,dfItem2,dfResult;
charcBuffer[50];//定义字符串,存储结果框中的值
m_Item1_Edit.GetWindowText(cstrItem1,10);//将编辑框的内容存到变量中
m_Item2_Edit.GetWindowText(cstrItem2,10);
dfItem1=atof((LPCTSTR)cstrItem1);//将字符串转换成浮点型
dfItem2=atof((LPCTSTR)cstrItem2);
dfResult=dfItem1/dfItem2;
_gcvt(dfResult,10,cBuffer);//将结果转成字符串存在cBuffer
m_Result_Edit=(LPCTSTR)cBuffer;//cBuffer值显示在结果编辑框中
UpdateData(FALSE);//用控件关联变量将窗口中的内容更新
}
voidCJsqDlg:
:
OnClearButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_Item1_Edit.SetSel(0,-1);//选中编辑框IDC_EDIT1中的全部内容
m_Item1_Edit.ReplaceSel("");//用空字符替换
m_Item2_Edit.SetSel(0,-1);//选中编辑框中的全部内容
m_Item2_Edit.ReplaceSel("");//用空字符替换
m_Result_Edit="";//清空(string类型)
UpdateData(FALSE);
}
voidCJsqDlg:
:
OnExitButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
OnOK();//退出应用程序
}
五、增加菜单资源并关联函数后添加代码如下:
voidCJsqDlg:
:
OnAddMenu()
{
//TODO:
Addyourcommandhandlercodehere
OnAddButton();//直接调用定义好的函数,执行加法运算
}
voidCJsqDlg:
:
OnAboutMenu()
{
//TODO:
Addyourcommandhandlercodehere
MessageBox("Thisisacalculate.");//弹出提示对话框
}
voidCJsqDlg:
:
OnDifferenceMenu()
{
//TODO:
Addyourcommandhandlercodehere
OnDifferenceButton();
}
voidCJsqDlg:
:
OnDevideMenu()
{
//TODO:
Addyourcommandhandlercodehere
OnDevideButton();
}
voidCJsqDlg:
:
OnExitMenu()
{
//TODO:
Addyourcommandhandlercodehere
OnOK();
}
voidCJsqDlg:
:
OnClearMenu()
{
//TODO:
Addyourcommandhandlercodehere
OnClearButton();
}
voidCJsqDlg:
:
OnMultiplyMenu()
{
//TODO:
Addyourcommandhandlercodehere
OnMultiplyButton();
}
六、程序运行结果:
一、第二实验方法与上个计算器一样,主要添加代码如下:
voidCShiLi_10_1Dlg:
:
OnTimeCheck()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);//以当前的屏幕显示内容更新控件的变量
if(m_TimeCheck==TRUE)//若选中Time则在编辑框中显示时间
{CTimetNow;//创建CTime的对象
tNow=CTime:
:
GetCurrentTime();//获取当前系统时间
CStringsNow=tNow.Format("%I:
%M:
%S");//24小时:
%H:
%M:
%S
m_TimeEdit.SetSel(0,-1);
m_TimeEdit.ReplaceSel(sNow);//将编辑框替换为系统时间
}
else
{m_TimeEdit.SetSel(0,-1);
m_TimeEdit.ReplaceSel("");
}
//UpdateData(FALSE);
}
voidCShiLi_10_1Dlg:
:
OnEnableButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
GetDlgItem(IDC_DATE_CHECK)->EnableWindow(TRUE);
//使复选框可选,函数返回指向对象的指针函数
GetDlgItem(IDC_TIME_CHECK)->EnableWindow(TRUE);
m_DateEdit.EnableWindow(TRUE);//使编辑框可用
//也可表示成:
GetDlgItem(IDC_DATE_EDIT)->EnableWindow(TRUE);
m_TimeEdit.EnableWindow(TRUE);
//也可表示成:
GetDlgItem(IDC_TIME_EDIT)->EnableWindow(TRUE);
}
voidCShiLi_10_1Dlg:
:
OnDisableButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
GetDlgItem(IDC_DATE_CHECK)->EnableWindow(FALSE);
GetDlgItem(IDC_TIME_CHECK)->EnableWindow(FALSE);
//使编辑框不可用
m_DateEdit.EnableWindow(FALSE);
m_TimeEdit.EnableWindow(FALSE);
}
voidCShiLi_10_1Dlg:
:
OnShowButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
//使编辑框可见
GetDlgItem(IDC_DATE_CHECK)->EnableWindow(SW_SHOW);
GetDlgItem(IDC_TIME_CHECK)->EnableWindow(SW_SHOW);
GetDlgItem(IDC_DATE_EDIT)->EnableWindow(SW_SHOW);
m_DateEdit.ShowWindow(SW_SHOW);
GetDlgItem(IDC_TIME_EDIT)->EnableWindow(SW_SHOW);
m_TimeEdit.ShowWindow(SW_SHOW);
}
voidCShiLi_10_1Dlg:
:
OnHideButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
//使编辑框可见
GetDlgItem(IDC_DATE_CHECK)->EnableWindow(SW_HIDE);
GetDlgItem(IDC_TIME_CHECK)->EnableWindow(SW_HIDE);
m_DateEdit.EnableWindow(SW_HIDE);
m_DateEdit.ShowWindow(SW_HIDE);
m_TimeEdit.EnableWindow(SW_HIDE);
m_TimeEdit.ShowWindow(SW_HIDE);
}
voidCShiLi_10_1Dlg:
:
OnShowSexAgeButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
charsEdit[50];//声明字符串变量,用来存放显示在编辑框中的字符
intiSexRADIO;intiAgeRADIO;//表示选中按钮的状态
//单选按钮组的状态,返回被选按钮的ID
iSexRADIO=GetCheckedRadioButton(IDC_BOY_RADIO,IDC_GIRL_RADIO);
if(iSexRADIO==IDC_BOY_RADIO)strcpy(sEdit,"Theboy'sageis");
if(iSexRADIO==IDC_GIRL_RADIO)strcpy(sEdit,"Thegirl'sageis");
//复制字符串到变量中
iAgeRADIO=GetCheckedRadioButton(IDC_20_RADIO,IDC_15_RADIO);
if(iAgeRADIO==IDC_20_RADIO)strcat(sEdit,"greatthan20");
if(iAgeRADIO==IDC_15_20_RADIO)strcat(sEdit,"between15and20");
if(iAgeRADIO==IDC_15_RADIO)strcat(sEdit,"lessthan15");
m_ResultEdit.SetSel(0,-1);m_ResultEdit.ReplaceSel(sEdit);//选中并替换
}
voidCShiLi_10_1Dlg:
:
OnShowComboButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
charsCourseEdit[30];charsRecordEdit[15];//编辑框中显示course,record
intiCourseRadio;//声明选中的课程
iCourseRadio=GetCheckedRadioButton(IDC_ENGLISH_RADIO,IDC_NATURE_RADIO);
//单选按钮组的状态,返回被选按钮的ID
if(iCourseRadio==IDC_ENGLISH_RADIO)strcpy(sCourseEdit,"Englishrecordis");
if(iCourseRadio==IDC_COMPUTER_RADIO)strcpy(sCourseEdit,"Computerrecordis");
if(iCourseRadio==IDC_NATURE_RADIO)strcpy(sCourseEdit,"Naturalrecordis");
m_Record.GetWindowText(sRecordEdit,15);//获取列表框中选中的内容
strcat(sCourseEdit,"");//字符串连接空格
strcat(sCourseEdit,sRecordEdit);//字符串连接分数
m_ComboEdit=_T(sCourseEdit);//或m_ComboEdit=sCourseEdit;
UpdateData(FALSE);//显示更新
}
voidCShiLi_10_1Dlg:
:
OnExitButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
OnOK();
}
二、程序运行结果如下:
一、第三个实验为:
输入10个任意数据,然后对这10个数据进行统计计算,如平均值、方差、均方根。
主要加入代码如下:
voidCChenYuCheng_ZuoYe_9_1Dlg:
:
OnCalculateButton()
{
UpdateData(TRUE);
floatJz=0.1*(atof(m_Item1_Edit)+atof(m_Item2_Edit)+atof(m_Item3_Edit)\
+atof(m_Item10_Edit)+atof(m_Item4_Edit)+atof(m_Item5_Edit)\
+atof(m_Item6_Edit)+atof(m_Item7_Edit)+atof(m_Item8_Edit)+atof(m_Item9_Edit));
floatFc=0.1*((atof(m_Item1_Edit)-Jz)*(atof(m_Item1_Edit)-Jz)\
+(atof(m_Item2_Edit)-Jz)*(atof(m_Item2_Edit)-Jz)\
+(atof(m_Item3_Edit)-Jz)*(atof(m_Item3_Edit)-Jz)\
+(atof(m_Item4_Edit)-Jz)*(atof(m_Item4_Edit)-Jz)\
+(atof(m_Item5_Edit)-Jz)*(atof(m_Item5_Edit)-Jz)\
+(atof(m_Item6_Edit)-Jz)*(atof(m_Item6_Edit)-Jz)\
+(atof(m_Item7_Edit)-Jz)*(atof(m_Item7_Edit)-Jz)\
+(atof(m_Item8_Edit)-Jz)*(atof(m_Item8_Edit)-Jz)\
+(atof(m_Item9_Edit)-Jz)*(atof(m_Item9_Edit)-Jz)\
+(atof(m_Item10_Edit)-Jz)*(atof(m_Item10_Edit)-Jz));
floatJfc=sqrt(Fc);
m_Jz_Edit.Format("%g",Jz);m_Fc_Edit.Format("%g",Fc);
m_Jfc_Edit.Format("%g",Jfc);UpdateData(FALSE);
}
voidCChenYuCheng_ZuoYe_9_1Dlg:
:
OnExitButton()
{
OnOK();
}
二、程序运行结果如下:
一、
编辑菜单,增加“操作”功能,在其目录下添加“显示”、“修改字符串”功能,加入代码如下:
voidCChenYuCheng_12_2View:
:
OnColorGreen()
{
//TODO:
Addyourcommandhandlercodehere
m_nColor=RGB(0,255,0);//设定当前颜色为绿色
Invalidate();
}
voidCChenYuCheng_12_2View:
:
OnColorRed()
{
//TODO:
Addyourcommandhandlercodehere
m_nColor=RGB(255,0,0);//设定当前颜色为红色
Invalidate();
}
voidCChenYuCheng_12_2View:
:
OnOperShow()
{
//TODO:
Addyourcommandhandlercodehere
m_bShow=!
m_bShow;
//前面定义有:
BOOLm_bshow;m_bshow=TRUE;
Invalidate();//强制刷新窗口,或InvalidateRect(NULL,TRUE);
}
voidCChenYuCheng_12_2View:
:
OnColorBlue()
{
//TODO:
Addyourcommandhandlercodehere
m_nColor=RGB(0,0,255);//设定当前颜色为蓝色
Invalidate();
}
voidCChenYuCheng_12_2View:
:
OnOperString()
{
//TODO:
Addyourcommandhandlercodehere
CInputDlgdlgInput;//声明对话框变量
if(dlgInput.DoModal()==IDOK)//弹出模态对话框,若用户点击OK按钮
{m_strShow=dlgInput.m_strInput;//更改显示的字符串
Invalidate();}//强制重绘
}
二、增加工具栏,编辑好资源好后,在主框架类CMainFrame:
:
OnCr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验
![提示](https://static.bingdoc.com/images/bang_tan.gif)