iOS study Day6-计算器2
2014-03-25 15:53
162 查看
//要求使用面向对象的编程思想,编写一个程序:
//使其作为简单的打印计算器。该程序允许用户键入任何以下形式的表达式:
//number operator
//要求程序能识别以下运算符: + - * / s e,其中 s
是设置初始值
//以下是程序运行显示的示范操作:
//Begin Calculations
//s 10
//= 10.000000
/// 2
//= 5.000000
//- 55
//= - 50.000000
//s 100.25
//= 100.250000
//e 0
//= 100.250000
//End of Calculations
#import <Foundation/Foundation.h>
#import "Calc.h"
int main(int argc,
const char * argv[])
{
@autoreleasepool
{
bool notEnd = true;
Calc *deskcalc = [[Calc
alloc] init];
NSLog(@"Type in your expression.");
[deskcalc
clear];
while (notEnd)
{
[deskcalc
accumulator2];
}
}
return 0;
}
// Calc.h
#import <Foundation/Foundation.h>
@interface Calc : NSObject
{
double accmulator;
}
@property (nonatomic,assign)
double accmulator;
-(void)clear;
-(float)add:(double)value;
-(float)subtract:(double)value;
-(float)multiply:(double)value;
-(float)divide:(double)value;
-(double)accumulator2;
-(void)endit;
@end
//Calc.m
#import "Calc.h"
@implementation Calc
@synthesize accmulator;
-(void)setAccu:(double)value
{
accmulator = value;
NSLog(@"恢复初始值= %f",accmulator);
}
-(void)clear
{
accmulator =
0;
}
char operator;
double value2;
-(double)accumulator2
{
scanf("\n%c %lf",&operator,&value2 );
switch (operator)
{
case 's':
[self setAccu:value2];
break;
case '+':
[self add:value2];
break;
case '-':
[self subtract:value2];
break;
case '*':
[self multiply:value2];
break;
case '/':
[self
divide:value2];
break;
case 'e':
NSLog(@"= %f",
accmulator);
exit(0);
break;
default:
NSLog(@"输入错误,请重输");
break;
}
return 0;
}
-(float)add:(double)value
{
accmulator += value;
NSLog(@"= %f",accmulator);
return
accmulator;
}
-(float)subtract:(double)value
{
accmulator -= value;
NSLog(@"= %f",accmulator);
return
accmulator;
}
-(float)multiply:(double)value
{
accmulator *= value;
NSLog(@"= %f",accmulator);
return
accmulator;
}
-(float)divide:(double)value
{
accmulator /= value;
NSLog(@"= %f",accmulator);
return
accmulator;
}
-(void)endit
{
}
@end
//使其作为简单的打印计算器。该程序允许用户键入任何以下形式的表达式:
//number operator
//要求程序能识别以下运算符: + - * / s e,其中 s
是设置初始值
//以下是程序运行显示的示范操作:
//Begin Calculations
//s 10
//= 10.000000
/// 2
//= 5.000000
//- 55
//= - 50.000000
//s 100.25
//= 100.250000
//e 0
//= 100.250000
//End of Calculations
#import <Foundation/Foundation.h>
#import "Calc.h"
int main(int argc,
const char * argv[])
{
@autoreleasepool
{
bool notEnd = true;
Calc *deskcalc = [[Calc
alloc] init];
NSLog(@"Type in your expression.");
[deskcalc
clear];
while (notEnd)
{
[deskcalc
accumulator2];
}
}
return 0;
}
// Calc.h
#import <Foundation/Foundation.h>
@interface Calc : NSObject
{
double accmulator;
}
@property (nonatomic,assign)
double accmulator;
-(void)clear;
-(float)add:(double)value;
-(float)subtract:(double)value;
-(float)multiply:(double)value;
-(float)divide:(double)value;
-(double)accumulator2;
-(void)endit;
@end
//Calc.m
#import "Calc.h"
@implementation Calc
@synthesize accmulator;
-(void)setAccu:(double)value
{
accmulator = value;
NSLog(@"恢复初始值= %f",accmulator);
}
-(void)clear
{
accmulator =
0;
}
char operator;
double value2;
-(double)accumulator2
{
scanf("\n%c %lf",&operator,&value2 );
switch (operator)
{
case 's':
[self setAccu:value2];
break;
case '+':
[self add:value2];
break;
case '-':
[self subtract:value2];
break;
case '*':
[self multiply:value2];
break;
case '/':
[self
divide:value2];
break;
case 'e':
NSLog(@"= %f",
accmulator);
exit(0);
break;
default:
NSLog(@"输入错误,请重输");
break;
}
return 0;
}
-(float)add:(double)value
{
accmulator += value;
NSLog(@"= %f",accmulator);
return
accmulator;
}
-(float)subtract:(double)value
{
accmulator -= value;
NSLog(@"= %f",accmulator);
return
accmulator;
}
-(float)multiply:(double)value
{
accmulator *= value;
NSLog(@"= %f",accmulator);
return
accmulator;
}
-(float)divide:(double)value
{
accmulator /= value;
NSLog(@"= %f",accmulator);
return
accmulator;
}
-(void)endit
{
}
@end
相关文章推荐
- 机器如何计算“相关性”?
- tyvj 1042 表达式计算3 +-*/^
- [Java] 计算两个日期之间的差(年 月 日)
- CRC计算校验码过程
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- C++计算程序运行时间
- ACdreamOJ 1116 斐波那契数列+hash计算后缀
- 云计算下的数据库 分析 以及部分互联网公司目前采用的新型数据库总结
- iOS 时间前后计算
- Verilog基础知识7(FIFO深度计算)
- sizeof - 计算对象所占字节
- 计算长方体、四棱锥的表面积和体积
- ITSM财报告诉你,没有AI就别谈云计算了!
- 模糊熵的计算
- 配电箱价格计算公式
- 计算字符串的相似度(编程之美3.3)
- 如何使用AppCAD计算传输线的特性阻抗?
- 累加功能的实现 (累计计算)
- 桌面应用程序—简单相加计算
- R语言计算相关矩阵然后将计算结果输出到CSV文件