ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:167.59KB ,
资源ID:22828087      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22828087.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件基础课程设计报告C语言计算器设计.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件基础课程设计报告C语言计算器设计.docx

1、软件基础课程设计报告C语言计算器设计软件基础课程设计报告 一、需求分析系统目标:设计的计算器至少能够进行简单的四则运算和求倒数求反以及开方运算。主体功能:程序能实现:加,减,乘,除,开方,倒数等运算功能;还要实现数据的输入,输出,计算,显示及程序退出等功能。另外还可以实现多种科学计算的功能,如:三角函数的计算,弧度与角度间的转换,对数指数的计算等。开发环境:操作系统:Windows XP编程环境:MicrosoftVisualC+6.0 二、功能说明(1)包含的功能有:加、减、乘、除运算,开方、求倒数、三角函数、弧度与角度间的转换、对数指数的计算等功能。(2)计算器上数字09为一个控件数组,加

2、、减、乘、除为一个控件数组,其余为单一的控件。(3)给对话框添加菜单。(4)计算功能基本上是用系统内部函数。(5)程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。(6)“CE”按钮可以清除所有已输入的数据从头计算,“Back”按钮可以实现退位功能。(7)能够显示时间、日期。三、详细设计(1)流程图(2)编辑资源(3)效果图四、程序附录计算器Dlg.cpp :#include stdafx.h#include 计算器.h#include 计算器Dlg.h#include math.h#includeFirstDlg.h#include #define PI 3

3、.14;#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 override

4、s /AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL/ Implementationprotected: /AFX_MSG(CAboutDlg) /AFX_MSG DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD) /AFX_DATA_INIT(CAboutDlg) /AFX_DATA_INITvoid CAboutDlg:DoDa

5、taExchange(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()/ CMyDlg dialogCMyDlg:CMyDlg(CWnd* pParent /*=NULL*/) : CDialog(CMyDlg:IDD, pParent) /AFX

6、_DATA_INIT(CMyDlg) m_result = 0.0; /AFX_DATA_INIT / Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CMyDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CMyDlg) DDX_Control(pDX, IDC_EDIT1, m_EDIT

7、); DDX_Text(pDX, IDC_EDIT1, m_result); /AFX_DATA_MAPBEGIN_MESSAGE_MAP(CMyDlg, CDialog) /AFX_MSG_MAP(CMyDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_NUM0, OnNum0) ON_BN_CLICKED(IDC_NUM1, OnNum1) ON_BN_CLICKED(IDC_NUM2, OnNum2) ON_BN_CLICKED(IDC_NUM3, OnNum3) ON_BN_CLI

8、CKED(IDC_NUM4, OnNum4) ON_BN_CLICKED(IDC_NUM5, OnNum5) ON_BN_CLICKED(IDC_NUM6, OnNum6) ON_BN_CLICKED(IDC_NUM7, OnNum7) ON_BN_CLICKED(IDC_NUM8, OnNum8) ON_BN_CLICKED(IDC_NUM9, OnNum9) ON_BN_CLICKED(IDC_DOT, OnDot) ON_BN_CLICKED(IDC_CE, OnCe) ON_BN_CLICKED(IDC_jia, Onjia) ON_BN_CLICKED(IDC_jian, Onjia

9、n) ON_BN_CLICKED(IDC_cheng, Oncheng) ON_BN_CLICKED(IDC_chu, Onchu) ON_BN_CLICKED(IDC_dengyu, Ondengyu) ON_BN_CLICKED(IDC_daoshu, Ondaoshu) ON_BN_CLICKED(IDC_zhengfu, Onzhengfu) ON_BN_CLICKED(IDC_BACKSPACE, OnBackspace) ON_BN_CLICKED(IDC_Ln, OnLn) ON_BN_CLICKED(IDC_log, Onlog) ON_BN_CLICKED(IDC_RADIO

10、2, OnRadio2) ON_BN_CLICKED(IDC_RADIO1, OnRadio1) ON_BN_CLICKED(IDC_sqrt, Onsqrt) ON_BN_CLICKED(IDC_sin, Onsin) ON_BN_CLICKED(IDC_cos, Oncos) ON_BN_CLICKED(IDC_tan, Ontan) ON_BN_CLICKED(IDC_pingfang, Onpingfang) ON_BN_CLICKED(IDC_lifang, Onlifang) ON_BN_CLICKED(IDC_mi, Onmi) ON_BN_CLICKED(IDC_Exp, On

11、Exp) ON_BN_CLICKED(IDC_10demi, On10demi) ON_BN_CLICKED(IDC_jiecheng, Onjiecheng) ON_COMMAND(ID_TIME, OnTime) ON_COMMAND(ID_DATE, OnDate) ON_COMMAND(ID_EXIT, OnExit) ON_COMMAND(ID_HELP, OnHelp) /AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg message handlersBOOL CMyDlg:OnInitDialog() CDialog:OnInitDialog(); /

12、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 au

13、tomatically / when the applications main window is not a dialog SetIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE); / Set small icon / TODO: Add extra initialization here CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1); UpdateData(FALSE); quan2=1; dotflag=0; numflag=0; return TRUE; /

14、return TRUE unless you set the focus to a controlvoid CMyDlg:OnSysCommand(UINT nID, LPARAM lParam) if (nID & 0xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal(); else CDialog:OnSysCommand(nID, lParam); / If you add a minimize button to your dialog, you will need the code below/ to draw th

15、e icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CMyDlg:OnPaint() if (IsIconic() CPaintDC dc(this); / device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); / Center icon in client rectangle int cx

16、Icon = 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 icon dc.DrawIcon(x, y, m_hIcon); else CDialog:OnPaint(); / The system calls this to obtain the

17、 cursor to display while the user drags/ the minimized window.HCURSOR CMyDlg:OnQueryDragIcon() return (HCURSOR) m_hIcon;void CMyDlg:OnNum0() UpdateData(); if(dotflag) quan2*=10; m_result+=0/(double)quan2; else if(numflag) m_result=m_result*10+0; else m_result=0; numflag=1; UpdateData(FALSE); void CM

18、yDlg:OnNum1() UpdateData(); if(dotflag) quan2*=10; m_result+=1/(double)quan2; else if(numflag) m_result=m_result*10+1; else m_result=1; numflag=1; UpdateData(FALSE);void CMyDlg:OnNum2() UpdateData(); if(dotflag) quan2*=10; m_result+=2/(double)quan2; else if(numflag) m_result=m_result*10+2; else m_re

19、sult=2; numflag=1; UpdateData(FALSE); void CMyDlg:OnNum3() UpdateData(); if(dotflag) quan2*=10; m_result+=3/(double)quan2; else if(numflag) m_result=m_result*10+3; else m_result=3; numflag=1; UpdateData(FALSE); void CMyDlg:OnNum4() UpdateData(); if(dotflag) quan2*=10; m_result+=4/(double)quan2; else

20、 if(numflag) m_result=m_result*10+4; else m_result=4; numflag=1; UpdateData(FALSE); void CMyDlg:OnNum5() UpdateData(); if(dotflag) quan2*=10; m_result+=5/(double)quan2; else if(numflag) m_result=m_result*10+5; else m_result=5; numflag=1; UpdateData(FALSE); void CMyDlg:OnNum6() UpdateData(); if(dotfl

21、ag) quan2*=10; m_result+=6/(double)quan2; else if(numflag) m_result=m_result*10+6; else m_result=6; numflag=1; UpdateData(FALSE); void CMyDlg:OnNum7() UpdateData(); if(dotflag) quan2*=10; m_result+=7/(double)quan2; else if(numflag) m_result=m_result*10+7; else m_result=7; numflag=1; UpdateData(FALSE

22、); void CMyDlg:OnNum8() UpdateData(); if(dotflag) quan2*=10; m_result+=8/(double)quan2; else if(numflag) m_result=m_result*10+8; else m_result=8; numflag=1; UpdateData(FALSE); void CMyDlg:OnNum9() UpdateData(); if(dotflag) quan2*=10; m_result+=9/(double)quan2; else if(numflag) m_result=m_result*10+9

23、; else m_result=9; numflag=1; UpdateData(FALSE); void CMyDlg:OnDot() UpdateData();dotflag=1;m_result+=0.0;UpdateData(FALSE); void CMyDlg:OnCe() UpdateData();m_EDIT.SetSel(0,-1);m_EDIT.ReplaceSel();m_result=0;num1=0;num2=0;numflag=0;dotflag=0;quan2=1;UpdateData(FALSE); void CMyDlg:Onjia() UpdateData(

24、);num1=m_result;cal=+;numflag=0;dotflag=0;quan2=1; void CMyDlg:Onjian() UpdateData();num1=m_result;cal=-;numflag=0;dotflag=0;quan2=1; void CMyDlg:Oncheng() UpdateData();num1=m_result;cal=*;numflag=0;dotflag=0;quan2=1; void CMyDlg:Onchu() UpdateData();num1=m_result;cal=/;numflag=0;dotflag=0;quan2=1;

25、void CMyDlg:Ondengyu() UpdateData();num2=m_result;switch(cal) case+:m_result=num1+num2;break;case-:m_result=num1-num2;break;case*:m_result=num1*num2;break;case/:m_result=num1/num2;break;casex:m_result=pow(num1,num2);break;numflag=0;dotflag=0;quan2=1;UpdateData(FALSE); void CMyDlg:Ondaoshu() UpdateDa

26、ta();m_result=1/m_result;numflag=0;dotflag=0;quan2=1;UpdateData(FALSE); void CMyDlg:Onzhengfu() UpdateData();m_result=0-m_result;UpdateData(FALSE); void CMyDlg:OnBackspace() UpdateData();static int dotquan=quan2;long temp;if(dotflag&numflag) if(dotquan=10) temp=(long)(m_result*dotquan); m_result=(double)(temp/10); dotquan/=10; m_result=m_result/dotquan; else /UpdateData(); if(numflag&m_result) m_result=(long)m_result/10; UpdateData(FALSE); void CMyDlg:OnLn() UpdateData();m_result=log(m_result);numflag=0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1