C++输入分数,输出等级

首先输入数据,用for循环语句可以多次输入数据,然后将数据整除(其中若数据大于100则输出错误),再用switch将整除后的情况分别判断并输出相应的等级结果即可。(新手上路,请多指教) #inslude<iostream> using namespace std; int main() { for(inti=1;;i++) { int a; cin>>a; switch(a/10) { case 10: if(a>100) {cout<<"你的输入错误"<<endl;} else cout<<"优秀"<<endl; case 9: case 8:cout<<"优秀"<<endl;break; case 7:cout<<"良好"<<endl;break; case 6:cout<<"及格"<<endl;break; case 5: case 4: case 3: case 3: case 2: case 1: case 0:cout<<"不及格"<<endl;break; default:cout<<"你的输入错误"<<wndl;break; } } system("pause"); return 0; }

Ubuntu16.04编译libfacedetection

源码:https://github.com/ShiqiYu/libfacedetection.git CMAKE_MINIMUM_REQUIRED(VERSION 3.5) PROJECT (facedetection) SET(CMAKE_CXX_STANDARD 11) SET(CMAKE_CXX_STANDARD_REQUIRED ON) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") SET(BUILD_SHARED_LIBS ON) FIND_PACKAGE(OpenCV REQUIRED) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src ${OpenCV_INCLUDE_DIRS}) ADD_LIBRARY(facedetection src/facedetectcnn.cpp src/facedetectcnn-floatdata.cpp src/facedetectcnn-int8data.cpp src/facedetectcnn-model.cpp) ADD_EXECUTABLE(face_detect example/libfacedetectcnn-example.cpp) TARGET_LINK_LIBRARIES(face_detect ${OpenCV_LIBS} facedetection)

ubuntu部署网站

今天自己往服务器上部署了一个网站,记录一下做法。 ①首先要获取服务器的root权限 ②控制台输入:apt-get install apache2 ③把网站源码通过FTP上传到/var/www ④控制台输入:sudo vim /etc/apache2/sites-available/000-default.conf修改配置文件 ⑤修改www/后面的名称,就是你文件夹的名称 ⑥修改完之后控制台输入:sudo /etc/init.d/apache2 restart重启Apache ⑦在服务内部可以输入localhost或者127.0.0.1,在公网就输入公网IP就可以了。

设计模式-模板方法(TemplateMethod)

什么是模板方法设计模式? 使用了JAVA的继承机制,在抽象类中定义一个模板方法,该方法引用了若干个抽象方法(由子类实现)或具体方法(子类可以覆盖重写); 解决的问题? 1、当功能内部一部分是确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。 2、编写一个抽象方法,父类提供了多个子类的通用方法,并把一个或者多个方法留给子类去实现,就是一种模板模式。 这个博主有详细解释,看完茅塞顿开,链接:https://blog.csdn.net/u013565163/article/details/79285617 此篇文章只为记录上面这个链接,方便以后自己复习。以下内容为Copy其他博主。 案例场景: 小张的团队最近接受一个需求,实现实现一家咖啡店的冲泡咖啡和茶的冲泡自动化。之前这家咖啡店都是由咖啡师傅手动进行调制咖啡和茶。现在咖啡店需要引入自动化的点单和调制饮料的系统,小张负责实现调制饮料的功能。 咖啡师傅手工冲泡咖啡和茶的流程: 冲泡咖啡: 1、把水煮沸 2、用沸水冲泡咖啡 3、把咖啡倒入杯子 4、加糖和牛奶 冲泡茶: 1、把水煮沸 2、用沸水冲泡茶叶 3、把茶倒入杯子 4、加柠檬 模版方法 模版方法实现冲泡咖啡 小张去了解了一下模版方法。针对上述冲泡步骤进行了思考。应该有一个抽象的对象来描述冲泡饮料这一行为,并且抽象的类实现了具体冲泡对象的共性步骤也就是1.把水煮沸和3.把饮料倒入杯子。有两个具体的子类来具体实现冲泡茶和咖啡。 并且有些客户不需要加调料,那么需要对最后一步进行判断,是否添加调料。 代码实现 冲泡饮料的抽象类 package xuelongjiang.designpartten.templatemethod; /** * * 模板方法 * * * @Author xuelongjiang */ abstract public class CaffeineBeverage { //算法。 抽象类的算法是final 的不允许被子类修改 public final void prepareRecipe(){ //算法的具体步骤 boilWater(); //烧水 brew();//冲泡 pourInCup();// 把饮料倒入杯子 if(hook()){ addCondiments();// 加调料 } } public abstract void brew(); public abstract void addCondiments(); public void boilWater(){ System.

java基础-抽象类(Abstract)

什么是抽象类? 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该能够保证父类和子类共享特性。有时将一个父类设计的非常抽象,以至于他没有具体的实例,不能被实例化,只能被继承,这样的类叫做抽象类。 关键字:Abstract(可以用来修饰类和方法) Abstract修饰类和方法的使用 1、Abstract 修饰类,抽象类 1)不可被实例化; 2)抽象类有构造器(凡是类都有构造器) 3)抽象方法所在的类,一定是抽象类 4)抽象类中可以没有抽象方法 2、Abstract 修饰方法,抽象方法 1)格式,没有方法体,包括{},如public abstract void eat(); 2)抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此方法。 3)若子类继承了抽象类,并且重写了所有抽象方法,则此类是一个“实体类”,既可以实例化。 4)若子类继承了抽象类,没有重写抽象类中所有的抽象方法,以为着此类中仍有抽象方法,则此类还是一个抽象类。 3、Abstract 使用的限制 不能用Abstract修饰属性、私有方法、构造器、静态方法、final方法 抽象类练习: 编写一个Employee类,声明为抽象类,包含如下三个属性:name,id,salary。提供必要的构造器和抽象方法:work() 。对弈Manager类来说,他既是员工,它还具有奖金(bonus)的属性,请使用继承的思想,设计CommonEmployee类和Manager类,要求类中提供必要的方法进行属性访问。 Code class CommonEmployee extends Employee { @Override public void work() { System.out.println("在流水线工作"); } } class Manager extends Employee{ private String bonus; public String getBonus() { return bonus; } public void setBonus(String bonus) { this.bonus = bonus; } @Override public void work() { System.out.println("监督员工工作,提高员工工作效率"); } } abstract class Employee{ private int id; private String name; private Double salary; public abstract void work(); public Double getSalary() { return salary; } public int getId() { return id; } public String getName() { return name; } public void setId(int id) { this.

jquery一个ajax方法结束后,再执行下一个ajax方法。

今天遇到一个问题,就是下拉框回显的时候,有时可以正确回显,有时却取不到数据,代码如下: $.ajax({ type:"get", url:"EED.jsp?type=selMajor", dataType:'json' , async:true, success : function(result) { $("#EEDmajorId").val(result.majorId); $("#EEDmajorName").val(result.majorName); var count = $("#industryselect option").length; for (var i = 0; i < count; i++) { if ($("#industryselect").get(0).options[i].text == result.industryName) { $("#industryselect").get(0).options[i].selected = true; break; } }; }, error : function(){ alert("网络连接异常..."); } }); 这里有时会取不到数据,前端报错,Cannot read property 'options' of null,于是我锁定了一行代码, 这里count有时取值为0,我意识到行业下拉框可能加载的慢,导致这里取不到值,行业下拉框的代码: function Industry(){ var select = ''; //alert(m); $.ajax({ type: "get", //url:'department.json', url:'EED.jsp?type=getIndustryInfoByEdit', dataType : "json", async: false, success: function (data) { $.

vue-cli3.0结合lib-flexible、px2rem实现移动端适配,完美解决第三方ui库样式变小问题(转)

转自:https://www.cnblogs.com/skylineStar/p/10036525.html 公司有一个项目是vue-cli3.0结合lib-flexible、px2rem并且用了vant的ui组件。 与链接中的情况一样,就是用了px2rem之后,vant的样式变小了。 注意看到最下的补充,否则vant的样式还是变小 第一部分:项目中引入lib-flexible 一、项目中安装lib-flexible npm install lib-flexible --save 二、在项目的入口main.js文件中引入lib-flexible import 'lib-flexible' 第二部分:使用postcss-px2rem自动将css中的px转换成rem 一、安装postcss-px2rem npm install postcss-px2rem --save-dev vue中配置 在build下的 utils.js中,找到generateLoaders 方法,在这里添加 。 var px2remLoader = { loader: 'px2rem-loader', options: { remUnit: 75//设计稿宽度/10 // // 这是rem适配的配置 注意: remUnit在这里要根据lib-flexible的规则来配制,如果您的设计稿是750px的,用75就刚刚好。 } }; // generate loader string to be used with extract text plugin function generateLoaders(loader, loaderOptions) { var loaders = [cssLoader, px2remLoader];//添加px2rem 插件 if (loader) { loaders.push({ loader: loader + '-loader', options: Object.

小窥TypeScript: =>表达式

在TypeScript中添加了箭头表达式,和java的lambda很相似。 var sum = () => (1 + 5); var sum = (arg1, arg2) => (arg1 + arg2); var func1 = arg => { console.log(arg); } 以上代码相当于js的: var sum = function () { return (1 + 5); }; var sum = function (arg1, arg2) { return (arg1 + arg2); }; var func1 = function (arg) { console.log(arg); }; 可以看出,当参数为1个时,可以省略(),当返回值仅一行代码的时候,我们可以省略{},当仅使用()括住返回值的时候,默认为return方式。 一个实际应用中的例子: var arr1 = [10, 8, 15, 6, 4, 20, 21]; console.

js如何获取[object Object]

错误信息:alert显示[object object] 这里需要做数据格式的转换,如下: var a = JSON.stringify(data);// 转成JSON字符串 var b = JSON.parse(a); //将数据转换为 JavaScript 对象以获取对象长度b.length 注:JSON.stringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串。 其中data是原本打印成[object object]格式的数据; a为正确格式的数据。

Hive 行转列 explode和inline(lateral view)

@羲凡——只为了更好的活着 Hive 行转列 explode和inline(lateral view) 任何一个数据库都会涉及到行转列的问题,也同时会有相应的方法,比如mysql中的pivot。hive中使用的则是 lateral view explode 或者 lateral view inline 1.语法说明 a.lateral view explode select source_column,new_column from source_table lateral view explode(source_column) new_table as new_column; source_table:表示需要行转列的表 source_column:表示 source_table 中需要行转列的列 new_table:表示 lateral view explode 生成的新表名 new_column:表示 source_column 行转列后生成的新列名 b.lateral view inline select source_column,new_column1,new_column2 from source_table lateral view inline(source_column) new_table as new_column1,new_column2; source_table:表示需要行转列的表 source_column:表示 source_table 中需要行转列的列 new_table:表示 lateral view explode 生成的新表名 new_column1:表示 source_column 的key行转列后生成的新列名 new_column2:表示 source_column 的value行转列后生成的新列名 2.创建表 CREATE TABLE `aarontest.

微信小程序之豆瓣电影

效果图: 1.小程序下方的tabBar,属于公共的设置,需要在app.json里面设置 2.引入的文件放置的位置,图片放在images 3.代码 当前热映 index/index.wxml <view class="container"> <!-- 轮播图 --> <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}"> <block wx:for="{{imgUrls}}" wx:key="imgUrls"> <swiper-item> <image src="{{item}}" class="slide-image" width="355" height="150" /> </swiper-item> </block> </swiper> <!-- 当前热映 可滚动视图scroll-view --> <scroll-view scroll-y style="height: 100%;" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-into-view="{{toView}}" scroll-top="{{scrollTop}}"> <block wx:for="{{movie}}" wx:key="movie"> <view class="movie"> <view class="pic"> <image src="{{item.images.medium}}"></image> </view> <view class="movie-info"> <view class="base-info"> <text>电影名字:{{item.title}}\n导演:{{item.directors[0].name}}\n演员: <text wx:for="{{item.casts}}" wx:key="item">{{item.name}} </text></text> </view> </view> </view> </block> </scroll-view> </view> index/index.wxss page{ height: 100%; font-family: "

AWS IOT笔记

PPT 下载地址:https://s3.cn-north-1.amazonaws.com.cn/sides-share/%E5%9F%BA%E4%BA%8EAWS%2BIoT%E5%B9%B3%E5%8F%B0%E7%9A%84%E7%89%A9%E8%81%94%E7%BD%91%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.pdf 课堂地址: https://aws.amazon.com/cn/about-aws/events/webinar/iot-solutions-based-on-aws-iot-platform06062017/

Mybatis拦截器动态追加sql语句

拦截器介绍 MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。 MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed) ParameterHandler (getParameterObject, setParameters) ResultSetHandler (handleResultSets, handleOutputParameters) StatementHandler (prepare, parameterize, batch, update, query) 我们看到了可以拦截Executor接口的部分方法,比如update,query,commit,rollback等方法,还有其他接口的一些方法等。 总体概括为: 拦截执行器的方法 拦截参数的处理 拦截结果集的处理 拦截Sql语法构建的处理 拦截器使用 配置文件添加 <plugins> <plugin interceptor="com.uv.interceptor.MybatisInterceptor"> <property name="name" value="test"></property> </plugin> </plugins> MybatisInterceptor import java.lang.reflect.Field; import java.sql.Connection; import java.util.Properties; import org.apache.ibatis.executor.statement.StatementHandler; import org.apache.ibatis.mapping.BoundSql; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.plugin.Intercepts; import org.apache.ibatis.plugin.Invocation; import org.apache.ibatis.plugin.Plugin; import org.apache.ibatis.plugin.Signature; import org.apache.ibatis.reflection.DefaultReflectorFactory; import org.apache.ibatis.reflection.MetaObject; import org.

【小程序开发】地图circle自适应大小(radius适配)

问题 小程序地图组件map可以配置circles,用于标示当前位置的一个范围 circle有一个字段radius来规定圆圈半径 不过,这个值是与地图对应,即地图缩放时,它并不会改变大小 circle的透明度是通过配置fillColor属性的#XXXXXX00最后2位实现的,当不配置(即颜色值只有6位)时等同于opacity=1,当为00时,等同于opacity=0,以此类推。 官网api: circles 在地图上显示圆 属性说明类型必填备注latitude纬度Number是浮点数,范围 -90 ~ 90longitude经度Number是浮点数,范围 -180 ~ 180color描边的颜色String否十六进制fillColor填充颜色String否十六进制radius半径Number是strokeWidth描边的宽度Number否 这里的radius就是来表示圆的半径的 解决方案 比例尺 最开始是打算通过地图比例尺,然后就可以计算出来了,结果,官方论坛 emmmm,算了,另外想方案= = 是时候考验真正的技术了 官方有个接口 MapContext.getRegion(Object object) 基础库 1.4.0 开始支持,低版本需做兼容处理。 获取当前地图的视野范围 参数 Object object 属性类型默认值必填说明successfunction否接口调用成功的回调函数failfunction否接口调用失败的回调函数completefunction否接口调用结束的回调函数(调用成功、失败都会执行) object.success 回调函数 参数 Object res 属性类型说明southwestnumber西南角经纬度northeastnumber东北角经纬度 通过这个接口可以获取到2个坐标(左下角和右上角) 这样,我们就可以通过这2个坐标计算出2点之间的水平/垂直距离 从而得到radius的值 radius值为number,而且根据观察应该是1代表1m 计算2坐标换算距离我是参考微信小程序中使用地图和定位的一些坑和经验中的计算方法 var EARTH_RADIUS = 6378.137; //地球半径 function rad(d) { return d * Math.PI / 180.0; } function getDistance(lng1, lat1, lng2, lat2) { var radLat1 = rad(lat1); var radLat2 = rad(lat2); var a = radLat1 - radLat2; var b = rad(lng1) - rad(lng2); var s = 2 * Math.

router-link to 动态赋值

router-link to 动态赋值 路由定义: 动态赋值: <router-link :to="{path:'/old_data_details/params/'+item.id}" > </router-link> posted @ 2019-02-28 10:02 梓鸿 阅读(...) 评论(...) 编辑 收藏

微信小程序中点击收藏类似功能

data:{ isLove:false } click(){ if(!this.data.isLove){ //this.isLove 的值是false 这个永远不会变的 this.setData({isLove:false}); }else{ this.setData({isLove:true}); } <,view catchtap=‘ok’> <,icon wx:if="{{isLove}}" type=‘success’ color=‘red’> <,icon wx:else type=‘success’ color=‘green’> <,/view> 在这个ok方法中,犯了一个低级的错误,this.isLove 当成 this.data.isLove 这两个是不同的概念,第一个是在js文件的中isLove对象,而第二个才是data中的isLove 才是我们需要设置的,所有如果使用this.IsLove 在if(this.isLove)这个判断里面是会一直是true。无法达到页面的预期效果,谨记

Presto SQl中使用date_format()和date_parse()遇到的问题

昨天在Presto中查数据,查出来数据不对,后来发现是我使用date_parse()函数有问题 我需要查2018年12月31号到2019年1月6号之间的数据, 我使用的时间过滤方式是 and behavior_datetime >= date_parse('12/31/2018', '%m/%d/%Y') and behavior_datetime <= date_parse('01/06/2019', '%m/%d/%Y') 结果查出来的数据不对 临时也没多想,换成了date_format()来查就对了.过滤方式如下 and date_format(behavior_datetime,'%Y-%m-%d')>= '2018-12-31' and date_format(behavior_datetime,'%Y-%m-%d')<= '2019-01-06' 其实后来发现错误的原因是date_parse()是将参数中的时间转换成时间戳来比较的,那么 01/06/2019 实际上是转换成 01/06/2019 00;00:00 再转成时间戳的 我的时间区间小于01/06/2019 00;00:00 这个时间戳, 其实就没取到1月6号这一天的时间 比较条件换成小于1月7号零点的时间(如下) and behavior_datetime >= date_parse('12/31/2018', '%m/%d/%Y') and behavior_datetime < date_parse('01/07/2019', '%m/%d/%Y') 就没有任何问题了 转载于:https://www.cnblogs.com/qooweds/p/10443476.html

5分钟快速理解vuex vuex教程

在vue使用时如果你感觉到: prop传参的方法对于多层嵌套的组件非常繁琐对于兄弟组件间的数据传递很麻烦即使上述两个问题可以通过某些方法解决,但是不同组件直接引用或者通过事件来变更数据会使你的代码越来越复杂,通常可能会导致无法维护的代码 vuex就是来帮你解决这些问题的。 vuex中包含5个核心概念:State,Getter,Mutation,Action,Module State 用一句话理解State:State是用来存储原始数据的。 上文提到过多层嵌套和兄弟组件的数据传递很麻烦。所以vuex把你所有用到的数据存储在了一个“变量”上。 State的简单实现: // store.js const store = { state: { commonData: { ... }, fooData: { ... }, appData2: { ... }, ... } }; // foo.js const store = require('./store.js'); Vue.component('foo', { data: function () { return { common: store.state.commonData, foo: store.state.fooData } }, template: '<div><span>{{common}}</span><span>{{ foo }}</span></div>' }) // bar.js const store = require('./store.js'); Vue.component('bar', { data: function () { return { common: store.

java删除字符串最后一个字符的几种方法

偶然看到的,记录一下,以免忘记 字符串: string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法: 1、用的最多的是Substring,这个也是我一直用的 s = s.Substring(0,s.Length - 1) 2、用 RTrim,这个我原来只知道用来删除最后的空格,也没有仔细看过其它的用法,才发现可以直接trim掉一些字符 s = s.ToString().RTrim(',') 3、用TrimEnd,这个东西和RTrim差不多,区别是这个传递的是一个字符数组,而RTrim可以是任何有效的字符串 s=s.TrimEnd(',') //如果要删除"5,",则需要这么写 char[] MyChar = {'5',','}; s = s.TrimEnd(MyChar); //s = "1,2,3,4" substring(参数)是java中截取字符串的一个方法 有两种传参方式 一种是 public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。 另一种是 public String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。 详情请参考API java.lang.String 至于LZ说的 String subString; subString=number.subString(i,i+1); 定义一个String类型的变量去存储number截取第i个位置到第i+1个位置的字符串 笼统说就是 我们去截取number的第i个到第i+1个的字符,然后赋值给String类型的变量subString 类似函数: TrimStart,LTrim等 还有一个TrimToSize对提高性能有微弱的好处.... --------------------- 作者:allsmallpig 来源:CSDN 原文:https://blog.

2019年计划

1、至少要具备两种技能养活一个家庭 2、多看看原生js的书籍 记录总结自己 3、多学习怎么当奶爸怎么教育好这是个持久的过程 4、遇到事情不能马上冲动、要冷静理智对待。 5、我当爸爸了要多努力存两个建设银行 转载于:https://www.cnblogs.com/alone2015/p/10426109.html