十四周项目1

代码;

 

#include <iostream>
#include<string>
using namespace std;
class Animal{
public:
    virtual void cry(){

    cout<<"不知哪种动物,让我如何学叫?"<<endl;
    }
};
class Mouse:public Animal{
public:
    Mouse(string n,char s):name(n),sex(s){}
    void cry(){
    cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"老鼠,我的叫声是:吱吱吱"<<endl;
    }
private:
    string name;
    char sex;

};
class Cat:public Animal{
public:
    Cat(string n):name(n){}
    void cry(){
cout<<"我叫"<<name<<",是一只猫,我的叫声是:喵喵喵"<<endl;
}
private:
    string name;
};
class Dog:public Animal{
public:
    Dog(string n):name(n){}
    void cry(){
cout<<"我叫"<<name<<",是一只狗,我的叫声是:旺旺旺"<<endl;
}
private:
    string name;
};
class Giraffe:public Animal{
public:
    Giraffe(string n,char s):name(n),sex(s){}
    void cry(){
    cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"长颈鹿,我的脖子太长,发不出声音来"<<endl;
    }
private:
    string name;
    char sex;

};
int main()
{
    Animal *p;
    p=new Animal();
    p->cry();
    Mouse m1("Jerry",'m');
    p=&m1;
    p->cry();
    Mouse m2("Jemmy",'f');
    p=&m2;
    p->cry();
    Cat c1("Tom");
    p=&c1;
    p->cry();
    Dog d1("Droopy");
    p=&d1;
    p->cry();
    Giraffe g1("Gill",'m');
    p=&g1;
    p->cry();
    return 0;
}
 
运行结果:

 

### 嵌入式系统实习第十四记撰写指南 在撰写嵌入式系统实习第十四记时,应围绕项目进展、技术难点、工具使用、代码实现、团队协作及个人成长等维度展开,突出实践性与技术深度。以下为具体撰写方向与内容建议。 #### 任务与技术进展 第十四通常涉及系统集成测试、模块性能优化或引入新功能模块。例如: - 完成基于STM32的DMA数据传输优化,提升ADC采集效率,降低CPU占用率。 - 实现I2C接口驱动与传感器数据采集,并通过RTOS任务调度实现数据实时处理。 - 集成MQTT协议实现设备与云端的数据通信,完成数据上报与远程控制功能[^1]。 #### 技术问题与解决过程 在开发过程中可能遇到如下典型问题: - 在DMA传输过程中出现数据丢失,通过配置优先级与中断屏蔽位,优化传输稳定性。 - 使用RTOS时发现任务切换频繁导致延迟增加,通过调整任务优先级与调度策略,减少上下文切换开销。 - 调试I2C通信时出现总线死锁,通过添加超时机制与总线恢复函数,避免系统挂起。 #### 新技术或工具应用 随着项目深入,可能引入以下工具或方法提升开发效率: - 使用CMake构建嵌入式项目,实现跨平台编译与模块化管理,替代传统Makefile方式[^1]。 - 引入Tracealyzer对任务调度进行可视化分析,识别任务阻塞与调度延迟问题。 - 使用Wireshark抓包分析MQTT通信流程,验证数据格式与网络交互的正确性。 #### 关键代码片段与实现说明 结合实际功能,插入关键代码并解释实现逻辑: ```c #include "stm32f4xx_hal.h" I2C_HandleTypeDef hi2c1; void MX_I2C1_Init(void) { hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 = 0; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; HAL_I2C_Init(&hi2c1); } void Read_Sensor_Data(uint8_t *data) { HAL_I2C_Master_Transmit(&hi2c1, SENSOR_ADDR << 1, &reg_addr, 1, HAL_MAX_DELAY); HAL_I2C_Master_Receive(&hi2c1, (SENSOR_ADDR << 1) | 0x01, data, 6, HAL_MAX_DELAY); } ``` #### 项目贡献与协作情况 描述在团队中的具体工作与协作成果: - 主导ADC与DMA模块的优化工作,提升数据采集精度与系统响应速度。 - 编写通用I2C驱动模板,供团队成员复用,提高开发效率。 - 参与每日站会与代码评审,提出优化建议并推动问题解决。 #### 收获与反思 总结本学习成果与待改进点: - 本掌握了DMA与I2C通信的底层实现机制,但在初期配置DMA缓冲区时出现溢出问题,后续应加强对硬件手册的阅读与理解。 - 通过使用CMake优化项目结构,提升了工程管理能力,但在多平台编译兼容性方面仍需进一步探索。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值