| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 922 人关注过本帖
标题:想结束一个程序,但break又不合法,请帮帮忙,谢谢
只看楼主 加入收藏
小狼烟
Rank: 2
等 级:论坛游民
威 望:1
帖 子:15
专家分:32
注 册:2011-11-23
收藏
得分:2 
你思路有问题,一直在定义,重复的定义干嘛,最后你注释完全可以不用,看看你的整体吧,思路的事情。

啦啦啦德玛西亚!
2015-04-20 15:58
小狼烟
Rank: 2
等 级:论坛游民
威 望:1
帖 子:15
专家分:32
注 册:2011-11-23
收藏
得分:7 
程序代码:
#include <iostream>
#include <string>
#include <ctype.h>
#define N 3
using namespace std;
/*
void menuline()
{    
    wh(getchar()!='\n')    continue;
}
*/
class Work_menu
{private:
    double price1,price2,price3,price4,price5;
    string name;
public:
    static int num;
    void set();
    void show();
    //char showmenu();
    void re_show();
    void rer_show(int n);
    void fun1(int k);
    void fun2(int k);
    void fun3(int k);
    void fun4(int k);
};    

int Work_menu::num=0;

void Work_menu::set()
{
        cout<<"姓名:";
        cin>>name;
        cout<<"基本工资:" ;        cin>>price1;
        cout<<"补贴金额:" ;        cin>>price2;
        cout<<"奖励金额:" ;        cin>>price3;
        cout<<"扣税:" ;            cin>>price4;
        cout<<"实发工资:" ;
        price5=price1+price2+price3-price4;
        cout<<price5<<endl;
     
         
}
void Work_menu::show()
{
    num++;
    cout<<"员工号:"<<num<<endl;
    cout<<"姓名:"<<name<<endl;
    cout<<"基本工资:"<<price1<<endl;
    cout<<"补贴金额:"<<price2<<endl;
    cout<<"奖励金额:"<<price3<<endl;
    cout<<"扣税:"<<price4<<endl;
    cout<<"实发工资:"<<price5<<endl;
}
void Work_menu::rer_show(int n)
{
    num=n;
    cout<<"员工号:"<<num<<endl;
    cout<<"姓名:"<<name<<endl;
    cout<<"基本工资:"<<price1<<endl;
    cout<<"补贴金额:"<<price2<<endl;
    cout<<"奖励金额:"<<price3<<endl;
    cout<<"扣税:"<<price4<<endl;
    cout<<"实发工资:"<<price5<<endl;

    }
char showmenu()
{
    char ans;
    cout<<"请选择菜单项:"<<endl;
    cout<<"g)查找员工信息:                    k)修改员工信息:"<<endl;
    cout<<"h)增加员工信息:                    m)显示员工信息"<<endl;    
    cout<<"p)返回菜单:                        q)退出程序"<<endl;
    //ans=tolower(getchar());
    //menuline();
    cin>>ans;
    return ans;
}

void Work_menu::re_show()
{
        int i;
    // Work_menu work[N];

   // for(i=0;i<N;i++)
    //{
        cout<<"----------------------------"<<endl;
      //  work[i].
        show();
    //}
     cout<<"--------------------------------------------------------------------"<<endl;
    }

void Work_menu::fun1(int k)//查找员工信息
{
   // char showmenu();
  //  void rer_show(int n);
    //int n;
   // cout<<"请输入您需要查找的员工号:"<<endl;
   // cin>>n;
    rer_show(k);
    //showmenu();
} 
void Work_menu::fun2(int k)//修改员工信息
{    
  //  char showmenu();
   // void rer_show(int n);
   // void re_show();
    //int n;
  //  cout<<"请输入您需要修改的员工号:"<<endl;
   // cin>>n;
    cout<<"请重新录入该员工信息:"<<endl;
    rer_show(k-1);
    cout<<"----------------------修改员工信息后,整理的信息如下-----------------------------"<<endl;
    re_show();
    num=k-2;
    //showmenu();

}
void Work_menu::fun3(int k)//增加员工信息
{
    //char showmenu();
   // void set();
   // void re_show();
    //int n;
    cout<<"请输入您要增加的员工信息:"<<endl;
   // cin>>n;
    set();
    cout<<"----------------------增加员工信息后,整理如下-----------------------------"<<endl;
    re_show();
  //  showmenu();

}

void Work_menu::fun4(int k)//显示员工信息
{
    //char showmenu();
   // void rer_show(int n);
   // int n;
   // cout<<"请输入您需要显示的员工信息的员工号:"<<endl;
   // cin>>n;
     rer_show(k);
   //  showmenu();
}

int main()
{    
   //Work_menu a;
    int i;
    //char showmenu();
    Work_menu work[N];
    for(i=0;i<N;i++)
     {
         cout<<"请输入第"<<i+1<<"位员工的信息:"<<endl;
         work[i].set(); 
     }
     cout<<"----------------------您录入的信息如下-----------------------------"<<endl;
    for(i=0;i<N;i++)
    {
        cout<<"----------------------------"<<endl;
        work[i].show();
    }
     cout<<"--------------------------------------------------------------------"<<endl;
    
     char choice;
    choice=showmenu();
    while(choice!='q')
    {
        cout<<"请输入要查找,修改,增加,显示的员工号:"<<endl;
        
        int k;
        cin>>k;
        //work[k-1].showmenu();
        switch(choice)
        {case 'g':
           work[k-1].fun1(k);  break;
        case 'k':
            work[k-1].fun2(k);  break;
        case 'h':
           work[k-1].fun3(k);  break;
        case 'm':
           work[k-1].fun4(k);  break;
        case 'p':break;
        }
        showmenu();
    }
    
//    if(choice=='q') 
  //      break;//break只能用于循环语句和switch语句,该如何加上
        //这里是想退出程序,但是用了break之后又不合法,不知道怎么办,能帮忙想个办法么
    
    return 0;
}

时间紧弄了下,有些功能没纠正,你自己应该能改过来,看一下吧

啦啦啦德玛西亚!
2015-04-20 16:01
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:3 
是了,楼主最后那四个case里面都间接调用了showmenu, 但都没有接受其返回值,也就是说没有循环赋值给choice,问题应该在这里吧?
2015-04-20 16:08
Vsnow
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:124
专家分:145
注 册:2015-1-3
收藏
得分:0 
换了种写法,不纠结于函数调用,还是写出来能运行了,虽然结果自己不太满意!但仍然希望大家能帮我指出第一个程序的错,O(∩_∩)O谢谢
#include <iostream>
#include <string>
#include <ctype.h>
#define N 10
using namespace std;

class Work_menu
{private:
    double price1,price2,price3,price4,price5;
    string name;
public:
    void set();
    void show();
};   

void Work_menu::set()
{
    cout<<"姓名:";
    cin>>name;
    cout<<"基本工资:" ;        cin>>price1;
    cout<<"补贴金额:" ;        cin>>price2;
    cout<<"奖励金额:" ;        cin>>price3;
    cout<<"扣税:" ;            cin>>price4;
    cout<<"实发工资:" ;
    price5=price1+price2+price3-price4;
    cout<<price5<<endl;
     
         
}
void Work_menu::show()
{
    cout<<"姓名:"<<name<<endl;
    cout<<"基本工资:"<<price1<<endl;
    cout<<"补贴金额:"<<price2<<endl;
    cout<<"奖励金额:"<<price3<<endl;
    cout<<"扣税:"<<price4<<endl;
    cout<<"实发工资:"<<price5<<endl;
}
int main()
{   
    int i,a[10],s=1;
    int n,x,w;
    Work_menu work[N];
    for(i=0;i<N;i++)
     {
         cout<<"请输入第"<<i+1<<"位员工的信息:"<<endl;
         work[i].set();
         cout<<"************"<<endl;
     }
    cout<<"----------------------您录入的信息如下-----------------------------"<<endl;
    for(i=0;i<N;i++)
    {
        cout<<"----------------------------"<<endl;
        cout<<"员工号:"<<s<<endl;
        work[i].show();
        a[i]=s;
        s++;   
    }
    cout<<"--------------------------------------------------------------------"<<endl;
    char choice;   
    while(1)
    {
        cout<<"*********************请选择菜单项:******************************"<<endl;
        cout<<"g)查找员工信息:                    k)修改员工信息:"<<endl;
        cout<<"h)增加员工信息:                    m)显示员工信息"<<endl;   
        cout<<"q)退出程序:"<<endl;
        cin>>choice;
        while(getchar()!='\n')    continue;
    switch(choice)
    {
    case'g':
        cout<<"请输入您需要查找的员工号:"<<endl;
        cin>>n;
        for(i=0;i<N;i++)
        {
            if(n==a[i])
            {
                cout<<"员工号:"<<a[i]<<endl;
                work[i].show();
            }
        }    break;
    case'k':
        cout<<"请输入您需要修改的员工号:"<<endl;
        cin>>x;
        cout<<"请重新录入该员工信息:"<<endl;
        cout<<"请重新输入第"<<x<<"位员工的信息:"<<endl;
        for(i=0;i<1;i++)
        {
            work[i].set();
            cout<<"************"<<endl;
        }
         cout<<"----------------------您录入的信息如下-----------------------------"<<endl;
        for(i=0;i<1;i++)
        {     
            cout<<"员工号:"<<x<<endl;
            work[i].show();
        }
           cout<<"--------------------------------------------------------------------"<<endl;
        break;
    case'h':
        cout<<"请输入您要增加的员工信息:"<<endl;
        for(i=0;i<1;i++)
        {
            cout<<"请输入第"<<s<<"位员工的信息:"<<endl;
            a[s]=s;
            work[i].set();
            cout<<"************"<<endl;
            s++;
        }
        cout<<"----------------------您录入的信息如下-----------------------------"<<endl;
        for(i=0;i<1;i++)
        {
            cout<<"员工号:"<<a[s]<<endl;
            work[i].show();
        }
           cout<<"--------------------------------------------------------------------"<<endl;
        break;
    case'm':
        cout<<"请输入您需要显示的员工信息的员工号:"<<endl;
        cin>>w;
        for(i=0;i<s+1;i++)
        {
            if(w==a[i])
            {
                cout<<"员工号:"<<a[i]<<endl;
                work[i].show();
                s++;
                a[N-1]=s;
            }
        }    break;
    case 'q':
        return 0;
    }
    }
    return 0;
}
2015-04-20 17:33
快速回复:想结束一个程序,但break又不合法,请帮帮忙,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020996 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved