-
2018-07-26 22:44:42
学习日志 姓名:王梓 班级:通信163
今日学习任务 利用NVIC中断实现间隔频率为1S的灯闪烁 今日任务完成情况 基本完成 今日开发中出现的问题汇总 对固件库不了解,不能快速找到自己要的东西 今日未解决问题 无 今日开发收获 了解中断;了解串口相关问题 自我评价 基本完成 其他 无
更多相关内容 -
shell学习日志总结
2011-04-20 07:57:20shell学习日志总结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源文件中实现这个函数,这个函数必须为
public
、void
无返回值、接收触发事件的视图实例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()可以用于弹出对话框,修改后的函数如下:
这里要注意DoModal的返回值类型,先进行定义。在使用不同的函数体的时候,需要了解其返回值、形参有哪些。一般来说:类需要有对象,对象才有成员函数。在MFC里往往用一些类封装了很多操作,如使用CFontDialog类封装了字体对话框的所有操作 、使用文件对话框类CFileDialog封装了对文件对话框的操作,于是我们只需要先拿这些类定义下对象(注意所需要的参数),之后就可以拿对象来使用函数了,注意下返回值与参数。不过如CWnd类的成员函数MessageBox()和全局函数AfxMessageBox()这样的也可以不用定义对象直接使用,这就比较奇特了。不过感觉主要问题是寻找所需要的类与函数。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);//数据从变量传入控件 }
五:小总结
感觉能够初始化所想要的界面、能够定义变量与对象、能够操作函数使得数据进行传递和处理,一个简单的可操作的界面也不难嘛,所以第一篇日志到这里先告一段落,给自己一点自信嘻嘻,而且毕竟第一次写博客。之后会继续看的!加油!
-
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 # ... -
pyhton 使用 logging 打印深度学习模型训练日志
2022-03-31 10:39:28使用pyhotn 的logging打印训练日志 -
商城后台管理系统学习日志-01
2021-04-02 15:33:49总体图片(有待完善) 目前在做的是用户列表,下一步做的是权限管理 用户列表包括:用户查询、添加用户、删除用户、修改用户、以及数据分页 用户查询(这里使用的是模糊查询) 源码: listQuery: { ... -
DeepLog:基于系统日志使用深度学习方法做异常检测和诊断
2021-07-06 10:42:17DeepLog 日志异常检测 -
uniapp商城项目学习日志-02
2021-04-09 19:04:53用了差不多两天的时间完成一个uniapp项目,发现uniapp其实很简单,更多的是在于对于组件的应用开发,其实现在不需要去写各种组件了,直接使用就好了,做到快速开发,其实真想要做到这一步其实很难,其中的学习成本和... -
JAVA学习笔记(三十)-日志框架
2022-02-10 13:55:11Java日志概述 对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。java领域存在多种日志框架,目前常用的日志框架包括Log4j 1,Log4j 2,Commons Logging,... -
新人学习日志
2017-10-13 10:24:08怀揣一颗好奇之心前行 -
AWS学习日志之SAA
2018-10-15 13:53:272018年10月15日正式开始学习AWS,要求自己尽快通过SAA认证,学习时间控制在四个月之内。加油吧。 -
Spring Boot学习日志(二)JPA操作Mysql
2018-02-04 20:15:36Spring 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:19FPGA学习日志 坚持每天写总结 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:421.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学习日志(三)——查询
2018-04-16 21:29:15这篇日志记录下prometheus的基本查询方法。主要是记录一些基本的数据类型和查询函数的最基本语法。一.Expression language data types 表达语言的数据类型表达式语言分为以下四种:instant vector 瞬时变量 同一个... -
Redis学习日志之SpringBoot2.0+整合Redis(基于Redission)
2019-03-14 11:28:17Redis学习日志之Linux下的安装 昨天完成了redis的简单安装,今天就在项目当中简单整合使用一下 整合环境说明 JDK1.8版本 idea开发工具 springboot2.1.0版本 为什么选择Redission? springboot2.0之前的版本...