| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 685 人关注过本帖
标题:用C++编一个小程序!!!!
取消只看楼主 加入收藏
q254558116
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-2-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
用C++编一个小程序!!!!
有么有愿意帮忙的大神啊。 跪求~~~
题目如下
一① 要建立工号、姓名、年龄、工种、基本工资、岗位工资、保险费、实发工资的数据表;②要能按姓名及工号输出工资清单(即所有数据); ③要有最大应发工资和最大实发工资人员的数据;④要有按工种计算保险费占应发工资比率的输出数据;⑤ 要有工资总额和工种工资总额的输出数据。
要求① 输出工资清单函数; ② 最大应发工资和最大实发工资函数;③ 计算保险费比率函数;④ 计算工资总额和工种工资总额函数。
搜索更多相关主题的帖子: 保险费 数据表 姓名 
2014-02-25 14:00
q254558116
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-2-25
收藏
得分:0 
#include <stdio.h>
#include <conio.h>
#define N 6
int i;
struct student
{ long num;
 char name[10];
 int  age;
 char gz[20];

 float jbgz;

 float gwgz;

 float bxf;

 float sfgz;

}stu[ ]={01,"叶成",19,"清洁工",350.0,150.0,10.0,490.0;

02,"彭冬花",20,"清洁工",350.0,150.0,10.0,490.0;

03,"程虹",20,"清洁工",350.0,150.0,10.0,490.0;

04,"胡盼",20,"经理",500.0,200.0,50.0,650.0;

05,"刘光强",20,"经理",,500.0,200.0,50.0,650.0;

06,"董瑶",20,"经理",500.0,200.0,50.0,650.0;

void list()

{

for(i=0;i<N;i++)

printf("%ld\t%s\t%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n",

stu[i].num,stu[i].name,stu[i].age,stu[i].gz,stu[i].jbgz,

stu[i].gwgz,stu[i].bxf,stu[i].sfgz);

}

void Tatal_ave()

{int i;

float s1=0.0,s2=0.0,s3=0.0,s4=0.0;

float aver1,aver2,aver3,aver4;

for(i=0;i<N;i++)

{s1=stu[i].jbgz+s1;

s2=stu[i].gwgz+s2;

s3=stu[i].bxf+s3;

s4=stu[i].sfgz+s4;

}

aver1=(float) s1/N;

aver2=(float) s2/N;

aver3=(float) s3/N;

aver4=(float) s4/N;

printf("%-8.1f\t%-8.1f\t%-8.1f\t%-8.1f\n",aver1,aver2,aver3,aver4);

}

void high()

{

float m1=stu[0].jbgz,m2=stu[0].sfgz;

for(i=1;i<N;i++)

{if(m1<=stu[i].jbgz)

m1=stu[i].jbgz;

if(m2<=stu[i].sfgz)

m2=stu[i].sfgz;

}

printf("%-8.1f\t%-8.1f\n",m1,m2);

}

void bl()

{int n1=0;
float a1;
for(i=0;i<N;i++)
{if((stu[i].gz.stu[i].bxf)/stu[i].sfgz)
n1++;
if(stu[i].gz)
}
a1=(float) n1/N;
printf("%-8.3f\n",a1);
}
void main ()
{ char b;
printf("--------------------------------欢迎使用学生成绩系统----------------------------\n\n");
printf("**************************************一级命令**********************************\n\n");
printf("------------------1职工信息********** ----------------\n");
scanf("%s",b);
switch(b)
{
case 1:printf("工号\t姓名\t年龄\t工种\t基本工资\t岗位工资\t保险费\t实发工资\n");
list();
printf("\n--------------------------------------------------------------------------------
\n");break;
case 2:printf("基本工资\t岗位工资\t保险费\t实发工资\n");
Tatal_ave();  
printf("\n-------------------------------------------------------------------------------\n");break;
case 3:printf("基本工资\t实发工资\n");
high();
case 4:printf("\n--------------------------------------------------------------------------------\n");break;
printf("保险费占应发工资比率\n");
pass();break;
default:printf("该内容不存在");
}
}

我也不知道在写什么....用别人的模板..
2014-02-25 14:20
q254558116
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-2-25
收藏
得分:0 
前面的信息资料感觉自己好像没写错,至于后面的,救不知道该怎么去写了!
2014-02-25 14:28
q254558116
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-2-25
收藏
得分:0 
回复 5楼 hzz6866223
那是改成绩管理系统的。。只是后面没改完。。。感觉越改越乱了。。所以
2014-02-25 20:09
q254558116
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-2-25
收藏
得分:0 
#include"stdio.h"
#include"string.h"
#define face    " ******************************菜单*******************************************\n\n\
  1.此操作无效                       2.显示所有员工信息\n\
  3.显示员工信息                     4.最大应发工资和实发工资人员数据\n\
  5.查看各工种保险费占其应发工资比率 6.查看工资总额和各工种实发工资总额\n\n\
 *****************************************************************************\n"                 
 
struct information{
int  num;  /////////工号
char  name[15]; ///////姓名
int   age;   //////////年龄
char  type[15];  /////工种
int   b_salary;  ///////////基本工资
float p_salary;  ///////////岗位工资
float safe_cost; /////////////保险费用
int   r_salary;  ////////实发工资
};
   
int  show_info(information info[6],int);////按姓名及工号输出工资清单  

int  max_salary(information info[6],int count);/////最大应发工资和最大实发工资函数,输出最大应发工资和最大实发工资人员的数据

int  safe_cost_rate(information info[6],int);  ///////////////////////按工种计算保险费占应发工资比率的输出数据

int  sum(information info[6],int); ////////////////计算工资总额和工种工资总额函数

int  show_list(information info[6],int count); /////////显示清单

main()
{
    printf(face);
    int count=0; //////////表中的员工数目
    int i,result=0;
    information info[6]={01,"叶成",19,"清洁工",350,150.0,10.0,490,
02,"彭冬花",20,"清洁工",350.0,150.0,10.0,490.0,
03,"程虹",20,"清洁工",350.0,150.0,10.0,490.0,
04,"胡盼",20,"经理",500.0,200.0,50.0,650.0,
05,"刘光强",20,"经理",500.0,200.0,50.0,650.0,
06,"董瑶",20,"经理",500.0,200.0,50.0,650.0,};
    while(1)
    {   
        printf("~~~~~~~~请输入您要选择的操作号码~~~~~~~~\n");
        scanf("%d",&i);
        switch(i){
        case 2:
            show_list(info,6);break;
        case 3:
            show_info(info,6);break;
        case 4:
            max_salary(info,6);break;
        case 5:
            safe_cost_rate(info,6);break;
        case 6:
            sum(info,6);break;
        default:
            printf("  您的输入有误请重新输入\n");
            break;
        }
    }
}

int sum(information info[6],int count) //////////所有员工的工资之和,和同一工种的员工工资之和
{
    int i,sum=0,type_sum=0;
    char type[15];
    printf("请输入工种名\n");
    scanf("%s",type);
    for(i=0;i<count;i++) {
        if(!strcmp(info[i].type,type)) type_sum=type_sum+info[i].r_salary; ////////如果是同一工种求和
        sum=sum+info[i].r_salary; //////////////求总工资
    }
    printf("员工工资总额为:%d\n工种%s工资总额为:%d\n",sum,type,type_sum);
    return 0;
}

int safe_cost_rate(information info[6],int count) //////////保险费用占工种岗位工资的比率
{
    int i;
    char type[15];
    printf("请输入工种名\n");
    scanf("%s",type);
    for(i=0;i<count;i++)
        if(!strcmp(info[i].type,type)) {  /////////////查找出匹配工种,并输出比率
            printf("保险费用占该工种应发工资的比率为:%.3f\n",info[i].safe_cost/info[i].p_salary);
            return 0;
        }
    printf("无此工种\n");
    return 0;
}

int max_salary(information info[6],int count) /////////////输出最大应发工资人员的数据和最大实发人员的数据
{
    int i,s_max=0,r_max=0,s_[15],r_[15],j=0,k=0;
    for(i=0;i<count;i++){
        if(s_max==(int)info[i].p_salary) {j++;s_[j]=i;printf("ok\n");} /////////如果有一样大的成员记录其在数组中的位置
        if(s_max<info[i].p_salary) {s_max=info[i].p_salary;j=0;s_[j]=i;} ///////////如果出现更大的将J置0,重新开始记录

        if(r_max==info[i].r_salary) {k++;r_[k]=i;}     ///////////////////原理同上
        if(r_max<info[i].r_salary) {r_max=info[i].r_salary;k=0;r_[k]=i;}
    }
    //////////////以下是输出统计结果
    printf("最大应发工资人员数据为\n");
        for(i=0;i<=j;i++)
            printf("%d %s %d %s %d %.0f %.0f %d\n",
            info[s_[i]].num,info[s_[i]].name,info[s_[i]].age,info[s_[i]].type,info[s_[i]].b_salary,
            info[s_[i]].p_salary,info[s_[i]].safe_cost,info[s_[i]].r_salary);

     printf("最大实发工资人员数据为\n");  
        for(i=0;i<=k;i++)
            printf("%d %s %d %s %d %.0f %.0f %d\n",
            info[r_[i]].num,info[r_[i]].name,info[r_[i]].age,info[r_[i]].type,info[r_[i]].b_salary,
            info[r_[i]].p_salary,info[r_[i]].safe_cost,info[r_[i]].r_salary);
        
        return 0;
}

int show_info(information info[6],int count) ///////////根据员工姓名显示其数据
{
     char name[15];
     int i;
     printf("请输入您要查看的员工姓名\n");
     scanf("%s",name);
     for(i=0;i<count;i++)
         if(!strcmp(info[i].name,name)) { /////////对输入的员工姓名进行匹配,如果有则进行输出
             printf("%d %s %d %s %d %.0f %.0f %d\n",info[i].num,info[i].name,info[i].age,info[i].type,
                 info[i].b_salary,info[i].p_salary,info[i].safe_cost,info[i].r_salary);
             return 0;}

     printf("不存在该员工\n");
         return 0;
}

int show_list(information info[6],int count) ///////////显示清单,即所有员工的数据
{
    int i;
    for(i=0;i<count;i++)
        printf("%d %s %d %s %d %.0f %.0f %d\n",info[i].num,info[i].name,info[i].age,info[i].type,
        info[i].b_salary,info[i].p_salary,info[i].safe_cost,info[i].r_salary);
    return 0;
}
请问这个还要怎么调?   想要把那些员工信息对齐排列
2014-02-25 22:58
q254558116
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-2-25
收藏
得分:0 
#include"stdio.h"
#include"string.h"
#define face    " ******************************菜单*******************************************\n\n\
  1.此操作无效                       2.显示所有员工信息\n\
  3.显示员工信息                     4.最大应发工资和实发工资人员数据\n\
  5.查看各工种保险费占其应发工资比率 6.查看工资总额和各工种实发工资总额\n\n\
 *****************************************************************************\n"                 
 
struct information{
int  num;  /////////工号
char  name[15]; ///////姓名
int   age;   //////////年龄
char  type[15];  /////工种
int   b_salary;  ///////////基本工资
float p_salary;  ///////////岗位工资
float safe_cost; /////////////保险费用
int   r_salary;  ////////实发工资
}info[6]={01,"叶成",19,"清洁工",350,150.0,10.0,490,
02,"彭冬花",20,"清洁工",350.0,150.0,10.0,490.0,
03,"程虹",20,"清洁工",350.0,150.0,10.0,490.0,
04,"胡盼",20,"经理",500.0,200.0,50.0,650.0,
05,"刘光强",20,"经理",500.0,200.0,50.0,650.0,
06,"董瑶",20,"经理",500.0,200.0,50.0,650.0,};
   
int  show_info(information info[6],int);////按姓名及工号输出工资清单  

int  max_salary(information info[6],int count);/////最大应发工资和最大实发工资函数,输出最大应发工资和最大实发工资人员的数据

int  safe_cost_rate(information info[6],int);  ///////////////////////按工种计算保险费占应发工资比率的输出数据

int  sum(information info[6],int); ////////////////计算工资总额和工种工资总额函数

int  show_list(information info[6],int count); /////////显示清单

main()
{
    printf(face);
    int count=0; //////////表中的员工数目
    int i,result=0;
    while(1)
    {   
        printf("~~~~~~~~请输入您要选择的操作号码~~~~~~~~\n");
        scanf("%d",&i);
        switch(i){
        case 2:
            show_list(info,6);break;
        case 3:
            show_info(info,6);break;
        case 4:
            max_salary(info,6);break;
        case 5:
            safe_cost_rate(info,6);break;
        case 6:
            sum(info,6);break;
        default:
            printf("  您的输入有误请重新输入\n");
            break;
        }
    }
}

int sum(information info[6],int count) //////////所有员工的工资之和,和同一工种的员工工资之和
{
    int i,sum=0,type_sum=0;
    char type[15];
    printf("请输入工种名\n");
    scanf("%s",type);
    for(i=0;i<count;i++) {
        if(!strcmp(info[i].type,type)) type_sum=type_sum+info[i].r_salary; ////////如果是同一工种求和
        sum=sum+info[i].r_salary; //////////////求总工资
    }
    printf("员工工资总额为:%d\n工种%s工资总额为:%d\n",sum,type,type_sum);
    return 0;
}

int safe_cost_rate(information info[6],int count) //////////保险费用占工种岗位工资的比率
{
    int i;
    char type[15];
    printf("请输入工种名\n");
    scanf("%s",type);
    for(i=0;i<count;i++)
        if(!strcmp(info[i].type,type)) {  /////////////查找出匹配工种,并输出比率
            printf("保险费用占该工种应发工资的比率为:%.3f\n",info[i].safe_cost/info[i].p_salary);
            return 0;
        }
    printf("无此工种\n");
    return 0;
}

int max_salary(information info[6],int count) /////////////输出最大应发工资人员的数据和最大实发人员的数据
{
    int i,s_max=0,r_max=0,s_[15],r_[15],j=0,k=0;
    for(i=0;i<count;i++){
        if(s_max==(int)info[i].p_salary) {j++;s_[j]=i;} /////////如果有一样大的成员记录其在数组中的位置
        if(s_max<info[i].p_salary) {s_max=info[i].p_salary;j=0;s_[j]=i;} ///////////如果出现更大的将J置0,重新开始记录

        if(r_max==info[i].r_salary) {k++;r_[k]=i;}     ///////////////////原理同上
        if(r_max<info[i].r_salary) {r_max=info[i].r_salary;k=0;r_[k]=i;}
    }
    //////////////以下是输出统计结果
    printf("最大应发工资人员数据为\n");
        for(i=0;i<=j;i++)
            printf("%d\t %s\t %d\t %s\t %d\t %.0f\t %.0f\t %d\n",
            info[s_[i]].num,info[s_[i]].name,info[s_[i]].age,info[s_[i]].type,info[s_[i]].b_salary,
            info[s_[i]].p_salary,info[s_[i]].safe_cost,info[s_[i]].r_salary);

     printf("最大实发工资人员数据为\n");  
        for(i=0;i<=k;i++)
            printf("%d\t %s\t %d\t %s\t %d\t %.0f\t %.0f\t %d\n",
            info[r_[i]].num,info[r_[i]].name,info[r_[i]].age,info[r_[i]].type,info[r_[i]].b_salary,
            info[r_[i]].p_salary,info[r_[i]].safe_cost,info[r_[i]].r_salary);
        
        return 0;
}

int show_info(information info[6],int count) ///////////根据员工姓名显示其数据
{
     char name[15];
     int i;
     printf("请输入您要查看的员工姓名\n");
     scanf("%s",name);
     for(i=0;i<count;i++)
         if(!strcmp(info[i].name,name)) { /////////对输入的员工姓名进行匹配,如果有则进行输出
             printf("%d %s %d %s %d %.0f %.0f %d\n",info[i].num,info[i].name,info[i].age,info[i].type,
                 info[i].b_salary,info[i].p_salary,info[i].safe_cost,info[i].r_salary);
             return 0;}

     printf("不存在该员工\n");
         return 0;
}

int show_list(information info[6],int count) ///////////显示清单,即所有员工的数据
{
    int i;
        printf("工号     姓名    年龄    工种    基本工资 岗位工资  保险费  实发工资\n");
    for(i=0;i<count;i++)
        printf("%-5d\t %-5s\t %-5d\t %-5s\t %-5d \t   %-5.0f    %-5.0f   %-5d\n",info[i].num,info[i].name,info[i].age,info[i].type,
        info[i].b_salary,info[i].p_salary,info[i].safe_cost,info[i].r_salary);
    return 0;
}
总是错误..
2014-02-25 23:26
快速回复:用C++编一个小程序!!!!
数据加载中...
 
   



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

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