小程序 -- 计算器

来源:互联网 发布:闲鱼淘宝介入多久 编辑:程序博客网 时间:2024/06/14 19:44

这是一个小程序,对计算器的简单实现。不过只能计算个位数的加减乘除余。

主要是对枚举的值,以及堆栈还有队列的运用进行一次尝试。

enum Operation: Character {    case plus         = "+"    case minus        = "-"    case times        = "*"    case division     = "/"    case surplus      = "%"}enum Number: Character {    case zero  = "0"    case one   = "1"    case two   = "2"    case three = "3"    case four  = "4"    case five  = "5"    case six   = "6"    case seven = "7"    case eight = "8"    case nine  = "9"}enum Input {    case value(Number)    case opration(Operation)}class Stack: StackProtocol {    typealias Element = Input    var datas: [Input] = []}class Calculator {    var data = [Input]()    func run() {        var input: [Int8] = []        gets(&input)        inputData(input: String(cString: &input))    }    /// 把输入的数据解析成运算数据    func inputData(input: String) {        for c in input.characters {            if let num = Number(rawValue: c) {                data.append(Input.value(num))            }            if let ope = Operation(rawValue: c) {                data.append(Input.opration(ope))            }        }    }    /// 把中缀表达式变成后缀表达式    func changeData() {        let s1 = Stack()        let s2 = Stack()        for d in data {            switch d {            case .value:                s1.push(item: d)            case .opration(let n):                if let top = s2.top() {                } else {                    s2.push(item: d)                }                break            }        }    }    func ouputData() -> Int {        return 0;    }}let cal = Calculator()cal.run()
0 0