以文本方式查看主题

-  课外天地 李树青  (http://www.njcie.com/bbs/index.asp)
--  Java程序语言课件  (http://www.njcie.com/bbs/list.asp?boardid=17)
----  程序代码——采用面向对象方式设计的猜数字小游戏  (http://www.njcie.com/bbs/dispbbs.asp?boardid=17&id=353)

--  作者:admin
--  发布时间:2007/4/20 21:55:17
--  程序代码——采用面向对象方式设计的猜数字小游戏

功能:

系统产生随机数
进入循环
系统输入整数
系统判断大小是否正确
系统输出结果

分析:

系统  CSystem  输入 判断 输出
随机数  CRandom  设置初始值 产生
整数  Integer  
结果(字符串) String  

CRandom类文件:

public class CRandom
{
private int initialNumber=0;
private int rand=0;

public CRandom(int init)
{
  setInitialNumber(init);
  generateRandom();
  //System.out.println(rand);
}

public void setInitialNumber(int num)
{
  if(num<0)
   initialNumber=0;
  else
   initialNumber=num;
}

public void generateRandom()
{
  rand=(int)(Math.random()*initialNumber)+1;
}

public int getRandom()
{  
  return rand;
}
}

CSystem类文件:

public class CSystem
{
String displayString="";

public void setDisplayString(String str)
{
  displayString=str;
}

public int inputInteger()
{
  int i=0;
  try
  {
   System.out.println(displayString);
   byte[] b=new byte[10];
   System.in.read(b);    
   String str=new String(b);
   str=str.substring(0,str.indexOf((char)(13)));
   i=Integer.parseInt(str);
        
  }
  catch(Exception ex)
  {
   System.out.println(ex.getMessage());
  }
  return i;
}

public void outputString(String str)
{
  System.out.println(str);  
}

public String compare(int num1,int num2)
{
  if(num1>num2)
   return ">";
  else if(num1<num2)
   return "<";
  else
   return "==";
}
}

Main类文件:

public class Main
{      
    public static void main(String args[])
    {
     CRandom r=new CRandom(100);    
     int rnd=r.getRandom();
    
     CSystem s=new CSystem();
     s.setDisplayString("Please input the number:");
    
     while(true)
     {
      int i=s.inputInteger();
      String result=s.compare(i,rnd);      
      s.outputString(result);
      if(result=="==")
       System.exit(0);    
     }
    }
}

[此贴子已经被作者于2010-12-12 08:14:22编辑过]

--  作者:shinhwa
--  发布时间:2007/4/22 21:09:52
--  
str=str.substring(0,str.indexOf((char)(13)));中的13是什么意思???
--  作者:admin
--  发布时间:2007/4/23 19:51:46
--  回复
13为回车字符的Unicode编码
--  作者:shinhwa
--  发布时间:2007/4/23 20:01:33
--  

Thanks!