精华内容
下载资源
问答
  • 学习日志
    千次阅读
    2018-07-26 22:44:42

    学习日志                        姓名:王梓       班级:通信163

    今日学习任务利用NVIC中断实现间隔频率为1S的灯闪烁
    今日任务完成情况基本完成
    今日开发中出现的问题汇总对固件库不了解,不能快速找到自己要的东西
    今日未解决问题
    今日开发收获了解中断;了解串口相关问题
    自我评价基本完成
    其他
     
    更多相关内容
  • shell学习日志总结

    2011-04-20 07:57:20
    shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志...
  • 安卓学习日志 Day01 — 界面布局

    千次阅读 2021-01-07 23:01:40
    ……

    概述

    • 界面练习
    • 视图的OnClick事件
    • Toast 消息框
    • ……

    界面练习

    登录界面练习,采用线性布局 LinearLayout 进行视图嵌套 Nested ViewGroups,并按权重比 layout_weight 分割页面
    在这里插入图片描述

    视图的OnClick事件

    首先为视图添加OnClick属性,指定当视图被点击时需要运行的函数,如:

            <TextView
                style="@style/MessageStyle"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:background="@color/red_100"
                android:onClick="openLogin"
                android:text="登录页面" />
    

    然后在java源文件中实现这个函数,这个函数必须为publicvoid无返回值、接收触发事件的视图实例View,如:

        public void openLogin(View view) {
            // …………
        }
    

    Toast 消息框

    使用 makeText() 实例化 Toast 对象,并传入三个参数分别为上下文 Context 、消息内容 text 、显示时长。最后调用 show() 显示消息框通知,比如在登录页面点击登录时弹出消息框:

        public void openLogin(View view) {
            Toast t = Toast.makeText(this, "界面练习,无法登录", Toast.LENGTH_SHORT)
            t.show();
        }
    

    运行结果:

    在这里插入图片描述

    总结

    使用线性布局 按权重分别高度或宽度可以实现页面的自适应,即使是在屏幕尺寸不同的设备也不会影响界面的布局结构。

    参考

    展开全文
  • C语言程序设计学习日志(一)

    千次阅读 2017-12-17 17:08:27
    循环以及拆解数值

    程序设计也是我感兴趣的一件事情,今天开始写博客,其中的内容是一些稍微有点意思的练习题目(都是简单的那种)和一些知识点的理解,更多的是为了整理思路和记录知识。


    题目内容:

    逆序的三位数:程序每次读入一个正三位数,然后输出逆序的数字。

    注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

    提示:用%10可以得到个位数,用/100可以得到百位数…。将这样得到的三个数字合起来:百位*100+十位*10+个位,就得到了结果。

    注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能。这道题目要求输出逆序的数字,程序就只能输出这个数字,除此之外任何内容都不能输出。

    输入格式:
    每个测试是一个3位的正整数。
    如:123

    输出样例:
    321

    分析:

    用%10可以得到个位数,用/100可以得到百位数,除以10再%10就得到了其十位数,小结:(所以也就两种情况,直接用除获得最高位,或者用求余得其最低位,其他位皆是转换成这两种情况再对应操作的)。将这样得到的三个数字合起来:百位*100+十位*10+个位,就得到了结果。

    代码如下:

    #include<stdio.h>
    int main()
    {
    int a,bai,shi,ge;
    scanf("%d",&a);
    bai=a/100;
    shi=a/10%10;
    ge=a%10;
    a=ge*100+shi*10+bai;
    printf("%d",a);
    return 0;
    }

    而下面这道题就是在第一道题目上的一个拓展延伸:

    题目内容:

    你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
    如输入1234,则输出:yi er san si
    注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,
    如-2341输出为:fu er san si yi

    输入格式:
    一个整数,范围是[-100000,100000]。

    输出格式:
    表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。

    输入样例:
    -30

    输出样例:
    fu san ling

    分析:先用计数器定位输入的数是多少位,开始循环:打印出最高位,接着拆掉最高位,同时计数器跟着少一位以此对应拆完之后的新数值,继续打印新的最高位以及拆掉新的最高位……这样一直循环操作直到最后一位打印出来。

    • 判断操作结束是根据计数器的值,这就保证了从一而终。
    • 默认每一位都打印空格,当计数器对应到最后一位的时候才不打印空格。

    代码如下:

    #include<stdio.h>
    int main() {
        int x, t,j=1;
        scanf_s("%d", &x);//输入变量
        if (x < 0) {//若为负数,则打印fu ,并且转换成其绝对值再来处理
            printf("fu ");
            x*=-1;
        }
            t = x;//t是用来拆分打印
            while (t > 9) {//定位x的位数
                t = t / 10;
                j *= 10;
            }
            //定位完毕,开始拆分、打印的循环操作
            while (j > 0) {//拆最高位,每拆一次就打印一次
                t = x / j;
            switch (t) {
            case 0:printf("ling");break;
            case 1:printf("yi");break;
            case 2:printf("er");break;
            case 3:printf("san");break;
            case 4:printf("si");break;
            case 5:printf("wu");break;
            case 6:printf("liu");break;
            case 7:printf("qi");break;
            case 8:printf("ba");break;
            case 9:printf("jiu");break;
            }
            if(j>1)//若不为最后一位数就打印一次空格
            printf(" ");
            //拆掉最高位
            x = x%j;
            j /= 10;//每拆去一个最高位就缩小10倍对应新的最高位
        }
        return 0;
    }
    展开全文
  • MFC学习日志(一)

    万次阅读 多人点赞 2017-08-30 21:16:34
    因为之后好像会接触到MFC来编写一个界面,所以把鸡啄米的MFC编程入门(http://www.jizhuomi.com/school/c/149.html)看了一下,按照对话框、常用控件一个个讲下去还是很友好的,本日志主要是个人总结感受,同时也...

    因为之后好像会接触到MFC来编写一个界面,所以把鸡啄米的MFC编程入门(http://www.jizhuomi.com/school/c/149.html)看了一下,按照对话框、常用控件一个个讲下去还是很友好的,本日志主要是个人总结感受,同时也可以帮助新手了解一下MFC的操作。

    一:基于对话框的MFC主要文件及其关系

    创建方式:打开Visual Studio2010 文件->新建->项目->>>MFC应用程序->输入名称如“Example37”(解决方案自动与名称相同)->>>完成->>>下一步->>>将“多个文档”勾选掉,选择“基于对话框”->>>完成

    这样我们就得到了一些基本的文件,在“解决方案资源管理器”视图里可以看到如图所示的外部依赖项、头文件、源文件、资源文件。



    其中Example37.h文件经常用于包含其他的头文件,并已经自动生成对类 CExample37Dlg的声明,从CDialogEx派生而来: class CExample37Dlg : public CDialogEx,常在此类中对一些 成员变量进行声明。
    Example37Dlg.cpp文件里有一个重要的函数定义。 BOOL CExample37Dlg::OnInitDialog() 它表示的是静态的最初的界面,对于一些控件,可以在此添加初始化代码,主要用于设置控件的初始姿态。


    二:添加控件及变量

    在“资源视图”中,IDD_EXAMPLE37_DIALOG是当前所示的界面,可以在上面添加一系列控件,右侧有工具箱...选择所需要的拖动放进来就好,还有一些对齐方式可以操作来使得界面美观。

    控件的caption是我们直接可以看到的名称,不作为代码一部分。而ID则是每个控件独一无二的身份,在程序中会被调用,ID可以被修改,毕竟生成的时候相同控件只会增加最后的数字值,当控件多的时候不利于区分,因此需要根据控件的作用,人为修改其ID使得区分方便。

    添加一个控件,如一个Edit Control,可以用于输入值、显示值,为了有一个值能够输入与输出,我们需要对该控件“关联”一个变量,因此在控件上右键:添加变量。类别改成Value,变量类型改成doubel,输入名称如“m_editNumb”。这一操作会有两项反应:一是Example37Dlg.h文件里Example37Dlg类的声明会增加一个public类型的数据double m_editNumb;一是Example37Dlg.cpp文件里DoDataExchange 函数增加了 DDX_Text(pDX, IDC_EDIT1, m_editNumb);此函数用于控件与变量之间交换值。需要我们在程序中调用CDialogEx::UpdateData()来间接调用DoDataExchange(),括号里需可以填TRUE或者FALSE,TRUE 表示从控件传给变量,FALSE 表示从变量传给数据。默认值是TRUE,即从控件传给变量。FALSE 表示从变量传给数据。默认值是TRUE,即从控件传给变量。

    三:添加消息处理函数

    消息指的是我们对控件或者对话框进行操作时,发给内部的指令,比如我们在之前定义了变量,需要输入值进行交换,这时就需要我们给一个消息。按下按钮、滑动滑块等等操作都可以添加相应的消息处理函数,来应对我们当前操作所给的消息。

    最简单的添加消息处理函数的方式就是双击控件,也可以右键然后“添加事件处理程序”。比如增加一个Button按钮,双击它就会有如下函数:

    void CExample37Dlg::OnBnClickedButton1()
    {
    	// TODO: 在此添加控件通知处理程序代码
    }

    简单地,为了实现编辑框内输入数字后,点击Button可以将数字加一,修改代码如下:

    void CExample37Dlg::OnBnClickedButton1()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	UpdateData(TRUE);//数据从控件传入变量
    	m_editNumb=m_editNumb+1;//变量值加一
            UpdateData(FALSE);//数据从变量传入控件
    }
    这样就完成了。

    值得注意的是,一个控件可以有多种丰富的操作,比如按钮就有单击和双击,相应的“添加事件处理程序”的时候,就需要选择BN_CLICKED和BN_DOUBELCLICKED,因此,明确自己所需要的消息类型也是一个查询与积累的过程。

    四:添加新的对话框

    在“资源视图”中,Dialog上右键“插入Dialog”就可以插入新的对话框,一般来说插入对话框之后需要在对话框上右键“添加类”,不然的话之后添加了控件没有地方去写消息处理函数了对吧。添加类,类名以C开头加上其他大写字母如CM_dialog会自动把开头的C去掉,增加新的M_dialog.h和M_dialog.cpp文件。注意类仍然是CM_dialog

    在主对话框中,比如需要点击按钮出现我们自定义的对话框,那么首要的就是在Example37Dlg.cpp里包含新对话框的头文件:#include"M_dialog.h",之后就是构造新对话框类的实体对象CM_dialog newDlg;函数DoModal()可以用于弹出对话框,修改后的函数如下:

    void CExample37Dlg::OnBnClickedButton()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	INT_PTR nRes;// 用于保存DoModal 函数的返回值
    	CM_dialog newDlg; // 构造对话框类CM_dialog的实例
    	nRes = newDlg.DoModal(); // 弹出对话框
    	if (IDCANCEL == nRes) // 判断对话框退出后返回值是否为IDCANCEL,如果是则return,否则继续向下执行
    		return;
    	UpdateData(TRUE);//数据从控件传入变量
    	m_editNumb=m_editNumb+1;//变量值加一
            UpdateData(FALSE);//数据从变量传入控件
    }
    这里要注意DoModal的返回值类型,先进行定义。在使用不同的函数体的时候,需要了解其返回值、形参有哪些。一般来说:类需要有对象,对象才有成员函数。在MFC里往往用一些类封装了很多操作,如使用CFontDialog类封装了字体对话框的所有操作 、使用文件对话框类CFileDialog封装了对文件对话框的操作,于是我们只需要先拿这些类定义下对象(注意所需要的参数),之后就可以拿对象来使用函数了,注意下返回值与参数。不过如CWnd类的成员函数MessageBox()和全局函数AfxMessageBox()这样的也可以不用定义对象直接使用,这就比较奇特了。不过感觉主要问题是寻找所需要的类与函数。

    五:小总结

    感觉能够初始化所想要的界面、能够定义变量与对象、能够操作函数使得数据进行传递和处理,一个简单的可操作的界面也不难嘛,所以第一篇日志到这里先告一段落,给自己一点自信嘻嘻,而且毕竟第一次写博客。之后会继续看的!加油!

    展开全文
  • abp学习日志九(总结)

    千次阅读 2020-03-29 14:06:35
    文章目录 ABP 本系列学习日志 AutoMaper 坑1 坑2(这个不算坑) Application 坑1 坑2 ABP 学习abp的最好的网站(官网) 本系列学习日志 abp学习日记 初记 abp学习日记一(安装) abp学习日志二(DDD) abp学习日志三...
  • redis学习日志 【一、安装】

    千次阅读 2016-04-11 16:06:35
    并且redis的核心在于集群,可以使用虚拟机搭建集群方便学习。 将下载的 放入linux虚拟机中。 二、安装: 打开控制台运行: #解压压缩文件 #用make命令编译redis # ...
  • 使用pyhotn 的logging打印训练日志
  • 商城后台管理系统学习日志-01

    千次阅读 2021-04-02 15:33:49
    总体图片(有待完善) 目前在做的是用户列表,下一步做的是权限管理 用户列表包括:用户查询、添加用户、删除用户、修改用户、以及数据分页 用户查询(这里使用的是模糊查询) 源码: listQuery: { ...
  • DeepLog 日志异常检测
  • uniapp商城项目学习日志-02

    千次阅读 2021-04-09 19:04:53
    用了差不多两天的时间完成一个uniapp项目,发现uniapp其实很简单,更多的是在于对于组件的应用开发,其实现在不需要去写各种组件了,直接使用就好了,做到快速开发,其实真想要做到这一步其实很难,其中的学习成本和...
  • JAVA学习笔记(三十)-日志框架

    千次阅读 2022-02-10 13:55:11
    Java日志概述 对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。java领域存在多种日志框架,目前常用的日志框架包括Log4j 1,Log4j 2,Commons Logging,...
  • 新人学习日志

    千次阅读 2017-10-13 10:24:08
    怀揣一颗好奇之心前行
  • AWS学习日志之SAA

    千次阅读 2018-10-15 13:53:27
    2018年10月15日正式开始学习AWS,要求自己尽快通过SAA认证,学习时间控制在四个月之内。加油吧。
  • Spring Boot学习日志(二)JPA操作Mysql

    千次阅读 2018-02-04 20:15:36
    Spring Boot学习日志(二)JPA基本操作 Spring Boot学习日志(一)Hello World Spring Boot学习日志(二)JPA操作Mysql Spring Boot学习日志(三)再谈Jpa Spring Boot学习日志(四)使用Mybatis Spring Boot学习...
  • FPGA学习日志——Risc-V架构的cpu设计

    千次阅读 2021-02-18 17:13:19
    FPGA学习日志 坚持每天写总结 2021.2.8 NiosII软核学习FPGA学习日志前言一、NiosII是什么?二、配置1.Nios22.其他常用ip核配置3.CPU与外设之间的连接4.解决报错5.生成系统6.保存文件三、硬件编译1.元件例化2.PLL的...
  • numbers.setOnClickListener(new View.OnClickListener() { // The code in this method will be executed when the family category is clicked on. @Override public void onClick(View view) { ...
  • Pytorch学习日志之函数用法记录

    千次阅读 2018-06-12 15:02:42
    1.torch.max() return 所有元素中的最大值. torch.max(input,dim,keepdim=False),dim =0时返回每一列的最大值及索引,dim=1时返回每一行的最大值及索引。 keepdim=True时返回的值的形状与dim相同2.torch.squeeze...
  • swift学习日志—— Log日志

    千次阅读 2015-12-31 11:55:09
    在OC中的Log日志设置请看我的另一篇博客:设置Log日志打印开关  在 Swift 中,最简单的输出方法就是使用 print,在我们关心的地方输出字符串和值。但是这并不够,试想一下当程序变得非常复杂的时候,我们可能会...
  • mysql触发器学习日志

    千次阅读 2017-07-27 17:57:32
    触发器和存储过程,函数的写法很像,但是不同...1.先建立一个users表和储存触发器工作日志的rizhi表 2.然后分别创建三个触发器:增删改 DELIMITER $$ DROP TRIGGER t1 $$ CREATE TRIGGER `pubs`.`t1` BEFORE INS
  • 这篇日志记录下prometheus的基本查询方法。主要是记录一些基本的数据类型和查询函数的最基本语法。一.Expression language data types 表达语言的数据类型表达式语言分为以下四种:instant vector 瞬时变量 同一个...
  • Redis学习日志之Linux下的安装 昨天完成了redis的简单安装,今天就在项目当中简单整合使用一下 整合环境说明 JDK1.8版本 idea开发工具 springboot2.1.0版本 为什么选择Redission? springboot2.0之前的版本...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 537,072
精华内容 214,828
关键字:

学习日志