- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC课程设计《算术表达式》最终版
2015-12-27
孙启凡 1408010225
班级:软件工程1402班
指导教师:李洪安
Visual C++课程设计
算术表达式
摘 要:
本课程设计实现算术表达式的计算。在课程设计中,系统开发平台为Windows 7,程序设计语言采用MFC,程序运行平台为Windows 2000/XP及以上。在程序设计中,对于输入的算术表达式,对其进行运算并输出结果。
关键词:MFC;算术表达式
1 绪 论
1.1 Visual C++
Visual C++为用户提供了一个可视化、通用的应用程序集成开发环境——Visual Studio。Visual Studio包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具以及一套联机文档(MSDN)。通过Visual Studio,开发人员可以完成项目工程的创建、程序的编辑、修改、运行和调试等各种操作。Visual Studio采用标准的多窗口用户界面,提供了大量实用工具以支持可视化编程的特性,包括项目工作区、AppWizard(应用程序向导)、ClassWizard(类向导)、WizardBar(向导工具条)、Component Gallery(组件画廊)等。
1.2 算术表达式
在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。为简化,规定操作数只能为正整数,操作符为+、-*、/,用#表示结束。
2 需求分析
本课程设计实现算术表达式的运算。
2.1 功能概述
整个程序的主界面如图1所示。
图1
对于用户输入的算术表达式,输出合适的运算结果。
2.2 功能需求分析
程序属于设立栈,并且用数组来接受用户的输入。
3 总体设计
3.1 程序框架的搭建
(1) 工程项目的创建
利用应用程序向导创建一个名称为Walk1的工程项目。由于不需要工具栏功能,所以在向导的第四步里面把“隐藏工具栏”的选项置空,其他均使用默认设置。
(2) 主界面的设计
在位图资源中插入一副位图(IDB_BITMAP1)来作为背景,然后需要一个对话框来与用户交互,所以在CGView类的OnDraw函数中调用该位图以及对话框资源。
然后,修改主窗口的名字以及取消默认菜单栏的调用,在CMainFrame类中的OnCreate()函数和PreCreateWindow()函数实现。
void CGView::OnDraw()
{
CGDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rctClient;
GetClientRect(rctClient);
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);
CBitmap m_bmp;
m_bmp.LoadBitmap(IDB_BITMAP1);
BITMAP bitmap;
m_bmp.GetBitmap(bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(m_bmp);
Ctestlog a;
a.DoModal();
pDC-StretchBlt(0,0,rctClient.Width(),rctClient.Height(),dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0(Failed to create status bar\n);
return -1; // fail to create
}
SetMenu(NULL); //取消默认菜单栏的调用
// CG: The following line was added by th
文档评论(0)