基于MFC工程的绩点计算器实验报告.docx
- 文档编号:27015901
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:38
- 大小:2.07MB
基于MFC工程的绩点计算器实验报告.docx
《基于MFC工程的绩点计算器实验报告.docx》由会员分享,可在线阅读,更多相关《基于MFC工程的绩点计算器实验报告.docx(38页珍藏版)》请在冰豆网上搜索。
基于MFC工程的绩点计算器实验报告
实验报告
(适用计算机程序设计类)
实验名称:
平均学分绩点计算器
1.实验目的:
掌握用VC++6.0创建MFC方法
能够使用MFC工程实现可视化设计
2.实验内容:
(1)学习掌握创建MFC工程的方法。
(2)学习向MFC工程中添加、使用控件的方法。
(3)学习使用MFC工程实现可视化设计。
3.实验方案(程序设计说明)
(1)添加控件
(2)设定个控件属性,添加类向导
(3)根据要求填写函数
4.实验步骤或程序(经调试后正确的源程序)
(填写主要步骤与程序代码等。
见附件A)
5.程序运行结果
见附件A
6.出现的问题及解决方法
见附件A
附件A实验报告
(适用计算机程序设计类)
实验步骤或程序:
BOOLCMy100402128Dlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//改变静态文字字体
m_editFont.CreatePointFont(180,"宋体");
m_edit_riqi.SetFont(&m_editFont);
m_edit_shijian.SetFont(&m_editFont);
GetDlgItem(IDC_STATIC_kecheng1)->SetFont(&font);
GetDlgItem(IDC_STATIC_kecheng2)->SetFont(&font);
GetDlgItem(IDC_STATIC_chengji1)->SetFont(&font);
GetDlgItem(IDC_STATIC_chengji2)->SetFont(&font);
GetDlgItem(IDC_STATIC_xuefen1)->SetFont(&font);
GetDlgItem(IDC_STATIC_xuefen2)->SetFont(&font);
GetDlgItem(IDC_STATIC_chongxiu1)->SetFont(&font);
GetDlgItem(IDC_STATIC_chongxiu2)->SetFont(&font);
GetDlgItem(IDC_STATIC_gaoshu)->SetFont(&font);
GetDlgItem(IDC_STATIC_wuli)->SetFont(&font);
GetDlgItem(IDC_STATIC_dianlu)->SetFont(&font);
GetDlgItem(IDC_STATIC_gailu)->SetFont(&font);
GetDlgItem(IDC_STATIC_jisuanji)->SetFont(&font);
GetDlgItem(IDC_STATIC_cyuyan)->SetFont(&font);
GetDlgItem(IDC_STATIC_modian)->SetFont(&font);
GetDlgItem(IDC_STATIC_shudian)->SetFont(&font);
GetDlgItem(IDC_STATIC_yingyu)->SetFont(&font);
GetDlgItem(IDC_STATIC_tiyu)->SetFont(&font);
GetDlgItem(IDC_STATIC_sixiu)->SetFont(&font);
GetDlgItem(IDC_STATIC_changlun)->SetFont(&font);
GetDlgItem(IDC_STATIC_fubian)->SetFont(&font);
GetDlgItem(IDC_STATIC_maogai)->SetFont(&font);
GetDlgItem(IDC_STATIC_xiandai)->SetFont(&font);
GetDlgItem(IDC_STATIC_lishi)->SetFont(&font);
GetDlgItem(IDC_STATIC_gaoshuxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_wulixuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_dianluxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_gailuxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_jisuanjixuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_cyuyanxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_modianxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_shudianxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_yingyuxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_tiyuxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_sixiuxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_changlunxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_fubianxuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_maogaixuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_xiandaixuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_lishixuefen)->SetFont(&font);
GetDlgItem(IDC_STATIC_diyixuenian)->SetFont(&font);
GetDlgItem(IDC_STATIC_dierxuenian)->SetFont(&font);
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
voidCMy100402128Dlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
//CDialog:
:
OnPaint();把这个注释掉,不调用基类的OnPaint()
CPaintDCdc(this);
CDCmemdc;
memdc.CreateCompatibleDC(&dc);//创建兼容DC
CBitmapbkg;
bkg.LoadBitmap(IDB_BITMAP4);//载入位图
BITMAPbkginfo;
bkg.GetBitmap(&bkginfo);//获取位图信息
memdc.SelectObject(&bkg);
RECTrect;
GetWindowRect(&rect);//获取对话框信息
dc.StretchBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&memdc,0,0,bkginfo.bmWidth,
bkginfo.bmHeight,SRCCOPY);
}
}
HCURSORCMy100402128Dlg:
:
OnQueryDragIcon()
{
return(HCURSOR)m_hIcon;
}
voidCMy100402128Dlg:
:
OnCHECKriqi()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
if(m_chk_riqi==TRUE)
{CTimetNow;
tNow=CTime:
:
GetCurrentTime();
CStringsNow=tNow.Format("%y.%m.%d");
m_edit_riqi.SetSel(0,-1);
m_edit_riqi.ReplaceSel(sNow);
}
else
{m_edit_riqi.SetSel(0,-1);
m_edit_riqi.ReplaceSel("");
}
}
voidCMy100402128Dlg:
:
OnCHECKshijian()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
if(m_chk_shijian==TRUE)
{CTimetNow;
tNow=CTime:
:
GetCurrentTime();
CStringsNow=tNow.Format("%I:
%M:
%S");
m_edit_shijian.SetSel(0,-1);
m_edit_shijian.ReplaceSel(sNow);
}
else
{m_edit_shijian.SetSel(0,-1);
m_edit_shijian.ReplaceSel("");
}
UpdateData(FALSE);
}
voidCMy100402128Dlg:
:
OnBUTTONjisuan1()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
//将成绩转换为绩点
floatsixiu_jidian,lishi_jidian,tiyu_jidian,gaoshu_jidian,
yingyu_jidian,xiandai_jidian,dianlu_jidian,jisuanji_jidian;
if(m_edit_gaoshu<60)
gaoshu_jidian=0;
else
gaoshu_jidian=(m_edit_gaoshu-60)*0.2+2;
if(m_edit_yingyu<60)
yingyu_jidian=0;
else
yingyu_jidian=(m_edit_yingyu-60)*0.2+2;
if(m_edit_xiandai<60)
xiandai_jidian=0;
else
xiandai_jidian=(m_edit_xiandai-60)*0.2+2;
if(m_edit_dianlu<60)
dianlu_jidian=0;
else
dianlu_jidian=(m_edit_dianlu-60)*0.2+2;
if(m_edit_jisuanji<60)
jisuanji_jidian=0;
else
jisuanji_jidian=(m_edit_jisuanji-60)*0.2+2;
switch(m_combo_sixiu.GetCurSel())
{
case0:
sixiu_jidian=8;break;
case1:
sixiu_jidian=6;break;
case2:
sixiu_jidian=4;break;
case3:
sixiu_jidian=2;break;
case4:
sixiu_jidian=0;break;
}
switch(m_combo_lishi.GetCurSel())
{
case0:
lishi_jidian=8;break;
case1:
lishi_jidian=6;break;
case2:
lishi_jidian=4;break;
case3:
lishi_jidian=2;break;
case4:
lishi_jidian=0;break;
}
switch(m_combo_tiyu.GetCurSel())
{
case0:
tiyu_jidian=8;break;
case1:
tiyu_jidian=6;break;
case2:
tiyu_jidian=4;break;
case3:
tiyu_jidian=2;break;
case4:
tiyu_jidian=0;break;
}
//是否重修
if(m_chk_gaoshu==TRUE)
gaoshu_jidian=gaoshu_jidian-1;
if(m_chk_xiandai==TRUE)
xiandai_jidian=xiandai_jidian-1;
if(m_chk_yingyu==TRUE)
yingyu_jidian=yingyu_jidian-1;
if(m_chk_dianlu==TRUE)
dianlu_jidian=dianlu_jidian-1;
if(m_chk_jisuanji==TRUE)
jisuanji_jidian=jisuanji_jidian-1;
if(m_chk_sixiu==TRUE)
sixiu_jidian=sixiu_jidian-1;
if(m_chk_lishi==TRUE)
lishi_jidian=lishi_jidian-1;
if(m_chk_tiyu==TRUE)
tiyu_jidian=tiyu_jidian-1;
//绩点是否小于零
if(gaoshu_jidian<0)
gaoshu_jidian=0;
if(xiandai_jidian<0)
xiandai_jidian=0;
if(yingyu_jidian<0)
yingyu_jidian=0;
if(dianlu_jidian<0)
dianlu_jidian=0;
if(jisuanji_jidian<0)
jisuanji_jidian=0;
if(sixiu_jidian<0)
sixiu_jidian=0;
if(lishi_jidian<0)
lishi_jidian=0;
if(tiyu_jidian<0)
tiyu_jidian=0;
//计算绩点1
floatjidian1=(gaoshu_jidian*6
+yingyu_jidian*4
+xiandai_jidian*2
+dianlu_jidian*4.5
+sixiu_jidian*2
+lishi_jidian*2
+tiyu_jidian*1
+jisuanji_jidian*3)/24.5;
//成绩是否>100
if(m_edit_gaoshu>100)
{
m_edit_jidian1.Format("高数成绩输入有误,请重新输入!
!
!
");
m_edit_jieguo1.Format("");
}
elseif(m_edit_xiandai>100)
{
m_edit_jidian1.Format("线代成绩输入有误,请重新输入!
!
!
");
m_edit_jieguo1.Format("");
}
elseif(m_edit_yingyu>100)
{
m_edit_jidian1.Format("英语成绩输入有误,请重新输入!
!
!
");
m_edit_jieguo1.Format("");
}
elseif(m_edit_dianlu>100)
{
m_edit_jidian1.Format("电路成绩输入有误,请重新输入!
!
!
");
m_edit_jieguo1.Format("");
}
elseif(m_edit_jisuanji>100)
{
m_edit_jidian1.Format("计算机成绩输入有误,请重新输入!
!
!
");
m_edit_jieguo1.Format("");
}
else
{
m_edit_jidian1.Format("第一学年平均学分绩点:
%4.2f",jidian1);
if(jidian1>7)
m_edit_jieguo1.Format("恭喜你,继续努力,争取被保研!
!
!
");
elseif(jidian1<4)
m_edit_jieguo1.Format("真遗憾,你需要努力了,否则可能拿不到学位证了!
!
!
");
else
m_edit_jieguo1.Format("你表现不错,希望能更进一步!
!
!
");
}
UpdateData(FALSE);
}
voidCMy100402128Dlg:
:
OnBUTTONjisuan2()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
//将成绩转换为绩点
floatsixiu_jidian,lishi_jidian,tiyu_jidian,gaoshu_jidian,
yingyu_jidian,xiandai_jidian,dianlu_jidian,jisuanji_jidian;
if(m_edit_gaoshu<60)
gaoshu_jidian=0;
else
gaoshu_jidian=(m_edit_gaoshu-60)*0.2+2;
if(m_edit_yingyu<60)
yingyu_jidian=0;
else
yingyu_jidian=(m_edit_yingyu-60)*0.2+2;
if(m_edit_xiandai<60)
xiandai_jidian=0;
else
xiandai_jidian=(m_edit_xiandai-60)*0.2+2;
if(m_edit_dianlu<60)
dianlu_jidian=0;
else
dianlu_jidian=(m_edit_dianlu-60)*0.2+2;
if(m_edit_jisuanji<60)
jisuanji_jidian=0;
else
jisuanji_jidian=(m_edit_jisuanji-60)*0.2+2;
switch(m_combo_sixiu.GetCurSel())
{
case0:
sixiu_jidian=8;break;
case1:
sixiu_jidian=6;break;
case2:
sixiu_jidian=4;break;
case3:
sixiu_jidian=2;break;
case4:
sixiu_jidian=0;break;
}
switch(m_combo_lishi.GetCurSel())
{
case0:
lishi_jidian=8;break;
case1:
lishi_jidian=6;break;
case2:
lishi_jidian=4;break;
case3:
lishi_jidian=2;break;
case4:
lishi_jidian=0;break;
}
switch(m_combo_tiyu.GetCurSel())
{
case0:
tiyu_jidian=8;break;
case1:
tiyu_jidian=6;break;
case2:
tiyu_jidian=4;break;
case3:
tiyu_jidian=2;break;
case4:
tiyu_jidian=0;break;
}
//是否重修
if(m_chk_gaoshu==TRUE)
gaoshu_jidian=gaoshu_jidian-1;
if(m_chk_xiandai==TRUE)
xiandai_jidian=xiandai_jidian-1;
if(m_chk_yingyu==TRUE)
yingyu_jidian=yingyu_jidian-1;
if(m_chk_dianlu==TRUE)
dianlu_jidian=dianlu_jidian-1;
if(m_chk_jisuanji==TRUE)
jisuanji_jidian=jisuanji_jidian-1;
if(m_chk_sixiu==TRUE)
sixiu_jidian=sixiu_jidian-1;
if(m_chk_lishi==TRUE)
lishi_jidian=lishi_jidian-1;
if(m_chk_tiyu==TRUE)
tiyu_jidian=tiyu_jidian-1;
//绩点是否小于零
if(gaoshu_jidian<0)
gaoshu_jidian=0;
if(xiandai_jidian<0)
xiandai_jidian=0;
if(yingyu_jidian<0)
yingyu_jidian=0;
if(dianlu_jidian<0)
dianlu_jidian=0;
if(jisuanji_jidian<0)
jisuanji_jidian=0;
if(sixiu_jidian<0)
sixiu_jidian=0;
if(lishi_jidian<0)
lishi_jidian=0;
if(tiyu_jidian<0)
tiyu_jidian=0;
//计算绩点1
floatjidian1=(gaoshu_jidian*6+yingyu_jidian*4+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MFC 工程 计算器 实验 报告