表1. CheckerDrag.java
十余年的臨武網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整臨武建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“臨武網(wǎng)站設(shè)計”,“臨武網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
// CheckerDrag.javaimport java.awt.*;import java.awt.event.*;public class CheckerDrag extends java.applet.Applet{ // Dimension of checkerboard square. // 棋盤上每個小方格的尺寸 final static int SQUAREDIM = 40; // Dimension of checkerboard -- includes black outline. // 棋盤的尺寸 – 包括黑色的輪廓線 final static int BOARDDIM = 8 * SQUAREDIM + 2; // Dimension of checker -- 3/4 the dimension of a square. // 棋子的尺寸 – 方格尺寸的3/4 final static int CHECKERDIM = 3 * SQUAREDIM / 4; // Square colors are dark green or white. // 方格的顏色為深綠色或者白色 final static Color darkGreen = new Color (0, 128, 0); // Dragging flag -- set to true when user presses mouse button over checker // and cleared to false when user releases mouse button. // 拖動標(biāo)記 --當(dāng)用戶在棋子上按下鼠標(biāo)按鍵時設(shè)為true, // 釋放鼠標(biāo)按鍵時設(shè)為false boolean inDrag = false; // Left coordinate of checkerboard's upper-left corner. // 棋盤左上角的左方向坐標(biāo) int boardx; // Top coordinate of checkerboard's upper-left corner. //棋盤左上角的上方向坐標(biāo) int boardy; // Left coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原點(左上角)的左方向坐標(biāo) int ox; // Top coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原點(左上角)的上方向坐標(biāo) int oy; // Left displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按鍵時的鼠標(biāo)坐標(biāo)與棋子矩形原點之間的左方向位移 int relx; // Top displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按鍵時的鼠標(biāo)坐標(biāo)與棋子矩形原點之間的上方向位移 int rely; // Width of applet drawing area. // applet繪圖區(qū)域的寬度 int width; // Height of applet drawing area. // applet繪圖區(qū)域的高度 int height; // Image buffer. // 圖像緩沖 Image imBuffer; // Graphics context associated with image buffer. // 圖像緩沖相關(guān)聯(lián)的圖形背景 Graphics imG; public void init () { // Obtain the size of the applet's drawing area. // 獲取applet繪圖區(qū)域的尺寸 width = getSize ().width; height = getSize ().height; // Create image buffer. // 創(chuàng)建圖像緩沖 imBuffer = createImage (width, height); // Retrieve graphics context associated with image buffer. // 取出圖像緩沖相關(guān)聯(lián)的圖形背景 imG = imBuffer.getGraphics (); // Initialize checkerboard's origin, so that board is centered. // 初始化棋盤的原點,使棋盤在屏幕上居中 boardx = (width - BOARDDIM) / 2 + 1; boardy = (height - BOARDDIM) / 2 + 1; // Initialize checker's rectangle's starting origin so that checker is // centered in the square located in the top row and second column from // the left. // 初始化棋子矩形的起始原點,使得棋子在第一行左數(shù)第二列的方格里居中 ox = boardx + SQUAREDIM + (SQUAREDIM - CHECKERDIM) / 2 + 1; oy = boardy + (SQUAREDIM - CHECKERDIM) / 2 + 1; // Attach a mouse listener to the applet. That listener listens for // mouse-button press and mouse-button release events. // 向applet添加一個用來監(jiān)聽鼠標(biāo)按鍵的按下和釋放事件的鼠標(biāo)監(jiān)聽器 addMouseListener (new MouseAdapter () { public void mousePressed (MouseEvent e) { // Obtain mouse coordinates at time of press. // 獲取按鍵時的鼠標(biāo)坐標(biāo) int x = e.getX (); int y = e.getY (); // If mouse is over draggable checker at time // of press (i.e., contains (x, y) returns // true), save distance between current mouse // coordinates and draggable checker origin // (which will always be positive) and set drag // flag to true (to indicate drag in progress). // 在按鍵時如果鼠標(biāo)位于可拖動的棋子上方 // (也就是contains (x, y)返回true),則保存當(dāng)前 // 鼠標(biāo)坐標(biāo)與棋子的原點之間的距離(始終為正值)并且 // 將拖動標(biāo)志設(shè)為true(用來表明正處在拖動過程中) if (contains (x, y)) { relx = x - ox; rely = y - oy; inDrag = true; } } boolean contains (int x, int y) { // Calculate center of draggable checker. // 計算棋子的中心位置 int cox = ox + CHECKERDIM / 2; int coy = oy + CHECKERDIM / 2; // Return true if (x, y) locates with bounds // of draggable checker. CHECKERDIM / 2 is the // radius. // 如果(x, y)仍處于棋子范圍內(nèi)則返回true // CHECKERDIM / 2為半徑 return (cox - x) * (cox - x) + (coy - y) * (coy - y) CHECKERDIM / 2 * CHECKERDIM / 2; } public void mouseReleased (MouseEvent e) { // When mouse is released, clear inDrag (to // indicate no drag in progress) if inDrag is // already set. // 當(dāng)鼠標(biāo)按鍵被釋放時,如果inDrag已經(jīng)為true, // 則將其置為false(用來表明不在拖動過程中) if (inDrag) inDrag = false; } }); // Attach a mouse motion listener to the applet. That listener listens // for mouse drag events. //向applet添加一個用來監(jiān)聽鼠標(biāo)拖動事件的鼠標(biāo)運動監(jiān)聽器 addMouseMotionListener (new MouseMotionAdapter () { public void mouseDragged (MouseEvent e) { if (inDrag) { // Calculate draggable checker's new // origin (the upper-left corner of // the checker rectangle). // 計算棋子新的原點(棋子矩形的左上角) int tmpox = e.getX () - relx; int tmpoy = e.getY () - rely; // If the checker is not being moved // (at least partly) off board, // assign the previously calculated // origin (tmpox, tmpoy) as the // permanent origin (ox, oy), and // redraw the display area (with the // draggable checker at the new // coordinates). // 如果棋子(至少是棋子的一部分)沒有被 // 移出棋盤,則將之前計算的原點 // (tmpox, tmpoy)賦值給永久性的原點(ox, oy), // 并且刷新顯示區(qū)域(此時的棋子已經(jīng)位于新坐標(biāo)上) if (tmpox boardx tmpoy boardy tmpox + CHECKERDIM boardx + BOARDDIM tmpoy + CHECKERDIM boardy + BOARDDIM) { ox = tmpox; oy = tmpoy; repaint (); } } } }); } public void paint (Graphics g) { // Paint the checkerboard over which the checker will be dragged. // 在棋子將要被拖動的位置上繪制棋盤 paintCheckerBoard (imG, boardx, boardy); // Paint the checker that will be dragged. // 繪制即將被拖動的棋子 paintChecker (imG, ox, oy); // Draw contents of image buffer. // 繪制圖像緩沖的內(nèi)容 g.drawImage (imBuffer, 0, 0, this); } void paintChecker (Graphics g, int x, int y) { // Set checker shadow color. // 設(shè)置棋子陰影的顏色 g.setColor (Color.black); // Paint checker shadow. // 繪制棋子的陰影 g.fillOval (x, y, CHECKERDIM, CHECKERDIM); // Set checker color. // 設(shè)置棋子顏色 g.setColor (Color.red); // Paint checker. // 繪制棋子 g.fillOval (x, y, CHECKERDIM - CHECKERDIM / 13, CHECKERDIM - CHECKERDIM / 13); } void paintCheckerBoard (Graphics g, int x, int y) { // Paint checkerboard outline. // 繪制棋盤輪廓線 g.setColor (Color.black); g.drawRect (x, y, 8 * SQUAREDIM + 1, 8 * SQUAREDIM + 1); // Paint checkerboard. // 繪制棋盤 for (int row = 0; row 8; row++) { g.setColor (((row 1) != 0) ? darkGreen : Color.white); for (int col = 0; col 8; col++) { g.fillRect (x + 1 + col * SQUAREDIM, y + 1 + row * SQUAREDIM, SQUAREDIM, SQUAREDIM); g.setColor ((g.getColor () == darkGreen) ? Color.white : darkGreen); } } } // The AWT invokes the update() method in response to the repaint() method // calls that are made as a checker is dragged. The default implementation // of this method, which is inherited from the Container class, clears the // applet's drawing area to the background color prior to calling paint(). // This clearing followed by drawing causes flicker. CheckerDrag overrides // update() to prevent the background from being cleared, which eliminates // the flicker. // AWT調(diào)用了update()方法來響應(yīng)拖動棋子時所調(diào)用的repaint()方法。該方法從 // Container類繼承的默認(rèn)實現(xiàn)會在調(diào)用paint()之前,將applet的繪圖區(qū)域清除 // 為背景色,這種繪制之后的清除就導(dǎo)致了閃爍。CheckerDrag重寫了update()來 // 防止背景被清除,從而消除了閃爍。 public void update (Graphics g) { paint (g); }}
為了幫助網(wǎng)友解決“如何設(shè)計一個可以電腦隨機抽獎程序?”相關(guān)的問題,中國學(xué)網(wǎng)通過互聯(lián)網(wǎng)對“如何設(shè)計一個可以電腦隨機抽獎程序?”相關(guān)的解決方案進(jìn)行了整理,用戶詳細(xì)問題包括:RT,我想知道:如何設(shè)計一個可以電腦隨機抽獎程序?,具體解決方案如下:
解決方案1:
如果你是對編程一竅不通,又想快速學(xué)會做小程序的話,建議學(xué)flash+as3。因為flash本來就是動畫軟件,有簡單易懂的界面繪制系統(tǒng),不像java之類的語言需要用代碼來解決界面問題。相對來說,初學(xué)者要做小程序,學(xué)這個會比較速成。
以下我列舉一些你制作這個程序應(yīng)該要用到的一些基本知識,你搞懂這些大概就可以做出這個程序了。不過,這樣速成的學(xué)習(xí)方法,也會有弊端,我會在下面補充說明。
首先你可以熟悉一下flash的界面。為編程做準(zhǔn)備,至少要了解庫和屬性面板,要了解影片剪輯或按鈕。
然后應(yīng)該學(xué)習(xí)一下編程的基本知識,比如變量(Variable)、數(shù)據(jù)類型(Datatype)、方法(Method)的概念,還有if、for等常見語句的用法。你可以把這些當(dāng)關(guān)鍵詞在百度搜索一下(如果直接搜搜不到相關(guān)內(nèi)容,可以多加一個關(guān)鍵詞,比如編程或as3之類的,如果中文搜不到就搜英文關(guān)鍵詞)。
要了解一下as3的常用語法。比如聲明變量、方法的語句。關(guān)于這個可以搜一下as3的var和function關(guān)鍵詞。
最后,當(dāng)你對編程有了一個大致的概念之后,你就可以著手準(zhǔn)備你的這個小程序。
你可能需要用到的關(guān)鍵方法:
addEventListener() //你最可能用到的事件是MouseEvent.CLICK
Math.random()
Math.round()或Math.floor()或Math.ceil() //這三個都是可以用來數(shù)字取整的方法,有細(xì)微的不同
addChild()
因為你是初學(xué)者,即使是做這么簡單的小程序,也有可能會遇到各種各樣的情況。建議你一開始不要想得太復(fù)雜,把基本的效果做出來再說,否則很有可能在一些非關(guān)鍵的問題上屢屢碰壁,最后半途而廢。而且有時因為自己想得太復(fù)雜,遇到問題連想問人都沒法問,因為表達(dá)不清楚。
如果只是抽獎的程序,學(xué)會了以上這些之后,要做出來應(yīng)該沒有什么大問題。如果你要搞什么附加的模塊,那就另當(dāng)別論了——比如用戶帳號、聯(lián)網(wǎng)、界面特效等等,我列舉的知識點不足以支持實現(xiàn)這些功能,那需要更多的學(xué)習(xí)。
那么,最后說一下這種速成學(xué)習(xí)法的弊端。
很明顯的,速成=基礎(chǔ)不扎實,這簡直就是自然而然的邏輯關(guān)系。
有可能出現(xiàn)的結(jié)果是:學(xué)習(xí)花的時間少,但寫代碼的效率低,花的時間多;一旦出現(xiàn)錯誤,不知道該如何排錯;跟別人交流的時候,聽不懂各種術(shù)語;代碼不規(guī)范,別人不好幫你修改……等等。
要解決這些問題,只有一個途徑,就是系統(tǒng)、正規(guī)地學(xué)習(xí)編程。但是這樣一來,跟你這個問題的出發(fā)點就相差十萬八千里了。這就好比,本來你只是想自己做一艘船。但想做一艘正兒八經(jīng)的船,而不是玩具船,不是破破爛爛的船,那就要費不少功夫。從它的材料開始,精心培育樹木、采集礦物、打制零件……如此涉及到整個制船業(yè)的知識。看起來,你并沒有打算走那么深。
如果我僅僅告訴你速成的學(xué)習(xí)方法,感覺上有點兒像害人。因為對于學(xué)習(xí)編程來說,這不是一個好的開始。但如果我告訴你“乖乖從基礎(chǔ)開始學(xué)起吧”,似乎又有點兒強行替你做決定的感覺。
總而言之,現(xiàn)在我把兩個選項都告訴你了。
從基礎(chǔ)開始系統(tǒng)地學(xué)習(xí),這樣比較正規(guī),但也比較枯燥,可能你自學(xué)了半天也做不出什么像樣的東西,然后最初的那股興趣就漸漸消失了。不過,如果是這樣,flash+as3的建議就不一定合適了,或許你要仔細(xì)考慮一下職業(yè)規(guī)劃什么的,再決定發(fā)展的方向——這樣的話,就是比較嚴(yán)肅的話題了。
速成的學(xué)習(xí)法,如果你悟性好的話,能比較快地掌握一些重點的知識,對編程有一個大概的了解(但是悟性不好的話,說不定反而會搞得更煩躁),很快地做出一些小成果出來。不感興趣的話,那就這樣了。感興趣的話,再往后發(fā)展。基礎(chǔ)的缺乏、不良的書寫代碼習(xí)慣,這些也是可以后來再補充、糾正的。如果你不確定要往編程這條路上深入發(fā)展(比如打算以碼農(nóng)為職業(yè)),倒也可以用這種方法玩票,能走多遠(yuǎn)算多遠(yuǎn)。
解決方案2:
網(wǎng)賽有很多模版。沒必要自己做
解決方案3:
不知道你會那些語言啊 做桌面的一般用C# Web的用J2EE 至于什么編程軟件 ,,,,,建議還是自己補一補知識把,這個我不知道怎么回答你 貌似你好象什么都不知道
幫你做了一個,不知是否滿意呢?
import?java.applet.Applet;
import?java.awt.Button;
import?java.awt.Color;
import?java.awt.Graphics;
import?java.awt.TextField;
import?java.awt.event.ActionEvent;
import?java.util.Random;
import?java.util.Vector;
public?class?Lottery?extends?Applet?{
private?static?final?long?serialVersionUID?=?1L;
int?w,h;
Button?ok,out,setup;
String[]?msg;
TextField[]?gaiLv;
TextField[]?jiangPin;
int?mx,ml;
int?maxNum;
Random?ran;
VectorInteger?fist;
VectorInteger?sec;
VectorInteger?third;
VectorInteger?lucky;
boolean?lot=false;
boolean?iserr=false;
boolean?issetup=false;
String?mesg="輸入錯誤";
String?priseMsg="繼續(xù)努力!";
public?void?init(){
w=400;
h=220;
mx=20;
ml=40;
ran=new?Random();
this.setSize(w,?h);
this.setLayout(null);
ok=new?Button("抽獎");
out=new?Button("退出");
setup=new?Button("確認(rèn)設(shè)置");
msg=new?String[4];
msg[0]="一等獎";
msg[1]="二等獎";
msg[2]="三等獎";
msg[3]="幸運獎";
gaiLv=new?TextField[4];
jiangPin=new?TextField[4];
for(int?i=0;i4;i++){
gaiLv[i]=new?TextField("0.0"+(i+1));
this.add(gaiLv[i]);
gaiLv[i].setBounds(mx+ml,?75+i*26,?60,?18);
jiangPin[i]=new?TextField();
this.add(jiangPin[i]);
jiangPin[i].setBounds(mx+ml*3,?75+i*26,?80,?18);
}
this.add(ok);
ok.setBounds(260,?180,?60,?28);
ok.addActionListener(new?LotButtonAction(this));
this.add(out);
out.setBounds(330,?180,?60,?28);
out.addActionListener(new?LotButtonAction(this));
this.add(setup);
setup.setBounds(110,?180,?80,?24);
setup.addActionListener(new?LotButtonAction(this));
}
public?void?paint(Graphics?g){
g.setColor(Color.white);
g.fillRect(0,?0,?this.getWidth(),?this.getHeight());
g.setColor(new?Color(230,255,230));
g.fillRect(0,?0,?w,?30);
g.setColor(Color.BLUE);
g.drawString("JAVA抽獎系統(tǒng)",?130,?20);
g.setColor(Color.ORANGE);
g.drawRect(10,?40,?230,?170);
g.setColor(Color.BLACK);
g.drawString("設(shè)置",?mx,?60);
g.drawString("概率",?mx+ml,?60);
g.drawString("獎品",?mx+ml*3,?60);
for(int?i=0;imsg.length;i++){
g.setColor(new?Color(255-(i*30),45,89));
g.drawString(msg[i],?20,?90+i*26);
}
if(lot==true){
g.setColor(new?Color(ran.nextInt(255),ran.nextInt(255),ran.nextInt(255)));
if(priseMsg.length()=7){
g.drawString(priseMsg,?260,?100);
}else{
g.drawString(priseMsg.substring(0,?5),?260,?100);
g.drawString(priseMsg.substring(5),?260,?120);
}
}
if(iserr==true){
g.drawString(mesg,?260,?100);
}
}
public?void?getLucky(){
float?firu=1;
float?secu=1;
float?thiu=1;
float?fouu=1;
float?minu=1;
if(gaiLv[0].getText().trim().length()1){
firu=Float.parseFloat(gaiLv[0].getText());
if(firu=0||firu=1){
iserr=true;
return;
}
if(firuminu){
minu=firu;
}
}
if(gaiLv[1].getText().trim().length()1){
secu=Float.parseFloat(gaiLv[1].getText());
if(secu=0||secu=1){
iserr=true;
return;
}
if(secuminu){
minu=secu;
}
}
if(gaiLv[2].getText().trim().length()1){
thiu=Float.parseFloat(gaiLv[2].getText());
if(thiu=0||thiu=1){
iserr=true;
return;
}
if(thiuminu){
minu=thiu;
}
}
if(gaiLv[3].getText().trim().length()1){
fouu=Float.parseFloat(gaiLv[3].getText());
if(fouu=0||fouu=1){
iserr=true;
return;
}
if(fouuminu){
minu=fouu;
}
}
if(minu=1||minu=0){
iserr=true;
return;
}
float?aNum=1/minu;
maxNum=(int)aNum;
int?count=(int)(firu/minu);
if(firu!=1){
fist=getLotteryVec(maxNum,count);
}else{
fist.removeAllElements();
}
count=(int)(secu/minu);
if(secu!=1){
sec=getLotteryVec(maxNum,count);
}else{
sec.removeAllElements();
}
count=(int)(thiu/minu);
if(thiu!=1){
third=getLotteryVec(maxNum,count);
}else{
third.removeAllElements();
}
count=(int)(fouu/minu);
if(fouu!=1){
lucky=getLotteryVec(maxNum,count);
}else{
lucky.removeAllElements();
}
issetup=true;
iserr=false;
}
protected?VectorInteger?getLotteryVec(int?maxNum,int?num){
VectorInteger?result=new?VectorInteger();
for(int?i=0;inum;i++){
result.add(ran.nextInt(maxNum));
}
return?result;
}
protected?int?getaNum(){
return?ran.nextInt(maxNum);
}
public?int?isLucky(int?pNum){
for(int?i=0;ifist.size();i++){
if(fist.get(i)==pNum){
return?1;
}
}
for(int?i=0;isec.size();i++){
if(sec.get(i)==pNum){
return?2;
}
}
for(int?i=0;ithird.size();i++){
if(third.get(i)==pNum){
return?3;
}
}
for(int?i=0;ilucky.size();i++){
if(lucky.get(i)==pNum){
return?4;
}
}
return?-1;
}
public?void?ButtonActionPerformed(ActionEvent?e){
String?acName=e.getActionCommand();
if(acName.equals("抽獎")){
if(issetup==false){
priseMsg="請先設(shè)置參數(shù)!";
lot=true;
repaint();
lot=false;
return;
}
lot=true;
priseMsg=getResult(getaNum());
repaint();
//?lot=false;
}else?if(acName.equals("退出")){
this.setVisible(false);
this.stop();
this.destroy();
System.exit(0);
}else?if(acName.equals("確認(rèn)設(shè)置")){
lot=false;
getLucky();
repaint();
}
}
public?String?getResult(int?num){
int?resu=isLucky(num);
String?result="";
switch(resu){
case?-1:
result="繼續(xù)努力!";
break;
case?1:
result="恭喜你!一等獎!\n獲得"+jiangPin[0].getText();
break;
case?2:
result="恭喜你!二等獎!\n獲得"+jiangPin[1].getText();
break;
case?3:
result="恭喜你!三等獎!\n獲得"+jiangPin[2].getText();
break;
case?4:
result="恭喜你!幸運獎!\n獲得"+jiangPin[3].getText();
break;
default:
result="繼續(xù)努力!";
}
return?result+num;
}
}
class?LotButtonAction?implements?java.awt.event.ActionListener{
Lottery?su;
public?LotButtonAction(Lottery?bun){
this.su=bun;
}
@Override
public?void?actionPerformed(ActionEvent?e)?{
su.ButtonActionPerformed(e);
}
}
public?static?void?main(String[]?args)?{
int?input?=?10;
Scanner?s?=?null;
ListStudent?ls?=?new?ArrayList();
ls.add(new?Student("張3",?'男'));
ls.add(new?Student("張4",?'女'));
ls.add(new?Student("張5",?'男'));
ls.add(new?Student("張6",?'男'));
ls.add(new?Student("張7",?'女'));
ls.add(new?Student("張8",?'男'));
ListStudent?lscopy?=?new?ArrayList();
//?由于不能重復(fù)中獎,所以抽一次就要把中獎的學(xué)生移除,所以不能在原list中操作。
lscopy.addAll(ls);
while?(input?!=?0)?{
System.out.println("選擇:");
System.out.println("1:一等獎");
System.out.println("2:二等獎");
System.out.println("3:三等獎");
System.out.println("0:結(jié)束");
s?=?new?Scanner(System.in);
input?=?s.nextInt();
switch?(input)?{
case?1:
//?隨機出0-9?十個數(shù)字
int?first?=?(int)?(Math.random()?*?(lscopy.size()?-?1));
System.out.println("一等獎:"?+?lscopy.get(first));
//?已經(jīng)中獎的移除
lscopy.remove(first);
break;
case?2:
for?(int?i?=?0;?i??2;?i++)?{
int?second?=?(int)?(Math.random()?*?(lscopy.size()?-?1));
System.out.println("二等獎:"?+?lscopy.get(second));
lscopy.remove(second);
}
break;
case?3:
for?(int?i?=?0;?i??3;?i++)?{
int?third?=?(int)?(Math.random()?*?(lscopy.size()?-?1));
System.out.println("三等獎:"?+?lscopy.get(third));
lscopy.remove(third);
}
break;
}
}
}
自己看著改一下,沒運行過不知道有沒有錯,大概就是這么個意思。你自己再寫個學(xué)生類
//36中(1~36)選6位
for (int i = 1; i =6 ; i++)
{
int k = (int)((36-1+1)*Math.random()+1);
System.out.println(k);
if (k==0)
{
break;
}
}
//32中(1~32)選1位
int k = (int)((32-1+1)*Math.random()+1);
System.out.println(k);
分享文章:抽獎小程序java源代碼,抽獎小程序 源碼
文章URL:http://vcdvsql.cn/article32/heoisc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站排名、關(guān)鍵詞優(yōu)化、手機網(wǎng)站建設(shè)、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)