java编写一个程序:假设一个车牌号码由三个字母和四个数字组成,编写一个程序,随机生成一个车牌

java编写一个程序:假设一个车牌号码由三个字母和四个数字组成,编写一个程序,随机生成一个车牌,第1张

public static void main(String[] args) {

String str= "";

int n=0;

int c=0;

for (int i = 0; i < 7; i++) {

if(flag()){

c++;

str+=c<4 charA():charB();

continue;

}

n++;

str+=n<5 charB():charA();

}

Systemoutprintln(str);

}

private static boolean flag(){

int i=(int) (Mathrandom()1000);

return i%2==0;

}

        private static String charA(){

          return ""+(char)(Mathrandom()26+'A');

        }

        private static String charB(){

          return ""+(int)(Mathrandom()10);

      }

这是我以前写的一个随机抽取5张扑克牌程序,你参考一下吧:import javautil;public class Card{

public static void main(String[] args){

String[] cardType={"clubs","diamonds","spades","hearts"};//牌色

String[] cardNum={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};//排数

ArrayList card=new ArrayList();//新建一副牌

for(int i=0;i<cardTypelength;i++){

for(int j=0;j<cardNumlength;j++){

cardadd(cardType[i]+"_"+cardNum[j]);

}

}

cardadd("big_King");//添加大小王

cardadd("small_King");

for(int i=0;i<5;i++){//随机发5张牌

int index=readCard(card);

cardremove(index);

}

}

public static int readCard(ArrayList al){//读牌

Random rand=new Random();

int randNumber=randnextInt(alsize());

String card=alget(randNumber)toString();

Systemoutprintln (chinaShow(card));

return randNumber;

}

public static String chinaShow(String card){//牌色中文显示

StringBuffer buffer=new StringBuffer();

String[] thisCard=cardsplit("_");

String cardType=thisCard[0];

String cardNum=thisCard[1];

if(cardTypeequals("clubs")){

bufferappend("梅花");

}

else if(cardTypeequals("diamonds")){

bufferappend("方块");

}

else if(cardTypeequals("spades")){

bufferappend("黑桃");

}

else if(cardTypeequals("hearts")){

bufferappend("红心");

}

else if(cardTypeequals("big")){

bufferappend("大王");

}

else if(cardTypeequals("small")){

bufferappend("小王");

}

return bufferappend(cardNum)toString();

}

}

调试好了 直接用 public static void main(String[] args) { Random rand = new Random();//定义随机数产生器 List list_One = new ArrayList();//定义一等奖数字集合 List list = null; //用list时 /list = new ArrayList();//定义100个随机数 集合 for(int i = 0; i < 100;){//产生100个3位数 的随机不重复数字 if(check(randnextInt(899) + 100,list)){ i++; } }/ //用set时 Set set = new HashSet(); while(setsize() < 100){ setadd(randnextInt(899) + 100); } list = new ArrayList(set); for(int k = 0; k < 5;){//产生5个随机一等奖 if(check(randnextInt(100),list,list_One)) k++; } } for(int a = 0; a < list_Onesize();a++){ Systemoutprintln(list_Oneget(a)); } } / 验证该数字是否在集合中 @param i @param list @return / public static boolean check(int i,List list){ if(listsize() == 0){ listadd(i); }else{ for(int j = 0; j < listsize(); j++){ if(i == listget(j)){ return false; } } listadd(i); } return true; } / 抽取随机数作为中奖的下标(重载) @param i @param list @param list_One @return / public static boolean check(int i,List list,List list_One){ if(listsize() == 0){ list_Oneadd(listget(i)); }else{ for(int j = 0; j < listsize(); j++){ if(i == listget(j)){ return false; } } list_Oneadd(listget(i)); } return true; }

抽取问题, 重点是 同一个学号不能重复被抽取

解决办法很多,

比如数组可以使用下标来标记,号码是否被使用,使用了就继续下一次抽取

也可以使用集合来抽取,把集合顺序打乱,然后随便抽几个就可以了

参考代码:数组法

import javautilRandom;

public class Test {

public static void main(String[] args) {

int stuNums=30;

int[] nums=new int[stuNums];//存储学号的数组

boolean[] flags=new boolean[stuNums];//标记,用于标记对应下标的学号是否已经被抽取过了

for (int i = 0; i < stuNums; i++) {

nums[i]=i+1;//给学号赋值

}

Random r=new Random();

while(true){

int index = rnextInt(stuNums);

if(!flags[index]){

Systemoutprintln("A等:"+nums[index]);

flags[index]=true; //标记已经被使用过了

break;

}

}

for (int i = 0; i < 2; i++) {

int index = rnextInt(stuNums);

if(!flags[index]){

Systemoutprintln("B等:"+nums[index]);

flags[index]=true;

}else{

i--;//如果已经被抽取过了 ,那么i建议,再次循环

}

}

for (int i = 0; i < 3; i++) {

int index = rnextInt(stuNums);

if(!flags[index]){

Systemoutprintln("c等:"+nums[index]);

flags[index]=true;

}else{

i--;

}

}

}

}

集合法

import javautilArrayList;

import javautilCollections;

public class Test2 {

public static void main(String[] args) {

int stuNums=20;

ArrayList<Integer> list=new ArrayList<Integer>();

for (int i = 0; i < stuNums; i++) {

listadd(i+1);

}

Systemoutprintln("有序"+list);

Collectionsshuffle(list);//打乱顺序

Systemoutprintln("乱序"+list);

Systemoutprintln("A等"+listget(0));

Systemoutprintln("B等"+listget(1));

Systemoutprintln("B等"+listget(2));

Systemoutprintln("C等"+listget(3));

Systemoutprintln("C等"+listget(4));

Systemoutprintln("C等"+listget(5));

}

}

以上就是关于java编写一个程序:假设一个车牌号码由三个字母和四个数字组成,编写一个程序,随机生成一个车牌全部的内容,包括:java编写一个程序:假设一个车牌号码由三个字母和四个数字组成,编写一个程序,随机生成一个车牌、java中随机抽一个数用什么函数、用java设计程序。问题描述:公司总人数为100,计划能随机抽出每一个获奖者,一等奖10%,二等奖等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10210225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存