IOS计算器的实现

//
//  main.m
//  Calcultor

/*
            计算器的简单实现
               1.加法
               2.减法
               3.乘法
               4.除法
            实现两个数的运算
 */
#import <Foundation/Foundation.h>
#import "Calcultor.h"
#import "Menu.h"

int main(int argc, const char * argv[])
{
    Calcultor * cal = [[Calcultor alloc]init];

    //[cal setNumber1:10];

    //[cal setNumber2:10];

    //[cal setResult:0];

    //[cal setCalcultorOperator:'+'];

//     [cal initWithNumber1:10 andInitWithNumber2:10 andInitWithCalcultorOperator:'+'];
    //[cal counter];
    //NSLog(@"%@",cal);
    double number1;
    double number2;
 //   double result;
    char operator;

    NSLog(@"请输入一个算式例如A+B:\n");
    scanf("%lf",&number1);
    scanf("%c",&operator);
    scanf("%lf",&number2);
    [cal setNumber1:number1];
    [cal setNumber2:number2];
  //[cal setCalcultorOperator:operator];
 //   [cal counter:operator];

    NSLog(@"您计算的结果是=%.lf",[cal counter:operator]);

//
//    Menu * menu = [[Menu alloc]init];
//
//    [menu showMenu];

    return 0;
}
#import <Foundation/Foundation.h>
#import "Calcultor.h"

@interface Menu : NSObject

{
    Calcultor *  _cal;
}
/**显示菜单选项*/
-(void)showMenu:(Calcultor *)cal;

@end
#import "Menu.h"

@implementation Menu

/**显示菜单选项*/
-(void)showMenu:(Calcultor *)cal;
{

//    NSLog(@"菜单");
//    NSLog(@"1.计算 + - * /");
//    NSLog(@"2.计算一个数的平方");
//    NSLog(@"请输入您的的选项:");
//    int selectNumber;
//    scanf("%d",&selectNumber);
//    switch () {
//        case :
//            break;
//
//        default:
//            break;
//    }

}
@end
#import <Foundation/Foundation.h>

@interface Calcultor : NSObject
{
    @public
    /**用来记录操作数1*/
    double _number1;

    /**用来记录操作数2*/
    double _number2;

    /**用来记录结果*/

    double _result;

    /**用来记录操作符*/
    char   _calcultorOperator;
}
//@property声明
@property double number1;
@property double number2;
@property double result;
@property char calcultorOperator;

/**加法*/
-(double)add;

/**减法*/
-(double)subtract;

/**乘法*/
-(double)multiply;

/**除法*/
-(double)divide;

-(double)square;

/**计算器的简单实现*/
-(double)counter:(char)calcultor;

//-(void)initWithNumber1:(double)number1 andInitWithNumber2:(double)number2 andInitWithCalcultorOperator:(char)calcultor;

@end
#import "Calcultor.h"

@implementation Calcultor
-(id)init
{
    if(self = [super init])
    {
        _result = 0.0;
    }
    return self;
}
/**加法*/
- (double)add
{
    return (_number1 + _number2);
    //NSLog(@"%.1lf",_result);
}

/**减法*/
- (double)subtract
{
    return _number1 - _number2;
    //NSLog(@"%.1lf",_result);
}

/**乘法*/
- (double)multiply
{
    return _number1 * _number2;
    //NSLog(@"%.1lf",_result);
}

/**除法*/
- (double)divide

{
    return _number1 / _number2;
    //NSLog(@"%.1lf",_result);
}

-(double)square
{
    return _number1 * _number1;
}

/**计算器的简单实现*/
-(double)counter:(char)calcultor
{
    //char calcultor;//局部变量

        switch (calcultor) {
            case '+':
                _result = [self add];
                break;
            case '-':
                _result = [self subtract];
                break;
            case '*':
                _result = [self multiply];
                break;
            case '/':
                _result = [self divide];
                break;
            default:
               break;
        }
    return _result;
}

//- (void)initWithNumber1:(double)number1 andInitWithNumber2:(double)number2 andInitWithCalcultorOperator:(char)calcultor
//{
//    _number1 = number1;
//    _number2 = number2;
//    _calcultorOperator = calcultor;
//}

/**!!!调试用的!!!*/
-(NSString *)description
{
    return [NSString stringWithFormat:@"操作数1:%.1lf 操作数2:%.1lf 结果 : %.1lf 操作符 : %c",_number1,_number2,_result,_calcultorOperator];
}
@end

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 04:54:51

IOS计算器的实现的相关文章

蓝懿教育 计算器编写

Day10 讲课第十天了,今天主要讲了iOS计算器程序的编写,其中包含的新代码还是蛮多的,而且需要认真思考.组织逻辑性的地方也不少.总结一部分需要理解并运用的代码. //控制小数点的位数 self.resultLabel.text = [NSStringstringWithFormat:@"%.2f",result]; //把数字取出来 让label去显示 //    取出按钮的title NSString *title = [sender titleForState:UIContro

iOS屏幕适配的几种方式

屏幕适配问题共有四种解决方案:(1)根据屏幕宽高写控件frame(下策);(2)Autoresizing的使用(中策);(3)AutoLayout的使用(上策);(4)sizeClasses+AutoLayout的使用(上上策).下面将会分别来进行叙述. (1)根据屏幕宽高写控件frame 利用宽高比,在不同的屏幕中来进行对控件的位置与控件的宽高进行等比例缩放.选定一个型号的屏幕的宽高为基准,进行等比例缩放.例如以iPhone6或者iPhone6s为基准. 其宽高分别是375与667.Iphon

IOS Masonry的基本使用

Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持 iOS 和 Max OS X.Masonry是一个用代码写iOS或OS界面的库,可以代替Auto layout.Masonry的github地址:https://github.com/SnapKit/Masonry 本章内容 - Masonry配置 - Masonry使用 - Masonry实例 Masonry配置 - 推荐使用pods方式引入类库,pod 'Maso

IOS自适应前段库-Masonry的使用

Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持 iOS 和 Max OS X.Masonry是一个用代码写iOS或OS界面的库,可以代替Auto layout.Masonry的github地址:https://github.com/SnapKit/Masonry 本章内容 - Masonry配置 - Masonry使用 - Masonry实例 Masonry配置 - 推荐使用pods方式引入类库,pod 'Maso

imag.js|教你如何智做原生APP

手机计算器是我们日常中很熟悉并且使用起来非常简单的应用了,这样的应用在爱码哥平台中又该如何开发呢? 结合这个原型图和imag.js现有的布局控件大致有两种解决思路. 第一种:使用list列表布局 底部使用list列表标签进行布局,共4个item,每个item中有5列col,在col中加入文本标签label,也可以把label替换成button.共20列,每一列不用设置长度,会自动平均分配给每一个col. 结构图如下: 代码结构是(其余三个item复制就好): <list> <item&g

Coding源码学习第四部分(Masonry介绍与使用(二))

接上篇,本篇继续对Masonry 进行学习,接上篇示例: (6)Masonry 布局实现iOS 计算器 1 - (void)exp4 { 2 WS(weakSelf); 3 // 申明区域,displayView 是显示布局,keyboardView 是键盘区域 4 UIView *displayView = [UIView new]; // 创建并添加 显示区域 5 [displayView setBackgroundColor:[UIColor blackColor]]; 6 [self.v

微信小程序-整理各种小程序源码和资料免费下载

微信小程序整理下载 [小程序源码]微信小程序-车源宝微信版 [小程序源码]小程序-微赞社区(论坛demo) [小程序源码]微信小程序-收支账单 [小程序工具]微信小程序-日历 [小程序源码]小程序-在线聊天功能 [小程序源码]微信小程序-大好商城(新增功能天气查询和2048游戏) [小程序源码]微信小程序-查询号码归属地 [小程序源码]微信小程序-备忘录2 [小程序源码]微信小程序-QQ音乐 [小程序源码]小程序-货币汇率 [小程序源码]微信小程序-大学图书馆 [小程序源码]小程序-积分商城 [

IOS 开发笔记-基础 UI(1)-简单的计算器

(1)UI是App的根基:一个App应该是先有UI界面,然后在UI的基础上增加实用功能 (2)UI相对简单易学:UI普遍是学习过程中最简单的一块,能快速拥有成就感和学习兴趣 (3)UI至关重要:开发中的绝大部分时间都在处理UI 谨记一条IOS软件开发定律:万物皆对象,UI界面上的每一个元素都是一个对象 IOS,android 软件开发过程 UIKit框架是跟UI有关系的,标签,文本,按钮,进度条,开关等控件,都是封装在UIKit框架内部的,UIKit框架中提供了丰富多彩的可视化组件元素,利用UI

iOS小型计算器

// //  ViewController.m //  计算器 //屏幕的宽和高 #define SCREEN_W self.view.frame.size.width #define SCREEN_H self.view.frame.size.height #import "ViewController.h" @interface ViewController () //用于存储输入的第一个数字 @property (nonatomic,assign) CGFloat num1; /