想做個彩票分析軟體,想請教一下,要實作
這種效果,用什么控制元件好?(注意,要能實作當膽碼與開獎號相同時,膽碼的顏色能自動突出顯示)
uj5u.com熱心網友回復:
只需要一個能夠改變單元格子背景色的grid控制元件這基本上是各種grid的基本功能
uj5u.com熱心網友回復:
要想“自動”是不可能的,無論如何,都要自己“用代碼邏輯”來實作。肯定沒有完全“自動變換背景色”的控制元件給你用。

你這個除了用“表格控制元件”,用ListView控制元件(設定為“報表”風格)、用PictureBox自繪,都是可以的。
uj5u.com熱心網友回復:
僅供參考://要求1:從給出來的不同的六組數字中,從每組任意挑選一個數字,最后組成一個六個數字的陣列。
//將所有的陣列全部列出來。
//同時,排除全部為偶數、全部為奇數的陣列。
//排除四個數字遞增連續(比如8、9、10、11)的陣列。
//如下:
//第一個數字從這12個數字中挑選:,1,3,2,4,5,6,7,8,9,10,11,12
//第二個數字從這17個數字中挑選:,8,7,5,9,6,4,11,10,12,13,3,14,17,2,16,15,18
//第三個數字從這21個數字中挑選:,13,10,15,16,18,11,14,12,7,19,21,17,8,22,9,20,6,23,5,24,25
//第四個數字從這20個數字中挑選:,22,23,18,20,16,17,15,21,14,26,19,24,27,25,12,13,11,10,28,29
//第五個數字從這19個數字中挑選:,26,25,27,29,30,28,23,24,20,22,19,31,21,17,18,32,13,15,16
//第六個數字從這14個數字中挑選:,32,33,30,31,29,28,27,26,25,24,23,22,18,21
//要求2:
//請輸入第1個數字的選擇范圍:(可以手動輸入任意幾個空格間隔的數字,最多30個)
//請輸入第2個數字的選擇范圍:(可以手動輸入任意幾個空格間隔的數字,最多30個)
//請輸入第3個數字的選擇范圍:(可以手動輸入任意幾個空格間隔的數字,最多30個)
//請輸入第4個數字的選擇范圍:(可以手動輸入任意幾個空格間隔的數字,最多30個)
//請輸入第5個數字的選擇范圍:(可以手動輸入任意幾個空格間隔的數字,最多30個)
//請輸入第6個數字的選擇范圍:(可以手動輸入任意幾個空格間隔的數字,最多30個)
//然后回車,輸出結果到cp.txt
//要求3:
//保證同一組資料的數都不相同。
//比如,第一個數為6時,第二個數或其他的數都不能再為6;第二個數為10時,第三個數或其他的數都不能再為10,以此類推……
//要求4:
//增加一個條件:在產生的每個陣列A1A2A3A4A5A6中,要求A1<A2<A3<A4<A5<A6
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int v[6];
int n[6]={12,17,21,20,19,14};
int d[6][30]={
{1,3,2,4,5,6,7,8,9,10,11,12},
{8,7,5,9,6,4,11,10,12,13,3,14,17,2,16,15,18},
{13,10,15,16,18,11,14,12,7,19,21,17,8,22,9,20,6,23,5,24,25},
{22,23,18,20,16,17,15,21,14,26,19,24,27,25,12,13,11,10,28,29},
{26,25,27,29,30,28,23,24,20,22,19,31,21,17,18,32,13,15,16},
{32,33,30,31,29,28,27,26,25,24,23,22,18,21},
};
int i,j,i0,i1,i2,i3,i4,i5,s;
char ln[100],*t;
FILE *f;
int main() {
for (i=0;i<6;i++) {
printf("請輸入第%d個數字的選擇范圍:",i+1);
fgets(ln,100,stdin);
j=0;
t=strtok(ln," ");
while (1) {
if (NULL==t) break;
if (0==t[0]) continue;//跳過多個空格間隔時取出的空串
d[i][j]=atoi(t);
j++;
if (j>=30) break;
t=strtok(NULL," ");
}
n[i]=j;
}
f=fopen("cp.txt","w");
if (NULL==f) {
printf("無法生成cp.txt!\n");
return 1;
}
printf("正在生成cp.txt...");
for (i0=0;i0<n[0];i0++) {
for (i1=0;i1<n[1];i1++) {
for (i2=0;i2<n[2];i2++) {
for (i3=0;i3<n[3];i3++) {
for (i4=0;i4<n[4];i4++) {
for (i5=0;i5<n[5];i5++) {
v[0]=d[0][i0];
v[1]=d[1][i1];
v[2]=d[2][i2];
v[3]=d[3][i3];
v[4]=d[4][i4];
v[5]=d[5][i5];
if (0==(v[0]%2)
&& 0==(v[1]%2)
&& 0==(v[2]%2)
&& 0==(v[3]%2)
&& 0==(v[4]%2)
&& 0==(v[5]%2)) continue;//排除全部為偶數
if (1==(v[0]%2)
&& 1==(v[1]%2)
&& 1==(v[2]%2)
&& 1==(v[3]%2)
&& 1==(v[4]%2)
&& 1==(v[5]%2)) continue;//排除全部為奇數
for (i=0;i<5;i++) {
for (j=i+1;j<6;j++) {
if (v[i]==v[j]) goto NEXT;//保證同一組資料的數都不相同
}
}
NEXT:
if (i>=5) {
for (i=0;i<5;i++) for (j=i+1;j<6;j++) if (v[i]>v[j]) {s=v[i];v[i]=v[j];v[j]=s;}//從小到大排序
if ((v[0]+1==v[1]
&& v[1]+1==v[2]
&& v[2]+1==v[3])
|| (v[1]+1==v[2]
&& v[2]+1==v[3]
&& v[3]+1==v[4])
|| (v[2]+1==v[3]
&& v[3]+1==v[4]
&& v[4]+1==v[5])) continue;//排除四個數字遞增連續
fprintf(f,"%2d,%2d,%2d,%2d,%2d,%2d\n",v[0],v[1],v[2],v[3],v[4],v[5]);
}
}}}}}}
fclose(f);
printf("\n生成cp.txt完畢\n");
return 0;
}
//如果檔案in.txt的內容為
//1 3 2 4 5 6 7 8 9 10 11 12
//8 7 5 9 6 4 11 10 12 13 3 14 17 2 16 15 18
//13 10 15 16 18 11 14 12 7 19 21 17 8 22 9 20 6 23 5 24 25
//22 23 18 20 16 17 15 21 14 26 19 24 27 25 12 13 11 10 28 29
//26 25 27 29 30 28 23 24 20 22 19 31 21 17 18 32 13 15 16
//32 33 30 31 29 28 27 26 25 24 23 22 18 21
//可以在cmd視窗里面輸入命令
//cp <in.txt
//得到要求1對應的結果
//BTW:中了一定要分我六成啊!嘿嘿!(^=^)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/51431.html
