C语言实现小型工资管理系统

本文实例为大家分享了C语言实现小型工资管理系统的具体代码,供大家参考,具体内容如下

课程大作业目的

通过该大作业,考察学生分析、解决复杂问题的能力,考察学生编写较大程序的能力,检验和评价《程序设计基础》课程的学习效果

大作业内容

编写一个小型工资管理系统,用来管理职工的个人基本信息及工资薪酬等数据

基本要求

1、每个职工的数据应包括:工号、姓名、性别、部门、基本工资、绩效工资、奖金、应发工资(应发工资=基本工资+绩效工资+奖金)。职工数据要求采用结构体数据类型。

2、菜单显示:显示系统的一级功能菜单(数据输入、数据修改、数据处理、数据输出、退出)。

3、数据输入:至少输入10个职工的各项数据(应发工资由系统自动计算,不需要输入)。**录入的第一条记录用自已的真实姓名,部门为自己的真实班级。**并将有自己真实姓名、班级的输出结果截屏保存到大作业总结报告中。

4、数据修改:输入工号,修改指定工号的各项数据。输出修改完成后的全部职工数据。

5、数据处理:处理方式包括:排序、查询。可提供子菜单让用户选择。其中:

(1) 排序:按工号排序,显示所有职工的全部数据。

(2) 查询:按工号查询,显示指定工号的全部数据。

6、数据输出:输出全部职工的各项数据。

7、新增 删除职工数据

8、新增 统计职工男女数量

9、退出:退出整个工资管理系统。

代码如下

#include <stdio.h>
#include <string.h>
struct staff
{
 char number[20];
 char name[20];
 char gender[10];
 char bumen[20];
 double jbgz;
 double jxgz;
 double bonus;
 double yfgz; 
};
double jbgz,jxgz,bonus,yfgz;
struct staff sta[10];
void inputdata();                  //1.定义数据输入函数 input data
void modifydata();       //2.定义数据修改函数 modify data
void processdata();       //3.定义数据处理函数 process data
void sortdata();       //定义数据处理函数中的按工号排序数据函数  sort data
void searchdata();       //定义数据处理函数中的按工号查询数据函数  search data
void outputdata();       //4.定义数据输出函数 output data
void deldata();        //5.定义数据删除函数 delete data       新增
void countgender();                //6.定义统计男女职工数量函数 count gender    新增 
int main()
{
 int i,choice; 
 while(1)
 {
  for(i=1;i<90;i++)
   printf("*");
  printf("\n");
  printf("1.数据输入  2.数据修改  3.数据处理  4.数据输出  5.数据删除  6.统计男女职工数量  7.退出\n");
  for(i=1;i<90;i++)
   printf("*");
  printf("\n");
  do
  {
   printf("请根据菜单输入数字:");
   scanf("%d",&choice);
  }
  while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=7);
  if(choice==7)
   break;
  else
  {
   if(choice==1) inputdata();
   else if(choice==2) modifydata();
   else if(choice==3) processdata();
   else if(choice==4) outputdata();
   else if(choice==5) deldata();
   else if(choice==6) countgender();
   else printf("该数不合法;\n");     //另加
  }
 }
 return 0;
}
void inputdata()
{
 int i;
 for(i=1;i<=10;i++)
 {
  printf("请输入第%d位职工的工号,姓名,性别,部门,基本工资,绩效工资,奖金:",i);
  scanf("%s %s %s %s %lf %lf %lf",&sta[i].number,&sta[i].name,&sta[i].gender,&sta[i].bumen,&sta[i].jbgz,&sta[i].jxgz,&sta[i].bonus);   //输入第i位职工的工号,姓名,性别,部门,基本工资,绩效工资,奖金
  sta[i].yfgz=sta[i].jbgz+sta[i].jxgz+sta[i].bonus;
  printf("输入成功\n");
 }
}
void modifydata()
{
 int i;
 char num[20];
 printf("请输入您想要修改职工的数据的工号:");
 scanf("%s",&num);
 for(i=1;i<10;i++)
 {
  if(strcmp(num,sta[i].number)==0)
  {
   printf("请输入新工号,姓名,性别,部门,基本工资,绩效工资,奖金\n");
   scanf("%s %s %s %s %lf %lf %lf",&sta[i].number,&sta[i].name,&sta[i].gender,&sta[i].bumen,&sta[i].jbgz,&sta[i].jxgz,&sta[i].bonus);
   sta[i].yfgz=sta[i].jbgz+sta[i].jxgz+sta[i].bonus;
  }
  printf("修改成功!\n");
  printf("修改后的数据为:\n");
  printf("    工号          姓名       性别        部门           基本工资           绩效工资            奖金           应发工资\n");
  printf("%s       %s           %s         %s      %f   %f    %f     %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);
  break;
 }
}
void processdata()
{
 int choice,i;
 for(i=1;i<30;i++)
  printf("*");
 printf("\n");
 printf("二级菜单:\n");
 printf("1.排序 2.查询\n");
 for(i=1;i<30;i++)
  printf("*");
 printf("\n");
 printf("请根据菜单输入数字:");
 scanf("%d",&choice);
 if(choice==1) sortdata();
 else searchdata();
}
void sortdata()
{
 int i,j,k;
 char n[10];
 for(i=1;i<=10;i++)
 {
  for(j=1;j<=10;j++)
  {
   if(strcmp(sta[i].number,sta[j].number)>0)
   {
    strcpy(n,sta[j].number);
    strcpy(sta[j].number,sta[i].number);
    strcpy(sta[i].number,n);
   }
   
  }
  
 }
 for(k=1;k<=10;k++)
 {
  printf("%s     %s    %s     %s     %lf    %lf    %lf\n",sta[k].number,sta[k].name,sta[k].gender,sta[k].bumen,sta[k].jbgz,sta[k].jxgz,sta[k].bonus,sta[k].yfgz);
 }
}
void searchdata()
{
 int i;
 char snum[20];       //snum = searchnumber
 printf("请输入您想要查询的职工工号:");
 scanf("%s",&snum);
 for(i=1;i<10;i++)
 {
  if(strcmp(snum,sta[i].number)==0)
  {
   printf("该职工的数据为:\n");
   printf("     工号           姓名           性别           部门          基本工资       绩效工资        奖金          应发工资\n\n");
   printf(" %s       %s           %s         %s      %f   %f    %f     %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);
  }
  break;
 }
}
void outputdata()
{
 int i;
 printf("     工号           姓名           性别           部门          基本工资       绩效工资        奖金          应发工资\n");
 for(i=1;i<=10;i++)
 {
  printf(" %s       %s           %s         %s      %f   %f    %f     %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);
 }
}
void deldata()
{
 int i,j,choi;
 //char Y=Y;
 //char N=N;
 char delnum[20];
 printf("请输入您想要删除职工数据的工号:");
 scanf("%s",&delnum);
 for(i=1;i<10;i++)
 {
  if(strcmp(delnum,sta[i].number)==0)
  {
   printf("该职工的数据为:\n");
   printf("     工号           姓名           性别           部门          基本工资       绩效工资        奖金          应发工资\n");
   printf(" %s       %s           %s         %s      %f   %f    %f     %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);
   printf("确认删除该名职工的数据吗?(1.确认  2.取消)\n");
   scanf("%d",&choi);
   if(choi==1)
   {
    for(i=1,j=2;j<=10;i++,j++)
    {
     strcpy(sta[i].number,sta[j].number);
     strcpy(sta[i].name,sta[j].name);
     strcpy(sta[i].gender,sta[j].gender);
     strcpy(sta[i].bumen,sta[j].bumen);
     sta[i].jbgz=sta[j].jbgz;
     sta[i].jxgz=sta[j].jxgz;
     sta[i].bonus=sta[j].bonus;
    }
    printf("删除成功!!\n"); 
   }
   else break;
  }
 }
}
void countgender()
{
 int i,count=0,fecount=0;
 char gen[10]="男";
 for(i=1;i<=10;i++)
 {
  if(strcmp(gen,sta[i].gender)==0) count++;
 }
 fecount=10-count;
 printf("该公司有%d名男职工,有%d名女职工\n",count,fecount);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言链表实现工资管理系统

    本文实例为大家分享了C语言链表实现工资管理系统的具体代码,供大家参考,具体内容如下 自己的作业,分享一下,自己为了调试方便,又多加入了一些功能 题目:建立工资管理系统,对职工工资的相关信息进行管理.职工工资相关信息包括职工工号,职工姓名,月份,每月工资和年度总工资等,具体要求如下; 1.建立该系统的存储结构2.录入职工某个月的工资3.查找某个职工某个月的工资4.修改某个职工某个月的工资5.删除每个职工的工资相关信息6.统计某个职工年度总工资7.对职工的月工资或年度总工资进行排名 源码 #incl

  • C语言实现销售管理系统

    本文实例为大家分享了C语言实现销售管理系统的具体代码,供大家参考,具体内容如下 这是题目,没用到文件相关的函数,所以不能保存在本地,每次读入都得重新输入. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<Windows.h> #include<conio.h> struct node {     char no[12];  /*代号*/     char name[

  • C语言实现职工工资管理系统

    本文实例为大家分享了C语言实现职工工资管理系统的具体代码,供大家参考,具体内容如下 设计要求: 模拟并设计一个企业的职工工资管理系统,职工信息包括工号.姓名.基本工资.津贴,设职工人数不超过500人,以菜单选项的方式完成相应的功能,主要功能需求如下: 1.建立工资表: 2.职工扣税和实发工资: 3.按实发工资从高到低的顺序显示工资明细表: 4.修改职工的工资信息: 5.按工号查询职工工资信息: 6.职工工资统计分析: 7.退出系统. 基本思路: 将职工工资管理系统的职工信息录入功能.数据处理并存

  • C语言实现员工工资管理系统

    本文实例为大家分享了C语言实现员工工资管理系统的具体代码,供大家参考,具体内容如下 看点: 1. 枚举类型的使用(录入与输出) 2. 文件的使用:用文件来存储员工信息,开始运行程序时从文件中读取员工信息到链表退出程序时将员工信息保存到文件中. 2_1. 存储结构体这样的数据块所使用的文件操作函数: 2_2. feof()函数作为循环条件的正确使用方法: 3. 链表的相关操作 3_1. 结构体中char类型的数据写入方式 4. while循环下实现的菜单与子菜单 注:部分功能还没有实现,涉及到单链

  • C语言实现考勤管理系统

    这些天因为补修c语言课设,在花费了一段时间后写完了这个课设,课设的要求如下: 考勤信息记录了学生的缺课情况,它包括:缺课日期.第几节课.课程名称.学生姓名.缺课类型(迟到.早退.请假及旷课).试设计一考勤管理系统,使之能提供以下功能: (1) 录入学生的缺课记录:(2) 修改某个学生的缺课记录:(3) 查询某个学生的缺课情况:(4) 统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序:(5) 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序:(6) 系统以菜单方式工

  • C语言实现小型工资管理系统

    本文实例为大家分享了C语言实现小型工资管理系统的具体代码,供大家参考,具体内容如下 课程大作业目的 通过该大作业,考察学生分析.解决复杂问题的能力,考察学生编写较大程序的能力,检验和评价<程序设计基础>课程的学习效果 大作业内容 编写一个小型工资管理系统,用来管理职工的个人基本信息及工资薪酬等数据 基本要求 1.每个职工的数据应包括:工号.姓名.性别.部门.基本工资.绩效工资.奖金.应发工资(应发工资=基本工资+绩效工资+奖金).职工数据要求采用结构体数据类型. 2.菜单显示:显示系统的一级功

  • C语言实现职工工资管理系统的示例代码

    目录 一.需求分析 二.项目环境 2.1.项目创建过程 2.2.向项目添加头文件与源文件 三.职工工资管理系统模块功能 3.1.系统总体设计框图 3.2.系统模块总体设计 3.3.设计系统菜单功能 3.4.设计系统输入模块 3.5.设计系统查询模块 3.6.设计系统修改模块 3.7.设计系统删除模块 3.8.设计系统统计模块 3.9.设计系统输出模块 3.10.设计系统追加模块 3.11.设计系统退出模块 总结 一.需求分析 1.随着计算机的飞速发展,它的应用已经十分广泛,它在人们的生产.生活.

  • C语言实现简单员工工资管理系统

    本文实例为大家分享了C语言实现简单员工工资管理系统的具体代码,供大家参考,具体内容如下 (一)公司现状分析 1.公司主要有经理.技术员.销售员.销售经理4类岗位人员,他们都有基本信息:职工号.姓名.性别.部门.岗位.工龄.当月工资等.一个部门最多只能有一个销售经理,一个部门可以有多个销售员,一个部门可以有若干个经理和若干技术员. 2.员工数据包括基本资料数据和工资数据两部分,员工基本资料数据包括职工号.姓名.性别.部门.岗位.工龄:员工工资数据包括工作时间.小时工资.销售额.底薪.当月工资. 3

  • C语言实现企业员工管理系统开发

    本文实例为大家分享了C语言实现企业员工管理系统的具体代码,供大家参考,具体内容如下 程序介绍 系统介绍 企业员工信息管理系统主要是对企业员工的基本信息进行增.删.改.查的相关操作,以便用户可以快速地对这些信息进行管理.本系统对管理者的控制更加严格,只设置一个管理账号. 操作流程 用户在编译完成后会产生一个系统的可执行文件,用户只要双击可执行文件就可以进入系统,如果是第一次进入系统,首先要对系统进行初始化,如图所示,初始化完成后,再次双击系统执行文件,进入如图的界面. 用户在输入正确密码后,进入系

  • C语言实现学生成绩管理系统

    设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能. 功能要求 1.每一条记录包括一个学生的学号.姓名.3门课成绩.平均成绩. 2.输入功能:可以一次完成若干条记录的输入. 3.显示功能:完成全部学生记录的显示. 4.查找功能:完成按姓名查找学生记录,并显示. 5.排序功能:按学生平均成绩进行排序. 6.插入功能:按平均成绩高低插入一条学生记录 7.删除功能:如果输入错误,可以删除学生记录: 8.退出. 代码: #i

  • C语言实现学生信息管理系统(单链表)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年7月1日 * 版本号:codeblock * * 问题描述: 学生信息管理系统 * 输入描述: * 程序输出: 输出结果 */ #include <stdio.h> #include <stdlib.h> #include

  • C语言版学生成绩管理系统

    本文实例为大家分享了C语言版学生成绩管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<string.h> #include<algorithm> char buf[255]; char c=14; char path[]="D:\\data"; char tm

随机推荐