public class Lucky {
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站設計、做網(wǎng)站、公主嶺網(wǎng)絡推廣、重慶小程序開發(fā)公司、公主嶺網(wǎng)絡營銷、公主嶺企業(yè)策劃、公主嶺品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供公主嶺建站搭建服務,24小時服務熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
public static void main(String[] args){
System.out.println("請輸入您的4位會員卡號:");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt(); //接收用戶從控制臺輸入的會員卡號,并保存在會員卡號變量中
int a = number/1000; //千位
int b = number%1000/100; //百位
int c = number%100/10; //十位
int d = number%10; //個位
if((a+b+c+d)20){
System.out.println("恭喜中獎!您是幸運客戶");
}else{
System.out.println("謝謝參與!");
}
}
}
最基礎的 沒有異常判斷 無限循環(huán)輸入什么東西
截圖:
選取紅色球號碼方法:
/**
?*?隨機選取紅色球
?*?
?*?獲取1~33其中一個數(shù)
?*?
?*?0?=?Math.random??1
?*/
private?int?randomOneRedValue()?{
int?randomValue?=?(int)?(Math.random()?*?33?+?1);
return?randomValue;
}
選取藍色球號碼方法:
/**
?*?隨機選取藍色球號碼
?*?
?*?獲取1~16的數(shù)值
?*?
?*?@return
?*/
private?int?randomOneBlueValue()?{
int?randomValue?=?(int)?(Math.random()?*?15?+?1);
return?randomValue;
}
測試:
public?class?Test1?{
public?static?void?main(String[]?arg)?{
Test1?localTest1?=?new?Test1();
//?雙色球?:紅色球號碼?+?藍色球號碼
//?六個紅色球和一個藍色球號碼
//?紅色球號碼從1~33中選擇
//?藍色球號碼從1~16中選擇
//?一等獎:七個號碼相符(六個紅色號碼和一個藍色球號碼)(紅色球號碼順序不限,下同)
//?二等獎:六個紅色球號碼相符;
//?三等獎:五個紅色球號碼,或者四個紅色球號碼和一個藍色球號碼相符;
//?四等獎:五個紅色球號碼,或者三個紅色球號碼和一個藍色球號碼相符;
//?五等獎:四個紅色球號碼,或者三個紅色球號碼和一個藍色球號碼相符;
//?六等獎:一個藍色球號碼相符(有誤紅色球號碼相符均可);
//?例如:紅色球號碼?01?06?13?19?24?28?藍色球號碼?16
System.out.println("開始出獎");
//?定義雙色球數(shù)組,大小為7
String[]?values?=?new?String[7];
for?(int?i?=?0;?i??7;?i++)?{
if?(i?==?6)?{
int?blueValue?=?localTest1.randomOneBlueValue();
if?(blueValue??10)?{
values[i]?=?"0"?+?blueValue;
}?else?{
values[i]?=?String.valueOf(blueValue);
}
}?else?{
int?redValue?=?localTest1.randomOneRedValue();
if?(redValue??10)?{
values[i]?=?"0"?+?redValue;
}?else?{
values[i]?=?String.valueOf(redValue);
}
}
}
System.out.println();
System.out.println("出獎結束");
System.out.println();
System.out.print("雙色球開獎號碼:");
//?打印雙色球號碼
for?(String?value?:?values)?{
System.out.print("?"?+?value);
}
}
}
要在cmd下運行啊 我想你安裝JDK沒?
import java.util.*;
class Test{
private int maxSize=0;
private int selectSize=0;
private ListInteger list=new ArrayListInteger();
private int[] one=new int[7];
public Test(int maxSize,int selectSize){
this.maxSize=maxSize;
this.selectSize=selectSize;
one=new int[selectSize];
for(int i=1;i=maxSize;i++)
list.add(Integer.valueOf(i));
}
public void open(){
ListInteger temp=new ArrayListInteger();
temp.addAll(list);
int[] p=new int[selectSize];
int tag=0;
for(int i=0;iselectSize;i++){
tag=(int)(Math.random()*555555%temp.size());
p[i]=(Integer)temp.get(tag).intValue();
temp.remove(tag);
}
one=p;
}
public void paixu(){
int temp=0;
for(int i=0;iselectSize;i++){
for(int j=0;jselectSize-1;j++){
if(one[j]one[j+1]) {temp=one[j];one[j]=one[j+1];one[j+1]=temp;}
}
}
}
public void printOpen(){
open();
paixu();
for(int i=0;ione.length;i++)
System.out.print(one[i]+" ");
System.out.println();
}
static public void main(String[] str){
Test t=new Test(33,6); //彩票類型:33選6
for(int i=0;i10;i++) //開10次獎
t.printOpen();
}
}
JAVA彈窗,有下面常見的2種方法實現(xiàn):
通過JDialog(模式窗口) 類來實現(xiàn).里面的寫法類似JFrame
重點方法提示:?setModal(true);
//當設置為true表示,如果不關閉這個彈窗,那么主界面的其他組件都無法操作,該彈窗置于其他窗口的前面
//當設置為false表示,可以繞開本彈窗,對主界面的其他組件進行操作
優(yōu)點: 功能強大, ?擴展性強
缺點: 代碼量大.
示例圖
通過JOptionPane(提示框) 來實現(xiàn)
效果圖如下
優(yōu)點: 代碼量少,簡單,方便, 普通場景已經(jīng)夠用
缺點: 擴展性不夠, 復雜邏輯難以實現(xiàn).
下面寫一個具體案例
場景:當用于對文本域的文字,進行操作后,那么退出時,提示用戶, 是否要保存已經(jīng)更改后的內(nèi)容. ?如果用戶沒有修改內(nèi)容,那么不用提示
重點代碼
addDocumentListener--用于實現(xiàn)對文本內(nèi)容發(fā)生改變時進行響應
addWindowListener---用于實現(xiàn)對窗口進行操作時進行響應
完整代碼如下
import?java.awt.Font;
import?java.awt.event.*;
import?javax.swing.*;
import?javax.swing.event.*;
public?class?JDDemo?extends?JFrame?implements?DocumentListener,WindowListener{
JTextArea?jta;
boolean?flag;
public?JDDemo()?{
jta?=?new?JTextArea();//文本域
jta.setText("床前明月光");//文本域的文字--可以通過IO加載txt文檔的文字
jta.setFont(new?Font("宋體",Font.BOLD,?20));//文本域的字體
jta.setLineWrap(true);//設置自動換行
jta.getDocument().addDocumentListener(this);//添加文檔變化事件的響應.比如修改,刪除等
JScrollPane?jsp?=?new?JScrollPane(jta);//滾動面板(當文字太多時,顯示滾動條)
add(jsp);
setTitle("主窗口");//標題
setSize(300,?260);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//點擊窗口的關閉按鈕時,執(zhí)行windowClosing的代碼
addWindowListener(this);
setVisible(true);//窗口可見
}
public?static?void?main(String[]?args)?{
new?JDDemo();
}
//實現(xiàn)WindowListener接口,需要重寫下面的6個方法,?windowClosing專門處理關閉時的方法
public?void?windowOpened(WindowEvent?e)?{
}
public?void?windowClosing(WindowEvent?e)?{
if(flag){
int?n?=?JOptionPane.showConfirmDialog(null,?"已經(jīng)更改了內(nèi)容,需要保存后再退出嗎?",?"提示",JOptionPane.YES_NO_OPTION);
//n等于-1表示關閉了彈出的對話框等情況的默認值
//n等于0(JOptionPane.YES_OPTION)表示選擇了Yes
//n等于1(JOptionPane.NO_OPTION)表示選擇了No
if(n==JOptionPane.YES_OPTION){
//把文字保存到文件的代碼省略...
System.out.println("正在使用IO進行保存..ing");
closeFrame();//關閉窗口并退出
}else?if(n==JOptionPane.NO_OPTION){
System.out.println("放棄保存修改.馬上退出");
closeFrame();
}
}else{
closeFrame();
}
}
public?void?windowClosed(WindowEvent?e)?{
}
public?void?windowIconified(WindowEvent?e)?{
}
public?void?windowDeiconified(WindowEvent?e)?{
}
public?void?windowActivated(WindowEvent?e)?{
}
public?void?windowDeactivated(WindowEvent?e)?{
}
//文檔事件,有下面三個,如果觸發(fā)其中一個,都可以認為修改了文檔,所以需要在退出時進行提示,是否保存
public?void?insertUpdate(DocumentEvent?e)?{//插入
flag=true;
}
public?void?removeUpdate(DocumentEvent?e)?{//刪除
flag=true;
}
public?void?changedUpdate(DocumentEvent?e)?{//改變
flag=true;
}
//關閉窗口的方法
public?void?closeFrame(){
this.setVisible(false);//窗口不可見
this.dispose();//窗口銷毀
System.exit(0);//JVM虛擬機退出
}
}
運行效果圖:
抽取問題, 重點是 同一個學號不能重復被抽取.
解決辦法很多,
比如數(shù)組可以使用下標來標記,號碼是否被使用,使用了就繼續(xù)下一次抽取
也可以使用集合來抽取,把集合順序打亂,然后隨便抽幾個就可以了
參考代碼:數(shù)組法
import?java.util.Random;
public?class?Test?{
public?static?void?main(String[]?args)?{
int?stuNums=30;
int[]?nums=new?int[stuNums];//存儲學號的數(shù)組
boolean[]?flags=new?boolean[stuNums];//標記,用于標記對應下標的學號是否已經(jīng)被抽取過了
for?(int?i?=?0;?i??stuNums;?i++)?{
nums[i]=i+1;//給學號賦值
}
Random?r=new?Random();
while(true){
int?index?=?r.nextInt(stuNums);
if(!flags[index]){
System.out.println("A等:"+nums[index]);
flags[index]=true;?//標記已經(jīng)被使用過了
break;
}
}
for?(int?i?=?0;?i??2;?i++)?{
int?index?=?r.nextInt(stuNums);
if(!flags[index]){
System.out.println("B等:"+nums[index]);
flags[index]=true;
}else{
i--;//如果已經(jīng)被抽取過了?,那么i建議,再次循環(huán)
}
}
for?(int?i?=?0;?i??3;?i++)?{
int?index?=?r.nextInt(stuNums);
if(!flags[index]){
System.out.println("c等:"+nums[index]);
flags[index]=true;
}else{
i--;
}
}
}
}
集合法
import?java.util.ArrayList;
import?java.util.Collections;
public?class?Test2?{
public?static?void?main(String[]?args)?{
int?stuNums=20;
ArrayListInteger?list=new?ArrayListInteger();
for?(int?i?=?0;?i??stuNums;?i++)?{
list.add(i+1);
}
System.out.println("有序"+list);
Collections.shuffle(list);//打亂順序
System.out.println("亂序"+list);
System.out.println("A等"+list.get(0));
System.out.println("B等"+list.get(1));
System.out.println("B等"+list.get(2));
System.out.println("C等"+list.get(3));
System.out.println("C等"+list.get(4));
System.out.println("C等"+list.get(5));
}
}