首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

一个简单的键盘输入的java小例子 求 20分赠送

2012-03-01 
一个简单的键盘输入的java小例子 求高手指点 20分赠送packagecomimportjava.io.BufferedReaderimportjav

一个简单的键盘输入的java小例子 求高手指点 20分赠送
package   com;


import   java.io.BufferedReader;
import   java.io.IOException;
import   java.io.InputStreamReader;

public   class   ClassManger   {

public   void   classEdit(){
BufferedReader   br=new   BufferedReader(new   InputStreamReader(System.in));

try{
if(br.readLine().equals( "0 ")){

ClassTeam   classTeam=new   ClassTeam();
System.out.println( "请输入班级号: ");


classTeam.setId(br.read());
System.out.println( "请输入班级名称: ");

classTeam.setClassName(br.readLine());
classTeam.info();
}
  }catch(IOException   e){
e.printStackTrace();
}
}
public   static   void   main(String[]   args)   {
Menu   helpMenu=new   Menu();
ClassManger   classManger=new   ClassManger();

java.io.InputStream   s=System.in;
helpMenu.help_Menu();
  BufferedReader   br1
      =   new   BufferedReader(new   InputStreamReader(s));


String   str1=null;
try{
str1=br1.readLine();
System.out.println( "str1= "+str1);

}catch(IOException   e){
e.printStackTrace();
}
Menu   menu1=new   Menu();
if(str1.equals( "0 ")){
menu1.help_Menu();
}else   if(str1.equals( "1 ")){
menu1.setClass_Menu();
classManger.classEdit();
}else   if(str1.equals( "2 ")){
menu1.setPTTeacher_Menu();
}else   if(str1.equals( "3 ")){
menu1.setFTTeacher_Menu();
}

}

}

package   com;


public   class   ClassTeam   {

private   int   id;
private   String   className;



public   ClassTeam(){

}

public   ClassTeam(int   id,String   className){
this.id=id;
this.className=className;
}

public   void   info(){
System.out.println( "班级号: "+this.id);
System.out.println( "班级名称: "+this.className);
}



public   String   getClassName()   {
return   className;
}

public   void   setClassName(String   className)   {
this.className   =   className;
}

public   int   getId()   {
return   id;
}

public   void   setId(int   id)   {
this.id   =   id;
}


}
package   com;


public   class   Menu   {

public   void   help_Menu(){
System.out.println( "*************显示帮助************* ");
System.out.println( "0---------------------显示帮助 ");
System.out.println( "1---------------------设置班级 ");
System.out.println( "2---------------------设置兼职老师 ");
System.out.println( "3---------------------设置专职老师 ");
System.out.println( "4---------------------设置学员 ");
System.out.println( "5---------------------设置课程 ");
System.out.println( "6---------------------设置教师 ");
System.out.println( "7---------------------自我设置 ");
System.out.println( "8---------------------显示信息 ");
System.out.println( "9---------------------推出系统 ");


System.out.println( "*************输入数字************* ");
}

public   void   setClass_Menu(){
System.out.println( "0---------------------添加班级 ");
System.out.println( "1---------------------删除班级 ");
System.out.println( "2---------------------返回帮助 ");

}

public   void   setPTTeacher_Menu(){
System.out.println( "0-------------------添加兼职老师 ");
System.out.println( "1-------------------删除兼职老师 ");
System.out.println( "2-------------------返回帮助 ");
}

public   void   setFTTeacher_Menu(){
System.out.println( "0-------------------添加全职老师 ");
System.out.println( "1-------------------删除全职老师 ");
System.out.println( "2-------------------返回帮助 ");
}

public   void   setCourses_Menu(){
System.out.println( "0---------------------添加课程 ");
System.out.println( "1---------------------删除课程 ");
System.out.println( "2---------------------返回帮助 ");

}


}


这里是三个类   主要是第一个   执行main函数   我想在键盘输入数字进行选择可是   问什么取不到数据呢?   出现io异常错误!求高手指点   20分赠送

[解决办法]
看了一下你的代码,你的代码应该能够顺利编译,不过它肯定不能实现你想要的效果。请看你的main方法,读取一个输入,然后转到相应的菜单,那么然后呢?你Menu这个类里的所有方法都只负责显示菜单,显示完了就结束了,没有下文……

类似的程序以前我也做过,那时候还不会做界面只好在控制台上输入数字来发送指令。给你一个建议,写一个小的静态方法,用它来读取键盘的输入,你不妨把它命名为readKey()。另外,建议你Menu也作为一个工具类,里面所有方法都变成静态的。像你main方法里Menu menu1=new Menu()这样的写法是甚么意思呢?你还准备创造menu2、menu3之类的对象吗?一个程序应该只有一套菜单系统,所以适合用静态方法,不创建对象,直接Menu.help_Menu()就可以了。

另外,Menu类的各个方法太单薄了,只管显示菜单的话其实没有太大用处。我建议你在每个方法里加入一段内容:在显示完菜单内容之后,调用刚才说的readKey()方法,读取用户输入。然后根据用户的输入,转入相应的菜单,或者调用相应的方法。这样你的Menu类才活了起来,能够在菜单之间灵活进出,并且才真正接收了用户发出的指令。

以上是我写类似程序的一点点心得体会,希望对你有帮助。
[解决办法]
楼上说的很有道理。
总的来说,lz没有设计好menu类,menu类只负责显示菜单是不够的。
也可以根据mvc的原则来进行设计,增加一个控制类,负责读取控制台输入,并转发。
增加一个处理类,负责业务处理,扩充现有的menu类。

热点排行