序言

估计每个人都有中500W的梦想,我关注双色球也有一定年数了,可最多中也只有10块钱,这已经算是最大的奖,最近闲来无事,研究下怎么去开发双色球的走势图,觉得还是蛮有意思的,用MVC+JS+HTMl来实现的。做了非常多的走势图,还可以进行选号,还做了一些工具来帮助选号,O(∩_∩)O哈哈~纯粹个人兴趣来做的。下面来详细介绍怎么去实现的,还是相当有技术含量的。

实现出来效果

以上随便挑选了4个效果图,一起实现了20多种的效果,就不一一展示了。

怎么实现这走势图

查询条件的实现

function GetcxqsSelect() {
var obj = document.getElementById('cxqs');
obj.options.add(new Option("最新10期", "10"));
obj.options.add(new Option("最新20期", "20"));
obj.options.add(new Option("最新30期", "30", true, true));
obj.options.add(new Option("最新50期", "50"));
obj.options.add(new Option("最新80期", "80"));
obj.options.add(new Option("最新100期", "100"));
obj.options.add(new Option("最新150期", "150"));
obj.options.add(new Option("最新200期", "200"));
obj.options.add(new Option("最新300期", "300"));
obj.options.add(new Option("2003年", "2003"));
obj.options.add(new Option("2004年", "2004"));
obj.options.add(new Option("2005年", "2005"));
obj.options.add(new Option("2006年", "2006"));
obj.options.add(new Option("2007年", "2007"));
obj.options.add(new Option("2008年", "2008"));
obj.options.add(new Option("2009年", "2009"));
obj.options.add(new Option("2010年", "2010"));
obj.options.add(new Option("2011年", "2011"));
obj.options.add(new Option("2012年", "2012"));
obj.options.add(new Option("2013年", "2013"));
obj.options.add(new Option("2014年", "2014"));
obj.options.add(new Option("2015年", "2015"));
obj.options.add(new Option("2016年", "2016"));
obj.options.add(new Option("2017年", "2017"));
obj.options.add(new Option("2018年", "2018"));
obj.options.add(new Option("2019年", "2019")); var myDate = new Date();
var tYear = myDate.getFullYear();
if (tYear > 2019)
obj.options.add(new Option("2020年", "2020"));
if (tYear > 2020)
obj.options.add(new Option("2021年", "2021"));
if (tYear > 2021)
obj.options.add(new Option("2022年", "2022"));
if (tYear > 2022)
obj.options.add(new Option("2023年", "2023"));
if (tYear > 2023)
obj.options.add(new Option("2024年", "2024"));
if (tYear > 2024)
obj.options.add(new Option("2025年", "2025"));
if (tYear > 2025)
obj.options.add(new Option("2026年", "2026"));
if (tYear > 2026)
obj.options.add(new Option("2027年", "2027"));
if (tYear > 2027)
obj.options.add(new Option("2028年", "2028"));
if (tYear > 2028)
obj.options.add(new Option("2029年", "2029"));
if (tYear > 2029)
obj.options.add(new Option("2030年", "2030"));
if (tYear > 2030)
obj.options.add(new Option("2031年", "2031"));
if (tYear > 2031)
obj.options.add(new Option("2032年", "2032"));
}
<tr>
<td height="35" bgcolor="#FFFFFF" valign="top">
<div align="center">
查询
<select name="cxqs" id="cxqs"> </select>
<input type="button" name="zuobiao" value="开始查询" onclick="clientssq()">
</div>
</td>
</tr>

怎么实现表格下发的标记选号功能。

实现的样式:

 function Style(obj) {
debugger;
if (obj.style.backgroundColor == "") {
obj.style.backgroundColor = "#dd0000";
obj.style.color = "#FFFFFF";
} else {
obj.style.backgroundColor = "";
obj.style.color = "#ffffff";
}
}

html代码如下:

            for (var i = 0; i < 5; i++) {
html += '<tr title="点击空格可以帮助记录选号" align="center" class="chart_record">'
html += '<td></td>'
html += '<td width="19"></td>'
html += '<td width="19"></td>'
html += '<td width="19"></td>'
html += '<td width="19"></td>'
html += '<td width="19"></td>'
html += '<td width="19"></td>'
html += '<td></td>'
html += '<td onclick="Style(this)">01</td>'
html += '<td onclick="Style(this)">02</td>'
html += '<td onclick="Style(this)">03</td>'
html += '<td onclick="Style(this)">04</td>'
html += '<td onclick="Style(this)">05</td>'
html += '<td onclick="Style(this)">06</td>'
html += '<td onclick="Style(this)">07</td>'
html += '<td onclick="Style(this)">08</td>'
html += '<td onclick="Style(this)">09</td>'
html += '<td onclick="Style(this)">10</td>'
html += '<td onclick="Style(this)">11</td>'
html += '<td onclick="Style(this)">12</td>'
html += '<td onclick="Style(this)">13</td>'
html += '<td onclick="Style(this)">14</td>'
html += '<td onclick="Style(this)">15</td>'
html += '<td onclick="Style(this)">16</td>'
html += '<td onclick="Style(this)">17</td>'
html += '<td onclick="Style(this)">18</td>'
html += '<td onclick="Style(this)">19</td>'
html += '<td onclick="Style(this)">20</td>'
html += '<td onclick="Style(this)">21</td>'
html += '<td onclick="Style(this)">22</td>'
html += '<td onclick="Style(this)">23</td>'
html += '<td onclick="Style(this)">24</td>'
html += '<td onclick="Style(this)">25</td>'
html += '<td onclick="Style(this)">26</td>'
html += '<td onclick="Style(this)">27</td>'
html += '<td onclick="Style(this)">28</td>'
html += '<td onclick="Style(this)">29</td>'
html += '<td onclick="Style(this)">30</td>'
html += '<td onclick="Style(this)">31</td>'
html += '<td onclick="Style(this)">32</td>'
html += '<td onclick="Style(this)">33</td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '</tr>'
}

这样就可以实现标记号码功能。

计算连号

   function checkdata(arr, num) {
var bool = false;
for (var i = 0; i < arr.length; i++) {
if (arr[i] - num == 1 || arr[i] - num == -1) {
bool = true;
break;
}
}
return bool;
}

计算重号

 function array_diff(array1, array2) {
var o = {};//转成hash可以减少运算量,数据量越大,优势越明显。
for (var i = 0, len = array2.length; i < len; i++) {
o[array2[i]] = true;
}
var result = [];
for (i = 0, len = array1.length; i < len; i++) {
var v = array1[i];
if (o[v]) continue;
result.push(v);
}
return result;
}

还是有非常多的算法,比如每个号码出现的次数。

这个都是在JS实现,统计每个号码出现的次数。

 var arr = [count1, count2, count3, count4, count5, count6, count7, count8, count9, count10, count11, count12, count13,
count14, count15, count16, count17, count18, count19, count20, count21, count22, count23, count24, count25, count26, count27,
count28, count29, count30, count31, count32, count33];
var max = Math.max.apply(null, arr);
var unitcount = 50.00 / max; html += '<tr align="center" bgcolor="#ffffff">'
html += '<td height="60">统计</td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count1 + '<br><img width="8" height=' + count1 * unitcount + ' title="红球号码01出现' + count1 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count2 + '<br><img width="8" height=' + count2 * unitcount + ' title="红球号码02出现' + count2 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count3 + '<br><img width="8" height=' + count3 * unitcount + ' title="红球号码03出现' + count3 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count4 + '<br><img width="8" height=' + count4 * unitcount + ' title="红球号码04出现' + count4 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count5 + '<br><img width="8" height=' + count5 * unitcount + ' title="红球号码05出现' + count5 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count6 + '<br><img width="8" height=' + count6 * unitcount + ' title="红球号码06出现' + count6 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count7 + '<br><img width="8" height=' + count7 * unitcount + ' title="红球号码07出现' + count7 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count8 + '<br><img width="8" height=' + count8 * unitcount + ' title="红球号码08出现' + count8 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count9 + '<br><img width="8" height=' + count9 * unitcount + ' title="红球号码09出现' + count9 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count10 + '<br><img width="8" height=' + count10 * unitcount + ' title="红球号码10出现' + count10 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count11 + '<br><img width="8" height=' + count11 * unitcount + ' title="红球号码11出现' + count11 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count12 + '<br><img width="8" height=' + count12 * unitcount + ' title="红球号码12出现' + count12 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count13 + '<br><img width="8" height=' + count13 * unitcount + ' title="红球号码13出现' + count13 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count14 + '<br><img width="8" height=' + count14 * unitcount + ' title="红球号码14出现' + count14 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count15 + '<br><img width="8" height=' + count15 * unitcount + ' title="红球号码15出现' + count15 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count16 + '<br><img width="8" height=' + count16 * unitcount + ' title="红球号码16出现' + count16 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count17 + '<br><img width="8" height=' + count17 * unitcount + ' title="红球号码17出现' + count17 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count18 + '<br><img width="8" height=' + count18 * unitcount + ' title="红球号码18出现' + count18 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count19 + '<br><img width="8" height=' + count19 * unitcount + ' title="红球号码19出现' + count19 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count20 + '<br><img width="8" height=' + count20 * unitcount + ' title="红球号码20出现' + count20 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count21 + '<br><img width="8" height=' + count21 * unitcount + ' title="红球号码21出现' + count21 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count22 + '<br><img width="8" height=' + count22 * unitcount + ' title="红球号码22出现' + count22 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count23 + '<br><img width="8" height=' + count23 * unitcount + ' title="红球号码23出现' + count23 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count24 + '<br><img width="8" height=' + count24 * unitcount + ' title="红球号码24出现' + count24 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count25 + '<br><img width="8" height=' + count25 * unitcount + ' title="红球号码25出现' + count25 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count26 + '<br><img width="8" height=' + count26 * unitcount + ' title="红球号码26出现' + count26 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count27 + '<br><img width="8" height=' + count27 * unitcount + ' title="红球号码27出现' + count27 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count28 + '<br><img width="8" height=' + count28 * unitcount + ' title="红球号码28出现' + count28 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count29 + '<br><img width="8" height=' + count29 * unitcount + ' title="红球号码29出现' + count29 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count30 + '<br><img width="8" height=' + count30 * unitcount + ' title="红球号码30出现' + count30 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count31 + '<br><img width="8" height=' + count31 * unitcount + ' title="红球号码31出现' + count31 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count32 + '<br><img width="8" height=' + count32 * unitcount + ' title="红球号码32出现' + count32 + '次" src="../image/01.gif"></td>'
html += '<td height="60" align="center" class="statistics" valign="bottom">' + count33 + '<br><img width="8" height=' + count33 * unitcount + ' title="红球号码33出现' + count33 + '次" src="../image/01.gif"></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '</tr>' html += '<tr height="20" align="center" bgcolor="#e8f3ff">'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td class="red">01</td>'
html += '<td class="red">02</td>'
html += '<td class="red">03</td>'
html += '<td class="red">04</td>'
html += '<td class="red">05</td>'
html += '<td class="red">06</td>'
html += '<td class="red">07</td>'
html += '<td class="red">08</td>'
html += '<td class="red">09</td>'
html += '<td class="red">10</td>'
html += '<td class="red">11</td>'
html += '<td class="red">12</td>'
html += '<td class="red">13</td>'
html += '<td class="red">14</td>'
html += '<td class="red">15</td>'
html += '<td class="red">16</td>'
html += '<td class="red">17</td>'
html += '<td class="red">18</td>'
html += '<td class="red">19</td>'
html += '<td class="red">20</td>'
html += '<td class="red">21</td>'
html += '<td class="red">22</td>'
html += '<td class="red">23</td>'
html += '<td class="red">24</td>'
html += '<td class="red">25</td>'
html += '<td class="red">26</td>'
html += '<td class="red">27</td>'
html += '<td class="red">28</td>'
html += '<td class="red">29</td>'
html += '<td class="red">30</td>'
html += '<td class="red">31</td>'
html += '<td class="red">32</td>'
html += '<td class="red">33</td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '<td></td>'
html += '</tr>'
html += '<tr><td class="chart_bottom" colspan="46">说明:点击最后空行上的空格,可以帮助记录选号。</td></tr>'
html += '</tbody>'
html += '</table>';

计算每个号码出现次数,并且显示红色柱状图效果,以上即是实现的源码。

包括计算和值、大小比、奇偶比、尾和等等都有实现,相对而言还比较复杂。

相对而言实现竖三还是比较复杂的,如下:

 var temp1 = [];
var temp2 = [];
if (parseInt(i) + 2 < data.length) {
var arr1 = [data[i].R1, data[i].R2, data[i].R3, data[i].R4, data[i].R5, data[i].R6];
var arr2 = [data[parseInt(i) + 1].R1, data[parseInt(i) + 1].R2, data[parseInt(i) + 1].R3, data[parseInt(i) + 1].R4, data[parseInt(i) + 1].R5, data[parseInt(i) + 1].R6];
var arr3 = [data[parseInt(i) + 2].R1, data[parseInt(i) + 2].R2, data[parseInt(i) + 2].R3, data[parseInt(i) + 2].R4, data[parseInt(i) + 2].R5, data[parseInt(i) + 2].R6];
temp1 = repetition(arr1, arr2);
temp2 = repetition(temp1, arr3);
} var temp3 = [];
var temp4 = [];
if (i > 0 && parseInt(i) + 1 < data.length) {
var arr1 = [data[parseInt(i) - 1].R1, data[parseInt(i) - 1].R2, data[parseInt(i) - 1].R3, data[parseInt(i) - 1].R4, data[parseInt(i) - 1].R5, data[parseInt(i) - 1].R6];
var arr2 = [data[i].R1, data[i].R2, data[i].R3, data[i].R4, data[i].R5, data[i].R6];
var arr3 = [data[parseInt(i) + 1].R1, data[parseInt(i) + 1].R2, data[parseInt(i) + 1].R3, data[parseInt(i) + 1].R4, data[parseInt(i) + 1].R5, data[parseInt(i) + 1].R6];
temp3 = repetition(arr1, arr2);
temp4 = repetition(temp3, arr3);
} var temp5 = [];
var temp6 = [];
if (i > 1 && i < data.length) {
var arr1 = [data[parseInt(i) - 2].R1, data[parseInt(i) - 2].R2, data[parseInt(i) - 2].R3, data[parseInt(i) - 2].R4, data[parseInt(i) - 2].R5, data[parseInt(i) - 2].R6];
var arr2 = [data[parseInt(i) - 1].R1, data[parseInt(i) - 1].R2, data[parseInt(i) - 1].R3, data[parseInt(i) - 1].R4, data[parseInt(i) - 1].R5, data[parseInt(i) - 1].R6];
var arr3 = [data[i].R1, data[i].R2, data[i].R3, data[i].R4, data[i].R5, data[i].R6];
temp5 = repetition(arr1, arr2);
temp6 = repetition(temp5, arr3);
}
    function repetition(arr, brr) {
//定义一个新的数组,存入重复的数组
var newArr = [];
//循环两个数组,外循环循环一圈,内循环一轮,用外循环的一个去和内循环的每一个作比较
//如果相等说明就是重复的,然后再新数组里查找一下,这个数是否存在,如果两个条件都满足,则存入新数组 //循环第一个数组
for (var i = 0; i < arr.length; i++) {
//循环第二个数组
for (var j = 0; j < brr.length; j++) {
//避免新数组中出现重复的数
if (arr[i] - brr[j] == 0) {
newArr.push(arr[i]);
}
}
}
//返回新数组
return newArr;
} function checkdata(arr, num) {
var bool = false;
for (var i = 0; i < arr.length; i++) {
if (arr[i] == num) {
bool = true;
break;
}
}
return bool;
}

怎么计算斜三走势图

 var temp1 = [];
if (parseInt(i) + 2 < data.length) {
var arr1 = [data[i].R1, data[i].R2, data[i].R3, data[i].R4, data[i].R5, data[i].R6];
var arr2 = [data[parseInt(i) + 1].R1, data[parseInt(i) + 1].R2, data[parseInt(i) + 1].R3, data[parseInt(i) + 1].R4, data[parseInt(i) + 1].R5, data[parseInt(i) + 1].R6];
var arr3 = [data[parseInt(i) + 2].R1, data[parseInt(i) + 2].R2, data[parseInt(i) + 2].R3, data[parseInt(i) + 2].R4, data[parseInt(i) + 2].R5, data[parseInt(i) + 2].R6];
temp1 = repetition(arr1, arr2, arr3,1);
} var temp2 = [];
if (i > 0 && parseInt(i) + 1 < data.length) {
var arr1 = [data[parseInt(i) - 1].R1, data[parseInt(i) - 1].R2, data[parseInt(i) - 1].R3, data[parseInt(i) - 1].R4, data[parseInt(i) - 1].R5, data[parseInt(i) - 1].R6];
var arr2 = [data[i].R1, data[i].R2, data[i].R3, data[i].R4, data[i].R5, data[i].R6];
var arr3 = [data[parseInt(i) + 1].R1, data[parseInt(i) + 1].R2, data[parseInt(i) + 1].R3, data[parseInt(i) + 1].R4, data[parseInt(i) + 1].R5, data[parseInt(i) + 1].R6];
temp2 = repetition(arr1, arr2, arr3,2);
} var temp3 = [];
if (i > 1 && i < data.length) {
var arr1 = [data[parseInt(i) - 2].R1, data[parseInt(i) - 2].R2, data[parseInt(i) - 2].R3, data[parseInt(i) - 2].R4, data[parseInt(i) - 2].R5, data[parseInt(i) - 2].R6];
var arr2 = [data[parseInt(i) - 1].R1, data[parseInt(i) - 1].R2, data[parseInt(i) - 1].R3, data[parseInt(i) - 1].R4, data[parseInt(i) - 1].R5, data[parseInt(i) - 1].R6];
var arr3 = [data[i].R1, data[i].R2, data[i].R3, data[i].R4, data[i].R5, data[i].R6];
temp3 = repetition(arr1, arr2, arr3,3);
}
        function repetition(arr, brr, crr,index) {
//定义一个新的数组,存入重复的数组
var newArr = [];
//循环两个数组,外循环循环一圈,内循环一轮,用外循环的一个去和内循环的每一个作比较
//如果相等说明就是重复的,然后再新数组里查找一下,这个数是否存在,如果两个条件都满足,则存入新数组 //循环第一个数组
for (var i = 0; i < arr.length; i++) {
//循环第二个数组
for (var j = 0; j < brr.length; j++) { for (var x = 0; x < crr.length; x++) {
//避免新数组中出现重复的数
if ((arr[i] - brr[j] == 1 && brr[j] - crr[x] == 1 && arr[i] - crr[x] == 2)
|| (arr[i] - brr[j] == -1 && brr[j] - crr[x] == -1 && arr[i] - crr[x] == -2)) {
if (index == 1) {
newArr.push(arr[i]);
}
if (index == 2) {
newArr.push(brr[j]);
}
if (index == 3) {
newArr.push(crr[x]);
}
}
}
}
} //返回新数组
return newArr;
} function checkdata(arr, num) {
var bool = false;
for (var i = 0; i < arr.length; i++) {
if (arr[i] == num) {
bool = true;
break;
}
}
return bool;
}

现在已经实现了一些彩票的走势图,未来还会做福彩3D、福彩七乐彩、超级大乐透、体彩排列三、排列五、体彩七星彩等等热门彩票,目前已经在做福彩3D走势,已经实现了一部分功能了。

包括还做了一些工具,比如复试拆分:

复式计算器

在线缩水

结束语

做这双色球走势,纯粹是为了为人的兴趣而已,感觉还是挺有趣的,涉及到很多年的算法和前端的技术,提升自己的前端技术是非常有用的,未来会利用业余时间进行研究,如各位有兴趣可以一起交流,如都有兴趣,下期介绍怎么爬虫双色球的数据和怎么去保存数据,这个也是要做好这个走势图的前提条件,我这个完全在网上进行爬虫下来的历史数据,一般的调用接口都是要收费的,所以逼得自己必须去其他官方的网站去爬取数据,这样就比较方便。

一款强大的双色球走势图,助你500W梦想,js+mvc+html的更多相关文章

  1. 用C#开发的双色球走势图(二)

    昨晚由于时间的原因只写了一部分内容,今天将这一部分内容补充完毕,多谢各位园友的支持. 这是用C#开发的双色球走势图(一)新的园友可以看昨晚写的内容,以免脱节.首先回复园友的评论,有说好的有说不好的,本 ...

  2. 用C#开发的双色球走势图(原创)值得园友拥有(二)接上一篇

    昨晚由于时间的原因只写了一部分内容,今天将这一部分内容补充完毕,多谢各位园友的支持. 这是用C#开发的双色球走势图(原创)值得园友拥有 新的园友可以看昨晚写的内容,以免脱节.首先回复园友的评论,有说好 ...

  3. 用C#开发的双色球走势图(原创)值得园友拥有

    首先声明,个人纯粹无聊之作,不作商业用途. 我相信每个人都拥有一个梦想那就是有朝一日能中500W,这个也一直是我的梦想,并默默每一期双色球或多或少要贡献自己一点点力量,本人并不属于那种铁杆的彩票迷,每 ...

  4. 用C#开发的双色球走势图(一)

    首先声明,个人纯粹无聊之作,不作商业用途. 我相信每个人都拥有一个梦想那就是有朝一日能中500W,这个也一直是我的梦想,并默默每一期双色球或多或少要贡献自己一点点力量,本人并不属于那种铁杆的彩票迷,每 ...

  5. 一款开源且功能强大的C#甘特图控件.NET Winforms Gantt Chart Control

    甘特图在项目管理中非常重要,甘特图的思想比较简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间.它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比.管理 ...

  6. 10 款强大的JavaScript图表图形插件推荐

    转自:http://www.iteye.com/news/24535 网上有很多用于绘制图表图形的免费JavaScript插件和图表库,这类插件大量出现的原因,一是人们不再依赖于Flash,二是浏览器 ...

  7. KiCad 一款强大的 BOM 和 装配图生成插件

    KiCad 一款强大的 BOM 和 装配图生成插件 可以生成 BOM 和在线的图形. https://github.com/openscopeproject/InteractiveHtmlBom In ...

  8. 13张动图助你彻底看懂马尔科夫链、PCA和条件概率!

    13张动图助你彻底看懂马尔科夫链.PCA和条件概率! https://mp.weixin.qq.com/s/ll2EX_Vyl6HA4qX07NyJbA [ 导读 ] 马尔科夫链.主成分分析以及条件概 ...

  9. 开源一款强大的文件服务组件(QJ_FileCenter)(系列一)

    系列文章 1. 开源一款强大的文件服务组件(QJ_FileCenter)(系列一) 2. 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明) 3. 开源一款强大的文件服务组件 ...

随机推荐

  1. RCTF 2019 web

    写在正文前 神仙题,压根不会. 听说跟着神仙的思路走一遍印象会深点,Just mo it .2333 正文 nextphp 整体思路:phpinfo得知存在preload.php文件,并与opcach ...

  2. Python-函数式编程-map reduce filter lambda 三元表达式 闭包

    lambda 匿名函数,核心是作为算子,处理逻辑只有一行但具有函数的特性,核心用于函数式编程中 三元运算符 其实本质上是if分支的简化版,满足条件返回 if 前面的值,不满足条件返回 else后面的值 ...

  3. Go-项目环境搭建

    Go-环境搭建两个参数 1. GOROOT  Go SDK安装目录,Go语言安装目录 2. GOPATH   项目根目录 Go-项目目录结构 goProjectName 项目根目录 bin 项目编译后 ...

  4. Communicating to 2 SPI Slaves with USART & SPI ports on Atmega16U2

    原文来自:https://www.avrfreaks.net/comment/2236256 I'm writing code for an embedded chip that consists o ...

  5. matlab中wvtool

    参考:https://ww2.mathworks.cn/help/signal/ref/wvtool.html?searchHighlight=wvtool&s_tid=doc_srchtit ...

  6. 098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类

    098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类 本文知识点:编写并测试Subject类 说明: ...

  7. Inno Setup 5打包exe遇到的坑,做一个学习记录

    ; 脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "人员管理系统"#de ...

  8. 2020Java程序员架构师面试宝典,学习后面试必过,震惊,本人通过这篇教程,拿到了0个offer

    1. 引言 Java后端学习路线 <吐血整理>顶级程序员工具集 https://github.com/AobingJava/JavaFamily 跟上Java8 经历阿里.头条.腾讯等知名 ...

  9. centos 7 安装docker 常用指令

    什么是docker l  使用最广泛的开源容器引擎 l  一种操作系统级的虚拟化技术 l  依赖于Linux内核特性:Namespace和Cgroups l  一个简单的应用程序打包工具 docker ...

  10. 《Java从入门到失业》第五章:继承与多态(5.8-5.10):多态与Object类

    5.8多态 上面我们了解了向上转型,即一个对象变量可以引用本类及子类的对象实例,这种现象称为多态(polymorphism).多态究竟有什么用呢?我们先学习一个知识点. 5.8.1方法重写 前面我们学 ...