vc考核报告初稿.docx
《vc考核报告初稿.docx》由会员分享,可在线阅读,更多相关《vc考核报告初稿.docx(12页珍藏版)》请在冰点文库上搜索。
![vc考核报告初稿.docx](https://file1.bingdoc.com/fileroot1/2023-7/22/c1fd8e1d-68a5-4ae1-8506-31647e0053f1/c1fd8e1d-68a5-4ae1-8506-31647e0053f11.gif)
vc考核报告初稿
目录
一.设计方案及功能描述1
二.实现步骤及主要程序代码1
1.添加并设计对话框1
2.完善Cqyjdlg类代码4
3.调用对话框7
三.运行结果9
四.总结及心得10
一.设计方案及功能描述
本次作业要求设计一个商店日营业额输入(内容包括文字和数字)
1.建立一个单文档的应用项目(项目名称为学生姓名拼音首字母缩写)。
2.在该应用项目下,建立一个对话框进行商店日营业额输入,并更改对话框的标题。
输入内容可以是商店名称、编号、4种商品的日营业额等。
3.在对话框中要求采用编辑框、滚动条、滑动条等进行选择,其中一种商品日营业额采用编辑框,二种商品日营业额采用滚动条,一种商品日营业额采用滑动条进行输入。
4.在应用项目主框架的菜单上设置一个菜单调用该对话框。
5.在工具栏设置一个工具按钮,点击该工具按钮也可调用该对话框。
6.将对话框的输入结果显示出来。
二.实现步骤及主要程序代码
1.添加并设计对话框
(1)启动VisualC++6.0
(2)用MFCAppWizard(exe)创建一个基于对话框的单文档应用程序qyjqyj,如图2-1
图2-1(a)
图2-1(b)
(3)在ResourceView界面,右击Dialog添加一个新的对话框资源。
右键对话框,在属性界面将ID号改为IDD_DIALOG1,标题为“商店日营业额输入”,将对话框字体改为“仿宋,10号”,如图2-2
图2-2
(4)双击对话框资源,在MFCClassWizard中为是对话框创建一个新类Cqyjdlg,如图2-3
图2-3
(5)利用控件工具栏向对话框添加如下控件,调整控件的位置,如图2-4所示
图2-4
编辑框及滑动条的属性如表2-1
添加的控件
ID号
标题
其他属性
商店名编辑框
IDC_EDIT_NAME
——
默认
商店编号编辑框
IDC_EDIT_NO
——
默认
五花肉编辑框
IDC_EDIT_Goods1
——
默认
糖醋排骨编辑框
IDC_EDIT_Goods2
——
默认
可乐鸡翅编辑框
IDC_EDIT_Goods3
——
默认
水晶猪蹄编辑框
IDC_EDIT_Goods4
——
默认
水平滚动条1
IDC_SCROLLBAR1
——
默认
水平滚动条2
IDC_SCROLLBAR2
——
默认
滑动条
IDC_SLIDER
——
默认
表2-1
2.完善Cqyjdlg类代码
(1)打开ClassWizard的MemberVariables页面,查看Classname是否是Cqyjdlg,选中所需的控件ID号,双击鼠标,依次为下列控件增加成员变量,如图2-5
图2-5
(2)打开MFCClassWizard,在MessageMaps页面中,为Cqyjdlg添加WM_INITDIALOG的消息映射,取默认的映射名称,如图2-6
图2-6
并添加下列代码:
BOOLCqyjdlg:
:
OnInitDialog()
{
//TODO:
Addextrainitializationhere
CDialog:
:
OnInitDialog();
m_scroll1.SetScrollRange(0,10);//设置滚动条控件范围
m_scroll2.SetScrollRange(0,20);
m_slider.SetRange(0,100);//设置滚动条控件范围
m_slider.SetTicFreq
(1);
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
(3)同样在MFCClassWizard的MessageMaps页面中,为Cqyjdlg增加WM_HSCROLL的消息映射,并添加下列代码:
voidCqyjdlg:
:
OnHScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar)
{intnID=pScrollBar->GetDlgCtrlID();//获取对话框中控件ID号
if(nID==IDC_SCROLLBAR1)//或是滚动条1的水平滚动消息
{switch(nSBCode)
{caseSB_LINELEFT:
m_nGoods2--;break;//单击滚动条左边箭头
caseSB_LINERIGHT:
m_nGoods2++;break;//单击滚动条左边箭头
caseSB_PAGELEFT:
m_nGoods2-=10;break;
caseSB_PAGERIGHT:
m_nGoods2+=10;break;
caseSB_THUMBTRACK:
m_nGoods2=nPos;break;
}
}
if(m_nGoods2<0)m_nGoods2=0;
if(m_nGoods2>100)m_nGoods2=100;
m_scroll1.SetScrollPos(m_nGoods2);
if(nID==IDC_SCROLLBAR2)//或是滚动条2的水平滚动消息
{switch(nSBCode)
{caseSB_LINELEFT:
m_nGoods3--;break;//单击滚动条左边箭头
caseSB_LINERIGHT:
m_nGoods3++;break;//单击滚动条左边箭头
caseSB_PAGELEFT:
m_nGoods3-=10;break;
caseSB_PAGERIGHT:
m_nGoods3+=10;break;
caseSB_THUMBTRACK:
m_nGoods3=nPos;break;
}
}
if(m_nGoods3<0)m_nGoods3=0;
if(m_nGoods3>100)m_nGoods3=100;
m_scroll2.SetScrollPos(m_nGoods3);
if(nID==IDC_SLIDER1)//或是滑动条的水平滚动消息
{switch(nSBCode)
{caseSB_LINELEFT:
m_nGoods4--;break;
caseSB_LINERIGHT:
m_nGoods4++;break;
caseSB_PAGELEFT:
m_nGoods4-=10;break;
caseSB_PAGERIGHT:
m_nGoods4+=10;break;
caseSB_THUMBTRACK:
m_nGoods4=nPos;break;
}
}
if(m_nGoods4<0)m_nGoods4=0;
if(m_nGoods4>100)m_nGoods4=100;
m_slider.SetPos(m_nGoods4);
UpdateData(FALSE);//将变量内容显示在控件中
Invalidate();//是对话框无效,强迫系统重绘对话框
//TODO:
Addyourmessagehandlercodehereand/orcalldefault
CDialog:
:
OnHScroll(nSBCode,nPos,pScrollBar);
}
(4)为控件ID_OK添加映射函数,并添加下列代码
voidCqyjdlg:
:
OnOK()
{CStringstr,strctrl;
str="商店名称:
";
GetDlgItemText(IDC_EDIT_NAME,strctrl);
str=str+strctrl;
str=str+"\n商店编号:
";
GetDlgItemText(IDC_EDIT_NO,strctrl);
str=str+strctrl;
str=str+"\n五花肉营业额:
";
GetDlgItemText(IDC_EDIT_Goods1,strctrl);
str=str+strctrl;
str=str+"\n糖醋排骨营业额:
";
GetDlgItemText(IDC_EDIT_Goods2,strctrl);
str=str+strctrl;
str=str+"\n可乐鸡翅营业额:
";
GetDlgItemText(IDC_EDIT_Goods3,strctrl);
str=str+strctrl;
str=str+"\n水晶猪蹄营业额:
";
GetDlgItemText(IDC_EDIT_Goods4,strctrl);
str=str+strctrl;
MessageBox(str,"营业额");
//TODO:
Addextravalidationhere
CDialog:
:
OnOK();
}
3.调用对话框
(1)在菜单栏中新加一个菜单项“对话框”用来调用对话框,其ID号为IDD_DIALOG1,使得当在菜单栏中点击对话框,即显示新建的对话框。
同样在工具栏中增加一个图标,将其ID号改为IDD_DIALOG1,使得在工具栏中点击设计的图标,也可显示调用的对话框。
如图2-7
图2-7
(2)在MFCClassWizard的MessageMaps页面Classname列表框中选择CMainFrame,在IDs列表中选择ID_DIALOG1,在Messages框中找到并选择COMMAND,添加映射函数代码如下:
voidCMainFrame:
:
OnDialog1()
{CCqyjdlgdlg;
if(IDOK==dlg.DoModal())
{
//获取对话框数据
CStringstr;
str.Format("%s,%s,%4.1f,%d,%d,%d",
dlg.m_strName,
dlg.m_strNO,
dlg.m_fGoods1,
dlg.m_nGoods2,
dlg.m_nGoods3,
dlg.m_nGoods4);
AfxMessageBox(str);
}
//TODO:
Addyourcommandhandlercodehere
}
(3)在文件MainFrm.cpp的前面添加Cqyjdlg类的头文件包含语句:
#include"stdafx.h"
#include"qyj.h"
#include"MainFrm.h"
#include"Cqyjdlg.h"
(4)编译运行并测试
3.运行结果
程序编译运行后单击菜单“对话框”或工具栏中“
”,即可弹出设计的对话框,对对话框进行编辑,单击确定,弹出输入信息窗口,如图3-1所示
图3-1
4.总结及心得
通过此次课程设计,使我更加扎实的掌握了有关VC++方面的知识,在设计过程中,虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
VC++诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。
同时,设计让我感触很深。
使我对抽象的理论有了具体的认识。
通过这次课程设计,我掌握了常用控件的用法,如单选框,复选框,编辑框,旋转按钮的添加。
学会了用菜单调用对话框和工具栏调用对话框的方法,并初步学会了VC++的一些简单的编程。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在实验课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。