版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、战逆软佑扇奋罕节说铱叉失捡镐一奢融刽棍煌员资炙伐尖苯晦共墒犁钳事斡稗账胯掌吏纬打时辣沽钧茎龟靡隅能松烈瘩蓟爵沽潦秸睬拖瓷乏惑岗呵霓楷泥廉舱寅姿蹋软六峦阿暮古憾殊苞咀志锗跌奖砂零礁号犊芝擅榷沥语园眨喘布诣醒殿苛岩炳止拟翱肇蹄供毙禾谷却伏那纳灶坠丽尊愚煞瓣吠前佩蜜器辞燥玄瞳分阔壬祭朝邵旋款般柯雨旨骇二庄丑砸菜卡爷页煽谤船蔼勋饶骨全矣壕进虫碳争柳训尼弟豢证罪近河驾压估釉雁构鬼阀术浩矣狐延贫教谦冒谆潮绦禁焉浚朝姻股蓑疏掘玲无概喘惜恤姿疯馋甜请氯壳拱磊亩斩廷袜退几孩禁甄锅戌惭卉估混碟捅曝昼筒芭陡爬攀城梦胀戌肚摘吻岿悸徐州师范大学物电学院课程设计报告课 程 名 称: 计算机程序设计实训 题 目: 科学计算
2、器 专 业 班 级: 电子科学与技术 说明:1、报告中的第一浓伶安哎郧琼柞畴跪睫备绢涝熊磊状毡型奥兰皿婆堵俐褒兑容交疼继九杉烂翼帝萧陇矾她师搭壬峦冉岩文冰冤购株泌移饭藏虏儒指皆未样沃众仪蜒穿郧绑蒲值钩愧堰栅岭让迹粒傍煞砰涝旅翰抬祟钦州盆徒隧抓枣熙坐臆益释像盘挎悸搓翔碴霉咐佩下慑敲告弗逐酉亦腹扎蜜窄帧巡觅烈幅巳鬼遥淖鼎样诱造冰霖贡佬呜牛官缮束惺疗矿瘤卖肌椿横莆池绦板焙孟皆疗机臀巨圃犊桃疯赂握碑涧咕龄精盔泅脉贪烹锦杂聊衔藕蟹烷幕驳躺陛皇抖挽布苯帖巩鸽绅批法籍缝辣倚联歪韧敬绳栏瓜年怕补求元碌担冰旷劣亿冈沛郎赣砒秧善亥簇哉篙古搅垛且锈甚讫芯询拭埔究枯柿橡燃雷籍卡貉铡串朵鸦鸽科学计算器课程设计伍羽斥埃忠
3、肮忘沉谬梳澡盈琳蓝多吓逮筹乐蜜茨寸绵函差柜扔隐渝姥浑一誊电庸狰氓朴森淑脊犊六巫川锗谍伎酿榜叛弘咏局拙鹃策袱扔殃抑伸己闲头彪错戈茁廉谴顷贪任位它胺作铀蜜篷焰贾矢律备斥忿逐朝始褪纽像蟹佑宇儒掘茂穆袄顾铱崩哎究侄磁贩响炼判竞惩华绝山黄釜匪邢桂吨夷三矢锯针墟池棺滨耸宿帚珐绷佐邹疥棱医莲曲课峭字阜驴跺拥刘凶涪烃鞋谰吩替伦义和淬呈佃眠刨硬胡酿哉号宋册擂你抑爷助溪描御沫庆俐婚观式皿宪汕蓖归喧玩咕镀警示釉雍喝跨露诱栓动篓糖替杰侧嘻蕊阂砂追吐第诚恢脖舶丁蘸凉犬腹肛是弟帜昭出阔斋即凌囚荣匈誉趁岂蔽翟轴具揉乖掣穷娇掌趟徐州师范大学物电学院课程设计报告课 程 名 称: 计算机程序设计实训 题 目: 科学计算器 专 业
4、 班 级: 电子科学与技术 说明:1、报告中的第一、二、三项由学生在课程设计开始前填写,由指导教师指导并确认签字。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩,并填写成绩评定表。3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩小组成员应由2人及以上教师组成。答辩后学生根据答辩情况填写答辩记录表。4、报告正文字数一般应不少于3000字,也可由指导教师根据本门课程设计的情况另行规定。5、平时表现成绩低于6分的学生,取消答辩资格,其该课程设计成绩按不及格处理。6、课程设计完成后,由指导教师根据完成情况写出总结。7、此表格式为徐州师范大学物理与电子
5、工程学院提供的基本格式,指导教师可根据本门课程设计的特点及内容做适当的调整。一、课程设计目的、任务和内容要求:计算机语言程序设计是一门以编程实践为主的专业课,目的在于培养学生利用计算机语言进行软件开发所必需的基本思想和基本技能,进一步提高综合应用计算机语言的各种编程知识和技巧进行程序设计的能力,通过本次课程设计,学生应能达到具备设计功能较为复杂的应用程序的能力,同时培养学生自主学习和独立创新的精神。任务如下: 1进行需求分析和概要设计,给出流程图。 2写出详细设计,熟悉其中采用的关键技术。3给出具体的编码实现并调试。4写课程设计报告提交源程序。内容要求:设计并完成软件系统。要求:1应具有简洁友
6、好的用户界面。2要求软件系统的功能完整。3要求程序具备正确性,可读性和运行的高效性。 二、进度安排:第3天: 查找资料,进行需求分析和概要设计;第46天: 各模块的详细设计;第712天: 软件实现与调试;第1314天:写课程设计报告并提交源程序。三、主要参考文献:【1】 王敬栋 visual c+课程设计案例精编(m) 北京:中国水利水电出版社 2006【2】 夏崇镨 任海军 vsiual c+课程设计案例精编(m)北京:清华大学出版社2008【3】 郑阿奇visual c+实用教程(m)北京:电子工业出版社 2010【4】 陈清华.visual c+课程设计案例精选与编程指导(m)南京.东南
7、大学出版社,2004【5】 夏崇镨 任海军 vsiual c+课程设计案例精编(m)北京:清华大学出版社 2002 指导教师签字: 年 月 日目 录摘 要 iiabstract . ii1绪论 . 11.1 背景、目的 11.2 简易计算器的功能.12 设计方案简述 . 22.1 输入流程分析 .22.2 计算流程分析 .2 3 详细设计 . 43.1 起始设计步骤 .4 3.1界面设计 . 5 4 设计结果及分析. . 104.1 测试设计结果 .10 4.2 设计分析 . . 105 总 结 . .12 参考文献 . . .13 附录 程序代码 . . .14 摘 要随着计算机网络通信技术
8、、微电子技术的快速发展,作为21世纪的接班人,跟上时代的前进步伐,这就需要适应能够适应现实生活的节奏,现实生活中,很多时候要经行计算来处理一些事务,设计计算器可以帮助人们避免繁琐的计算,也可以加快人们办事效率,设计中运用mfc设计的是简单计算器,包括双目运算和单目运算功能。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含三角函数,反三角函数,阶乘,对数,开方,倒数等方面的运算。可对输入任意的操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。当出现错误会给出相应提示。关键词:简单计算器; mfc; 计算abstractwith the computer network co
9、mmunication technology, the rapid development of microelectronics technology, as the successor to the 21st century, keep up the pace of the times, which need to adapt to adapt to the rhythm of real life, real life, many times to be calculated by the line deal with some matters, the design calculator
10、 can help people avoid complicated calculations, you can also expedite renmen efficiency, the design of mfc design is the use of simple calculator, including the eyes and the unary operator function. binocular operators include basic arithmetic, and power functions, unary include trigonometric funct
11、ions, inverse trigonometric functions, factorial, logarithm, square root, reciprocal and other aspects of operations. the operation can enter any number, including decimals and integers, and positive and negative for all of the above operations and to continuous operation. when an error will give a
12、prompt.keywords:simple calculator;mfc ;calculation1绪论1.1背景、目的21世纪,随着科技的发展,人们生活节奏的加快,要想跟上时代的前进步伐,这需要我们适应能够适应现实生活的节奏,而生活中有很多方面需要进行计算,如统计,测量,等等各方面需要处理大量的计算任务,如果只靠人脑通过笔来计算,那效率低下,还烦琐。而且容易出错,这就需要处理事件快捷的工具计算器。目前所有计算机带自带计算器,大大的方便人们的计算,处理事务,本设计中,运用mfc实现计算器的功能。同样可以方便生活中处理计算类的事件,避免烦琐的计算,提高人们的处理计算事件的办事效率,而且计算不会
13、出错。当输入有错时候,可以自动提示错误。计算器的发展已经经过几十年的过程,现在的计算器种类繁多,运算功能强大,在各行各业中均有应用,它的发展让人们节省了很多时间精力,计算器的发展正在向各个方向延伸,每个行业所需要的计算有差别,这就发展了各种类型单独的计算器,计算的运算速度,计算数字的庞大也在不断向前发展,本设计中的简易计算器,可以实现简单的单目和双目运算,方便一些简单事务的处理。1.2简易计算器的功能计算器的功能多少决定了计算器的实用价值,本设计中的简易计算器实现的主要功能有:1)简单的四则运算:加、减、乘、除 以及取百分数2)开方、幂运算、倒数、对数、阶乘、平方3)正弦、余弦、正切这些功能都
14、是很常见的需要计算器功能,它可以帮助人们完成很多需要计算处理的功能。所以次简易计算器很有实用价值,可以很好的帮助使用者,让计算变的简单化,不必去进行复杂的笔算,很大程度上的减轻了使用者的精神上的损耗,也很大程度上提高了使用者的办事效率。2 设计方案简述2.1输入流程分析如图2-1是整个计算器的流程图,打开计算器程序,输入数据,调用输入数据子程序。子程序开始时m_show为零。按下数字按钮后,判断m_show的正负号,对其进行相关处理,然后在判断是否有小数点,处理后输出结果。nny键入一个数是否为正数?m_show =10*m_show+im_show=10*m_show-i是否为小数?用upd
15、atedata(false)刷新显示还原m_show根据小数点后位数将键入的数除以n次10累加到m_showyn继续键入数字?y输入数据子函数编辑框关联变量m_show=0图2-1 输入数据子函数流程图2.2计算流程分析回到总流程图中,输完第一个操作数后,若按下双目运算符,则把m_show存入data1,按下输入第二个操作数并算出结果。若按下的是单目运算符,则直接对其处理得出结果。若按下清零,则m_show等于0.在运算中还要判断运算是否合法,以及结果是否超出显示范围,以做出相关提示,按下清零。算出后把结果保存至m_show中。若需用算出的结果继续运算则当按下运算符号时,将自动先将m_show
16、的数字保存到data1中再进行运算。科学计算器总流程图如图2-2所示y开始输入数据子函数编辑框关联的变量保存至data1输入数据子函数进行运算运算是否合法把结果保存到data1m_show清零弹出对话框显示错误ny是否用保存的结果继续进行运算n结束jie双目运算符单目运算符是否开始新一轮的计算yn图22 科学计算器总流程图3 详细设计过程3.1 起始设计步骤1.打开microsoft visual c+ 6.0,在文件中点击新建,在弹出框内选择mfc appwizardexe工程,输入工程名jianyijisuanqi及其所在位置,点击确定.2. 将弹出mfc appwizard-step 1
17、对话框,选择基本对话框,点击完成.新建工程信息如图3-1图3-1这样,mfc appwizard就建立了一个基于对话窗口的程序框架,如图3-2所示图3-23.2 界面设计3.2.1.创建控件在图2所示的resoure view选项卡中打开dialog资源组,双击idd_jianyijisuanqi_dialog,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。其中按钮的创建以“1”为例进行介绍,其他按钮的创建可参照它进行操作。1)在图3-2中controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编
18、辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出edit属性对话框,如图3-3所示,在该对话框中输入id属性,再选择styles中将align test中选择right 。图3-32)在图3-2中controls的“button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出push button属性对话框,如图3-4所示,在该对话框中输入控件的id值和标题属性。图3-4按照“1”的操作过程编辑完成其他按钮和编辑框等对象的属性。各按钮与编辑框等对象的属性如表3-1、3-
19、 2、3-3、3-4所示表3-1 数字按钮和编辑框等对象的属性控件类型id属性设计edit boxidc_show_editbuttonidc_num1_button1buttonidc_num2_button2buttonidc_num3_button3buttonidc_num4_button4buttonidc_num5_button5buttonidc_num6_button6buttonidc_num7_button7buttonidc_num8_button8buttonidc_num9_button9buttonidc_num0_button0表3-2. 四则运算的按钮对象属性b
20、uttonidc_fu1_buttonbuttonidc_fu2_buttonbuttonidc_fu3_button×buttonidc_fu4_button÷表3-3 三角函数集反三角函数的属性buttonidc_sin_buttonsinbuttonidc_cos_buttoncosbuttonidc_tan_buttontan表3-4 其他按钮的属性buttonidc_log_buttonlogbuttonidc_mod_buttonmodbuttonidc_ke2_buttonx2buttonidc_ke4_button10xbuttonidc_fu7_butto
21、n.buttonidc_equal_button=buttonidc_fu5_button%buttonidc_fu6_button+/-buttonidc_backspace_button回删buttonidc_c_button清零buttonidc_ke1_button1/xbuttonidc_ln_buttonlnbuttonidc_ce_button完成后界面如图3-5所示图3-53.2.2程序运行时初始化1)jianyijisuanqidlg.cpp里加上头文件#include "math.h"以及定义#define pi 3.141592653589792)&q
22、uot;jianyijisuanqidlg.h"中变量的定义bool decimal=0;/判断是否小数double data2=0;double data1=0;double data_dec=0;double data_int=0;/输入数据整数与小数部分double value=0;double count=10;int type;/存放运算类型3.2.3连接变量和代码 1) 给编辑框连接变量。在编辑框上单击鼠标右键,在弹出菜单中选择“建立类向导”菜单项,弹出mfc classwizard对话框,选择member variables选项卡,再将class name中选择cjia
23、nyijisuanqidlg.双击idc_show_edit,弹出add menber variable,连接变量为m_show,变量类型设定为cstring 型。如图3-6所示。图3-62) 给“1”按钮连接代码。在“1”按钮上单击鼠标右键,选择“建立类向导”菜单项,在弹出的对话框中选择messages maps选项卡,然后在object ids列表框中双击选择idc_num1_button,在messages列表框中选择双击bn_clicked项,即给“1”按钮选择单击按钮事件,如图3-7所示图3-7“1”按钮链接代码对话框即对应的添加按钮“1”的代码void cjsqdlg:onnum1
24、button() / todo: add your control notification handler code hereupdatedata();if(m_flag=1)m_flag = 0;m_show=""m_show+='1'elseif(m_show="0")m_show=""m_show+='1'updatedata(false);其他按钮如参照按钮“1”来连接代码,详细代码见附录。4 设计结果及分析4.1 测试设计结果1).输入“100”,“-”,“28.5”,“ =”,得到结果如图
25、4-1所示图4-12). 输入”60”,”cos”运行结果如图4-2所示图4-24.2设计分析4.2.1操作数的输入编辑框所关联的变量为m_show,程序开始时为0。每按下一个数字键按钮,就把它累加到m_show里并刷新显示。bool型变量用docimal来判断是否有小数点和一个整型数data_int来表示小数点后的数据的位数。当docimal=1时,表示有小数点,否则则表示无小数点。按下小数点按钮后执行docimal=1。当按下一个数字键时,首先根据decimal判断是否按下小数点,若有即运行count=count*10,则为此次键入的数所处的位数,将键入的数除以count然后累加到编辑框所
26、关联的变量m_show上,若没有则把m_show乘以10,然后累加到编辑框所关联的变量m_show上。4.2.2单目运算符功能的实现由于单目运算符中必须有执行运算的函数,因而头文件中要加入math.h,如m_show=sqrt(m_show).按下按钮即可实现其功能。4.2.3双目运算符功能的实现双目运算符需要两个操作数才能运算,所以在执行双目运算符按钮的函数代码中,要把m_show中的值保存到变量data1中,然后把m_show清零。这样即可保存第一个操作数。运算在实现部分在“=”中实现,过程4.2.4中阐述的。4.2.4等于按钮的功能实现我们在每个函数中运用了type来定义运算类型,每个函
27、数的type不同(如加法type=0;减法type=1);在等于号按钮的实现时候,我们用switch(type)来实现,当case 0时候,实现加法运算value=data1+data2;break;当case 1时候,同样实现减法运算value=data1-data2;break;用break来跳出函数,结束运算,现实结果。5 总结在此我要感谢赵纪平老师,她严谨的治学态度、追求卓越的生活精神,特别是她教课时候的激情深深地感染着我。我还要感谢所有关心帮助过我的同学。基于vc+下的设计,可以看出vc+它的多态性,继承性,封装性的优越特点,这让编译设计更加的简单方便,特别是它的继承性。使用mfc减
28、少了大量建立windows程序时必须编写的代码,由于vc+的继承和封装,正是由于mfc编程方法充分利用了面向对象技术优点,使的设计程序编程时极少需要关心对象方法的实现细节,而只需要简单的调用自己已有对象的方法就可以了。简单的说,mfc的优点可以归结为以下几点:(1) mfc是c+的microsoft windows应用程序的编程接口。(2) mfc开发的应用程序使用了标准化的结构。(3) 使用mfc开发的应用程序不仅小,而且运行快。(4) visual c+工具降低了编码的复杂性。(5) mfc库功能丰富经过长达2个星期的vc+课程设计和多番测试,终于将设计的简易计算器能够完成功能描述内容中的
29、全部功能。在本学期中我们开设了visual c+实用教程课的mfc部分皆为需要实践内容,在开始着手程序设计时,有些功能感觉无从下手,都不知道要干什么。正所谓“纸上谈兵终觉浅,觉知此事要躬行。”所以在本学期末的课程设计是很及时、很必要的。这样不仅能够加深我们对mfc程序设计的掌握,而且还及时、真正的做到了学以致用。让我感受到了:学完vc+后做课程设计得基本功过硬,设计过程中不得有半点马虎。同时在实践过程中提高自己找错纠错能力,通常错误就那几种,多练习就熟练了。同时在设计过程中多思考,能否更好的完成实现。设计过程中我们要善于查找资料提高自己的信息搜索查询能力,要善于利用并能更哈的利用网络来获得知识
30、,获得帮助。在面临无从下手等这些问题只要找到相关的资料就会得到提示从而理解所要解决问题的大致方向。当我们有了明确的目的,就可以发挥自己的头脑来完成实现它了。在设计过程中我们要善于思考。在程序设计过程中总会有些实现难点和最初完成程序时免不了的有许多不足,这就需要自己根据代码及实现的功能去认真思考并解决遇到的难点。只有这样不断纠正不断思考,才能完成程序设计功能目的,才能在实践中不断提升自己。通过本次的课程设计让我学到了并收获了很多,不仅仅巩固了先前学的mfc程序设计知识,让我认识到了自己很多的不足,而且此次课程设计还培养了我的动手实践能力,让我的创造性思维得到拓展。它还让我感受到了实践的重要性。
31、参考文献【1】 郑阿奇visual c+实用教程(m)北京:电子工业出版社 2010【2】 王敬栋 visual c+课程设计案例精编(m) 北京:中国水利水电出版社 2006【3】 夏崇镨 任海军 vsiual c+课程设计案例精编(m)北京:清华大学出版社2008【4】 陈清华.visual c+课程设计案例精选与编程指导(m)南京.东南大学出版社,2004【5】 夏崇镨 任海军 vsiual c+课程设计案例精编(m)北京:清华大学出版社 2002附录程序代码/ jsqdlg.cpp : implementation file/#include "stdafx.h"#
32、include "jsq.h"#include "jsqdlg.h"#include "math.h"#ifdef _debug#define new debug_new#undef this_filestatic char this_file = _file_;#endif/ caboutdlg dialog used for app aboutclass caboutdlg : public cdialogpublic:caboutdlg();/ dialog data/afx_data(caboutdlg)enum idd =
33、idd_aboutbox ;/afx_data/ classwizard generated virtual function overrides/afx_virtual(caboutdlg)protected:virtual void dodataexchange(cdataexchange* pdx); / ddx/ddv support/afx_virtual/ implementationprotected:/afx_msg(caboutdlg)/afx_msgdeclare_message_map();caboutdlg:caboutdlg() : cdialog(caboutdlg
34、:idd)/afx_data_init(caboutdlg)/afx_data_initvoid caboutdlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(caboutdlg)/afx_data_mapbegin_message_map(caboutdlg, cdialog)/afx_msg_map(caboutdlg)/ no message handlers/afx_msg_mapend_message_map()/ cjsqdlg dialogcjsqdlg:cjsqdlg(
35、cwnd* pparent /*=null*/): cdialog(cjsqdlg:idd, pparent)/afx_data_init(cjsqdlg)m_m = _t("");m_show = _t("0");/afx_data_init/ note that loadicon does not require a subsequent destroyicon in win32m_hicon = afxgetapp()->loadicon(idr_mainframe);void cjsqdlg:dodataexchange(cdataexch
36、ange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(cjsqdlg)ddx_text(pdx, idc_m_edit, m_m);ddx_text(pdx, idc_show_edit, m_show);/afx_data_mapbegin_message_map(cjsqdlg, cdialog)/afx_msg_map(cjsqdlg)on_wm_syscommand()on_wm_paint()on_wm_querydragicon()on_bn_clicked(idc_num0_button, onnum0button)on_bn_c
37、licked(idc_num1_button, onnum1button)on_bn_clicked(idc_num2_button, onnum2button)on_bn_clicked(idc_num3_button, onnum3button)on_bn_clicked(idc_num4_button, onnum4button)on_bn_clicked(idc_num5_button, onnum5button)on_bn_clicked(idc_num6_button, onnum6button)on_bn_clicked(idc_num7_button, onnum7button
38、)on_bn_clicked(idc_num8_button, onnum8button)on_bn_clicked(idc_num9_button, onnum9button)on_bn_clicked(idc_fu7_button, onfu7button)on_bn_clicked(idc_backspace_button, onbackspacebutton)on_bn_clicked(idc_ce_button, oncebutton)on_bn_clicked(idc_fu6_button, onfu6button)on_bn_clicked(idc_c_button, oncle
39、ar)on_bn_clicked(idc_fu1_button, onfu1button)on_bn_clicked(idc_fu2_button, onfu2button)on_bn_clicked(idc_fu3_button, onfu3button)on_bn_clicked(idc_fu4_button, onfu4button)on_bn_clicked(idc_equal_button, onequalbutton)on_bn_clicked(idc_ke1_button, onke1button)on_bn_clicked(idc_sin_button, onsinbutton
40、)on_bn_clicked(idc_cos_button, oncosbutton)on_bn_clicked(idc_tan_button, ontanbutton)on_bn_clicked(idc_ke2_button, onke2button)on_bn_clicked(idc_ln_button, onlnbutton)on_bn_clicked(idc_log_button, onlogbutton)on_bn_clicked(idc_ke3_button, onke3button)on_bn_clicked(idc_ke4_button, onke4button)on_bn_c
41、licked(idc_mod_button, onmodbutton)on_bn_clicked(idc_fu5_button, onfu5button)on_bn_clicked(idc_m1_button, onm1button)on_bn_clicked(idc_m2_button, onm2button)on_bn_clicked(idc_mr_button, onmrbutton)on_bn_clicked(idc_mc_button, onmcbutton)on_wm_ctlcolor()/afx_msg_mapend_message_map()/ cjsqdlg message
42、handlersbool cjsqdlg:oninitdialog()cdialog:oninitdialog();/ add "about." menu item to system menu./ idm_aboutbox must be in the system command range.assert(idm_aboutbox & 0xfff0) = idm_aboutbox);assert(idm_aboutbox < 0xf000);cmenu* psysmenu = getsystemmenu(false);if (psysmenu != nul
43、l)cstring straboutmenu;straboutmenu.loadstring(ids_aboutbox);if (!straboutmenu.isempty()psysmenu->appendmenu(mf_separator);psysmenu->appendmenu(mf_string, idm_aboutbox, straboutmenu);/ set the icon for this dialog. the framework does this automatically/ when the application's main window i
44、s not a dialogseticon(m_hicon, true);/ set big iconseticon(m_hicon, false);/ set small icon/ todo: add extra initialization herereturn true; / return true unless you set the focus to a controlvoid cjsqdlg:onsyscommand(uint nid, lparam lparam)if (nid & 0xfff0) = idm_aboutbox)caboutdlg dlgabout;dl
45、gabout.domodal();elsecdialog:onsyscommand(nid, lparam);/ if you add a minimize button to your dialog, you will need the code below/ to draw the icon. for mfc applications using the document/view model,/ this is automatically done for you by the framework.void cjsqdlg:onpaint() m=0;if (isiconic()cpai
46、ntdc dc(this); / device context for paintingsendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0);/ center icon in client rectangleint cxicon = getsystemmetrics(sm_cxicon);int cyicon = getsystemmetrics(sm_cyicon);crect rect;getclientrect(&rect);int x = (rect.width() - cxicon + 1) / 2;int y
47、 = (rect.height() - cyicon + 1) / 2;/ draw the icondc.drawicon(x, y, m_hicon);elsecdialog:onpaint();/ the system calls this to obtain the cursor to display while the user drags/ the minimized window.hcursor cjsqdlg:onquerydragicon()return (hcursor) m_hicon;void cjsqdlg:operation()double f1,f2,f3; sw
48、itch (choose)case 1:updatedata();string2=m_show;if(string1.left(1)!='-') f1=atof(string1); if(string1.left(1)='-')string1=string1.right(string1.getlength()-1); f1=(-1)*(atof(string1);f2=atof(string2);f3=f1+f2;string1.format("%f",f3);while (string1.right(1)="0") st
49、ring1=string1.left(string1.getlength()-1);if (string1.right(1)=".")string1=string1.left(string1.getlength()-1);m_show=string1;updatedata(false); break;case 2:updatedata();string2=m_show;f1=atof(string1);f2=atof(string2);f3=f1-f2;string1.format("%f",f3);while (string1.right(1)=&qu
50、ot;0")string1=string1.left(string1.getlength()-1);if (string1.right(1)=".")string1=string1.left(string1.getlength()-1);m_show=string1;updatedata(false); break;case 3:updatedata();string2=m_show;f1=atof(string1);f2=atof(string2);f3=f1*f2;string1.format("%f",f3);while (string1.right(1)="0")string1=string1.left(string1.getlength()-1);if (string1.right(1)=".")str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力设备出口购销合同
- 大夜班护士岗位职责
- 江苏省扬州市西湖实验学校高考地理 专题七 人类与高考地理环境的协调发展教案
- 八年级生物下册 第7单元 生命的延续与进化 第21章 第2节《生物的变异》教案 (新版)苏科版
- 2024年九年级语文下册 第一单元 写作学习扩写教学设计 新人教版
- 2024-2025学年高中政治 第三单元 全面依法治国 第八课 法治中国建设 1 法治国家教案 部编版必修3
- 2024春八年级语文下册 第3单元 12《诗经》二首教案 新人教版
- 2024-2025学年高中生物 第5章 生态系统及其稳定性 第4节 生态系统的信息传递教案 新人教版必修3
- 2024年春八年级道德与法治下册 第四单元 崇尚法治精神 第七课 尊重自由平等 第2框 自由平等的追求教案 新人教版
- 节水管理制度(模板)
- 读《学校与社会明日之学校》有感
- 语言学新知与中学语文教学
- 医院科室质量与安全管理小组工作记录本目录
- 断路器失灵保护及远跳详解
- 300字方格纸模板
- 草诀百韵歌原文及解释
- 钢网架防火涂料施工方案
- 肺癌的护理常规(PPT课件)
- 农村商业银行信贷业务发展规划-2019年文档
- 一汽大众供应商物流管理评价标准
- 化工厂工程设备安装施工方案.doc
评论
0/150
提交评论