本帖最后由 kvieta丶心灵 于 2015-4-27 00:27 编辑
前不久刚辞职然后来到北京,本来打算入黑马的,但是担心自己底子薄所以抱了传智基础班,准备6月考黑马!!废话不多说,代码如下:
import java.awt.Robot;//导入延迟所在的包
import java.util.Scanner;//导入键盘录入所在的包
class StarRowGen
{
public void CallStar(int starRowGen,int starColumGen)throws Exception//延迟异常处理机制
{
int a;//定义一个变量存储随机数
Robot r = new Robot();//创建对象(用于延迟命令)
for (int x=0;x<=starRowGen;x++)//循环嵌套这个不用解释了吧^_^(控制生成星星的行)
{ //Math.random()将生成一个大于等于 0.0 且小于 1.0 的伪随机 类型为double值
a=(int)(Math.random()*1000+1);//随机数[m,n]的公式:Math.random()*(n-m+1)+m;把生成的随机数强制转换为int型然后赋值给a
for (int y=0;y<=starColumGen;y++)//控制生成星星的列
{
a=(int)(Math.random()*1000+1);
if (a%8==0)//控制星星之间的间隔 为什么除以8?因为一个数除以8取得的余数有0 1 2 3 4 5 6 7 星星之间的间隔不要太宽。根据算法而定。
{
System.out.print("★");//当余数为0时打印一次星星
}
else
System.out.print(" ");//当余数为其他是打印两个空格,记住,是随机生成的数。
}
System.out.println();
r.delay(15);//每生成一行延迟15毫秒 这样能让肉眼有更好的观赏性
}
}
}
class ManTianXing
{
public static void main(String[] agrs)throws Exception
{
StarRowGen srg=new StarRowGen();//创建星星对象
Scanner sc=new Scanner(System.in);//创建键盘录入对象
System.out.println("请输入要显示的星星行数(建议数字相对小点):");
int n=sc.nextInt();//录入数据赋值给n
System.out.println("请输入要显示的星星列数(建议数字相对小点):");
int m=sc.nextInt();//录入数据赋值给m
if (n<=0||m<=0)//判断用户输入的数是否小于等于0,是将随机给一个数进行生成
{
System.out.println("您输入的数据可能会引起不必要的BUG\n程序将自动为您初始化一个数。");
System.out.println("请您慢慢欣赏~~");
srg.CallStar(1000,36);
}
else
{
System.out.println("请您慢慢欣赏~~");
srg.CallStar(n,m);
}
}
}
按道理是可以控制行和列的,但是输出的时候总是有小BUG,求大神解决......
所谓无图不真相:
|