Object-C,四则运算计算器
下面是是一个比较复杂的类。
定义一个四则运算计算器Caculator的接口和实现。
在main函数中,让用户输入四则运算表达式,比如a+b,a-b。
最后,在控制台输出结果。
用到的语法:接口、类的定义,实例方法,switch-case语句。
/
/
// main.m
// switch-case
//
// Created by fansunion on 15/11/15.
// Copyright (c) 2015年 demo. All rights reserved.
// #import <Foundation/Foundation.h> @interface Caculator : NSObject
-(void)setValue:(double)value;
-(double)getResult; -(void)add:(double)value;
-(void)sub:(double)value;
-(void)multiply:(double)value;
-(void)divide:(double)value; @end @implementation Caculator {
double value;
} -(void)setValue:(double)v{
value=v;
} -(void)add:(double)v{
value+=v;
} -(void)sub:(double)v{
value-=v;
}
-(void)multiply:(double)v{
value*=v;
}
-(void)divide:(double)v{
value/= v;
}
-(double)getResult{
return value;
} @end
int main(int argc, const char * argv[]) {
@autoreleasepool {
double value = 0;
double v=0;
char operator;
Caculator *caculator =[[Caculator alloc]init];
NSLog(@"请输入表达式!");
scanf("%lf %c %lf",&value,&operator,&v);
[caculator setValue:value];
switch(operator){
case '+':
[caculator add:v];
break;
case '-':
[caculator sub:v];
break;
case '*':
[caculator multiply:v];
break;
case '/':
[caculator divide:v];
break;
default:
NSLog(@"未知的操作符");
break;
}
NSLog(@"%.2f",[caculator getResult]);
}
return 0;
}
加法,2015+2014=4029
2015-11-15 17:23:13.722 switch-case[1684:89106] 请输入表达式!
2015+2014
2015-11-15 17:23:21.586 switch-case[1684:89106] 4029.00
Program ended with exit code: 0
减法,2015-2020=-5
2015-11-15 17:23:44.579 switch-case[1688:89497] 请输入表达式!
2015-2020
2015-11-15 17:23:55.500 switch-case[1688:89497] -5.00
Program ended with exit code: 0
乘法,2015*10=20150
2015-11-15 17:24:35.764 switch-case[1692:89985] 请输入表达式!
2015*10
2015-11-15 17:24:45.414 switch-case[1692:89985] 20150.00
Program ended with exit code: 0
除法,2015/10=201.5
2015-11-15 17:24:58.379 switch-case[1696:90264] 请输入表达式!
2015/10
2015-11-15 17:25:10.669 switch-case[1696:90264] 201.50
Program ended with exit code: 0
学习这个例子,感觉瞬间回到了2008年上半学年,大一上学期~
Object-C,四则运算计算器的更多相关文章
- 利用ANTLR4实现一个简单的四则运算计算器
利用ANTLR4实现一个简单的四则运算计算器 ANTLR4介绍 ANTLR能够自动地帮助你完成词法分析和语法分析的工作, 免去了手写去写词法分析器和语法分析器的麻烦 它是基于LL(k)的, 以递归下降 ...
- java 24 - 8 GUI之创建四则运算计算器(未校验版)
这个是用NetBeans软件制作的,因为这个软件制作GUI任务比较方便 通过拖拽控件生成的窗体:(红色的名称是更改后的控件名称) 拉拽好布局后,要进行的步骤: A:更改想要进行操作的控件的名称(右键控 ...
- 深入浅出数据结构C语言版(8)——后缀表达式、栈与四则运算计算器
在深入浅出数据结构(7)的末尾,我们提到了栈可以用于实现计算器,并且我们给出了存储表达式的数据结构(结构体及该结构体组成的数组),如下: //SIZE用于多个场合,如栈的大小.表达式数组的大小 #de ...
- php实现一个简单的四则运算计算器
php实现一个简单的四则运算计算器(还不支持括号的优先级).利用栈这种数据结构来计算表达式很赞. 这里可以使用栈的结构,由于php的数组“天然”就有栈的特性,这里直接就利用了数组.当然可以使用栈结构写 ...
- 【实践】js实现简易的四则运算计算器
最近看了一个大神推荐的某公司面试程序员的js 面试题,题目是用js 做一个计算器于是跟着大神的思想自己做了一下 ps:功能还没有完善好毕竟自己还是一只菜鸟还在不断学习中. 闲话不多说先上css代码 & ...
- mfc基于对话框的简单四则运算计算器
1.①创建mfc对话框窗口,对话框中所有控件都delete. ②绘制界面,按键都button,显示区域edit control,计算器名字用static text. ③所有控件ID改成语义化ID(可不 ...
- MIPS汇编程序设计——四则运算计算器
实验目的 运用简单的MIPS实现一个能够整数加减乘除的计算器,同时使自己更加熟悉这些指令吧 MIPS代码 #sample example 'a small calculater’ # data sec ...
- C# 写的正整数四则运算计算器
实际上没能做出来负数.括号.小数的功能,才写这么个标题 大神直接略过,也欢迎指指点点-.- 输入一个四则运算表达式,计算出结果,想想不难,实现起来也不是很容易的. 流程:1.for循环输入的四则运算字 ...
- 使用13行Python代码实现四则运算计算器函数
原创的刷新行数记录的代码!!! 支持带小括号,支持多个连续+-号,如-7.9/(-1.2-++--99.3/-4.44)*---(2998.654+-+-+-(+1.3-7.654/(-1.36-99 ...
随机推荐
- AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe
首先说明,以前我用eventBus的jar包写得项目demo,前几天就写了一个EventBus的实例,这次我没用jar包,直接用gradle引用的,可是demo写完了,报错: its super cl ...
- asp.net core 与EFcore 入门
什么是EFcore? Entity Framework (EF) Core 是轻量化.可扩展和跨平台版的常用 Entity Framework 数据访问技术,EF Core 可用作对象关系映射程序 ( ...
- var和let的区别
//var 和let的区别 通过var定义的变量,作用域是整个封闭的函数,是全域的, 通过let定义的变量,作用域是在块级或者是子块中 for (let i = 0; i < 10; i++) ...
- BZOJ 2287 【POJ Challenge】消失之物(DP+容斥)
2287: [POJ Challenge]消失之物 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 986 Solved: 572[Submit][S ...
- 仿射变换(Affine Transformation)
转自:https://www.cnblogs.com/bnuvincent/p/6691189.html http://www.cnblogs.com/ghj1976/p/5199086.html 变 ...
- mysql忘记密码怎么处理
1修改/etc/my.cnf文件 在[mysqld]下加一行skip-grant-tables 2.重启mysql使配置生效 3.免密码登录mysql并设置新密码 设置新的root密码,并刷新权限 4 ...
- virtualbox挂载目录失败mount: unknown filesystem type ‘vboxsf’
转自[https://blog.csdn.net/u011486871/article/details/79443375] [有小修改] 错误提示:Vagrant was unable to moun ...
- 紫书 习题 8-2 UVa 1610 (暴力出奇迹)
这道题我真的想的非常的复杂, 拿草稿纸一直在找规律,推公式, 然后总有一些特殊的情况. 然后就WA了N次.无奈之下看了别人的博客, 然后就惊了.直接暴力枚举两个相邻字符串 里面的所有可能就可以了--真 ...
- 【BZOJ 1083】 [SCOI2005]繁忙的都市
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 很明显的最小生成树了. 输出最后选的那条边就好了. [代码] #include <bits/stdc++.h> usin ...
- 数据结构之---C语言实现拓扑排序AOV图
//有向图的拓扑排序 //杨鑫 #include <stdio.h> #include <stdlib.h> #include <string.h> #define ...