| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2034 人关注过本帖
标题:需要用c++的class和子函数编写,谢谢
只看楼主 加入收藏
Vsnow
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:124
专家分:145
注 册:2015-1-3
结帖率:95%
收藏
已结贴  问题点数:20 回复次数:9 
需要用c++的class和子函数编写,谢谢
1.    定义一个能够记录公司员工工资的类, 比如包括:员工号,姓名,基本工资,补贴金额,奖励金额,扣税,实发工资等),其中实发工资=基本工资+补贴金额+奖励金额-扣税。
要求:
1)新增功能,能输入10个员工信息并计算出实发工资,并且员工编号在生成员工信息时同时生成;(提示:使用构造函数生成员工编号)
2)要求对所有员工都能按照名称或编号进行显示、查找、增加和修改的功能;
3)统计出员工的平均工资。
以运行结果文本菜单的形式输出。
我只能编写出一部分正确的,就菜单的子函数,怎么编写都是错的,也不知道是思路不对,还是怎么的,就没发上来
#include <iostream>
#include <string>
#include <ctype.h>
#define N 10
using namespace std;

void menuline()
{   
    while(getchar()!='\n')    continue;
}

class Work_menu
{private:
    double price1,price2,price3,price4,price5;//price1基本工资,price2补贴金额,price3奖励金额,price4扣税,price5实发工资
    string name;
    int a[N];
public:
    void set();
    char showmenu();
     
};
Work_menu work1,work2,work3,work4,work5,work6,work7,work8,work9,work10;

void Work_menu::set()
{
    int i;
    for(i=0;i<N;i++)
    {
        cout<<"请输入第"<<i+1<<"位员工的信息:"<<endl;
        cout<<"员工号:"<<endl;
        cin>>a[i];
        cout<<"姓名:"<<endl;
        cin>>name;
        cout<<"基本工资:"<<endl;
        cin>>price1;
        cout<<"补贴金额:"<<endl;
        cin>>price2;
        cout<<"奖励金额:"<<endl;
        cin>>price3;
        cout<<"扣税:"<<endl;
        cin>>price4;
        cout<<"实发工资:"<<endl;
        price5=price1+price2+price3-price4;
        cout<<price5<<endl;
    }         
}

char Work_menu::showmenu()
{
    char ans;
    cout<<"请选择菜单项:"<<endl;
    cout<<"f)按名称显示员工信息:            g)查找员工信息:"<<endl;
    cout<<"h)增加员工信息:                    k)修改员工信息:"<<endl;
    cout<<"p)返回菜单:                        q)退出程序"<<endl;
    ans=tolower(getchar());
    menuline();
    while(strchr("fghkpq",ans)==NULL)
    {    cout<<"请输入f,g,h,k,p or q:"<<endl;
        ans=tolower(getchar());
        menuline();
    }
    return ans;
}

int main()
{
    work1.set();
    work1.showmenu();
    work2.set();
    work2.showmenu();
    work3.set();
    work3.showmenu();
    work4.set();
    work4.showmenu();
    work5.set();
    work5.showmenu();
    work6.set();
    work6.showmenu();
    work7.set();
    work7.showmenu();
    work8.set();
    work8.showmenu();
    work9.set();
    work9.showmenu();
    work10.set();
    work10.showmenu();
        return 0;
}
 
搜索更多相关主题的帖子: 姓名 信息 统计 记录 平均工资 
2015-04-08 09:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你希望的菜单是怎样的效果呀?

授人以渔,不授人以鱼。
2015-04-08 11:34
Vsnow
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:124
专家分:145
注 册:2015-1-3
收藏
得分:0 
就是从键盘输入相应的字母以后,调用子函数实现该字母对应的功能
2015-04-08 12:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
这种菜单不需要用类

授人以渔,不授人以鱼。
2015-04-08 12:04
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:12 
程序代码:
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <vector>

struct MenuItem
{
    int Value;
    std::string MenuBar;
};

int MenuChoice(std::vector<MenuItem>& menu);

int main(void)
{
    std::vector<MenuItem> menu = {
        { 1, "1)按名称显示员工信息" },
        { 2, "2)查找员工信息" },
        { 3, "3)增加员工信息" },
        { 4, "4)修改员工信息" },
        { 0, "0)退出程序" }
    };

    int choice;
    do
    {
        choice = MenuChoice(menu);
        std::cout << choice << std::endl;
    } while (choice != 0);

    return EXIT_SUCCESS;
}

int MenuChoice(std::vector<MenuItem>& menu)
{
    int choice;

    bool inputCorrect;
    do
    {
        std::cout << std::endl;
        for each (MenuItem menuBar in menu)
        {
            std::cout << menuBar.MenuBar.c_str() << std::endl;
        }
        std::cout << std::endl;
        std::cout << "请选择: ";
        std::cin.clear();
        std::cin >> choice;
        inputCorrect = false;
        for each (MenuItem menuBar in menu)
        {
            if (menuBar.Value == choice)
            {
                inputCorrect = true;
                break;
            }
        }
    } while (!inputCorrect);

    return choice;
}

授人以渔,不授人以鱼。
2015-04-08 13:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
当然,要写成class也可以。

授人以渔,不授人以鱼。
2015-04-08 13:20
Vsnow
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:124
专家分:145
注 册:2015-1-3
收藏
得分:0 
是因为刚接触class,所以想尝试用class,可是一直有错,各种查找,也不知是哪一步错了
所以就想求教一个完整程序,对比来看
2015-04-08 18:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
那我上面的代码看得懂吗?看懂了,做成类也能懂。

授人以渔,不授人以鱼。
2015-04-08 19:13
Vsnow
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:124
专家分:145
注 册:2015-1-3
收藏
得分:0 
虽然边看边百度,但还是you 很多地方不懂。因为我的是VC6.0,会显示程序有错,根本不能运行
2015-04-08 21:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
Win7的程序在XP上运行不了我也没办法,总不能迁就旧得离谱的东西,向后兼容也不是隔几个世纪的。

授人以渔,不授人以鱼。
2015-04-08 23:42
快速回复:需要用c++的class和子函数编写,谢谢
数据加载中...
 
   



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

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