回 帖 发 新 帖 刷新版面

主题:[讨论]会C语言的大虾帮下忙!~~改改!~

题目:
职工工资管理系统设计
职工工资表包括:工号、姓名、基本工资、职务工资、岗位津贴、特殊津贴等。 
主要功能:
1、能够完成对职工工资的录入和修改
2、对职工工资进行排序
3、对职工工资进行查询
4、可以对职工号实施删除和添加
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#define N 100 
struct worker{
    int gh;
    char name[10];
    int jbgz;
    int zwgz;
    int gwjt;
    int tsjt;
}s[N];

void luru()
{
int i;
for(i=0;i<N;i++)
{

    printf("请输入工号:");
    scanf("%d",&s[i].gh);
    printf("请输入职工姓名:");
    scanf("%s",s[i].name);
    printf("请基本工资:");
    scanf("%d",&s[i].jbgz);
    printf("请输入职务工资:");
    scanf("%d",&s[i].zwgz);
    printf("请输入岗位津贴::");
    scanf("%d",&s[i].gwjt);
    printf("请输入特殊津贴:");
    scanf("%d",&s[i].tsjt);
}
}

void gaibian()
{
    int i,j,a,b,t;
    char m[10];
    printf("What's you want to Modify:");
    printf("1.姓名      2.工号");
    printf("Input your selection: ");
    scanf("%d",&a);
    if(a==1)
    {

        printf("Please input the name:");
        scanf("%s",m);
        for(i=0;i<N;i++)
        if(strcmp(m,s[i].name)==0)
           j=i;
    }
    else if(a==2)
          {printf("Please input the gh:");
           scanf("%d",&b);
            for(i=0;i<N;i++)
            if(b==s[i].gh)
        j=i;
           }
        else printf("Not find!\n");
    printf("what's your want to modiy?");
    printf("1.工号      2.姓名");
    printf("3.基本工资     4.职务工资");
    printf("5.岗位津贴      6.特殊津贴");
    printf("Input your selection: ");
    scanf("%d",&t);
    switch(t)
    {    
        case 1:printf("change to:");scanf("%d",&s[j].gh);break;
        case 2:printf("change to:");scanf("%s",s[j].name);break;
        case 3:printf("change to:");scanf("%d",&s[j].jbgz);break;
        case 4:printf("change to:");scanf("%d",&s[j].zwgz);break;
        case 5:printf("change to:");scanf("%d",&s[j].gwjt);break;
        case 6:printf("change to:");scanf("%d",&s[j].tsjt);
    }

}

void paixu()
{
    int i,j,k,t;
    for(i=0;i<N-1;i++)
    {k=i;
        for(j=i+1;j<N;j++)
            if(s[k].jbgz>s[j].jbgz)
            k=j;
                t=s[k].jbgz;
                s[k].jbgz=s[i].jbgz;
                s[i].jbgz=t;

}
}

void chaxun()
{
    int i,j[20]={-1},a,b,t=0;
    char m[10];
    printf("What's you want to Query:");
    printf("1.工号      2.姓名");
    printf("Input your selection: ");
    scanf("%d",&a);
    if(a==1)
    {
        printf("Please input the name:");
        scanf("%s",&m);
        for(i=0;i<N;i++)
        if(strcmp(m,s[i].name)==0)
        {
            j[t]=i;
            t=t+1;
        }
    }
    else if(a==2)
    {
        printf("Please input the gh:");
        scanf("%d",&b);
        for(i=0;i<N;i++)
        if(b==s[i].gh)
        {
            j[t]=i;
            t++;
        }
    }
    if(j[0]==-1&&t==0)
        printf("Not find!\n");
    if(j[0]!=-1&&t!=0)
        printf("工号   姓名  基本工资  职务工资  岗位津贴  特殊津贴\n");
        printf("%-9d %-10s%-10d%-10d%-10d%-10d%-10d",s[j].gh,s[j].name,s[j].jbgz,s[j].zwgz,s[j].gwjt,s[j].tsjt);

}



void shanchu()
{
    int i,j,a,b;
    char m[10];
    printf("What's you want to Delete:");
    printf("1.工号      2.姓名");
    printf("Input your selection: ");
    scanf("%d",&a);
    if(a==1)
    {
        printf("Please input the name:");
        scanf("%s",&m);
        for(i=0;i<N;i++)
        if(strcmp(m,s[i].name)==0)
                j=i;
    }
    else if(a==2)
    {
        printf("Please input the gh:");
            scanf("%d",&b);
            for(i=0;i<N;i++)
            if(b==s[i].gh)
                    j=i;
    }
    if(j!=-1)
    {  

        for(i=j;i<=N-1;i++)
        s[i]=s[i+1];
    }      
    else if(j==-1)
    printf("Not find!\n");               
}


void xiugai()
{  
    int n,i;
    printf("How many people you want to add:");
    scanf("%d",&n);

    printf("Now,please add them:\n");
    for(i=1;i<=n;i++)
     {
        printf("工号:");
        scanf("%d",&s[N-n-1+i].gh);
        printf("姓名:");
        scanf("%s",s[N-n-1+i].name);
        printf("基本工资:");
        scanf("%d",&s[N-n-1+i].jbgz);
        printf("职务工资:");
        scanf("%d",&s[N-n-1+i].zwgz);
        printf("岗位津贴:");
        scanf("%d",&s[N-n-1+i].gwjt);
        printf("特殊津贴:");
        scanf("%d",&s[N-n-1+i].tsjt);
    }


main()
{
    int choice;
    char name[10];
system("graftabl 936");
clrscr();
    do{
        printf("职工工资管理系统功能选项:1:录入 ;\n");
        printf("职工工资管理系统功能选项:2:修改 ;\n");
        printf("职工工资管理系统功能选项:3:排序 ;\n");
        printf("职工工资管理系统功能选项:4:查询 ;\n");
        printf("职工工资管理系统功能选项:5:删除 ;\n");
        printf("职工工资管理系统功能选项:6:修改 ;\n");
        printf("请选择功能");
        scanf("%d",&choice);
        switch(choice)
        {
        case 1:luru();break;
        case 2:gaibian();break;
        case 3:paixu();break;
        case 4:chaxun();break;
        case 5:shanchu(); break;
        case 6: xiugai();
        }
    }while(choice!=0);
    printf("谢谢使用职工工资管理系统\n");
    return 0;
}




我发觉出来的结果不太对头!~~我是WIN-TC弄的!~~我的平时成绩30分就靠大虾们了!~~帮下忙!~~~

回复列表 (共4个回复)

沙发

题外话:把获得利益的希望寄托在跟自己的利益不相干的人身上,无异于水中观月
题外话2:麻烦你把问题提得明确一些可以吗?比如你想要做什么,现在你觉得程序没有做到什么,一次“不太对劲”的输入输出时什么样的?
正题:你的排序函数做了半天只交换了基本工资,这应该是不符合题意的,题目要求的排序应该是人员信息跟着整体排序一起发生变化吧,呵呵。

板凳

你们的30分真难挣~不如我们,哈哈~

3 楼

现在有好多版本的说法,那位高手能告诉我权威的说法?多谢了

4 楼

[code=c]
void chaxun()
{
    int i,j[20]={-1},a,b,t=0;
    char m[10];
    printf("What's you want to Query:");
    printf("1.工号      2.姓名");
    printf("Input your selection: ");
    scanf("%d",&a);
    if(a==1)
    {
        printf("Please input the name:");
        scanf("%s",&m);
        for(i=0;i<N;i++)
            if(strcmp(m,s[i].name)==0)
            {
                j[t]=i;
                t=t+1;
            }
    }
    else if(a==2)
    {
        printf("Please input the gh:");
        scanf("%d",&b);
        for(i=0;i<N;i++)
            if(b==s[i].gh)
            {
                j[t]=i;
                t++;
            }
    }
    if(j[0]==-1&&t==0)
        printf("Not find!\n");
    if(j[0]!=-1&&t!=0)
        printf("工号   姓名  基本工资  职务工资  岗位津贴  特殊津贴\n");
    printf("%-9d %-10s%-10d%-10d%-10d%-10d%-10d",s[j[0]].gh,s[j[0]].name,s[j[0]].jbgz,s[j[0]].zwgz,s[j[0]].gwjt,s[j[0]].tsjt);//这里s[j]我给你改成了s[j[0]]不知道是不是你的本意,你可以根据你的本意修改,反正数组的下标肯定不能是数组名
    

}
[/code]

我来回复

您尚未登录,请登录后再回复。点此登录或注册