




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆交通大学信息科学与工程学院报告书专 业:计算机科学与技术课程 名称:信息技术实训I题 目:计算器班 级:2010级计科四班设 计 者:谢滨宇完 成 时 间:2011年 11月 29日至2011年 11月31日重庆交通大学信息科学与工程学院任务书课 程信息技术实训班级2010计科专业信息技术方向指导教师徐毅896920069题 目自选完成时间2011年10月19日至2011年11月 2日主要内容要求:完成一个完整功能实现的MFC程序开发,报告需包括以下内容1系统分析与设计(总体设计和模块详细设计)。2系统编程与实现(必须有源码和注释)。3功能测试计划内容和结果。4存在问题与不足及对策。设计报告要求1封面:(格式见前页)2课程设计任务书3课程设计报告: 功能需求分析 系统设计功能模块详细设计和流程图 设计代码 心得体会和参考资料说明:第14周周三下午34节一班提交打印设计报告及软件,回答老师提问,周四下午34节二班提交打印设计报告及软件,回答老师提问。报告文字不少于5000 字,并装订成册。考核内容与方式1 平时成绩: 20%2 设计报告: 40%3 程序与演示,回答问题:40%版面要求1 题目用黑体三号,段后距18磅(或1行),居中对齐;2 标题用黑体四号,段前、段后距6磅(或0.3行);3 正文用小四号宋体,行距为1.25倍行距;4 标题按“一”、“”、“1”、“”顺序编号。上机时间安排星期周次一二三四五六日1819一 功能分析与系统设计该MFC程序用来实现简易计算器的功能,适用于两位数的加减乘除运算,为实现这个功能,应该在对话框中的按键关联映射函数,这样运算就在后台运行了,算出结果后直接显示在显示屏中。退出清除=+/-/.0*987-65421+3二 功能模块与流程图退出清除=输入第二个变量输入运算键(+,-,*,/)输入第一个变量(可添加负号) 键盘功能键图1 流程图2三 实验步骤1.进入Microsoft Visual C+ 6.0,选择“文件” “新建”菜单命令,显示出“新建”对话框。单击“工程”标签,从列表框中选中Win32 Application(Win32 应用程序)项,在工程名称框中输入Win32应用程序项目名称 jisuanqi。单击浏览按钮将工程定位到所用的文件中。2.单击“确定”按钮继续,在向导第一个对话框中,选中An empty project(一个空的工程)项。单击“完成”按钮,系统将显示AppWizard(应用程序向导)的创建信息,单击“确定”按钮,系统将自动创建此应用程序。3.调整对话框的大小,字体改为“宋体,9号”,删除对话框中间的“TODO:在这里设置对话控制。”将“确定”按钮改成“=”,“取消”改为“清除”,在增加一个按钮“退出”,ID改为IDC_TUICHU,再增加下列控件:控件ID号标题及属性按钮IDC_BUTTON11 按钮IDC_BUTTON22 按钮IDC_BUTTON33 按钮IDC_BUTTON44 按钮IDC_BUTTON55 按钮IDC_BUTTON66按钮IDC_BUTTON77按钮IDC_BUTTON88按钮IDC_BUTTON99 按钮IDC_BUTTON00按钮IDC_BUTTONJIA+ 按钮IDC_BUTTON1JIAN-按钮IDC_BUTTON1CHENG* 按钮IDC_BUTTON1CHU/ 按钮IDC_BUTTON1DIAN.按钮IDC_BUTTON1FUHAO/-编辑框IDC_EDIT1设置为右对齐4.按Ctrl+w 键或双击对话框模板的空白处,为该对话框创建对话框类CjisuanqiDlg。打开ClassWizard的Member Variebles页面,看Class name是否是CjisuanqiDlg,选中编辑框的ID号IDC_EDIT1,双击增加它的成员变量,变量类别是Value,类型是Cstring,名字是m_result,单击“OK”完成。四 设计代码/在jisuanqiDlg.h函数CjisuanqiDlg类中添加下列代码:CString num1,num2; /定义字符型变量num1,num2,分别代表运算中前后变量,先定义为字符型以利于计算bool AN; /布尔型变量,表示是否按了加减乘除中某个运算键的按钮int w; /表示加减乘除中的一项/ jisuanqiDlg.h : header file/#if !defined(AFX_JISUANQIDLG_H_C8660C75_0E93_4BA6_BB8F_9C4EFE109419_INCLUDED_)#define AFX_JISUANQIDLG_H_C8660C75_0E93_4BA6_BB8F_9C4EFE109419_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ CJisuanqiDlg dialogclass CJisuanqiDlg : public CDialog/ Constructionpublic:CJisuanqiDlg(CWnd* pParent = NULL);/ standard constructor/ Dialog Data/AFX_DATA(CJisuanqiDlg)enum IDD = IDD_JISUANQI_DIALOG ;CStringm_result;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CJisuanqiDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIRTUAL CString num1,num2; /定义字符型变量num1,num2,分别代表运算中前后变量,先定义为字符型以利于计算bool AN; /布尔型变量,表示是否按了加减乘除中某个运算键的按钮int w; /表示加减乘除中的一项/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CJisuanqiDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnButton1();afx_msg void OnButton2();afx_msg void OnButton3();afx_msg void OnButton4();afx_msg void OnButton5();afx_msg void OnButton6();afx_msg void OnButton7();afx_msg void OnButton8();afx_msg void OnButton9();afx_msg void OnCheng();afx_msg void OnChu();afx_msg void OnDian();afx_msg void OnFuhao();afx_msg void OnJia();afx_msg void OnJian();afx_msg void OnButton10();virtual void OnOK();virtual void OnCancel();afx_msg void OnTuichu();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_JISUANQIDLG_H_C8660C75_0E93_4BA6_BB8F_9C4EFE109419_INCLUDED_)/ jisuanqiDlg.cpp : implementation file#include stdafx.h#include jisuanqi.h#include jisuanqiDlg.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 = 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: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()/ CJisuanqiDlg dialogCJisuanqiDlg:CJisuanqiDlg(CWnd* pParent /*=NULL*/): CDialog(CJisuanqiDlg:IDD, pParent)/AFX_DATA_INIT(CJisuanqiDlg)m_result = _T();/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);AN=false; /初始为false,表示未按运算键num1=; /前变量初始为空num2=; /后变量初始为空void CJisuanqiDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CJisuanqiDlg)DDX_Text(pDX, IDC_EDIT1, m_result);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CJisuanqiDlg, CDialog)/AFX_MSG_MAP(CJisuanqiDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON3, OnButton3)ON_BN_CLICKED(IDC_BUTTON4, OnButton4)ON_BN_CLICKED(IDC_BUTTON5, OnButton5)ON_BN_CLICKED(IDC_BUTTON6, OnButton6)ON_BN_CLICKED(IDC_BUTTON7, OnButton7)ON_BN_CLICKED(IDC_BUTTON8, OnButton8)ON_BN_CLICKED(IDC_BUTTON9, OnButton9)ON_BN_CLICKED(IDC_CHENG, OnCheng)ON_BN_CLICKED(IDC_CHU, OnChu)ON_BN_CLICKED(IDC_DIAN, OnDian)ON_BN_CLICKED(IDC_FUHAO, OnFuhao)ON_BN_CLICKED(IDC_JIA, OnJia)ON_BN_CLICKED(IDC_JIAN, OnJian)ON_BN_CLICKED(IDC_BUTTON10, OnButton10)ON_BN_CLICKED(IDC_TUICHU, OnTuichu)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CJisuanqiDlg message handlersBOOL CJisuanqiDlg: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 AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is 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 CJisuanqiDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.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 CJisuanqiDlg:OnPaint() if (IsIconic()CPaintDC 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 = (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 CJisuanqiDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CJisuanqiDlg:OnButton1() /单击1按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=1;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=1;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnButton2() /单击2按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=2;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=2;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnButton3() /单击3按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=3;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=3;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnButton4() /单击4按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=4;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=4;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnButton5() /单击5按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=5;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=5;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnButton6() /单击6按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=6;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=6;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnButton7() /单击7按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=7;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=7;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnButton8() /单击8按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=8;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=8;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnButton9() /单击9按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=9;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=9;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnButton10() /单击0按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键时,显示值是num1num1+=0;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,显示为num2num2+=0;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnCheng() /单击乘法*运算键/ TODO: Add your control notification handler code here AN=true;w=3;void CJisuanqiDlg:OnChu() /单击除法/运算键/ TODO: Add your control notification handler code here AN=true;w=4;void CJisuanqiDlg:OnDian() /单击.按钮/ TODO: Add your control notification handler code hereif(AN=false) /未按运算键前,小数点赋给前变量num1+=.;m_result=num1;UpdateData(false); if(AN=true) /按运算键后,小数点赋给后变量num2+=.;m_result=num2;UpdateData(false);void CJisuanqiDlg:OnFuhao() /单击正负号+/-按钮/ TODO: Add your control notification handler code here CString m=-;if(AN=false) /未按运算键前,负号赋给前变量m+=num1;num1=m;m_result=m;UpdateData(false); if(AN=true) /按运算键后,负号赋给后变量m+=num2;num2=m;m_result=m;UpdateData(false);void CJisuanqiDlg:OnJia() /单击加法+运算键/ TODO: Add your control notification handler code hereAN=true;w=1;void CJisuanqiDlg:OnJian() /单击减法-运算键/ TODO: Add your control notification handler code hereAN=true;w=2;void CJisuanqiDlg:OnOK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版河砂运输仓储管理及配送合同
- 2025房地产代理销售协议书:特色小镇文旅地产代理服务
- 二零二五年度生态环保地板砖供货与市场推广合同
- 2025版跑步赛事官方赛事宣传册与海报设计合同
- 2025版房地产担保规定及会计处理办法合同
- 二零二五年金融机构财务顾问聘用协议书
- 2025版化肥行业环保达标改造合同范本
- 2025版企业员工离职交接与保密协议合同范本下载
- 二零二五年珠宝首饰代理销售合作协议模板
- 二零二五年度健康环保电压力锅代理销售合同
- 项目成本预算管理制度
- 2025年成都教师招聘考试教育公共基础知识真题及答案
- 中学语文教学资源开发与利用指南
- 《幼儿园工作规程》知识测试卷(含答案)
- 2025年材料管理岗位考试题库
- 年级主任职责详解及管理要点
- 2025至2030中国乙烯醋酸乙烯酯(EVA)树脂行业产业运行态势及投资规划深度研究报告
- 中国精神障碍分类与诊断标准第3版
- 《电力建设工程施工安全管理导则》(NB∕T 10096-2018)
- 电梯维护保养规则(TSG T5002-2017)
- (高清版)TDT 1057-2020 国土调查数据库标准
评论
0/150
提交评论