⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gz.c

📁 大学计算机课程设计 工资管理系统[自编] C语言描述
💻 C
字号:
// 西安邮电学院工资管理系统
//在Dev C++ 4.9 和Vc++6.0下编译通过 
//


#include "stdafx.h" //在dev c++中请删除

#include <stdio.h>
#include <stdlib.h>

struct GZ
{
//如工资卡号、姓名、性别、部门、技术职称、技术职称编号、电话等。
//基本工资、应发工资、扣款、税金、实发工资等。
	int CardNum;
	char Name[8];
	char Sex[2];
	char Part[30];
	char ZhiCheng[10];
	int ZhiChengNum;
	char Tel[12];
	int Age;
	int JBgz;
	int YFgz;

	int Kgz;
	int SFgz;
};
struct GZ Data[100];//结构体数组 

int index[100];//索引 
 
int MaxP=0;//总记录数 

int main()
{
	int input();
	int read();
    int out(); 
    
    int outindex(); 
    int del(); 
    int outn(int i) ;
	int save();
	int out1();
	int out2(); 
    int outm(); 
    int tongji(); 
	int edit(); 
	int charu();
    double shui(); 
    char c;
	 
	while(c!='0')
	{
	
		printf("\n\n\n\n\n\n\n\n\n\n\n");
	printf("                 ================================\n");
	printf("                     西安邮电学院工资管理系统\n");
	printf("                                       尚晓松\n"); 
	printf("                 ================================\n");
	printf("                        [1]--------输入\n");
	printf("                        [2]--------保存\n");
//	printf("                        [3]--------查找\n");
//	printf("                        [4]--------统计\n");
	printf("                        [5]--------输出\n");
	printf("                        [6]--------插入\n");
	printf("                        [7]--------删除\n");
	printf("                        [8]--------编辑\n");
	printf("                        [9]--------导入\n");
	printf("                        [0]--------退出\n");
	printf("                 =================================\n");
	printf("                        请输入:");
	c=getchar();
	switch (c)
	{
		case '0':break;
		case '1':input();break; 
		case '2':save();break ;
        case '7':del(); break; 
	    case '9':read(); break; 
	    case '5':outm();break; 
	    case '8':edit();break; 
	    case '6':charu();break; 
	    case '4':outindex();break; 
	     
	}
	}
	return 0;

}


int input()
{
	int i=MaxP;
	char c;
	printf("\n\n");
	printf("================\n");
	printf("    输入数据\n");
	printf("================\n\n\n");
	
//如工资卡号、姓名、性别、部门、技术职称、技术职称编号、电话等。
//基本工资、应发工资、扣款、税金、实发工资等。
	printf("=============================================\n");
	printf("工资卡号:");
	scanf("%d",&Data[i].CardNum);
	printf("姓名:");
	scanf("%s",&Data[i].Name);
	printf("性别(W/M):");
	scanf("%s",&Data[i].Sex);
	printf("年龄:");
	scanf("%d",&Data[i].Age);
	printf("部门:");
	scanf("%s",&Data[i].Part);
	printf("技术职称:");
	scanf("%s",&Data[i].ZhiCheng);
	printf("职称编号:");
	scanf("%d",&Data[i].ZhiChengNum);
	printf("电话:");
	scanf("%s",&Data[i].Tel);
	printf("基本工资:");
	scanf("%d",&Data[i].JBgz);
	printf("扣款:");
	scanf("%d",&Data[i].Kgz);
	/*
	printf("=============================================\n");

	printf("工资卡号:%d\n",Data[i].CardNum);
	printf("姓名:%s\n",Data[i].Name);
	printf("性别(W/M):%s\n",Data[i].Sex);
	printf("年龄:%d\n",Data[i].Age);
	printf("部门:%s\n",Data[i].Part);
	printf("技术职称:%s\n",Data[i].ZhiCheng);
	printf("职称编号:%d\n",Data[i].ZhiChengNum);
	printf("电话:%s\n",Data[i].Tel);
	printf("基本工资:%d\n",Data[i].JBgz);
	printf("扣款:%d\n",Data[i].Kgz);
	*/
	MaxP++;
    
	index[i+1]=i+1; 
    printf("=============================================\n");
	
	++i;
       
	return 0;
}


int save()
{
	FILE *steam;
	int i,j; 
    char filename[50];
	
	printf("输入文件目录及文件名:");
	scanf("%s",&filename);
	steam=fopen(filename,"w+");
	fwrite(&MaxP,2,1,steam); 
    for(j=0;j<MaxP;j++)
      {
           i=index[j]; 
           if(i==-1)continue; 
           fwrite(&Data[i],sizeof(struct GZ),1,steam);
           }
    fclose(steam); 
	return 0;
}


int read()
{
 	FILE *steam;
	int i; 
    char filename[50];
	
	printf("输入文件目录及文件名:");
	scanf("%s",&filename);
	steam=fopen(filename,"r+");
	fread(&MaxP,2,1,steam); 
    for(i=0;i<MaxP;i++)
      {
           index[i]=i; 
           fread(&Data[i],sizeof(struct GZ),1,steam);
           }
    fclose(steam); 
	return 0;
}    


 
 
int out()
{
  	    int j; 
  	    int i; 
          for(j=0;j<MaxP;j++)
      {
      i=index[j]; 
      printf("=============================================\n");

	printf("工资卡号:%d\n",Data[i].CardNum);
	printf("姓名:%s\n",Data[i].Name);
	printf("性别(W/M):%s\n",Data[i].Sex);
	printf("年龄:%d\n",Data[i].Age);
	printf("部门:%s\n",Data[i].Part);
	printf("技术职称:%s\n",Data[i].ZhiCheng);
	printf("职称编号:%d\n",Data[i].ZhiChengNum);
	printf("电话:%s\n",Data[i].Tel);
	printf("基本工资:%d\n",Data[i].JBgz);
	printf("扣款:%d\n",Data[i].Kgz);
	printf("=============================================\n");
}
 
 
system("PAUSE"); 
return 0; 
}


int outn(int i)
{
   
      printf("=============================================\n");

	printf("工资卡号:%d\n",Data[i].CardNum);
	printf("姓名:%s\n",Data[i].Name);
	printf("性别(W/M):%s\n",Data[i].Sex);
	printf("年龄:%d\n",Data[i].Age);
	printf("部门:%s\n",Data[i].Part);
	printf("技术职称:%s\n",Data[i].ZhiCheng);
	printf("职称编号:%d\n",Data[i].ZhiChengNum);
	printf("电话:%s\n",Data[i].Tel);
	printf("基本工资:%d\n",Data[i].JBgz);
	printf("扣款:%d\n",Data[i].Kgz);
	printf("=============================================\n");
return 0; 
}


int out1()
{
    int j;
    int i; 
    printf("\n\n\     教师基本情况表\n");
    printf("=============================================================================\n");
    printf("序号 工资卡号    姓名  性别 年龄          部门    技术职称  职称编号     电话\n"); 
        printf("=============================================================================\n");
        for(j=0;j<MaxP;j++)
    {
        i=index[j];
         if(i==-1)continue; 
        printf("%4d%8d%8s  %2s    %2d %16s%10s   %5d   %10s\n",j+1,Data[i].CardNum,Data[i].Name,Data[i].Sex,Data[i].Age,Data[i].Part,Data[i].ZhiCheng,Data[i].ZhiChengNum,Data[i].Tel); 
        }
                printf("=============================================================================\n");
system("PAUSE"); 
}   

double shui(int num)
{
 /* 税金计算方法为:
应发工资<1000元,税金=0;
1000<应发工资<2000元, 税金=(应发工资-1000)?5%
应发工资>2000元, 税金=(应发工资-2000)?10%
*/ 
if(num<1000) return 0;
else if(num<2000) return ((num-1000)*0.05);
else return ((num-2000)*0.1);
}

int out2()
{
     int j;
     int yingfagongzi,shuijin,shifagongzi; 
    int i; 
    printf("\n\n\     全体教师工资信息表\n");
    printf("=============================================================================\n");
    printf("序号 工资卡号    姓名    基本工资    应发工资   扣除   税金   实发工资\n"); 
        printf("=============================================================================\n");
        for(j=0;j<MaxP;j++)
    {
        i=index[j];
         if(i==-1)continue; 
         shuijin=shui(Data[i].JBgz);
         yingfagongzi= Data[i].JBgz-shui(Data[i].JBgz);
         shifagongzi=Data[i].JBgz-shuijin-Data[i].Kgz;
        printf("%4d%8d%8s    %5d        %5d    %5d   %5d    %5d\n",j+1,Data[i].CardNum,Data[i].Name,Data[i].JBgz,yingfagongzi,Data[i].Kgz,shuijin,shifagongzi); 
        }
                printf("=============================================================================\n");
system("PAUSE"); 
}       

int outm()
{
    char c;
   while(c!='0')
    {
                c=getchar();
                printf("\n         ============================\n");
    printf("          [1]----教师基本情况表\n");
    printf("          [2]----全体教师工资信息表\n");
    printf("          [0]--------返回\n");
    printf("         =============================\n");
    printf("          请输入:"); 
    
    switch (c)
    {
     case '1' : out1();break;
     case '2' : out2();break;
   }
}
   return 0; 
}


int tongji()
{
    /*
;如:年龄在20岁以上,45岁以下的员工数;年龄55岁以上退休员工数。
,并输出。
c.按照应发工资对全体教师进行排序,并输出。
,并输出。
e.统计各种职称教师的人数,并输出。
*/ 

printf("a.统计各种年龄教师的总数\n"); 
printf("b.统计全学院教师的工资总额以及平均工资\n");
printf("d.统计各系教师工资总额以及平均工资");


;}
     
     
int edit()
{
    int i;
    out1();
    printf("输入要修改记录的序号:");
    scanf("%d",&i); 
   	i--; 
    printf("=============================================\n");
	printf("工资卡号:%d\n修改为:",Data[i].CardNum);
	scanf("%d",&Data[i].CardNum);
	printf("姓名:%s\n修改为:",Data[i].Name);
	scanf("%s",&Data[i].Name);
	printf("性别(W/M):%s\n修改为:",Data[i].Sex);
	scanf("%s",&Data[i].Sex);
	printf("年龄:%d\n修改为:",Data[i].Age);
	scanf("%d",&Data[i].Age);
	printf("部门:%s\n修改为:",Data[i].Part);
	scanf("%s",&Data[i].Part);
	printf("技术职称:%s\n修改为:",Data[i].ZhiCheng);
	scanf("%s",&Data[i].ZhiCheng);
	printf("职称编号:%d\n修改为:",Data[i].ZhiChengNum);
	scanf("%d",&Data[i].ZhiChengNum);
	printf("电话:%s\n修改为:",Data[i].Tel);
	scanf("%s",&Data[i].Tel);
	printf("基本工资:%d\n修改为:",Data[i].JBgz);
	scanf("%d",&Data[i].JBgz);
	printf("扣款:%d\n修改为:",Data[i].Kgz);
	scanf("%d",&Data[i].Kgz);

     
    }
    
    
int del()
{
     int i;
    out1();
    printf("输入要修删除记录的序号:");
    scanf("%d",&i); 
    index[i-1]=-1;
}

int charu()
{
    int i,j;
    out1();
    printf("%d\n",MaxP); 
    printf("输入要插入记录的序号:");
    scanf("%d",&i); 
    for(j=MaxP;j>i;j--)index[j]=index[j-1];           
    index[i]=MaxP;
    i=MaxP; 
    printf("=============================================\n");
	printf("工资卡号:");
	scanf("%d",&Data[i].CardNum);
	printf("姓名:");
	scanf("%s",&Data[i].Name);
	printf("性别(W/M):");
	scanf("%s",&Data[i].Sex);
	printf("年龄:");
	scanf("%d",&Data[i].Age);
	printf("部门:");
	scanf("%s",&Data[i].Part);
	printf("技术职称:");
	scanf("%s",&Data[i].ZhiCheng);
	printf("职称编号:");
	scanf("%d",&Data[i].ZhiChengNum);
	printf("电话:");
	scanf("%s",&Data[i].Tel);
	printf("基本工资:");
	scanf("%d",&Data[i].JBgz);
	printf("扣款:");
	scanf("%d",&Data[i].Kgz);
	MaxP++; 
	return 0;
}
     
     
int outindex()
{
    int i;
    for(i=0;i<MaxP;i++)
    {
                        printf("%d ",index[i]);
                        
                        
                        }
       system("PAUSE");     
	   return 0;
}    
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -