计算器的实现代码

#import
"AppDelegate.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication
*)application didFinishLaunchingWithOptions:(
NSDictionary *)launchOptions

{

    self.window
= [[
UIWindow
alloc]
initWithFrame:[[UIScreen
mainScreen]
bounds]];

    // Override point for customization after application launch.

   
UIView *containerView = [[UIView
alloc]initWithFrame:CGRectMake(0,
0,
320, 568)];

    containerView.backgroundColor = [UIColor
blackColor];

    [self.window
addSubview:containerView];

    [containerView
release];

    self.currentFirst
=
@"";

    

    //显示数字

    self.display
= [[
UILabel
alloc]initWithFrame:CGRectMake(0,
80,
320,
63)];

    self.display.backgroundColor
= [
UIColor
whiteColor];

    [containerView
addSubview:self.display];

    [self.display
release];

   
self.display.text =
@"";

    //回删键

    UIButton *space = [UIButton
buttonWithType:UIButtonTypeSystem];

    space.frame =
CGRectMake(0,
163,
235, 65);

    space.backgroundColor = [UIColor
grayColor];

    space.layer.cornerRadius =
10;

    [space
setTitle:@"回删"
forState:UIControlStateNormal];

    [containerView
addSubview:space];

    [space
addTarget:self
action:@selector(deleteOne:)
forControlEvents:UIControlEventTouchUpInside];

    

    //删除键

    UIButton *delete = [UIButton
buttonWithType:UIButtonTypeSystem];

    delete.frame =
CGRectMake(255,163 ,
65,
65);

    delete.backgroundColor = [UIColor
grayColor];

    [delete
setTitle:@"删除"
forState:UIControlStateNormal];

    delete.titleLabel.font
= [
UIFont
systemFontOfSize:20];

    delete.layer.cornerRadius =
10;

    [containerView
addSubview:delete];

    [delete
addTarget:self
action:@selector(deletText:)
forControlEvents:UIControlEventTouchUpInside];

    

    NSArray * buttonDisplay =
@[@"7",@"8",@"9",@"/",@"4",@"5",@"6",@"*",@"1",@"2",@"3",@"-",@".",@"0",@"=",@"+"];

   
int k =
0;

   
for (int i =
0; i <
4; i++) {

       
for (int j =
0; j <
4; j++) {

           
self.button = [UIButton
buttonWithType:UIButtonTypeSystem];

           
self.button.frame =
CGRectMake(85 * j,
248 +
85 * i, 65,
65);

           
self.button.backgroundColor = [UIColor
grayColor];

           
self.button.layer.cornerRadius
=
10;

           
self.button.layer.borderColor
= [
UIColor
orangeColor].CGColor;

            

           
self.button.titleLabel.font
= [
UIFont
systemFontOfSize:30];

            

            [self.button
setTitle:buttonDisplay[k]
forState:UIControlStateNormal];

            [containerView
addSubview:self.button];

            [self.button
addTarget:self
action:@selector(display:)
forControlEvents:UIControlEventTouchUpInside];

            [self.button
addTarget:self
action:@selector(currentSymbol:)
forControlEvents:UIControlEventTouchUpInside];

            [self.button
addTarget:self
action:@selector(calculate:)
forControlEvents:UIControlEventTouchUpInside];

            

            

            k++;

            

        }

    }

    self.window.backgroundColor
= [
UIColor
whiteColor];

    [self.window
makeKeyAndVisible];

    return
YES;

}

//获取当前值和前一个值

- (void)display:(UIButton
*)button

{

    NSArray *arry =
@[@"7",@"8",@"9",@"4",@"5",@"6",@"1",@"2",@"3",@".",@"0"];

   
for (int i =
0; i <
11; i++) {

       
if ([button.titleLabel.text 
isEqualToString:@"." ])  {

           
if ([self.display.text 
length] ==
0) {

               
self.display.text = [@"0"
stringByAppendingString:button.titleLabel.text];

               
self.display.text = [self.display.text
substringToIndex:[self.display.text
length] -
1];

                

            }else{

               
int k =
0;

               
for (int i =
0; i < [self.display.text
length]; i++)

                {

                    

                   
if ([self.display.text
characterAtIndex:i] ==
‘.‘) {

                        k++;

                    }

                    

                }

               
if (k >
0) {

                    ;

                }else{

                   
self.display.text = [self.display.text
stringByAppendingString:button.titleLabel.text];

                }

            }

        }

       
else
if ([self.display.text 
isEqualToString:@"0" ] && [button.titleLabel.text
compare:@"."] !=
0)

        {

           
self.display.text = button.titleLabel.text;

          
self.display.text = [self.display.text
substringToIndex:[self.display.text
length] -
1];

        }

       
else

        {

           
if ([arry[i]
isEqualToString:button.titleLabel.text ]) {

               
self.display.text = [self.display.text
stringByAppendingString:button.titleLabel.text];

                   
break;

                }

            }

        }

   

        

    

        

    

    

}

//获取当前符号

- (void)currentSymbol:(UIButton
*)button

{

   
NSArray *arry =
@[@"+",@"-",@"*",@"/"];

   
for (int i =
0; i <
4; i++) {

       
if ([button.titleLabel.text
isEqualToString:arry[i]]) {

           
self.currentSymbol = button.titleLabel.text;

           
self.currentSecond =
self.display.text;

           
self.display.text =
@"";

           
break;

        }

        

    }

}

//计算

-(void)calculate:(UIButton
*)button

{

   
if ([button.titleLabel.text
isEqualToString:@"="]) {

        

       
if ([self.currentSymbol
isEqualToString:@"/"]) {

           
self.currentFirst =
_display.text;

           
float a = [self.currentSecond
floatValue] / [self.currentFirst
floatValue];

           
self.display.text = [NSString
stringWithFormat:@"%g",a];

            

        }

        

       
else
if ([self.currentSymbol
isEqualToString:@"*"]) {

           
self.currentFirst =
self.display.text;

           
double a = [self.currentSecond
floatValue] * [self.currentFirst
floatValue];

           
self.display.text = [NSString
stringWithFormat:@"%g",a];

            

        }

       
else
if ([self.currentSymbol
isEqualToString:@"-"]) {

           
self.currentFirst =
_display.text;

           
float a = [self.currentSecond
floatValue] - [self.currentFirst
floatValue];

           
self.display.text = [NSString
stringWithFormat:@"%g",a];

        }

       
else
if ([self.currentSymbol
isEqualToString:@"+"]) {

           
self.currentFirst =
self.display.text;

            

           
float a = [self.currentSecond
floatValue] + [self.currentFirst
floatValue];

           
self.display.text = [NSString
stringWithFormat:@"%g",a];

        }

        

    }

    

}

//回删

- (void)deleteOne:(UIButton
*)button

{

   
if ([self.display.text
length] >
0) {

       
self.display.text = [self.display.text
substringToIndex:[self.display.text
length] -
1];

    }

    

}

//删除

- (void)deletText:(UIButton
*)button

{

   
self.display.text =
@"";

}

时间: 2024-11-05 06:12:35

计算器的实现代码的相关文章

计算器软件的代码实现 (windowform窗体+SQL+策略模式)

一 整体概述 这个计算器软件的功能和以前的功能基本上一样,只不过是数据的保存形式发生了变化,,以前用的是txt文件保存,现在更正用SQL数据库,现在更改了以前的文件保存形式,是三层架构中数据层的更换,但是仍然采用了设计模式中的策略模式,对于在wpf中实现的要求,会在今后中进一步实现的! 二 数据库代码的封装  using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sy

计算器软件的代码实现 (策略模式+asp.net)

一 策略模式代码的编写 using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> ///Class1 的摘要说明 /// </summary> public interface Calculator //声明一个计算的接口 { double Cal(double a,double b); } public class Add : Calcula

javascript的一个简易利率计算器+js图像显示 代码

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS弹框</title> <style type="text/css"> .output{font-weight: bold;} #payment{text-decoration: underline;} #graph{border: solid black 1px

计算器软件的代码实现 (策略模式)

一 封装时策略模式的书写 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace shuxuefudao { class qita { public void qingkong() { File.WriteAllText("writer.txt", string.Empty); File.WriteAllText(&q

javascript简单计算器代码分析

javascript简单计算器代码分析:也许网页中需要一个简单的计算器功能,这个时候就要掌握如何编写,起码应该会修改,下面就通过一个简单的实例介绍一下如何实现简单的计算器效果,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/&

用antlr4来实现《按编译原理的思路设计的一个计算器》中的计算器

上次在公司内部讲<词法分析--使用正则文法>是一次失败的尝试--上午有十几个人在场,下午就只来了四个听众. 本来我还在构思如何来讲"语法分析"的知识呢,但现在看来已不太可能. 这个课程没有预想中的受欢迎,其原因可能是: 1.课程内容相对复杂,听众知识背景与基础差异比较大. 2.授课技巧不够,不能把复杂的知识简单化的呈现给基础稍差一点的人. 针对这两个可能的原因,我要尝试做出以下调整: 1.使用antlr来实现词法和语法的部分. 2.暂时把"编译"过程改为

UIAutomation调用计算器模拟自动执行

UIAutomation和WPF UIAutomation是微软从Windows Vista开始推出的一套全新UI自动化测试技术, 简称UIA.在最新的Windows SDK中,UIA和MSAA等其它支持UI自动化技术的组件放在一起发布,叫做Windows Automation API. 和前面的介绍相比,我倾向于认为UIA是一项自动化测试“技术”,而MSAA和Win32 API只是实现自动化测试的两种“方法”.这里区分“技术”和 “方法”的原因是, 一项“技术”往往有独立的模型,体贴的开发接口

WindosForm 计算器

         计算器  可以分一下类 数字键 + - * / % =和撤销 归零C最简单 下面看一下计算器具体的代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; names

java 学习 ——计算器小程序

简易计算器小程序代码: package jisuanqi; //声明需要插入的包 import java.awt.*; import java.lang.Object; import java.lang.String; import javax.swing.*; import java.awt.event.*; import java.awt.TextComponent; //声明一个主类jisuanqi,继续窗口类Frame public class jisuanqi extends Fram