精华内容
下载资源
问答
  • 程序员接私活完整攻略

    千次阅读 多人点赞 2019-05-29 10:15:38
    接私活对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分...当你竭尽全力想要去接私活的时候一定做过这样的事,百度搜索“程序员如何接私活”或者...

    接私活对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题,似乎都在避嫌。就跟有人下班后跑滴滴一样,程序员私有时间接点活挣点钱不也很正常么,不过不要在上班时间就行,就跟你上班期间出去跑滴滴一样。

    当你竭尽全力想要去接私活的时候一定做过这样的事,百度搜索“程序员如何接私活”或者“程序员到哪接外包”之类的问题,那么相信你也一定看到过让你不要接私活的帖子,观点大概就是:

    把有限的时间花在提升自己的能力上,技术深度,技术广度,或者多阅读书籍,丰富自己,这样有可能比做外包收益大。

    这里就不跟大家讨论该不该接的问题了,很明显,我接了。首先跟大家分享几个项目案例。

    案例1

    大概是13年14年左右的样子,谈到一个项目,做一个APP连接甩脂机,通过蓝牙模块传输数据,便于手机上观察,大概这样。依稀记得跟甲方项目经理沟通需求时,他拿了一个 Android 2.x 系统的手机给我演示了QQ的一些功能,我一本正经的跟他说,“你放心,这个肯定做不了”,他当时就懵了...因为我并不想兼容2.x版本的系统。后来进入签合同阶段,这家公司不大,事儿倒是不少,又是身份证复印件,又是按指纹。这个项目是我外包生涯中的一次滑铁卢,为什么呢,因为我竟然同意了不用付定金,等项目开发中期再支付第一笔费用。带着一个他们提供的蓝牙硬件模块,回去了。后端开始编写API,Android iOS 开始研究蓝牙数据传输,噼里啪啦直接把项目做完了。测试包发过去了,结果大家能想到,不给钱!

    我至今都记得这家公司的名字,不知道倒闭了没有,我们整个团队一分钱没得到,项目以失败告终。

    案例2

    一个汽车后市场项目。当时市场上有一款APP,养车点点,后来已经改名,叫典典养车,我们当时要做的就是抄袭它,功能类似,整个项目差不多十几万。甲方是做汽车零配件的,在上海有很多家店,每次交流的地址在一家咖啡馆。两个多月后,项目上线,经营一段时间后,甲方意欲挖我们过去,毕竟项目是我们做的,他想把原班人马招过去,婉拒。

    案例3

    一个海外社交项目。这个项目比较小,只做 Android 一个端,原因是甲方招聘的 Android 人员离职了,时间紧急,就让我接了。比较顺利,对方提供视觉稿、API,我开发 Android 即可,项目也没啥难度,我闲着无聊,特地给他们做了一些交互动画,甲方验收的时候非常高兴,直言比他们自己员工做得都好。

    还有很多其它项目就不一一介绍了,小到做一个控件,几百块,千把块,大到几十万的项目,从整理需求到设计到开发。当然,也不是什么项目都接,举个例子,以APP为例,在甲方提供API和视觉稿的前提下,一个端低于2万的项目从来不接。

    做私活挣钱吗?不挣钱是脑子进水了吗。尤其对于刚入场的选手,外包收入可以说抵你一年的工资都可以。不仅挣钱,还特别积累经验,外包项目五花八门,搞地图的,搞语音的,搞视频的,搞蓝牙的,能帮助初级选手快速成长。

    做私活累吗?相当累。白天黑夜,从无周末。项目一旦接下来,从此进入心事重重的生活,不到最后交付那一刻,不会停缓。周末是最佳的工作时间,平时下班晚的话还做不了,所以几乎没有休息时间。

    重点来了,到哪里接呢?

    初级选手自己乱七八糟找项目,高级选手项目找上门。做私活一定要找到最佳状态,不然就是受罪。什么是最佳状态,就是当项目找上门时,想做就做,不想做又想赚就转。那么到底有哪些方法可以接到私活呢?不管黑猫白猫,抓到老鼠就是好猫,有哪些方法我一一说来。

    方法1

    各个众包平台。这是入门级的手段,也是最容易做的方法。有哪些众包平台就不用我一一细说了吧,猪八戒,威客网,CSDN 也有外包频道,一些技术论坛,海外的 Freelance 网站等等,每个都注册一遍,前期比较麻烦,各种资料需要填写,团队介绍,历史案例。注册之后理论上就可以投标项目了,不过如果需要认证的话,还需要继续花钱,很多项目只有花钱之后才有机会投标,这个就自己评估吧,我没花钱。通常没啥好项目,钱哪有那么容易赚,都是些边边角角稀奇古怪的项目。当然,即便是被别人挑剩下来的项目,也不排除有好项目,你要一一去沟通才知道。

    方法2

    主动联系各个外包公司,成为他们的备选开发人员。外包公司接单子的手段肯定比我们个人高明多了,他们就靠这个吃饭的,当他们出现人员紧缺、项目过剩、员工离职等情况时,不排除他们会考虑找临时替补人员,甚至把项目整包转出去。如果你身边有朋友开外包公司的,那很好,先天优势,长期互助。但是大部分人也许并没有这样的资源,那么这就是个体力活了,在方法1的基础上,部分平台会留下甲方的联系方式,比如猪八戒,你直接搜索软件外包服务商,他们的介绍页面上通常会有他们的手机号码和邮箱等信息,或者当你点击“在线咨询”“与我联系”等类似按钮的时候,他们的自动回复也会出现一些QQ号、手机号、邮箱等联系信息。

    这边我只是以其中一个平台为例,只要你用心,各个平台你都能扒到一些有用的信息。拿到这些信息之后你就可以把你编辑好的话术发给他们,也可以直接加他们微信,通常手机号码就是微信,不要怂,直接跟他们联系,打电话、发邮件、发QQ,发微信,把你想要做外包的意图告诉他们即可,然后就静静的躺在他们的朋友圈里,或者被遗忘,一两个月问一次好打个招呼,不要太频繁,这也算是人际关系的维护,看你本领了,多认识点人没坏处,剩下的就是平淡的等待了,如果他们会联系你的话。

    方法3

    跟身边的开发人员灰度交流。你没有项目,不代表别人都没有,如果别人愿意带着你的话,这也算是一个渠道。什么是灰度交流,就是半含蓄状态,文章开始我说了,程序员接私活是一个既公开又隐私的话题,不过这个度大家自己把握好,搞不好丢饭碗,把握不好的还是放弃这个方法吧。

    方法4

    人脉资源。除了从网络上接项目,或者吃外包公司的残羹冷炙,还有另外一个类别的项目,那就是创业者。在这个互联网、移动互联网、物联网盛行的时代,创业者也是一波接着一波,虽然热度有高有低,但是从不缺。组建一个公司,组建一个技术团队需要一笔不菲的费用,尤其软件开发人员的工资,将成为一个创业公司的沉重负担。种子投资,或者天使轮投资能有多少,对大多数创业项目来说,几十万,一百万,两百万,或者五百万,基本顶天了,这些钱能维持一个团队多久,何况还有很多创业者并没有拿到融资,他们等着先开发一个上线项目,再拿项目去找投资。如果你能接到这样的项目,那也是很爽的,不过通常这类项目靠熟人介绍,但是你千万要注意,一定要营造良好的口碑。有条件的话,也可以做套名片,几十块钱,够发好久的。

    做私活没有稳定的渠道,你可能一直找不到项目,也可能一年一个项目,重点是心态,不然你将陷入困扰的情绪当中。有更好,没有拉倒,找到最舒服的状态。

    当项目来临时,该如何报价?

    价值都是相对的,一定要有自己的心理预期,有些人觉得五千很值,有些人觉得一万很值。不要饥不择食,不管多廉价都接;也不要人心不足,吃着碗里看着锅里,或者觊觎别人的高价。跟对方交谈时,一定要快速判断彼此是否是目标客户,不要啰嗦太多,你的心理预期是几万,对方的心理预算是几千,这样的项目还谈个啥,务必在最短的时间内确定大家是否可以继续谈下去,否则浪费不必要的时间。如果大家心理预期差不多,对方不是那种想三千块钱做个淘宝的,则继续往下进行。有的甲方要求不多,很爽快,这样最好,有的甲方需要出报价单,那么就详细沟通需求,整理报价,整理报价是一个费时的过程,不要嫌麻烦,我们不是服务商,我们是抢食的个体,一定要不怕付出,哪怕一无所获。

    甲方有可能只是来询价,也可能等你出完报价单再回去比价,还是那句话,不要怕吃亏。如果甲方是个体的话,通常很好弄,但是甲方是商家的话就麻烦一点,一定要问清楚是否要开票,开票是要税的,不过羊毛出在羊身上,告诉他我们的报价是不含税的,如果要开票的话要加上税钱,20万的话,差不多几千块钱,看对方要求开什么类型的票。开票的话可以自己去税务局开,不过我没去过,如果自己认识几个开公司的朋友的话那是最好,让他们帮忙开张票,把税钱贴给他们。

    如果你觉的开票你对来说很难实施的话,那么有三个方案,一是放弃,这样的单子直接不要接了,继续寻找下一个单子;二是先接下来再转包,转给其它的外包公司做,不过你要估摸好有公司接,有朋友做外包公司那是最好的,相互帮忙,但是这种方案并不推荐,原因是不好把控项目进度和质量,还担风险;三是把项目介绍给认识的公司去谈,谈好了你拿提成,这样你既不担风险,还赚点快钱。

    付款方式该如何确定呢?

    切记,必须付定金,越多越好。通常我的付款方式是442,即预付40%的定金,项目提测再付40%,项目上线付清余款20%,这套方式针对个人比较好用,针对公司不好用,公司通常会留一笔费用在上线后一个月两个月三个月再付清,所以付款方式可以改成5311,即预付50%的定金,提测30%,上线10%,上线运营一个月后10%,坚持一个原则,前期付的钱越多越好。

    接下来就是签合同了

    一般只有个人才可能不要求签合同,大多数情况还是要签合同的。合同尽量你来拟定,不会写的话上网抄,一定要保护好自己的权益,重点是防止被对方坑。比如在合同中一定要写好适配哪些系统哪些浏览器,基于哪个版本开发等等,做得到的就写,做不到的别乱写,合同这东西,在心情好的时候怎么写都无所谓,心情不好的时候大家只能拿合同说话,你可别赔个十万二十万的,吓死你。

    整个接私活的过程差不多就是这样了,最后,我再强调几点注意事项

    • 没有金刚钻,别揽瓷器活。

    • 急单勿接。

    • 任何不付定金的单子都是耍流氓。

    • 不计得失,不怕吃亏。

    • 保证质量,塑造口碑。

    end

    展开全文
  • js实现问卷星根据答案自动填写2019年11月

    万次阅读 热门讨论 2019-11-13 09:21:29
    (过程需要翻墙,问卷星链接需要在浏览器打开,在微信直接打开的链接本脚本无法使用) ①安装脚本: 油侯脚本是一款免费的浏览器扩展和最为流行的用户脚本管理器,增强了用户对浏览体验的控制权。油侯脚本下载...

    参考链接地址:https://www.cnblogs.com/FHC1994/p/11721723.html

     

    (过程需要翻墙,问卷星链接需要在浏览器打开,在微信直接打开的链接本脚本无法使用)

     

            ①安装脚本:

            油侯脚本是一款免费的浏览器扩展和最为流行的用户脚本管理器,增强了用户对浏览体验的控制权。油侯脚本下载地址:http://www.tampermonkey.net/

            ②点击图片中红框位置按钮(因为我已经下载了,所以显示的是已安装)

            ③拉到页面最下方,点击添加至Chrome按钮

            ④添加完成后,在Chrome浏览器的右上方有下图所示按钮,点击之后,选择添加新脚本

            ⑤复制如下代码至“添加新脚本”页面内

    // ==UserScript==
    // @name         问卷星测试——支持input radio checkbox
    // @version      1.1
    // @description  测试
    // @author       蛋片鸡
    // @match        https://www.wjx.top/*
    // @match        https://www.wjx.cn/*
    // @grant        none
    // @require      https://code.jquery.com/jquery-3.4.1.min.js
    // ==/UserScript==
    
    
    
    /*
    **info 第一个参数:对应的填入选项(字符串)
    **info 第二个参数:匹配的标题(正则表达式)
    **info 第三个参数:(可选),当答题框为单选|多选时匹配的选项(正则表达式)
    */
    
    (function() {
        'use strict';
        const info=[
            ["蛋片鸡",/(姓名)|(名字)/],
            ["单选框_年级",/(年级)/,/(18级)/],
            ["18711111",/(学号)/],
            ["11011001100",/(联系方式)|(电话)|(手机)|(手机号)/],
            ["多选框_你好呀",/(你好呀)/,/(开始)|(中间)|(结束)/]
        ];
        const ini={
            module:".field.ui-field-contain",//每个问题模块
            title:".field-label",//标题
            type:{                              //key对应别名,value对应html的节点
               "input_text":".ui-input-text",
               "radio":".ui-radio",
               "checkbox":".ui-checkbox"
            }
        };
        $(document).ready(function(){
            let itemNum = 0;
            $(ini.module).each(function(){
                itemNum += 1;
                let title=$(this).find(ini.title).text();
                console.log("each循环" + itemNum);
                //判断类别
                let count = 0 ;
                for(let i=0;i<info.length;i++){//匹配用户信息
                    if(info[i][1].test(title)){//匹配到一处信息,判断答题框类型,加break!
                       for(let tp in ini.type){
                           let dom=$(this).find(ini.type[tp]);
                           if(dom.length>0){
                               switch(tp){
                                   case "input_text":
                                       $("#q"+itemNum)[0].value = info[i][0]; //赋值
                                       break;
                                    case "radio":
                                       $(this).find(".ui-radio").each(function(){
                                            if(info[i].length>=3&&info[i][2].test($(this).text())){
                                                var id=$(this).find('input').attr('id');
                                                $("#"+id).prop("checked",true);
                                            }
                                        });
                                        break;
                                    case "checkbox":
                                        $(this).find(".ui-checkbox").each(function(){
                                           console.log("outsidebox" + count);
                                            if(info[i].length>=3&&info[i][2].test($(this).text())){
                                                var id=$(this).find('input').attr('id');
                                                $("#"+id).prop("checked",true);
                                            }
                                        });
                                        break;
                                    default:console.log("ini.type中没有匹配"+tp+"的键值");
                               }
                               break;
                           }
                       }
                        break;
                    }
                }
            });
           //$("#ctlNext")[0].click();
        });
    })();

            ⑥在“添加至新脚本”页面中,点击左上角的保存按钮

            ⑦打开问卷星地址,已经实现根据设定的答案,自动填写。

          ⑧额外说明:

            a、因为本人对js不太熟悉,所以有个问题要说明。当我们刷新页面的时候,发现填空题填写了,但是单选和多选是没有选上的,其实在js脚本里面,代码里是已经选上对应的选项了的,只不过不知道样式怎么不显示。(可以通过创建和我一样问题的问卷,然后做一下这份问卷,再提交问卷,最后到问卷后台查看提交的记录中是否有单选和多选记录即可)

            b、因为本js脚本是根据问卷星页面源代码进行编写的,有时候问卷星修改了html节点的命名,就需要去修改本例对应的节点名称,这边附上本例测试时间,问卷星的源代码和问卷星的链接地址(https://www.wjx.cn/m/49588636.aspx),供大家参考对照,修改节点名称。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head> 
      <title>测试使用</title> 
      <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
      <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1,user-scalable=no" /> 
      <meta name="format-detection" content="telephone=no" /> 
      <link rel="canonical" href="https://www.wjx.cn/jq/49588636.aspx" /> 
      <meta property="og:type" content="article" /> 
      <meta property="og:release_date" content="2019-11-12" /> 
      <meta property="og:image" content="https://image.wjx.com/images/wlogo.png" /> 
      <meta property="og:title" content="测试使用" /> 
      <meta property="og:description" content="我在问卷星上发布了问卷《测试使用》,请帮忙填写,非常感谢!" /> 
      <meta name="applicable-device" content="mobile" /> 
      <link rel="dns-prefetch" href="//sojump.cn-hangzhou.log.aliyuncs.com" /> 
      <script type="text/javascript">
            var maxCheatTimes = 0;
            var activityId =49588636;
            if (window.location.hash) {
                window.location.hash = "";
                window.location.href = window.location.href.replace("#", "");
            }
            var isWeiXin=0;
        </script> 
      <link rel="stylesheet" href="/joinnew/css/jqmobo.css?v=973" /> 
      <script src="https://staticfile.qnssl.com/jquery/1.10.2/jquery.min.js"></script> 
      <script type="text/javascript">
            !window.jQuery && document.write('<script src="/js/jquery-1.10.2.min.js"><\/script>');
        </script> 
      <script src="/joinnew/js/hintinfo.js?v=2" type="text/javascript"></script> 
      <script src="/joinnew/js/jqmobo2.js?v=973" type="text/javascript"></script> 
      <style>
     
    
    
        </style> 
     </head> 
     <body> 
      <div id="divTip" style="position:absolute; left: 0; right: 0; z-index: 10; display: none; font-size: 14px; color: #ffffff; line-height: 24px; padding: 8px; background-color: #f95b5b;"></div> 
      <div id="tipHeight" style="height:40px;display:none;"></div> 
      <div style="background: #fff; position: fixed; top: 0px; left: 0px; right: 0px; bottom: 0px; z-index: 2; display: none;" id="divWorkError"> 
      </div> 
      <form id="form1" method="post" action="https://www.wjx.cn/joinnew/processjq.ashx?curid=49588636" style="overflow:hidden;"> 
       <div id="divLoadAnswer" style="display: none; font-size: 14px;line-height:24px;padding:6px 8px;background-color: #fff9f0;"> 
       </div> 
       <div id="toptitle"> 
        <h1 class="htitle" id="htitle"> 测试使用</h1> 
       </div> 
       <div id="divBackgroundWrap"></div> 
       <div id="divMaxTime" style="display: none; background: #FFEAEA; color: #FF5760; font-size: 16px; height: 40px; left: 0; line-height: 40px; position: fixed; text-align: center; top: 0; width: 100%; z-index: 100;"> 
        <span id="spanTimeTip"></span>&nbsp;
        <span id="spanMaxTime"></span> 
       </div> 
       <div id="divContent" class="divContent"> 
        <div class="checkInMode__head clearfix" id="divCheckInMode" style="display: none;"> 
         <div class="wjxCountDown__wrap game_time"> 
          <div class="countDown__hold"> 
           <div class="round round1"></div> 
          </div> 
          <div class="countDown__hold"> 
           <div class="round round2"></div> 
          </div> 
          <div class="countDown__bg"></div> 
          <div class="CountDown__frame"></div> 
          <div class="countDown__time"> 
           <div class="countDown__time--num" id="divCGMaxTime">
            10
           </div> 
           <div class="countDown__time--unit">
            秒
           </div> 
          </div> 
         </div> 
         <div class="icon decoration-icon pull-left"></div> 
         <div class="schedule-wrap pull-right"> 
          <div id="schedule">
           1
          </div> / 
          <span id="cgtotal">5</span>题 
         </div> 
        </div> 
        <div id="divDesc" class="formfield"> 
         <span class="description"> 哈哈哈</span> 
        </div> 
        <div id="divQuestion"> 
         <fieldset class="fieldset" style="" id="fieldset1">
          <div class="field ui-field-contain" id="div1" topic="1" data-role="fieldcontain" type="1">
           <div class="field-label">
            1. 姓名
           </div>
           <div class="ui-input-text" style="position:relative;">
            <input type="text" id="q1" value="" name="q1" />
           </div>
           <div class="errorMessage"></div>
          </div>
          <div class="field ui-field-contain" id="div2" req="1" topic="2" data-role="fieldcontain" type="3">
           <div class="field-label">
            2. 年级
            <span class="req">*</span>
           </div>
           <div class="ui-controlgroup">
            <div class="ui-radio">
             <span class="jqradiowrapper"><input type="radio" value="1" id="q2_1" name="q2" style="display:none;" /><a class="jqradio" href="javascript:;"></a></span>
             <div class="label" for="q2_1">
              16级
             </div>
            </div>
            <div class="ui-radio">
             <span class="jqradiowrapper"><input type="radio" value="2" id="q2_2" name="q2" style="display:none;" /><a class="jqradio" href="javascript:;"></a></span>
             <div class="label" for="q2_2">
              17级
             </div>
            </div>
            <div class="ui-radio">
             <span class="jqradiowrapper"><input type="radio" value="3" id="q2_3" name="q2" style="display:none;" /><a class="jqradio" href="javascript:;"></a></span>
             <div class="label" for="q2_3">
              18级
             </div>
            </div>
            <div class="ui-radio">
             <span class="jqradiowrapper"><input type="radio" value="4" id="q2_4" name="q2" style="display:none;" /><a class="jqradio" href="javascript:;"></a></span>
             <div class="label" for="q2_4">
              19级
             </div>
            </div>
           </div>
           <div class="errorMessage"></div>
          </div>
          <div class="field ui-field-contain" id="div3" topic="3" data-role="fieldcontain" type="1">
           <div class="field-label">
            3. 学号
           </div>
           <div class="ui-input-text" style="position:relative;">
            <input type="text" id="q3" value="" name="q3" />
           </div>
           <div class="errorMessage"></div>
          </div>
          <div class="field ui-field-contain" id="div4" topic="4" data-role="fieldcontain" type="1">
           <div class="field-label">
            4. 联系方式
           </div>
           <div class="ui-input-text" style="position:relative;">
            <input type="text" id="q4" value="" name="q4" />
           </div>
           <div class="errorMessage"></div>
          </div>
          <div class="field ui-field-contain" id="div5" req="1" topic="5" data-role="fieldcontain" type="4">
           <div class="field-label">
            5. 你好呀
            <span class="req">*</span>
            <span class="qtypetip">&nbsp;【多选题】</span>
           </div>
           <div class="ui-controlgroup">
            <div class="ui-checkbox">
             <span class="jqcheckwrapper"><input type="checkbox" value="1" id="q5_1" name="q5" style="display:none;" /><a class="jqcheck" href="javascript:;"></a></span>
             <div class="label" for="q5_1">
              开始
             </div>
            </div>
            <div class="ui-checkbox">
             <span class="jqcheckwrapper"><input type="checkbox" value="2" id="q5_2" name="q5" style="display:none;" /><a class="jqcheck" href="javascript:;"></a></span>
             <div class="label" for="q5_2">
              中间
             </div>
            </div>
            <div class="ui-checkbox">
             <span class="jqcheckwrapper"><input type="checkbox" value="3" id="q5_3" name="q5" style="display:none;" /><a class="jqcheck" href="javascript:;"></a></span>
             <div class="label" for="q5_3">
              加速
             </div>
            </div>
            <div class="ui-checkbox">
             <span class="jqcheckwrapper"><input type="checkbox" value="4" id="q5_4" name="q5" style="display:none;" /><a class="jqcheck" href="javascript:;"></a></span>
             <div class="label" for="q5_4">
              结束
             </div>
            </div>
           </div>
           <div class="errorMessage"></div>
          </div>
         </fieldset> 
        </div> 
        <div id="divMatrixRel" style="position: absolute; display: none; width: 80%; margin: 0 10%;" class="ui-input-text"> 
         <input type="text" placeholder="请注明..." id="matrixinput" style="min-height: 2em; width: 100%; padding: 0.3em 0.6em;" /> 
        </div> 
        <div id="divMatrixHeader" class="divMatrixHeader" style="position: absolute; display: none; font-size: 12px; color: #333"> 
        </div> 
        <div class="shopcart" id="shopcart" style="display: none;"> 
        </div> 
        <div class="footer"> 
         <div class="ValError" id="ValError"> 
         </div> 
         <div id="captchaOut"> 
          <div id="captchaWrap"> 
           <span id="captchaTit" style="display:none;color:#42B917;"></span> 
           <div id="captcha" style="margin: 0 auto;"></div> 
          </div> 
         </div> 
         <div id="divSubmit" style="padding: 0px 20px 10px; display: none;"> 
          <div id="tdCode" style="display: none; padding-bottom: 15px;"> 
           <table> 
            <tbody>
             <tr> 
              <td class="ui-input-text nofocus"> <input id="yucinput" size="14" maxlength="10" type="text" name="yucinput" /> </td> 
              <td> 
               <div id="divCaptcha" style="display: none;"> 
                <img alt="验证码" title="看不清吗?点击可以刷新" captchaid="" instanceid="" /> 
               </div> </td> 
              <td>&nbsp;&nbsp;<img id="imgCode" alt="验证码" title="看不清吗?点击可以刷新" style="vertical-align: bottom; cursor: pointer; display: none;" /> </td> 
             </tr> 
            </tbody>
           </table> 
          </div> 
          <div class="voteDiv"> 
           <a id="ctlNext" href="javascript:;" class="button blue"> 提交</a> 
           <a href="javascript:;" class="button white ctBack" style="display:none" onclick="location.href=getTpMainUrl()"> 返回</a> 
          </div> 
          <div style="margin: 0px 0 10px; padding-top: 10px;"> 
           <a href="/urlreport.aspx?url=49588636" style="float: right; color: #666; font-size: 14px;" class="reportto" rel="nofollow"> 举报</a> 
           <div style="clear: both;"> 
           </div> 
          </div> 
         </div> 
         <a href="javascript:;" id="cgstartbutton" style="display: none;"></a> 
         <div id="divSearch" style="background: #020d15; color: #7c7c7c; font-size: 18px; height: 50px; left: 0; line-height: 50px; position: fixed; text-align: center; bottom: 0; width: 100%; z-index: 100; display: none;"> 
         </div> 
        </div> 
       </div> 
       <div id="divPowerBy" style="margin: 0 auto;" class="logofooter">
        <div class="wjfooter">
         <span id="spanPower"><a href="https://www.wjx.cn/mobile/index.aspx" target="_blank" title="问卷星_不止问卷调查/在线考试">问卷星</a>&nbsp;提供技术支持</span>
        </div>
       </div> 
       <div class="result" id="outdiv"> 
        <div class="indiv" id="indiv"> 
         <i class="icon_close"></i> 
         <div id="preView_wrap"> 
          <img class="imgresult" id="bigimg" src="" alt="" /> 
         </div> 
        </div> 
       </div> 
       <div id="divTimeUp" style="display: none;"> 
        <div style="padding: 10px; overflow: auto; line-height: 20px; font-size: 16px; text-align: center;" id="divTimeUpTip"></div> 
       </div> 
       <input type="hidden" value="2019/11/13 9:36:22" id="starttime" name="starttime" /> 
       <input type="hidden" value="directphone" id="source" name="source" /> 
      </form> 
      <a id="lnkCity" style="display: none;"></a> 
      <script type="text/javascript">
            var isYdb=0;
            var isPub=0;
            var isQywx=0;
            var cqType=1;
            var isDingDing=0;
            var ddcorpid="";
            var sojumpParm='';
            var parmsign='';
            var isKaoShi=0;
            var lastTopic=0;
            var Password = "";
            var PasswordExt = "";
            var pwdExt="";
            var emailName="";
            var phoneName="";
            var guid = "";
            var udsid=0;var fromsour="";
            var langVer=0;
            var cProvince="";
            var cCity="";
            var cIp="";
            var divTip=document.getElementById("divTip");
            var displayPrevPage="none";
            var inviteid='';var jbkid='';
            var access_token="";
            var openid = "";
            var wxUserId = ""; 
            var ddUserId = ""; 
            var isQQLogin=0;
            var wxthird=0;
            var parterts="";
            var parterjoiner="";
            var partersign="";
            var parterrealname="";
            var parterextf="";
            var parterdept="";
            var parterpuser="";
            var relusername="";
            var relts="";
            var relsign="";
            var relrealname="";
            var reldept="";
            var relext="";
            var nbk=0;
            var corpId="";
            var flist=0;
            var isPvw=0;
            var user_token="";
            var IsSampleService=0;
            var hashb=0;
            var sjUser='';
            var sjts='';
            var sjsign='';
            var outuser='';
            var sourcelink='';
            var outsign='';
            var sourceurl = '';
            var sourcename="";
            var isSimple='';
            var jiFenBao=0;var cAlipayAccount="";
            var isRunning=1;
            var SJBack='';var jiFen="0";
            var FromSj=0;
            var ItemDicData="";
            var rndnum="3716597092.77891453";
            var totalPage=1;
            var totalCut=0;
            var cepingCandidate="";
            var allowPart=0;
            var cpid="";
            var needSaveJoin=0;
            var isChuangGuan=0;
            var jqnonce="4836f1d3-e5ad-42fa-a99f-48809b83a20a";
            var maxCgTime=0;
            var maxOpTime=0;
            var qBeginDate="1573528025483";
            var randomMode=0;
            var fisrtLoadTime=new Date().getTime();
            var canAward=1;
            var allowAward=1;
            var isVip=0;
            var LogStoreLocal=0;
            
            var needLogCompanyId=0;
            var needHBAlert=0;
            var isPromoteing=0;
            var prsjts = "";
            var  prsjsign = "";
            var  cityPeiEQues = "";
             
            if(needHBAlert && !window.needLogin){
                if(needHBAlert==-1){
                    var hbmsg=$("#spanTip").text();
                    alertNew(hbmsg);
                }
                else if(needHBAlert==-2)
                    alertNew("请注意:抽中红"+"包后答卷还需要发布者审核,通过审核后才能发放红"+"包!");
                else if(needHBAlert==-4){
                    var hbmsg=$("#spanTip").text();
                    alertNew(hbmsg);
                }
                else if(needHBAlert<0){
                    alertNew("请注意:每个参与者填完问卷后有"+(needHBAlert*-1)+"%的概率抽中红"+"包");
                }
                else
                    alertNew("请注意:每个参与者填完问卷后有1/" + needHBAlert + "的概率抽中红"+"包");
            }
            var needAwardAlert=0;
            var leftSeconds=0-10;
            if(needAwardAlert && !window.needLogin){
                var divawardalert=document.getElementById("divawardalert");
                var awt=$.trim($(divawardalert).text());
                if(awt)
                    alert(awt);
            }
            var hasChuangGuanEnd=false;
            var IsPar=0;
            var curProvince="";
            var curCity="";
            var curIp="221.176.33.49";
            var curFuHe=0;
            var curCheckResult=0;
            var addtoHis=0;
            var isForein=0;
        </script> 
      <script type="text/javascript">
            var needAvoidCrack=0;
            var tdCode="tdCode";
            var imgCode = $("#imgCode")[0];
            var submit_text = $("#yucinput")[0];
            var tCode = $("#"+tdCode)[0];
            var hasTouPiao =0
              
        </script> 
      <div style="display: none;">
       <script src="https://s13.cnzz.com/z_stat.php?id=4478442&amp;web_id=4478442" language="JavaScript" async="" onload="if(window.loadCzc)loadCzc();"></script>
       <script>var _hmt = _hmt || [];(function() {var hm = document.createElement("script");hm.src = "https://hm.baidu.com/hm.js?21be24c80829bd7a683b2c536fcf520b";var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})();</script>
      </div> 
      <script>
             
            function loadCzc(){
                if (window._czc) {
                    var evvtype="免费版";if(isVip)evvtype="企业版";
                    _czc.push(["_trackEvent", "移动端JQ", evvtype, cqType]);
                    if (window.isQywx) {
                        _czc.push(["_trackEvent", "企业微信", "打开问卷", ""]);
                    }
                }
            }
        </script> 
      <script>
            var awardkeylist="1§JLPT,JTEST,J.TEST,CATTI,50音,日语,韩语,Japan,Japanese,cosplay,の,な,ん,い,う,こ,し,せ,て,た,GRE,GMAT,offer,toefl,IELTS,LSAT,TEF§0┋2§美妆,化妆,护肤,小红书,HPV,内衣,玻尿酸,射频仪,肌肤测试,美容仪,瘦脸针,肉毒杆菌§1┋3§GRE,雅思,托福,G5,SAT,SSAT,ACTGMAT,jlpt,offer,toefl,IELTS,LSAT,TEF§1┋4§高中生,高一,高二,高三,高1,高2,高3,高中家长,高考§4┋5§初中生,初一,初二,初三,七年级,八年级,九年级,初1,初2,初3,7年级,8年级,9年级,中考,初升高§5┋7§小学生,附小,小学,小学家长,一年级,二年级,三年级,四年级,五年级,六年级,少先队,少先大队,1年级,2年级,3年级,4年级,5年级,6年级,小升初,低年级,口算,儿童节§7┋8§幼儿园,幼儿家长,园家长,大班,中班,大一班,大二班,大三班,小班幼儿,绘本,学前教育,学前儿童,早教,幼教中心,智力开发,睡前故事,蒙氏,积木,乐高,启蒙,拼音,幼儿,少儿,儿童,早教,幼稚园,幼教,育儿§8┋9§中学,中学生,中小学,附中,国际学校,中一班,中二班,中三班§6┋10§益智,托管所,托儿所,推车,童车,安全座椅,积木,巧虎,乐智小天地,§10┋11§家长,亲子,家教,孩子,家庭教育,共育,父母§11┋12§家访,培优,奥数,高年级,中年级,课堂作业,课后作业,家庭作业,苏教版,加减法,尖子班,人教版,提高班,青春期,冬令营,夏令营,课业,升学,考级,学籍,课外辅导,义务教育,补习,叛逆期,课业负担,提高班,校服§9┋13§大一,大二,大三,大四,考研,应届,奖学金,选修课,学生会,大学生,恋爱观,就业,择业,支教,打工,实习,留学生§2┋14§小语种,翻译,口译,外语,外教,听力,语种,真题,考研,口语,词汇,六级,英语,词汇,语法,the,and,that,for§12┋15§出国,部门,大区,职工,工号,跨国企业,国贸,报关,外贸,外企,海外,境外,国际部,签证,跨境,国际,航空,出境,空乘,进口,出口,海外,乘务,报关,外贸,外企,海外,境外,签证,跨境,出境,进口,出口,金融,出国,国贸,跨国企业,跨国公司,合资,出国,汽车,商城,酒店,购物,商场,商店,酒,咖啡,VIP,高尔夫,邮轮,相机,投资,炒股,股票,股市,金融,理财,财经,基金,财经,奢侈品,集团,企业,公司,员工,工会,旅游,旅行,购车,航班,证券,保险,银行,高层,部门,别墅,4S,红酒,财富,财务,高端,考察,海淘,海外,私募,贷款,私教,干红,健身,出境,境外,私家,ETC,车友,购房,房产,融资,花园,洋房,招商,地产,越野,轿车,度假,经理,总裁,研修,总监,私家车,会所,贵宾,MBA,物业,mall§14┋17§学历,受教育程度§3┋18§车位,车辆保养,4s店,车牌号,驾驶证,驾照,车险§1";
            var qukeylist="";
            var currJT=2;
            var isMobileFile =1;
    
        </script>   
     </body>
    </html>

     

    展开全文
  • 计算机专业考研复习计划指导与建议

    万次阅读 多人点赞 2018-07-14 22:05:38
    作为一名21世纪标准的理工男,计算机方向的专业学生,考研是另一种提升自己的有效路径,本人是计算机科学与技术专业出身,也是通过考研从一个平台跨向另一个平台,作为考研总分三百九十多的过来,今天就像各位想...

    作为一名21世纪标准的理工男,计算机方向的专业学生,考研是另一种提升自己的有效路径,本人是计算机科学与技术专业出身,也是通过考研从一个平台跨向另一个平台,作为考研总分三百九十多的过来人,今天就像各位想考研的计算机专业的学生讲述一下考试准备的经验。

        首先,作为一名非211平台的学生,按现在的道理就是说非双一流高校的学生,通常在考试准备中或多或少的存在一些自卑感,不敢大胆选择自己心仪的学校,因为毕竟考试只是一部分,后面还有面试选导师等各种乱七八糟的一系列事情等着你们(往往这些环节刷掉了一部分人,让人很遗憾);但是,在考试的笔试阶段应尽可能的考取较高的分数,因为这样的一个高分是你考取较好学校计算机专业的一个首要敲门砖,虽然说只是一部分,但是考试的高分也代表了你具有某些相应的能力,虽然你没有一个很好的出身,但是你很努力,因此如何考出一个好的成绩才是你12月份之前要考虑的首要问题,接下来就说说作为咱们计算机专业的学生如何安排复习计划。

        首先说我自己吧,我彻底决定考研是从5月底6月份开始的,6月份开始着手准备复习,但是这期间也就是大三的期间我还考了和专业的相关的一些证,专业知识也就是说C语言多少还是能看到懂的,(自己本科基本没有怎么学习,比较渣,可以作为跨专业学生的榜样,哈哈)我自身的英语比较差,英语是我的一大障碍;我全程从6月到12月份,每天都会花至少一个小时的时间去背单词,雷打不动;

        6月份开始进入真正的复习,我将自己的复习草率的分为了三轮,到后来想想,我感觉分为三轮复习还是比较合理的,向森么四轮五轮啊,我感觉有点扯了,复习周期长,到12月份有点太累了,我身边好多大三就开始准备考研的反正基本没中,除了本校;

        首先6月至7月是第一轮复习,大致过一下自己要学的东西,这个大致也就是说政治和专业课了,剩下的数学和英语我还很认真的,数学基本勉强过了一遍课本的习题(大约1周过了一遍数学课本,1周不到线性代数,一周概率论(这个不太懂)),然后开始做660题,虽然很多不会,但是还是坚持自己做了一遍,然后又重新看了一遍错题,英语就是老老实实背单词,然后做阅读;英语建议买一些练习阅读的书,我当时每天做两篇,虽然开始看不懂,但是还是硬着头皮做下去了,雷打不动,一直到10月份左右,开始做真题;期间我还做了一些模拟试卷,当然都是往年的模拟卷(除了政治和专业课),虽然不会,但是大致感觉一下,毕竟要报考吗!

        第二轮复习当然是从8月到11月份了,但是我完成以上任务好像到了8月过了几天,主要是数学没有搞完,其他的还随意了,当时我记得报了培训班,7月底开始跟着上课,一直到8月底,这期间我就是上课,然后就是学自己的,这个8月说实话,我就是跟着辅导班过了遍政治,感觉其他的没有太多用,因为培训班老师假期培训要跟进度,讲的数学比较简单等等当然还是有一些难的,(前提是你在复习时数学题是真的自己做的而不是看的);进入9月,真正的大四,一点事情都没有了,这个时间是你进行第二轮复习的绝好时机;

        数学:我当时数学买了李永乐的大红书,看了一遍做了一遍,包括他赠送的那个相应习题,虽然习题有点难,但是我还是全部做了,都是自己认真算的,不会的抄一遍答案,然后隔几天在重新自己算,基本没有放过任何一道习题;10月份,我就开始做完整的套题了,每天一套,雷打不动早上8点到12点,3个小时做,一个小时对答案,所以,到最后我就是卷子多,资料书基本一本,但是做卷子的同时要留每个星期六和星期天自己总结,不需要有错题本,浪费时间,说句实话,如果你的时间比较多,还是可以有的;

        政治:我的政治基本中午时间1点到3点复习的,其实就是到了2点半,迷糊10来分钟啦;我从9月份开始,每天中午吃完饭看政治书,一共看了三遍,当小说看了,然后就开始买题做,先做选择,基本市场上的卷子做完了,开始炒历年真题的大题,也就是炒个大概,看一下答题技巧等基本就是用休息的时间去复习;

        英语和专业课:仍旧每晚吃完饭开始背单词,然后下午的时候做卷子,也就是只做阅读,一下午时间,隔一中午做一次,然后第二天晚上开始看错题记阅读中的句子和单词等,当然句子结构等一些选择题技巧还是要在这个过程中摸索的,毕竟还有翻译和选句子填空等题型,这个会相应句子结构分析还是有好处的(记住单词一定要背上几遍);专业课就是和英语交叉的来的,下午和晚上,咱们专业课基本就是C,数据结构,计算机网络,操作系统,组成原理,基本就是大部分高校就是一门语言和四大专业课中的一门;我当时需要C语言,有编程题,比较难,所以我就每天看四大专业课之一的考试科目,然后就是联系一些ACM编程等,基本都是手写,主要是算法的思想,我学C语言主要看了谭浩强的书,上面的练习基本手写一遍,然后就是我的数据结构;专业课基本就是看基础,然后做相应学校的期末考试题和网上自己找的一些习题,然后10月底才开始找相应学校的历年真题去做;

        在这期间,还是要认证对待的,比较这是比较重要的一轮复习,扎实了才能比较容易冲刺;当然,我基本每天7点左右到教室,中午不休息,然后晚上10点半开始回宿舍,晚上有时容易失眠,尤其报名结束后,到考试前十来天,压力大比较容易熬过头,一天也就是抽个烟休息下(当然中途还有同学喊我一起包夜的,毕竟钻石选手嘛,这方面的技术不能丢下,然后就偷懒睡一觉),这样的复习模式也要看大家的坚持能力了,我也就是复习晚了,时间紧,而且想上好学校才这样,其实我还是不推荐这种高强度的学习的,因为我感觉我的复习效率其实不算高,等我真的考上后,发现好多人复习很轻松而且考了不错的分数。

        第三轮复习不用我说了吧,各种真题开始上,之前二轮主要以模拟题为主,至少要留十年真题在这个时间做,然后各种总结,最重要的就是自己总结一套自己的英语作文模板,千万不要买,有点风险,我听过有买的,英语考的比较差,我自己总结的英语作文模板,正背如流,但是还是考的比较差,勉强过了60,(当然英语一)然后开始疯狂背政治,他们(肖)让背哪你背哪。。。因为我是应届考,也不是很懂,而且怕传说的不准也不是很相信,我背了任8,4,肖8,4,海文的那个四,最后脑子比较乱,虽然考的也不错,但是考完对了一下,还是肖压的比较多,而且出来的比较早,我感觉其他的人好像抄袭了肖,哈哈,因此,我建议,如果复习比较紧没有时间看政治的,可以背肖4,然后8,这是最偷懒的办法了,还是希望大家谨慎点,多背为好,不要输在偷懒上,至少这个不存在智力因素。

        当然,最后怎么复习,还是大家根据自己的情况自己拟定计划,我也只是侥幸考好了,不少我的原校直系学弟学妹问我,我才写了这个经验之谈,但是还是建议至少三轮复习,这样还是比较扎实且容易承受的住的累,还是要以数学为主,考个不错的成绩,专业课为本,争取来个高分,英文贯穿复习周期,不能太低,政治看你觉悟和造化了,只要不乱写,党会优待你;

        最后做一波广告,如果真的忙于自己的考研之路,没有时间应付其他大四毕业事情的,比如说你和导师在面试之前的见面大概也就是三四月份或者暑假或者开学,你给老师的谈话肯定会涉及你的毕设,面试估计也会有,看面试老师了,哈哈,如果大家想做一个不错的毕设,可以找我帮忙哈,适当关注我的第一个博客,计算机专业学生毕设选题方向,因为你们马上要见导师了,好的毕设也不可少的,关乎你的导师选择,其实这也就是为啥985爱要985的学生,因为他们的视野广阔等乱七八糟的一些优点,如果大家真的 没有时间应付自己的毕设等问题的,可以私聊我或者加群:457756921;

        最后在奉劝大家一句,过线其实并不难,只要你静下心去复习,考个300分其实很容易,就是做会基础题,(有些学校招生才260多)但是要考高分难(比如360以上),如果你的本科院校不是很好,建议还是以高分为目标,这样才有后续的调剂之说,如果大家还有复习方面的问题,可以下面留言,有空会一一解答,祝好运。。。




    展开全文
  • 微信小程序入门之计算器

    万次阅读 多人点赞 2018-07-28 10:05:27
    那些专门从事APP开发,网页开发的工作者更是看到了小程序的前景,在小程序领域也掺上一脚,本人也是自学小程序的,初期跟很多人一样,遇到一些不懂的想问问别人,到贴吧去,一大堆广告,根本没人帮忙解决问题。...

    微信小程序现在越来越火爆了,我也看到很多在校大学生都在自学了,那些专门从事APP开发,网页开发的工作者更是看到了小程序的前景,在小程序领域也掺上一脚,本人也是自学小程序的,初期跟很多人一样,遇到一些不懂的想问问别人,到贴吧去,一大堆广告,根本没人帮忙解决问题。

    今天教一些刚入门的同学做一款计算器,如果C语言是编程的最佳入门语言,那计算器应该算得上是小程序的入门demo了,希望刚入门的同学们认真品味下面的代码,从wxml到js,再到wxss(页面的布局),每个代码都要弄懂他的意思

    废话不多说,先上效果图,这是我入门时候自己做的一款计算器,很简单,逻辑也很单一,只是我们身边最常见的计算器的逻辑,我觉得从这个demo我更深刻学习到了wxss页面的布局知识
    这里写图片描述

    这里写图片描述

    代码附上:
    app.json

     {
      "pages":[
        "pages/index/index",
        "pages/logs/logs"
      ],
      "window":
      {
      "navigationBarBackgroundColor": "#000000",
      "navigationBarTextStyle": "white", 
      "navigationBarTitleText": "智能计算器"
      },
     "tabBar": {                         //补充说一下,我这个tabBar是用来设置底部tab的
       "color":"#ff69b4",
       "selectedColor":"#0000ff",
       "backgroundColor":"#ffff00",
      "list": [
        {
          "pagePath": "pages/index/index",
          "text": "计 算 机"
        },
        {
          "pagePath": "pages/logs/logs",
          "text": "日志"
        },
        {
          "pagePath":"pages/logs/logs",
          "text":"回家"
        }
      ]
    }
    }

    /*app.wxss/*

    .container {
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: space-between;
      padding: 200rpx 0;
      box-sizing: border-box;
    } 
    

    **其中一些组件不认识的话, 建议到微信小程序官网多看几遍
    https://developers.weixin.qq.com/miniprogram/dev/framework/config.html**

    index.wxml:

    <template name="calculator-key">
      <button hover-start-time="{{5}}" hover-stay-time="{{100}}" hover-class="calculator-key-hover" data-key="{{className}}" class="calculator-key {{className}}">{{display}}</button>
    </template>
    
    <view class="calculator">
      <view class="calculator-display">
        <view class="calculator-display-text">{{displayValue}}</view>
      </view>
      <view class="calculator-keypad">
        <view class="input-keys">
          <view class="function-keys" catchtap="onTapFunction">
            <template is="calculator-key" data="{{className: 'key-clear', display: clearDisplay ? 'C' : 'C'}}"/>
            <template is="calculator-key" data="{{className: 'key-sign', display: '+/-'}}"/>
            <template is="calculator-key" data="{{className: 'key-percent', display: '%'}}"/>
       </view>
          <view class="digit-keys" catchtap="onTapDigit">
            <template is="calculator-key" data="{{className: 'key-0', display: '0'}}"/>
            <template is="calculator-key" data="{{className: 'key-dot', display: '●'}}"/>
            <template is="calculator-key" data="{{className: 'key-1', display: '1'}}"/>
            <template is="calculator-key" data="{{className: 'key-2', display: '2'}}"/>
            <template is="calculator-key" data="{{className: 'key-3', display: '3'}}"/>
            <template is="calculator-key" data="{{className: 'key-4', display: '4'}}"/>
            <template is="calculator-key" data="{{className: 'key-5', display: '5'}}"/>
            <template is="calculator-key" data="{{className: 'key-6', display: '6'}}"/>
            <template is="calculator-key" data="{{className: 'key-7', display: '7'}}"/>
            <template is="calculator-key" data="{{className: 'key-8', display: '8'}}"/>
            <template is="calculator-key" data="{{className: 'key-9', display: '9'}}"/>
          </view>
        </view>
        <view class="operator-keys" catchtap="onTapOperator">
            <template is="calculator-key" data="{{className: 'key-divide', display: '÷'}}"/>
            <template is="calculator-key" data="{{className: 'key-multiply', display: '×'}}"/>
            <template is="calculator-key" data="{{className: 'key-subtract', display: '−'}}"/>
            <template is="calculator-key" data="{{className: 'key-add', display: '+'}}"/>
            <template is="calculator-key" data="{{className: 'key-equals', display: '='}}"/>
        </view>
      </view>
    </view>

    index.js:

    Page({
      data: {
        value: null, // 上次计算后的结果,null表示没有上次计算的结果
        displayValue: '0', // 显示数值
        operator: null, // 上次计算符号,null表示没有未完成的计算
        waitingForOperand: false // 前一按键是否为计算符号
      },
    
      onLoad: function (options) {
        this.calculatorOperations = {
          'key-divide': (prevValue, nextValue) => prevValue / nextValue,
          'key-multiply': (prevValue, nextValue) => prevValue * nextValue,
          'key-add': (prevValue, nextValue) => prevValue + nextValue,
          'key-subtract': (prevValue, nextValue) => prevValue - nextValue,
          'key-equals': (prevValue, nextValue) => nextValue
        }
      },
    
      /* AC操作,一下回到解放前 */
      clearAll() {
        this.setData({
          value: null,
          displayValue: '0',
          operator: null,
          waitingForOperand: false
        })
      },
    
      /* 仅清空当前显示的输入值 */
      clearDisplay() {
        this.setData({
          displayValue: '0'
        })
      },
    
      onTapFunction: function (event) {
        const key = event.target.dataset.key;
    
        switch (key) {
          case 'key-clear':
            if (this.data.displayValue !== '0') {
              this.clearDisplay();
            } else {
              this.clearAll();
            }
    
            break;
    
          case 'key-sign':
            var newValue = parseFloat(this.data.displayValue) * -1
    
            this.setData({
              displayValue: String(newValue)
            })
    
            break;
    
          case 'key-percent':
            const fixedDigits = this.data.displayValue.replace(/^-?\d*\.?/, '')
            var newValue = parseFloat(this.data.displayValue) / 100
    
            this.setData({
              displayValue: String(newValue.toFixed(fixedDigits.length + 2))
            });
    
            break;
    
          default:
            break;
        }
      },
    
      onTapOperator: function (event) {
        const nextOperator = event.target.dataset.key;
        const inputValue = parseFloat(this.data.displayValue);
    
        if (this.data.value == null) {
          this.setData({
            value: inputValue
          });
        } else if (this.data.operator) {
          const currentValue = this.data.value || 0;
          const newValue = this.calculatorOperations[this.data.operator](currentValue, inputValue);
    
          this.setData({
            value: newValue,
            displayValue: String(newValue)
          });
        }
    
        this.setData({
          waitingForOperand: true,
          operator: nextOperator
        });
      },
    
      onTapDigit: function (event) {
        const key = event.target.dataset.key; // 根据data-key标记按键
    
        if (key == 'key-dot') {
          // 按下点号
          if (!(/\./).test(this.data.displayValue)) {
            this.setData({
              displayValue: this.data.displayValue + '.',
              waitingForOperand: false
            })
          }
        } else {
          // 按下数字键
          const digit = key[key.length - 1];
    
          if (this.data.waitingForOperand) {
            this.setData({
              displayValue: String(digit),
              waitingForOperand: false
            })
          } else {
            this.setData({
              displayValue: this.data.displayValue === '0' ? String(digit) : this.data.displayValue + digit
            })
          }
        }
      }
    })
    

    index.wxss:

    page {
      height:100%;
    }
    
    .calculator {
      width: 100%;
      height: 100vh;
      border:solid 1px;
      background: rgb(238, 5, 5);
      position: relative;
      box-shadow: 0px 0px 20px 0px rgb(211, 41, 41);
      display: flex;
      flex-direction: column;
      box-sizing: border-box;
    }
    
    .calculator-display {     /*显示器背景颜色*/
      background: #2c2a2c;
      flex: 1;
    }
    
    /*TODO:解决文本垂直居中问题,显示器数字颜色*/
    .calculator-display-text {
      padding: 0 30px;
      font-size: 3em;
      color: rgb(245, 245, 248);
      text-align: right;
    }
    
    .calculator-keypad {
      display: flex;
    
    }
    
    .calculator .function-keys {
      display: flex;
      color:rgb(245, 13, 13);
    
    }
    
    .calculator .digit-keys {
      background: #0808f7;
      display: flex;
      flex-direction: row;
      flex-wrap: wrap-reverse;
    }
    
    .calculator-key-hover {   /*按钮按下以后的颜色*/
      box-shadow: inset 0px 0px 25vw 0px hsla(71, 90%, 48%, 0.898);
    }
    
    
    
    .calculator-key {
    background-color:aqua;
    
      display: block;
      width: 25vw;
      height: 25vw;
      line-height: 25vw;
      border-top: 1px solid rgb(6, 245, 78);
      border-right: 1px solid rgb(19, 241, 12);
      text-align: center;
      box-sizing: border-box;
    }
    
    .calculator .function-keys .calculator-key {
      font-size: 2em;
    
    }
    
    .calculator .digit-keys .calculator-key {
      font-size: 3em;
    }
    
    .calculator .digit-keys .key-0 {
      width: 50vw;
      text-align: left;
      padding-left: 9vw;
    }
    
    .calculator .digit-keys .key-dot {
      padding-top: 1em;
      font-size: 0.75em;
    }
    
    .calculator .operator-keys .calculator-key {
      color: rgb(248, 165, 10);
      border-right: 0;
      font-size: 3em;
    }
    
    .calculator .function-keys {
      background: linear-gradient(to bottom, rgb(6, 6, 240) 0%, rgb(52, 5, 240) 100%);
    }
    
    .calculator .operator-keys {
      background:  linear-gradient(to bottom, rgba(252,156,23,1) 0%, rgba(247,126,27,1) 100%);
    }
    
    .input-keys {
      width: 100%;
    }
    
    .operator-keys {
      width: 100%;
    }
    

    这里写图片描述

    有不懂的欢迎下面留言提问

    展开全文
  • 程序员到底要不要读研,过来几点建议!

    万次阅读 多人点赞 2019-03-13 17:28:56
    而专业型硕士的导师一般会让学生帮忙做一些项目,有的导师连项目都不带,让学生自由发挥,如果实验室不需要你帮忙,那么的空余时间自然就多了, 于是就可以自己安排学习时间,甚至可以选择去公司实习 ,比如我...
  • 如果在追梦的路上感觉到累了,想要放弃的时候。请看看我的这篇文章
  • 首先是一个,然后才是程序员。

    万次阅读 多人点赞 2017-03-23 11:47:26
     看完这个,LZ忍不住乐了,过后还拿着手机忍不住给某璐璐炫耀了一番,“看,现在知道老公帅了吧,别人都问我如何保养皮肤了,说明我皮肤好啊。媳妇儿啊,说我怎么回答他呢?真有点不好意思呢,嘻嘻。”...
  • 离开了公司,还有什么

    万次阅读 多人点赞 2017-02-20 06:57:52
    当你离开了工作,当你离开了那个位置,还有什么?可以有什么?怎样才能有这些什么?
  • 过来告诉,去工作前最好还是学学Git

    千次阅读 多人点赞 2020-06-18 13:46:52
    暂存区就像购物车,没到付款的时候你都不确定购物车里的东西全部都是要的。每拿一件商品就付一次款,那麻烦可大了。 从宏观上看,Git其实有本地和远程的概念,只是本地又分了工作区、暂存区、本地仓库。再次强调:...
  • 请求接口的时候用的httpclient, 程序在本地跑没问题,在线上服务器也没问题,可以正常请求各个接口。 本来测试服务器也是可以的,但是有天突然开始发生下面的情况: ...求好心人帮忙看看。。。。
  • 感谢折磨[三]

    千次阅读 2013-09-04 17:22:20
     美国联合保险公司董事长克里蒙·史东说:“真正的成功秘诀是‘肯定人生’四个字,如果能以坚定而乐观的态度,去面对一切困难险阻,那么,一定能从其中得到好处。”  不要抱怨周遭、事、物对自己的折磨,...
  • 我可以请吃一千块钱的饭,也可以请喝两千块钱的酒,但是欠我的一百块钱得还,不为什么,这是规矩,做人最起码的原则。 目录 借钱之惆怅,感慨万千 有些,总喜欢从门缝里看,“容易把看扁了...
  • 不想努力怎么办,马斯克脑机接口,BrainOS都能帮忙

    万次阅读 多人点赞 2020-08-29 17:51:31
    魔童降世-马斯克的侵入式脑机接口 马斯克和他的Neuralink所推出的产品,并不是主要用于疾病的治疗,尤其值得一提的是,马斯克创建Neuralink这家公司的时候,是因为担心人工智能无限度的发展会很大程度上抑制人类...
  • 8000字干货:那些很厉害的是怎么构建知识体系的

    万次阅读 多人点赞 2019-09-29 11:18:27
    本文约8000字,正常阅读需要15~20分钟。读完本文可以获得如下收益: 分辨知识和知识体系的差别 理解如何用八大问发现知识的连接点; 掌握致用类知识体系的构建方法; 能够应用甜蜜区模型找到特定领域来构建知识体系...
  • 如何快速成为一个运维工程师

    万次阅读 多人点赞 2018-05-24 16:08:49
    首先先看图:下面是运维工程师至少要能做以下的工作:1,网络工程师的工作你至少要能配置CISCO 6509以下的设备,熟悉各种网络协议,否则网络出问题的时候你会傻掉。2,系统工程师的工作你至少要理解各种系统服务,在...
  • 首先,我们要知道破解一个游戏需要分析它的apk,于是我们需要用到MT管理器(因为我是从MT开始的),这个度娘一下可以出来。额,也可点链接http://www.coolapk.com/apk/bin.mt(怎么感觉前面的话像是废话,另外,手机...
  • 会挑刺的很多,会显摆的也很多,能干活的很少;能干活的也不少,但很多是默默无闻的“老黄牛”;能干活,能领会领导意图,能和同事好好相处,能恰当地表现自己的就很少了。被外派的工作是很复杂和高难度的...
  • 外卖跑到凌晨,很累,但还是有一种想诉说的冲动。...很多质疑我,说做过“某总”,拿过两万工资的,不可能找不到工作要去送外卖。我只能说,你们都还太年轻了。除了医生、律师这两个越老越吃香的职业,...
  • 有一阵子反复低烧,去医院体检,体检单上写着心肌酶高,医生推断有可能运动过度造成了。晚上心率达到一百多次,越是这样,越是睡不着。每次赵同学深情的对我说,闭上...而这个时候,恰巧同事又让帮着取快递,很想拒
  • Java后端开发。大学本科的时候我是如何赚到10w+?

    千次阅读 多人点赞 2020-08-12 09:09:36
    很多小伙伴比较好奇 Guide 是如何从大四的时候就已经自给自足,并且用自己赚的钱去了很多地方旅游(重庆、恩施、三亚…)。 今天我就说一下,我在大学接触到的所有让我赚过钱的事情。 另外,这里多说一句吧!我真的...
  • 投保提示书上会明确带病投保,如实告知的权利和义务,同时一旦签名,保险公司在电话回访的时候也会反复和消费者确认,投保单和投保提示书如果不是投保和被保险的本人亲笔签名,必须在前期的时候及时指出,此时...
  • 唐僧师徒四人选谁做总经理

    万次阅读 2012-05-25 21:15:54
    记得所有考生答毕后,考官将这道题分别让与会嘉宾(均为国内知名企业CEO)回答,回答出奇的一致:“选沙和尚做总经理”。  当然,这道题问不同的会有不同的回答,那么到底选择谁做总经理才是正确的呢? 一...
  • 摘要:修电脑?格子衫?脱发?程序员被误解了怎么办?如何一句话向父母说明白的工作?
  • 生活随记 - 台风里最可爱的

    万次阅读 2020-08-05 22:35:30
    今天台风临境,一整天都在下雨,下班的时候,看工位窗户玻璃上,水流不停,外面下得正猛,只能叫车了,在平台上下单叫车,前面等待200个人,和往常一样,下雨天,就需要等待很久,这次台风天,估计还坚持营业的师傅...
  • Intellij IDEA神器那些让爱不释手的小技巧

    万次阅读 多人点赞 2018-06-03 22:47:16
    这个也是阅读长段代码的法宝,当你阅读的代码很长的时候,突然想看代码里某个类的定义,那么直接使用 ctrl+shift+i ,就可以在当前类里再弹出一个窗口出来。比如说: 在这个代码块里,想看看 TestTemp 类的...
  • 计算机考研,这样选学校才是正解

    万次阅读 多人点赞 2019-11-22 07:24:08
    善于利用网络人脉,找目标院校专业的学长学姐打听,学长学姐在研究生入学的时候肯定也打听过自己当时是踏着多少的“尸体”进入院校学习的。 现在网络社交如此发达,找到目标院校的学长学姐还是方便的,可以去...
  • 发信站: 北邮论坛 (Mon Aug 24 09:59:56 2015), 站内看到版里那个吐槽下公婆不愿意给自己老公一点儿财产的帖子,被顶到高处的回帖主题全都是说父母(有充分能力情况下)帮助买房子是情分,不帮助买房子是本分。...
  • 从校园到职场,听说不想打杂

    万次阅读 多人点赞 2019-08-09 11:00:00
    很多年轻刚进入职场的时候,最大的抱怨就是,我可是学什么什么的,我的目标是做什么什么,为什么老板让我打杂。什么是打杂?有些是非技术性的,打印个文件,美化一下表格,帮部门老...
  • 为什么那么多人中途都放弃了

    千次阅读 多人点赞 2019-10-19 08:34:50
    最近一直发力写原创公众号文章,随便一篇文章最少需要2到5小时,一周更新5到7篇,很累的。但看到努力被大家认可,粉丝不断的增加,感觉也值了。后续继续为大家分享原创干货。 微信公众号关注了上百个吧,最近发现...
  • 如何招聘:永远不要自负的

    万次阅读 2016-01-13 12:41:16
    编者注:原文是 eShare CEO Henry Ward 的文章,其背景是 eSHare 准备开始 “大规模” 招,为了让面试人员能帮公司找到好的人才,... 招聘意味着执行失败需要帮忙  初创企业员工效能遵循幂次法则  招错不要

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,969
精华内容 33,187
关键字:

当你需要人帮忙的时候