首页 新闻 会员 周边 捐助

程序运行错误,希望各位大侠们能帮帮忙

0
悬赏园豆:5 [已解决问题] 解决于 2013-01-23 12:05

package changeGoshoopingMenu;
import java.util.Scanner;
public class Menu {
/*登陆菜单*/
public void showLoginMenu(){
System.out.println("\n\t欢迎使用我行我素购物管理系统\t");
System.out.println("\t\t1.登 录 系 统\n");
System.out.println("\t\t2.退 出\n");
System.out.println("******************************");
System.out.println("请选择,输入数字:");
}
/*主菜单*/
public void showMainMenu(){
boolean con;
do{
con=false;
/*输入数字选择菜单*/
Scanner input=new Scanner(System.in);
int no=input.nextInt();
if(no==1){
showCustMenu();
}else if(no==2){
showLoginMenu();
}else if(no==0){
showLoginMenu();
}else{
System.out.println("输入错误,请重新输入数字:");
con=true;
}
}while(con);
}
/*真情回馈*/
public void showSendMenu(){
boolean con;
do {
con=false;
/*输入数字选择菜单*/
Scanner input =new Scanner(System.in);
int no=input.nextInt();
if(no==1){
System.out.println("执行幸运大放送");
}else if(no==2){
System.out.println("执行幸运抽奖");
}else if(no==3){
System.out.println("执行生日问候");
}else if(no==0){
showMainMenu(); //返回主菜单
}else{
System.out.println("输入错误,请重新输入数字:");
con=true;
}
}while(con);
}
/*客户信息管理*/
public void showCustMenu(){
boolean con;
do {
con=false;
/*输入数字选择菜单*/
Scanner input =new Scanner(System.in);
int no=input.nextInt();
if(no==1){
System.out.println("查询客户信息");
}else if(no==2){
System.out.println("添加客户信息");
}else if(no==3){
System.out.println("执行生日问候");
}else if(no==4){
System.out.println("显示所有客户信息");
}else if(no==0){
showMainMenu(); //返回主菜单
}else{
System.out.println("输入错误,请重新输入数字:");
con=true;
}
}while(con);
}
}

 

package changeGoshoopingMenu;

import java.util.*;

public class TestMenu{
public static void main(String[] args) {
boolean con=true;
do{/*显示主菜单*/
boolean con=true;
Menu menu=new Menu();
menu.showLoginMenu();
/*实现菜单*/
Scanner input=new Scanner(System.in);
int choice=input.nextInt();
switch(choice){
case 1:
menu.showMainMenu();
break;
case 2:
System.out.println("谢谢您的使用!");
con=false;
break;
}
}while(con);
}
}

 第一段代码在eclipse上是正确的可不知道为什么第二段代码的布尔那里还有dowhile那里是错的,谢谢帮忙,本人初学,希望能够得到大侠们的帮助
追逐,小天的主页 追逐,小天 | 初学一级 | 园豆:197
提问于:2013-01-22 21:26
< >
分享
最佳答案
0

变量con重复定义了,eclipse应该有提示的。

package changeGoshoopingMenu;
import java.util.Scanner;

public class TestMenu {
    public static void main(String[] args) {
        boolean con = true;
        do {/* 显示主菜单 */
            //boolean 去掉这个
       con = true; Menu menu = new Menu(); menu.showLoginMenu(); /* 实现菜单 */ Scanner input = new Scanner(System.in); int choice = input.nextInt(); switch (choice) { case 1: menu.showMainMenu(); break; case 2: System.out.println("谢谢您的使用!"); con = false; break; } } while (con); } }

 

收获园豆:5
yajiao | 菜鸟二级 |园豆:218 | 2013-01-22 23:07

谢谢,的确没有红叉了,可是为什么我在运行时候输入1,不调用第一段的代码呢?那又是为什么,能否给一个详细的答案,谢谢!我想完成的是这样的一段文字

        登陆菜单
      主菜单   退出
   客户信息管理  真情回馈
【其中客户管理要有显示所有信息,添加客户信息,修改客户信息,查询客户信息,真情回馈有幸运抽奖,生日问候,幸运大放送】非常感谢你的帮忙

追逐,小天 | 园豆:197 (初学一级) | 2013-01-23 10:40

@追逐,小天: 

已经调用到了第一段的代码,你在showMainMenu函数中没有输出,所以看不出来。做3次动作:输入1,回车,就会输出“查询客户信息”。

按照你的代码,执行完“查询客户信息”后,又回到了登录菜单,应该是还可以执行同级菜单更好吧,我帮你改了下。。。

另外,在eclipse里,可以通过 Ctrl+Shift+F格式化代码 (需要输入法切换成英文),可读性会好很多。

View Code
public class TestMenu {
    
    public static void main(String[] args) {
        Menu menu = new Menu();
        menu.showLoginMenu();
    }
    
}





import java.util.Scanner;

public class Menu {
    
    /* 登陆菜单 */
    public void showLoginMenu() {
        /* 显示主菜单 */
        System.out.println("\n\t欢迎使用我行我素购物管理系统\t");
        System.out.println("\t\t1.登 录 系 统\n");
        System.out.println("\t\t2.退 出\n");
        System.out.println("******************************");
        System.out.println("请选择,输入数字:");

        /* 实现菜单 */
        boolean con = true;
        do {
            con = false;
            Scanner input = new Scanner(System.in);
            int choice = input.nextInt();
            switch (choice) {
            case 1:
                showMainMenu();
                con = false;
                break;
            case 2:
                System.out.println("谢谢您的使用!");
                con = false;
                break;
            default:
                System.out.println("输入错误,请重新输入数字:");
                con = true;
                break;
            }
        } while (con);
    }
    

    /* 主菜单 */
    public void showMainMenu() {
        
        System.out.println("\t\t0.回到登录菜单\n");
        System.out.println("\t\t1.客户信息管理\n");
        System.out.println("\t\t2.真情回馈\n");
        System.out.println("******************************");
        System.out.println("请选择,输入数字:");
        
        boolean con;
        do {
            con = false;
            /* 输入数字选择菜单 */
            Scanner input = new Scanner(System.in);
            int no = input.nextInt();
            if (no == 1) {
                showCustMenu();
            } else if (no == 2) {
                showSendMenu();
            } else if (no == 0) {
                showLoginMenu();
            } else {
                System.out.println("输入错误,请重新输入数字:");
                con = true;
            }
        } while (con);
    }

    /* 真情回馈 */
    public void showSendMenu() {
        
        System.out.println("\t\t0.回到登录菜单\n");
        System.out.println("\t\t1.执行幸运大放送\n");
        System.out.println("\t\t2.执行幸运抽奖\n");
        System.out.println("\t\t3.执行生日问候\n");
        System.out.println("******************************");
        System.out.println("请选择,输入数字:");
        
        boolean con;
        do {
            con = false;
            /* 输入数字选择菜单 */
            Scanner input = new Scanner(System.in);
            int no = input.nextInt();
            if (no == 1) {
                System.out.println("执行幸运大放送");
                con = true;
            } else if (no == 2) {
                System.out.println("执行幸运抽奖");
                con = true;
            } else if (no == 3) {
                System.out.println("执行生日问候");
                con = true;
            } else if (no == 0) {
                showMainMenu(); // 返回主菜单
            } else {
                System.out.println("输入错误,请重新输入数字:");
                con = true;
            }
        } while (con);
    }

    /* 客户信息管理 */
    public void showCustMenu() {

        System.out.println("\t\t0.回到主菜单\n");
        System.out.println("\t\t1.查询客户信息\n");
        System.out.println("\t\t2.添加客户信息\n");
        System.out.println("\t\t3.修改客户信息\n");
        System.out.println("\t\t4.显示所有客户信息\n");
        System.out.println("******************************");
        System.out.println("请选择,输入数字:");
        
        boolean con;
        do {
            con = false;
            /* 输入数字选择菜单 */
            Scanner input = new Scanner(System.in);
            int no = input.nextInt();
            if (no == 1) {
                System.out.println("查询客户信息");
                con = true;
            } else if (no == 2) {
                System.out.println("添加客户信息");
                con = true;
            } else if (no == 3) {
                System.out.println("执行生日问候");
                con = true;
            } else if (no == 4) {
                System.out.println("显示所有客户信息");
                con = true;
            } else if (no == 0) {
                showMainMenu(); // 返回主菜单
            } else {
                System.out.println("输入错误,请重新输入数字:");
                con = true;
            }
        } while (con);
    }
}
yajiao | 园豆:218 (菜鸟二级) | 2013-01-23 11:29

@y谢谢,成功了,thankyou

追逐,小天 | 园豆:197 (初学一级) | 2013-01-23 12:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册