| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 735 人关注过本帖
标题:请教如何编写一个计算器
只看楼主 加入收藏
zj704102518
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-12-29
结帖率:33.33%
收藏
已结贴  问题点数:0 回复次数:2 
请教如何编写一个计算器
请教如何编写一个计算器
具体要求
1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘R’返回 菜单。
例如:输入:2
+
5
输出:7
2)实现单运算符表达式计算的功能。输入的操作数可以包含整数或浮点数。输入表达式如下:
例如:输入:2+5
输出:7
需要详细解释
谢谢
各位帮个忙
搜索更多相关主题的帖子: 计算器 编写 
2009-12-29 09:50
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:4 
程序代码:
// Calculator.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
double gResult = 0.0;
void CharCaculator()
{
    double a;
    cin>>a;
    char b;
    cin>>b;
    double c;
    cin>>c;
    if ('+' == b)
       gResult = a+c;
    else if ('-' == b)
        gResult = a-c;
    else if ('*' == b)
        gResult = a*c;
    else if ('/' == b && b!=0.0)
        gResult = a/b;
    else
        cout<<"input error!"<<endl;
    
}
void StringCaculator()
{
    cin.unsetf(ios::skipws);
    char a[100];
    int count(1);
    int index(0);
    char op;
    double num1(0.0),num2(0.0);
    cin.getline(a,100);
    for (int i = 0;i<100;i++)
    {
        if ('+' == a[i] || '-' == a[i] || '*' == a[i]|| '/' == a[i])
        {
            for (int m = 1;m < (i-index+1);m++)
                num1+=(a[index+m-1]-'0')*pow(0.1,m);
            op = a[i];
            index = i+1;
        }

        if ('.' == a[i])
        {
            if (1 == count)
            {
                for (int m = 0;m < (i-index);m++)
                    num1+=(a[i-m-1]-'0')*pow(10.0,m);
                count++;
            }
            else if (2 == count)
            {
                for (int m = 0;m < (i-index);m++)
                    num2+=(a[i-m-1]-'0')*pow(10.0,m);
                count++;
            }
            index = i+1;

        }
        if ('\0' == a[i])
        {
            for (int m = 1;m < (i-index+1);m++)
                num2+=(a[index+m-1]-'0')*pow(0.1,m);
            break;
        }

    }
    if ('+' == op)
        gResult = num1+num2;
    else if ('-' == op)
        gResult = num1-num2;
    else if ('*' == op)
        gResult = num1*num2;
    else if ('/' == op && op!=0.0)
        gResult = num1/num2;
}
int _tmain(int argc, _TCHAR* argv[])
{
    StringCaculator();
    cout<<"Result:"<<gResult<<endl;
    CharCaculator();
    cout<<"Result:"<<gResult<<endl;
    int a;
    cin>>a;
    return 0;
}
2009-12-29 14:16
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:0 
不加注释了,自己看吧,别老是这样求代码,你发上来,大家帮你纠正错误。
2009-12-29 14:17
快速回复:请教如何编写一个计算器
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059757 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved