求用oc做个如图的计算器 简单的实现加减乘除的 求神级的!!!!!!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求用oc做个如图的计算器 简单的实现加减乘除的 求神级的!!!!!!!!相关的知识,希望对你有一定的参考价值。
//主要代码如下,Main.storyboard,图片素材,AppDelegate类略//ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
//判断当前小数点是否可输入
@property (assign,nonatomic)bool isDian;
//判断当前数字是否可输入
@property (assign,nonatomic)bool isNumber;
//第一个运算数
@property (assign,nonatomic)double operA;
//第二个运算数
@property (assign,nonatomic)double operB;
//运算方式
@property (assign,nonatomic)int operType;
//是否再次输入符号
@property (assign,nonatomic)bool isOper;
@end
// ViewController.m
#import "ViewController.h"
#import "PutOutFormat.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *displayLabel;
@end
@implementation ViewController
@synthesize isDian,isNumber,operA,operB,operType,isOper;
//退出应用程序
- (IBAction)GetOut:(UIButton *)sender
exit(0);
//删除按钮,用于删除错输的数据
- (IBAction)backClicked:(UIButton *)sender
NSString *str=self.displayLabel.text;
int lenth_str=str.length;
if(lenth_str!=0)
str=[str substringToIndex:lenth_str-1];
self.displayLabel.text=str;
else
self.displayLabel.text=@"0";
//清空显示框的内容
- (IBAction)ClearDisplayLabel:(UIButton *)sender
self.displayLabel.text=@"0";
self.isNumber=NO;
self.isDian=YES;
//输入数字和小数点,并在显示框中显示
- (IBAction)numberClicked:(UIButton *)sender
NSString *str=self.displayLabel.text;
NSString *str_Title=[NSString stringWithFormat:@"%d",sender.tag];
if ([str_Title isEqualToString:@"10"])
if(isDian==YES)
str=[str stringByAppendingFormat:@"."];
isDian=NO;
else
if ([str isEqualToString:@"0"] || [str isEqualToString:@"警告:除数不能为0!"])
str=@"";
str=[str stringByAppendingString:str_Title];
self.displayLabel.text=str;
self.isNumber=YES;
//符号键按钮,保存第一个运算数operA,并清空显示框为第二个运算数operB做准备
- (IBAction)operatorClicked:(UIButton *)sender
self.isDian=YES;
self.isNumber=NO;
self.operType=sender.tag;
self.operA=[self.displayLabel.text doubleValue];
self.displayLabel.text=@"0";
self.isOper=YES;
//等号按钮及相应的数据处理,并在显示框中显示运算结果
- (IBAction)equalClicked:(UIButton *)sender
// 当输入了符号执行相应的运算,防止重复点等号
if(isOper==YES)
PutOutFormat *put_str=[PutOutFormat new];
double result;
if (self.operType==11)
if (self.isNumber==YES)
self.operB=[self.displayLabel.text doubleValue];
result=self.operA+self.operB;
self.operA=result;
self.isNumber=NO;
NSString *str_result=[NSString stringWithFormat:@"%f",result];
self.displayLabel.text=[put_str putOutFormat:str_result];
else if(self.operType==12)
if (self.isNumber==YES)
self.operB=[self.displayLabel.text doubleValue];
result=self.operA-self.operB;
self.operA=result;
self.isNumber=NO;
NSString *str_result=[NSString stringWithFormat:@"%f",result];
self.displayLabel.text=[put_str putOutFormat:str_result];
else if(self.operType==13)
if (self.isNumber==YES)
self.operB=[self.displayLabel.text doubleValue];
result=self.operA*self.operB;
self.operA=result;
self.isNumber=NO;
NSString *str_result=[NSString stringWithFormat:@"%f",result];
self.displayLabel.text=[put_str putOutFormat:str_result];
else if(self.operType==14)
if (self.isNumber==YES)
self.operB=[self.displayLabel.text doubleValue];
if (operB!=0)
result=self.operA/self.operB;
self.operA=result;
self.isNumber=NO;
NSString *str_result=[NSString stringWithFormat:@"%f",result];
self.displayLabel.text=[put_str putOutFormat:str_result];
else
self.displayLabel.text=[NSString stringWithFormat:@"警告:除数不能为0!"];
isOper=NO;
- (void)viewDidLoad
[super viewDidLoad];
// 初始设置,小数点为可输入状态即isDian=1,数字状态为isNUmber=1
isDian=YES;
isNumber=YES;
isOper=NO;
// Do any additional setup after loading the view, typically from a nib.
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
@end
//PutOutFormat.h
#import <Foundation/Foundation.h>
@interface PutOutFormat : NSObject
//输出规范方法
-(NSString *)putOutFormat:(NSString *)preStr;
@end
//PutOutFormat.m
#import "PutOutFormat.h"
@implementation PutOutFormat
-(NSString *)putOutFormat:(NSString *)preStr
NSString *str=preStr;
NSString *sufStr=[[NSString alloc]init];
while (![str hasPrefix:@"."])
// int length_str=str.length;
NSRange rang=NSMakeRange(0, 1);
sufStr=[sufStr stringByAppendingString:[str substringWithRange:rang]];
str=[str substringFromIndex:1];
while ([str hasSuffix:@"0"] || [str hasSuffix:@"."])
int length_str=str.length;
if(length_str!=0)
str=[str substringToIndex:length_str-1];
sufStr=[sufStr stringByAppendingString:str];
return sufStr;
@end 参考技术A 拜托这种样子的当然很累 参考技术B 20分么?神级的?有人表示很累。追问
这个需要很多代码吗?既然有能力那就必须显示出来啊,不然浪费了。另外我会多加点分的!!
JS实现一个简单的计算器
使用JS完成一个简单的计算器功能。实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除。效果如上:
第一步: 创建构建运算函数count()。
第二步: 获取两个输入框中的值和获取选择框的值。
提示:document.getElementById( id名 ).value 获取或设置 id名的值。
第三步: 获取通过下拉框来选择的值来改变加减乘除的运算法则。
提示:使用switch判断运算法则。
第四步: 通过 = 按钮来调用创建的函数,得到结果。
注意: 使用parseInt()函数可解析一个字符串,并返回一个整数。
代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title> 事件</title> 5 <script type="text/javascript"> 6 function count(){ 7 var a = document.getElementById("txt1").value; 8 var b = document.getElementById("txt2").value; 9 //获取第一个输入框的值10 //获取第二个输入框的值11 //获取选择框的值12 var c = document.getElementById("select").value;13 a = parseFloat(a);14 b = parseFloat(b);15 //获取通过下拉框来选择的值来改变加减乘除的运算法则16 //设置结果输入框的值 17 switch(c){18 case "+":19 document.getElementById("fruit").value=parseInt(a)+parseInt(b);20 break;21 case "-":22 document.getElementById("fruit").value=parseInt(a)-parseInt(b);23 break;24 case "*":25 ocument.getElementById("fruit").value=parseInt(a)*parseInt(b);26 break;27 case "/":28 document.getElementById("fruit").value=parseInt(a)/parseInt(b);29 break;30 }31 }32 </script> 33 </head> 34 <body>35 <input type=‘text‘ id=‘txt1‘ /> 36 <select id=‘select‘>37 <option value="+">+</option>38 <option value="-">-</option>39 <option value="*">*</option>40 <option value="/">/</option>41 </select>42 <input type=‘text‘ id=‘txt2‘ /> 43 <input type=‘button‘ value=‘ = ‘ onclick = "count()"/>44 <input type=‘text‘ id=‘fruit‘ /> 45 </body>46 </html>
以上是关于求用oc做个如图的计算器 简单的实现加减乘除的 求神级的!!!!!!!!的主要内容,如果未能解决你的问题,请参考以下文章
怎么在eclipse中做个简单的加减乘除的计算器,html页面如下,高手请回答,非诚勿扰