第一个IOS应用-编写简单的加法计算机-并安装到自己的手机上

编写iOS的应用需要的IDE就是 Xcode
大体上和Android studio差不多
最后的成品是一个简单的App
主要目的是体验IOS开发从开始到APP的简要流程
在这里插入图片描述


首先打开Xcode,并且创建一个新项目
在这里插入图片描述
点击next。这里就是设置项目名称和选择是Object-C 还是使用Swift来进行编写

在这里插入图片描述
创建好之后就会自动生成一系列的配置文件
在这里插入图片描述


下面开始编写程序
首先先撘一个简单的加法界面出来
选择Main.storyboard->View下面 点击右上角的+
然后添加几个textFibel ,label和button

在这里插入图片描述
把界面搭建好了以后,就开始写代码了
选择 Viewcontroller.swift 可以点击右上角箭头指的地方分两个窗口出来
弄成下面这样的视图
在这里插入图片描述
然后就可以对view下面的各个组件进行操作
首先选择一个需要操作的view组件 按住ctrl 拖动到代码里面
然后就可以引用这个组件
注意添加button的时候将第一个选项connection改为action 也就是有事件响应 并且最后一个选项也可以选择更改为None

在这里插入图片描述
Button的话这样设置
在这里插入图片描述
之后就是编写代码了

//
//  ViewController.swift
//  Plus_App
//
//  Created by PeterMao on 2020/8/20.
//  Copyright © 2020 ParkerMao. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    @IBAction func Refuse() {
        self.resurtLabel.text = "0"
        self.textOne.text = ""
        self.textTwo.text = ""
    }
    @IBAction func AddLabel() {
        
        let num1:Int = Int((self.textOne.text! as NSString).intValue)
        //var i = (self.textOne.text as! NSString).intValue
        let num2:Int = Int((self.textTwo.text! as NSString).intValue)
        
        //var j = (num2 as! NSString).intValue
        let resultNum:Int = num1 + num2
        let resultStr = String(resultNum)
        self.resurtLabel.text = resultStr
    }
    @IBOutlet weak var resurtLabel: UILabel!
    @IBOutlet weak var textTwo: UITextField!
    @IBOutlet weak var textOne: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


}

然后点击
在这里插入图片描述
就可以启动测试一下看看怎么样


如果要安装到自己的iPhone上的话 需要这样设置一下
首先 Xcode->Perference->Accounts 添加一下自己的Apple ID

在这里插入图片描述
这样就行了
然后 将自己的iPhone连上Mac 如果还没有信任的话记得点击一个信任
正常的话点击这里就可以选择自己的手机
在这里插入图片描述
然后还要进行一下team的设置 分四步
在这里插入图片描述
最后点击一下测试就可以在自己的手机上看到自己编写的程序了
不过如果是第一次的话还要进行一下信任开发者(设置->通用->设备管理)
在这里插入图片描述
就可以开始使用了
在这里插入图片描述

好的,我可以为您编写一个能够以参数方式读入二进制机器指令文件正确执行其中指令的第一代虚拟计算机的程序。下面是一个示例: ```cpp #include <iostream> #include <fstream> using namespace std; class CU { // 控制器类 public: int IR; // 指令寄存器 int PC; // 程序计数器 void parseInstruction() { // 解析指令 } void controlFlow() { // 控制指令的执行顺序和跳转 } }; class ALU { // 运算器类 public: int add(int a, int b) { // 整数加法 return a + b; } int sub(int a, int b) { // 整数减法 return a - b; } int mul(int a, int b) { // 整数乘法 return a * b; } int div(int a, int b) { // 整数除法 return a / b; } }; class Memory { // 存储器类 public: int mem[1000]; // 存储器 int read(int addr) { // 读取指定地址的内容 return mem[addr]; } void write(int addr, int data) { // 写入指定地址的内容 mem[addr] = data; } }; class In { // 输入类 public: void fileInput(char* fileName, Memory& mem) { // 从文件读取二进制指令 ifstream fin(fileName, ios::binary); if (fin.is_open()) { char buffer[4]; int i = 0; while (fin.read(buffer, 4)) { int instr = (buffer[0] & 0xff) | ((buffer[1] & 0xff) << 8) | ((buffer[2] & 0xff) << 16) | ((buffer[3] & 0xff) << 24); mem.write(i++, instr); } fin.close(); } else { cout << "Cannot open file " << fileName << endl; } } }; class Out { // 输出类 public: void screenOutput(int data) { // 屏幕输出 cout << data << endl; } }; int main(int argc, char* argv[]) { // 创建虚拟计算机对象 CU cu; ALU alu; Memory mem; In in; Out out; // 从文件读取二进制指令 if (argc > 1) { in.fileInput(argv[1], mem); } // 使用虚拟计算机对象执行指令 cu.PC = 0; while (true) { cu.IR = mem.read(cu.PC++); int opcode = cu.IR >> 24; int op1 = (cu.IR >> 16) & 0xff; int op2 = cu.IR & 0xffff; int result = 0; switch (opcode) { case 0: // Stop return 0; case 1: // Add result = alu.add(mem.read(op1), mem.read(op2)); mem.write(op1, result); break; case 2: // Sub result = alu.sub(mem.read(op1), mem.read(op2)); mem.write(op1, result); break; case 3: // Mul result = alu.mul(mem.read(op1), mem.read(op2)); mem.write(op1, result); break; case 4: // Div result = alu.div(mem.read(op1), mem.read(op2)); mem.write(op1, result); break; case 5: // Output out.screenOutput(mem.read(op1)); break; default: cout << "Unknown opcode " << opcode << endl; break; } } return 0; } ``` 在上面的示例中,我们使用了五个类来实现第一代虚拟计算机的结构。其中,包含了文件输入类(In)和屏幕输出类(Out),用于从文件中读取二进制指令将结果输出到屏幕上。 在主函数中,我们首先创建了一个虚拟计算机对象,然后通过文件输入类(In)从指定的文件中读取二进制指令到存储器类(Memory)中。接着,我们使用虚拟计算机对象执行指令,不断读取指令、解析指令执行指令,直到遇到Stop指令为止。 当然,这只是一个简单的示例。在实际应用中,您可能需要更加复杂和完善的设计,来满足具体的需求和应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值