zoukankan      html  css  js  c++  java
  • java学习笔记(6)

    一个抽奖小程序:
    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;
    Vector fist;
    Vector sec;
    Vector third;
    Vector lucky;
    boolean lot=false;
    boolean iserr=false;
    boolean issetup=false;
    String mesg="输入错误";
    String priseMsg="继续努力!";
    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("确认设置");
    msg=new String[4];
    msg[0]="一等奖";
    msg[1]="二等奖";
    msg[2]="三等奖";
    msg[3]="幸运奖";
    gaiLv=new TextField[4];
    jiangPin=new TextField[4];

    for(int i=0;i<4;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+ml3, 75+i26, 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抽奖系统", 130, 20);
    g.setColor(Color.ORANGE);
    g.drawRect(10, 40, 230, 170);
    g.setColor(Color.BLACK);
    g.drawString("设置", mx, 60);
    g.drawString("概率", mx+ml, 60);
    g.drawString("奖品", mx+ml3, 60);
    for(int i=0;i<msg.length;i++){
    g.setColor(new Color(255-(i
    30),45,89));
    g.drawString(msg[i], 20, 90+i*26);
    }
    if(lottrue){
    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(firu<minu){
    minu=firu;
    }
    }
    if(gaiLv[1].getText().trim().length()>1){
    secu=Float.parseFloat(gaiLv[1].getText());
    if(secu<=0||secu>=1){
    iserr=true;
    return;
    }
    if(secu<minu){
    minu=secu;
    }
    }
    if(gaiLv[2].getText().trim().length()>1){
    thiu=Float.parseFloat(gaiLv[2].getText());
    if(thiu<=0||thiu>=1){
    iserr=true;
    return;
    }
    if(thiu<minu){
    minu=thiu;
    }
    }
    if(gaiLv[3].getText().trim().length()>1){
    fouu=Float.parseFloat(gaiLv[3].getText());
    if(fouu<=0||fouu>=1){
    iserr=true;
    return;
    }
    if(fouu<minu){
    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 Vector getLotteryVec(int maxNum,int num){
    Vector result=new Vector();
    for(int i=0;i<num;i++){
    result.add(ran.nextInt(maxNum));
    }
    return result;
    }

    protected int getaNum(){
    return ran.nextInt(maxNum);
    }

    public int isLucky(int pNum){
    for(int i=0;i<fist.size();i++){
    if(fist.get(i)pNum){
    return 1;
    }
    }
    for(int i=0;i<sec.size();i++){
    if(sec.get(i)
    pNum){
    return 2;
    }
    }
    for(int i=0;i<third.size();i++){
    if(third.get(i)pNum){
    return 3;
    }
    }
    for(int i=0;i<lucky.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="请先设置参数!";
    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("确认设置")){
    lot=false;
    getLucky();
    repaint();
    }
    }

    public String getResult(int num){
    int resu=isLucky(num);
    String result="";
    switch(resu){
    case -1:
    result="继续努力!";
    break;
    case 1:
    result="恭喜你!一等奖! 获得"+jiangPin[0].getText();
    break;
    case 2:
    result="恭喜你!二等奖! 获得"+jiangPin[1].getText();
    break;
    case 3:
    result="恭喜你!三等奖! 获得"+jiangPin[2].getText();
    break;
    case 4:
    result="恭喜你!幸运奖! 获得"+jiangPin[3].getText();
    break;
    default:
    result="继续努力!";
    }
    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);

    }

    }






  • 相关阅读:
    Note/Solution 转置原理 & 多点求值
    Note/Solution 「洛谷 P5158」「模板」多项式快速插值
    Solution 「CTS 2019」「洛谷 P5404」氪金手游
    Solution 「CEOI 2017」「洛谷 P4654」Mousetrap
    Solution Set Border Theory
    Solution Set Stirling 数相关杂题
    Solution 「CEOI 2006」「洛谷 P5974」ANTENNA
    Solution 「ZJOI 2013」「洛谷 P3337」防守战线
    Solution 「CF 923E」Perpetual Subtraction
    KVM虚拟化
  • 原文地址:https://www.cnblogs.com/abnry/p/5471054.html
Copyright © 2011-2022 走看看