圣地亚哥老亚瑟在北极送外卖
码龄15年
关注
提问 私信
  • 博客:365,222
    社区:899
    问答:39
    366,160
    总访问量
  • 35
    原创
  • 1,445,109
    排名
  • 28
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2010-04-29
博客简介:

aizhaoyu的专栏

查看详细资料
个人成就
  • 获得59次点赞
  • 内容获得20次评论
  • 获得125次收藏
创作历程
  • 2篇
    2023年
  • 3篇
    2022年
  • 17篇
    2015年
  • 19篇
    2014年
  • 25篇
    2013年
成就勋章
TA的专栏
  • 老亚瑟的技术备忘录
    3篇
  • 老亚瑟的管理笔记
    1篇
  • Qt
    19篇
  • openssl
    4篇
  • c/c++
    6篇
  • Linux
    10篇
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

记不住Makefile 怎么写?试试我的cheat sheet吧!

快速记忆或查找Makefile相关语法
原创
发布博客 2023.07.19 ·
243 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

neovim 键位映射

neovim的键位映射是指将键盘上的一组按键绑定到vim 插件的某一个功能。
原创
发布博客 2023.06.28 ·
2244 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

python 学习笔记

class MyException(Exception) : pass # 必须要继承父类 Exception,在自定义类里可以用类变量或者实例变量记录此异常代表的错误信息。
原创
发布博客 2022.12.26 ·
577 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

用C++编写相关程序

答:

第一题

class Rect
{
    public:
        Rect() {_length=0; _width=0;}
        Rect(double length, double width) {_length=length; _width=width;}
        void setSize(double length, double width) {_length=length; _width=width;}
        double getArea() {return _length*_width;}
        double getPerimeter() {return 2*(_length+_width);}

    private:
        double _length;
        double _width;

};

第二题

class Rect
{
    public:
        Rect() {_length=0; _width=0;}
        Rect(double length, double width) {_length=length; _width=width;}
        void setSize(double length, double width) {_length=length; _width=width;}
        double getArea() {return _length*_width;}
        double getPerimeter() {return 2*(_length+_width);}

    private:
        double _length;
        double _width;

};

class Cubic : public Rect
{
    public:
        Cubic():Rect() {_height=0;}
        Cubic(double length, double width, double height):Rect(length, width), _height(height) {}
        void setSize(double length, double width, double height) {Rect::setSize(length, width); _height=height;}
        void setHeight(double height) {_height=height;}
        double getVolume() {return Rect::getArea() * _height;}

    private:
        double _height;

};

第三题

void copyFile(const char* src_file, const char* dst_file) {
    FILE *src_fd=fopen(src_file, "r");
    FILE *dst_fd=fopen(dst_file, "w");
    char buf[1024]={0};
    while(fgets(buf, sizeof buf, src_fd) != NULL){
        fputs(buf, dst_fd);
        memset(buf, 0, sizeof buf);
    }
    fclose(src_fd);
    fclose(dst_fd);
}

第四题

class Line
{
    public:
        Line() {}
        void setStartPoint(double x, double y) {_sp.first=x; _sp.second=y;}
        void setEndPoint(double x, double y) {_ep.first=x; _ep.second=y;}
        double getLength() {return sqrt(pow(abs(_sp.first-_ep.first), 2) + pow(abs(_sp.second-_ep.second), 2));}
    private:
        pair<double, double> _sp;
        pair<double, double> _ep;
};

第五题

const double pi = 3.1415926535897932384626;
class shape
{
    public:
        virtual double getVolume() = 0;
        virtual double getSurfaceArea() = 0;
};
class sphere: public shape
{
    public:
        sphere(double r):_r(r) {}
        double getVolume() {return (4/3) * pi * pow(_r, 3);}
        double getSurfaceArea() {return 4 * pi * pow(_r, 2);}
    private:
        double _r;
};
class column: public shape
{
    public:
        column(double r, double h):_r(r), _h(h) {}
        double getVolume() {return pi * pow(_r, 2) * _h;}
        double getSurfaceArea() {return 2 * pi * pow(_r, 2) + 2 * pi * _r * _h;}
    private:
        double _r;
        double _h;
};

测试

#include <iostream>
#include <cstdio>
#include <cstring>
#include <utility>
#include <cstdlib>
#include <cmath>
using namespace std;

int main()
{
    # 测试第一题
    Rect r1(2, 5);
    cout << "rect1 area:" << r1.getArea() << endl;
    cout << "rect1 perimeter:" << r1.getPerimeter() << endl;

    Rect r2;
    r2.setSize(3, 6);
    cout << "rect2 area:" << r2.getArea() << endl;
    cout << "rect2 perimeter:" << r2.getPerimeter() << endl;

    # 测试第二题
    Cubic c1(2, 5, 3);
    cout << "cubic1 volume:" << c1.getVolume() << endl;

    Cubic c2;
    c2.setSize(3, 6, 10);
    cout << "cubic2 volume:" << c2.getVolume() << endl;

    # 测试第三题
    copyFile("1.txt", "2.txt");

    # 测试第四题
    Line l;
    l.setStartPoint(2, 2);
    l.setEndPoint(4, -4);
    cout << "line length:" << l.getLength() << endl;

    # 测试第五题
    sphere s(5);
    cout << "sphere volume:" << s.getVolume() << " surface area:" << s.getSurfaceArea() << endl;

    column c(4, 10);
    cout << "column volume:" << c.getVolume() << " surface area:" << c.getSurfaceArea() << endl;
}

测试结果:

-> g++ -Wall test.cpp -o test
-> ./test
rect1 area:10
rect1 perimeter:14
rect2 area:18
rect2 perimeter:18
cubic1 volume:30
cubic2 volume:180
line length:6.32456
sphere volume:392.699 surface area:314.159
column volume:502.655 surface area:351.858

回答问题 2022.12.20

记不住shell脚本怎么写?试试我的 cheat sheet 吧

老亚瑟比较喜欢用cheat sheet(备忘录)的方式学习一些编程里零散但又经常会用到的知识点。相比于冗长详尽的博客,这种方式既简单轻量,同时每次查看的时候可以通过大脑对知识进行自动补全,能不断提升对应知识点的记忆。但是缺点也很明显,就是讲述不够细致全面。所以,如果读者对相关cheat sheet的知识储备太少的话,建议先系统学习。下面是我学习和使用Linux shell时的cheat sheet。引号字符串比较数字比较(对[ ] [[ ]] 均有效)字符串测试(对[ ] [[ ]] 均有效
原创
发布博客 2022.12.03 ·
515 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

scrum敏捷开发方法论

当前业界有两种主要的软件项目开发方法论,分别是Waterfall(瀑布模式)和Agile(敏捷模式)。而本文介绍的scrum便是敏捷模式中一个很常用的方法论。瀑布模式是传统的软件开发模式,一般会在软件开发前期确定好软件需求,设计好软件架构,安排好开发计划,然后开始具体的开发工作。当软件开发基本结束后,测试人员开始介入,着手软件测试工作,同时开发人员开始修改bug,在软件最终交付日期前完成开发和测试的所用工作。
原创
发布博客 2022.11.19 ·
1425 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

windows系统文件丢失导致git gui崩溃

当我重新安装Python时出现的这个问题,但目测和Python没有直接的关系。先上一张git Gui崩溃时的图:在网上搜索一番后得到如下的一份结果: My name is hyungon.kim (Korea) I got the same error message. -Couldn’t reserve space for cygwin’s heap, Win32 error
原创
发布博客 2015.05.15 ·
2668 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

windows到linux上回车字符的问题

编写shell脚本时,我们经常习惯在windows下写好,然后通过共享目录拷到linux下,方便快捷。杯具的事也来了,当我们在windows写一个shell程序拷到linux中,修改好权限,正准备试下效果时,/bin/bash^M: 坏的解释器: 没有那个文件或目录/bin/bash^M: 坏的解释器: 没有那个文件或目录 什么情况?这跟系统有关。脚本文件在window
转载
发布博客 2015.04.13 ·
719 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Ruby学习记录——安装Ruby

在Ubuntu上安装Ruby,首先想到的是到官网下载源码包然后编译安装,但在安装过程中遇到各种编译和安装错误,貌似是缺少很多的依赖库,在网上搜了一下,有好多的依赖库要安装,于是选择了另一条路进行安装(Ubunt官方软件源的版本太老了,学习最好能安装最新稳定版本的)。http://chloerei.com/2014/07/13/the-best-way-to-install-the-latest-ve
原创
发布博客 2015.03.23 ·
783 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux初学者笔记 续

Linux初学者
原创
发布博客 2015.03.20 ·
688 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux初学者笔记

Linux初学者
原创
发布博客 2015.03.20 ·
1120 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

markdown流程图语法

从网上找了很久关于markdown语法的文章,机会微乎其微,大多所指向的都是同一个页面https://github.com/adrai/flowchart.js 这是github上的一个开源项目,里面对我有用的只有一小段文字st=>start: Start|past:>http://www.google.com[blank]e=>end: End:>http://www.google.como
原创
发布博客 2015.03.17 ·
49765 阅读 ·
9 点赞 ·
6 评论 ·
13 收藏

Error tips:array type has incomplete element type

error:array type has incomplete element type这一般是因为在头文件使用某个自定义的变量类型时,此变量类型的声明未出现在头文件中,即在使用之前未被声明。 解决办法是,讲声明此变量类型的头文件加入到所使用的头文件中去。
原创
发布博客 2015.03.17 ·
10941 阅读 ·
6 点赞 ·
0 评论 ·
5 收藏

Linux下core文件产生的一些注意问题

一,如何使用core文件1. 使用core文件在core文件所在目录下键入:gdb -c core它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此程序的信号等等。如果你已经知道是由什么程序生成此core文件的,比如MyServer崩溃了生成core.12345,那么用此指令调试:gdb -c core
转载
发布博客 2015.03.16 ·
1440 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

freebsd 开机启动服务与inted服务器

如果想将某个服务设计成开机自启动,可以在/etc/rc.d目录下建立可执行程序的链接,然后在/etc/rc.conf中添加xxx_enable="YES"xxx为要添加的服务的名字(可执行程序的名字)再来说说inted服务器。inetd(8) 有时也被称作 “Internet 超级服务器”, 因为它可以为多种服务管理连接。 当 inetd 收到连接时, 它能够确定连接所需的
转载
发布博客 2015.03.07 ·
3575 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

freebsd内核时钟

freebsd中的ticks64相当于linux中的jiffies,记录从电脑开启至当前的所有时钟中断数ticks64/hz    就是电脑开机至当前所经历的秒数hz一般是1000或者100hz的含义是一秒内的时钟中断数关于时钟的相关定义在sys/kern/kern_clock.c文件中时钟是作为一个独立模块初始化的,初始化代码为SYSINIT(clocks, SI_S
原创
发布博客 2015.03.06 ·
771 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

freebsd上idle进程

System Idle Process SYSTEM不是一个真正的进程,是核心虚拟出来的,多任务操作系统都有的!在没有可用的进程时,系统处于空运行状态,此时就是System Idle Process SYSTEM在运行!故它占用97%CPU时间,说明你的机器负荷很轻!你用WINZIP解压一个大的文件时,就可看到,System Idle Process SYSTEM占用CPU时间变化。 syst
转载
发布博客 2015.03.03 ·
1022 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

sysctl命令详解

个人一般sysctl -p 或sysctl -a比较多使用 sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。    命令格式:    sysctl [-n] [-
转载
发布博客 2015.02.11 ·
620 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

四层负载均衡和七层负载均衡的区别

原文地址:http://blog.csdn.net/caoshuming_500/article/details/73378021. 四层负责均衡:是通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器与请求客户端建立TCP连接,然后发送Client请求的数据。由上图可知:在四层负载设备中,把client发送的报文目标地址(原来是
转载
发布博客 2015.02.06 ·
473 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

服务器负载均衡的基本功能和实现原理

看文留印原文地址:http://virtualadc.blog.51cto.com/3027116/615836负载均衡设备作为纵跨网络2-7层协议的设备,往往放置在网络设备和应用设备的连接处,对工程师在网络和应用基本知识方面的要求远高于其他设备,所以我们要在基本功能的理解上下更多的功夫。负载均衡设备还有另外一个称呼:4/7层交换机,但它首先是个2-3层交换机,这要求我们首先掌
转载
发布博客 2015.02.04 ·
668 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多