职工工资管理系统C语言

合集下载

员工工资管理系统(c语言编程)

员工工资管理系统(c语言编程)

scanf("%s",num); p=isExists(num); p=p->next; if(p!=null) listOne(p); else printf("\n\t\t printf("\n\t\t getchar(); } 您所输入的员工信息有误或不存在! ......"); ");
按任意键返回主菜单
#include<stdio.h> #include<string.h> #include<ctype.h> #include<malloc.h> #define null 0 typedef struct Info1 { char num[10]; char name[10]; char depar[10]; char yfsalary[10]; char aband[10]; char tax[10]; char sfsalary[10]; struct Info1 *next; }Info2; typedef struct Info1 *Info; Info head; void display(); void find(); void modify(); void add(); void del(); void list(); void listOne(Info s); Info isExists(char *num); void init(); void init() { head=(Info)malloc(sizeof(Info2)); head->next=null; } void main() { init(); while(1) { char c;
p=head; q=p->next; while(q!=null) { if(strcmp(q->num,num)==0) return p; p=q; q=p->next; } return p; }

员工工资管理系统(c语言编程)

员工工资管理系统(c语言编程)

#include<stdio.h>#include<string.h>#include<ctype.h>#include<malloc.h>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];char aband[10];char tax[10];char sfsalary[10];struct Info1 *next;}Info2;typedef struct Info1 *Info;Info head;void display();void find();void modify();void add();void del();void list();void listOne(Info s);Info isExists(char *num);void init();void init(){head=(Info)malloc(sizeof(Info2));head->next=null;}void main(){init();while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统 **\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");printf("\t\t1.查询员工信息\n");printf("\t\t2.录入员工信息\n");printf("\t\t3.修改员工信息\n");printf("\t\t4.删除员工信息\n");printf("\t\t6.显示所有员工信息\n");printf("\t\t7.退出系统\n");printf("\t============================================\n");printf("\t您的选择是: ");}void listOne(Info p){printf("\n该员工信息记录如下: ");printf("\n==========================================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yf salary,p->aband,p->tax,p->sfsalary);}Info isExists(char *num){Info p,q;p=head;q=p->next;while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s", q->yfsalary);printf("\t\t请输入该员工的保险金额: ");scanf("%s", q->aband);printf("\t\t请输入该员工的税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的实付工资: ");scanf("%s",q->sfsalary);q->next=null;p->next=q;}elseprintf("\n\t\t您所输入的员工编号以存在! ");printf("\n\t\t按任意键返回住菜单......");getchar();}void del(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null)listOne(q);printf("\t\t请输入该员工的新姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s",q->yfsalary);printf("\t\t请输入该员工的保险: ");scanf("%s",q->aband);printf("\t\t请输入该员工的新税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n================================================================= =======\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yf salary,p->aband,p->tax,p->sfsalary);p=p->next;printf("\n\t\t按任意键返回主菜单......");getchar();}void find(){Info p;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输入员工编号: ");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。

工资管理系统课程设计c语言

工资管理系统课程设计c语言

工资管理系统课程设计c语言一、课程目标知识目标:1. 学生能够理解工资管理系统的基本功能需求,掌握C语言实现工资管理系统所需的基本语法和结构;2. 学生能够运用结构体、数组、文件操作等C语言知识模块,实现工资管理系统中数据的存储、查询、修改和删除等功能;3. 学生了解并掌握C语言中的模块化编程思想,将工资管理系统划分为独立的功能模块,提高代码的可读性和可维护性。

技能目标:1. 学生能够运用所学知识,独立完成一个简单的工资管理系统的设计、编码和调试;2. 学生掌握利用C语言进行系统分析、设计和实现的基本方法,具备基本的编程实践能力;3. 学生能够运用调试工具和技巧,对程序进行调试和优化,提高程序运行的稳定性和效率。

情感态度价值观目标:1. 学生通过本课程的学习,培养对编程的兴趣,提高问题解决能力和创新意识;2. 学生在团队协作中,学会沟通、分享和合作,培养良好的团队精神和职业素养;3. 学生认识到编程在工资管理系统等实际应用中的重要性,激发其学习热情,培养积极的学习态度。

课程性质:本课程为高年级C语言程序设计课程的实践环节,旨在让学生通过实际项目的开发,巩固所学知识,提高编程能力。

学生特点:学生已经具备一定的C语言基础,了解基本语法和编程技巧,但实际项目经验不足。

教学要求:结合学生特点,课程设计应注重实践性、实用性和综合性,引导学生运用所学知识解决实际问题,提高编程实践能力。

在教学过程中,关注学生的个体差异,提供适当的指导和帮助,确保学生能够达到预定的学习目标。

通过课程目标的分解,为后续教学设计和评估提供明确的方向。

二、教学内容1. 工资管理系统需求分析:介绍工资管理系统的基本功能,如员工信息管理、工资计算、数据存储与查询等。

教材章节:《C语言程序设计》第十章——文件。

2. C语言基础知识回顾:回顾结构体、数组、指针等基本概念及其在工资管理系统中的应用。

教材章节:《C语言程序设计》第三章——结构体与联合;《C语言程序设计》第四章——数组与字符串;《C语言程序设计》第五章——指针。

员工工资管理系统(c语言编程)6页

员工工资管理系统(c语言编程)6页

员工工资管理系统(c语言编程)6页一、设计目标1、完成一个员工工资管理系统,包括对员工信息的添加、删除、修改和查询、员工工资管理和统计等功能。

2、程序必须具备易用性、可靠性、安全性和稳定性等特点。

二、程序结构设计员工工资管理系统是由若干模块构成的一个整体,它们之间相互联系,共同完成对员工信息的处理和管理。

程序分为主界面模块、添加模块、删除模块、修改模块、查询模块、统计模块、退出模块。

三、模块功能设计1、主界面模块主界面包括菜单栏和功能栏,菜单栏包括添加、删除、修改、查询、统计和退出功能,功能栏是对主界面菜单的补充,包括一些快捷操作按钮。

2、添加模块添加模块是用来录入员工信息的,可以录入的信息有员工编号、员工姓名、员工部门、员工工作年限、员工基本工资、员工奖金等。

添加模块会对信息进行一系列的校验,要求信息必须完整正确才能录入。

3、删除模块删除模块是用来删除员工信息的,输入员工编号就可以删除该员工的信息。

5、查询模块查询模块提供了多种查询方式,包括按部门查询、按姓名查询、按工作年限查询、按基本工资查询、按奖金查询等。

查询结果会按照员工编号的顺序进行排序。

6、统计模块统计模块会根据查询结果进行工资统计,包括总工资、平均工资、最高工资和最低工资等。

7、退出模块退出模块是用来关闭程序的,保证程序的安全性和稳定性。

四、程序流程设计1、主界面程序启动后,会显示主界面界面,包括菜单栏和功能栏。

2、录入信息点击添加功能或者添加按钮,会进入添加模块,要求用户输入员工信息,录入完成后数据将保存到文件中。

4、修改信息点击修改功能或者修改按钮,会进入修改模块,输入员工编号,然后修改员工信息。

5、查询信息点击查询功能或者查询按钮,会进入查询模块,选择查询方式,输入查询条件,系统将显示符合条件的员工信息。

6、工资统计当查询完成后,点击统计功能或者统计按钮,会进入统计模块,系统将根据查询结果进行统计。

7、程序退出当操作完成后,点击退出功能或者退出按钮,会关闭程序。

c语言_职工工资管理系统设计

c语言_职工工资管理系统设计

c语言_职工工资管理系统设计
职工工资管理系统是一种满足组织内部行政职能要求的系统。

它主要用于负责处理职工工资和社会保险的行政处理,致力于实现工资的合理控制,提供可靠的社会保障,维护公司和职员的权益。

职工工资管理系统的总体设计涉及到多个方面,包括职工信息管理、职工入职信息处理、职工调动及离职处理、职工考核信息处理、工资用工成本分析等。

职工信息管理:
主要包括对职工个人信息(包括基本情况、职称、工资等)、职工培训考核信息、职工出勤情况等进行管理及整理。

系统利用数据库,将这些信息统一储存,实现集中管理的目的,从而帮助用人单位对职工的资源进行全面了解,并能有效地实施人力资源政策。

职工入职信息处理:
系统提供职工入职信息处理和调整模块,用于处理职工入职注册信息,装订职工入职相关证明及存档备案,以保障组织职位管理及职员资料处理工作的准确性。

职工调动及离职处理:
职工调动及离职处理模块,是处理职工调动或离职变动的必要模块。

企业可利用系统的这一模块进行职工离职报告与合同变更、职工调动安排登记等工作,以保障职工权益的有效管理。

职工考核信息处理:
职工考核信息处理主要提供职工工作评价功能,实施对职工的定期考核,以便企业对职工培训和考核要求进行动态管理,实现培训及考核结果的连续有效跟踪。

工资用工成本分析:
工资用工成本分析模块,可以帮助企业实时监测用工和工资成本,实现工资控制,提高用工管理效率,增加经济效益,减少企业成本。

总之,职工工资管理系统的设计和实现能够有效的解决企业的业务管理需求,实现职工与组织之间健康、高效的沟通,为企业组织发展提供支持。

员工工资管理系统(c语言编程)

员工工资管理系统(c语言编程)

#i n c l u d e<s t d i o.h>#include<string.h>#include<ctype.h>#include<malloc.h>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];}Info2;{}{while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");}{","税金","实付工资}{while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");}else}{{printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];{}{printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n========================================================================\n\n" );printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;{}}{{}p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}。

员工工资管理系统(c语言编程)

员工工资管理系统(c语言编程)

#include<stdio.h>#include<string.h>#include<ctype.h>#include<malloc.h>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];char aband[10];char tax[10];char sfsalary[10];struct Info1 *next;}Info2;typedef struct Info1 *Info;Info head;void display();void find();void modify();void add();void del();void list();void listOne(Info s);Info isExists(char *num);void init();void init(){head=(Info)malloc(sizeof(Info2));head->next=null;}void main(){init();while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");printf("\t\t1.查询员工信息\n");printf("\t\t2.录入员工信息\n");printf("\t\t3.修改员工信息\n");printf("\t\t4.删除员工信息\n");printf("\t\t6.显示所有员工信息\n");printf("\t\t7.退出系统\n");printf("\t============================================\n");printf("\t您的选择是: ");}void listOne(Info p){printf("\n该员工信息记录如下: ");printf("\n==========================================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary, p->aband,p->tax,p->sfsalary);}Info isExists(char *num){Info p,q;p=head;q=p->next;while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s", q->yfsalary);printf("\t\t请输入该员工的保险金额: ");scanf("%s", q->aband);printf("\t\t请输入该员工的税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的实付工资: ");scanf("%s",q->sfsalary);q->next=null;p->next=q;}elseprintf("\n\t\t您所输入的员工编号以存在! ");printf("\n\t\t按任意键返回住菜单......");getchar();void del(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null){listOne(q);printf("\t\t请输入该员工的新姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s",q->yfsalary);printf("\t\t请输入该员工的保险: ");scanf("%s",q->aband);printf("\t\t请输入该员工的新税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n=================================================================== =====\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary, p->aband,p->tax,p->sfsalary);p=p->next;}printf("\n\t\t按任意键返回主菜单......");getchar();}void find(){Info p;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输入员工编号: ");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}。

员工工资管理系统(c语言编程)

员工工资管理系统(c语言编程)

#include<stdio.h>#include<string.h>#include<ctype.h>#include<malloc.h>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];char aband[10];char tax[10];char sfsalary[10];struct Info1 *next;}Info2;typedef struct Info1 *Info;Info head;void display();void find();void modify();void add();void del();void list();void listOne(Info s);Info isExists(char *num);void init();void init(){head=(Info)malloc(sizeof(Info2));head->next=null;}void main(){init();while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");printf("\t\t1.查询员工信息\n");printf("\t\t2.录入员工信息\n");printf("\t\t3.修改员工信息\n");printf("\t\t4.删除员工信息\n");printf("\t\t6.显示所有员工信息\n");printf("\t\t7.退出系统\n");printf("\t============================================\n");printf("\t您的选择是: ");}void listOne(Info p){printf("\n该员工信息记录如下: ");printf("\n==========================================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary, p->aband,p->tax,p->sfsalary);}Info isExists(char *num){Info p,q;p=head;q=p->next;while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s", q->yfsalary);printf("\t\t请输入该员工的保险金额: ");scanf("%s", q->aband);printf("\t\t请输入该员工的税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的实付工资: ");scanf("%s",q->sfsalary);q->next=null;p->next=q;}elseprintf("\n\t\t您所输入的员工编号以存在! ");printf("\n\t\t按任意键返回住菜单......");getchar();void del(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null){listOne(q);printf("\t\t请输入该员工的新姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s",q->yfsalary);printf("\t\t请输入该员工的保险: ");scanf("%s",q->aband);printf("\t\t请输入该员工的新税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n=================================================================== =====\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary, p->aband,p->tax,p->sfsalary);p=p->next;}printf("\n\t\t按任意键返回主菜单......");getchar();}void find(){Info p;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输入员工编号: ");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}。

C语言做的工资管理系统

C语言做的工资管理系统

C语言课程设计报告-工资管理系统一. 系统功能1,输入记录模块主要完成将数据存入数组中的工作。

记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入记录。

2,查询记录模块主要完成在数组中查找满足相关条件的记录。

在查询记录模块中,用户可以按照职工编号或者姓名在数组中进行查找。

3,更新记录模块主要完成对记录的维护。

在此工资管理系统中,实现对记录的修改、删除、插入、排序操作。

4,统计记录模块主要完成对公司员工的工资在各等级的人数统计。

5,输出记录模块主要完成两个任务:第一,它实现对记录的存盘操作,将数组中各元素的存储的记录信息写入数据文件中。

第二,它实现将数组中存储的记录信息以表格的形式在屏幕上打印出来。

6,从文件读入功能模块主要是将数据存放在数组中。

该模块从数据文件中读取所有记录,通过多次调用fread()文件函数,每次操作都是从文件中读取一条工资记录信息存入数组中的操作.7,从键盘输入功能模块主要实现记录从键盘上输入Add函数实现。

首先把文件中存在的记录全部显示出来,而后从键盘接收多次输入记录,如果职工编号重复则提醒重新输入,输入的记录暂保存到结构体数组中,输入0回到主菜单。

8,查询模块主要实现在结构体数组中按职工编号或姓名查找满足条件的记录的功能,通过Qur()函数来实现。

提供两种方式查询:1为按照编号来查询,2按照姓名来查询;如找到查询内容则输出记录值,找不到则提示无此项记录。

9,更新记录模块主要是实现对记录的修改、删除、插入、排序操作。

所有这些操作都在数组中完成。

修改记录操作需要对数组中目标元素的数据域中的值进行修改,分三步完成:首先显示所有的记录,然后输入要修改的职工编号,调用Locate()函数定位该职工的编号记录,第三步,若找到该记录,则修改职工编号之外的各字段的值。

10,删除记录操作完成删除制定的职工编号或者姓名的记录。

也分三步完成:首先显示所有的记录,而后输入要删除的职工编号或者姓名,输入后调用Locate()函数定位该职工的记录,第三步,若找到该记录,则从该记录所在元素的后续元素起,依次向前移一个元素位置,元素个数减1。

C语言课程设计工资管理系统

C语言课程设计工资管理系统

界面布局:检查界面布局是否合理,是否符合用户习惯 功能测试:测试各个功能模块是否正常工作,是否有错误提示 性能测试:测试系统的响应速度和稳定性,是否有卡顿现象
兼容性测试:测试系统在不同操作系统和浏览器上的兼容性,是否有显示异常
员工信息录入:包括姓名、性别、年龄、 职位、薪资等信息
员工信息删除:删除不再需要的员工信 息
测试目的:验 证系统功能是 否符合设计要

测试内容:功 能测试、性能 测试、安全性
测试等
测试方法:黑 盒测试、白盒 测试、灰盒测
试等
测试结果:列 出测试过程中 发现的问题及
解决方案
测试结论:对 系统的整体性 能和稳定性进
行评估
测试建议:针 对测试中发现 的问题提出改
进建议
硬件要求:服务器、网络设备、存 储设备等
部署步骤:安装操作系统、安装数 据库管理系统、安装Web服务器、 部署工资管理系统等
添加标题
添加标题
添加标题
添加标题
软件要求:操作系统、数据库管理 系统、Web服务器等
维护方案:定期备份数据、定期检 查系统运行情况、定期更新系统软 件等
系统运行环境:Windows、Linux等操作系统 硬件要求:CPU、内存、硬盘等 软件安装:安装C语言编译器、数据库管理系统等 系统维护:定期备份数据、更新软件、修复漏洞等
升级方式:自动升级或手动升级 升级内容:功能升级、性能升级、安全升级等 扩展方式:插件扩展、模块扩展、功能扩展等 扩展内容:增加新功能、优化性能、提高安全性等
汇报人:
排序算法:快速排序、归并排序、 堆排序等
图算法:最短路径、最小生成树等
添加标题
添加标题
添加标题
添加标题

C语言做的工资管理系统

C语言做的工资管理系统

C语言课程设计报告-工资管理系统一. 系统功能1,输入记录模块主要完成将数据存入数组中的工作。

记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入记录。

2,查询记录模块主要完成在数组中查找满足相关条件的记录。

在查询记录模块中,用户可以按照职工编号或者姓名在数组中进行查找。

3,更新记录模块主要完成对记录的维护。

在此工资管理系统中,实现对记录的修改、删除、插入、排序操作。

4,统计记录模块主要完成对公司员工的工资在各等级的人数统计。

5,输出记录模块主要完成两个任务:第一,它实现对记录的存盘操作,将数组中各元素的存储的记录信息写入数据文件中。

第二,它实现将数组中存储的记录信息以表格的形式在屏幕上打印出来。

6,从文件读入功能模块主要是将数据存放在数组中。

该模块从数据文件中读取所有记录,通过多次调用fread()文件函数,每次操作都是从文件中读取一条工资记录信息存入数组中的操作.7,从键盘输入功能模块主要实现记录从键盘上输入Add函数实现。

首先把文件中存在的记录全部显示出来,而后从键盘接收多次输入记录,如果职工编号重复则提醒重新输入,输入的记录暂保存到结构体数组中,输入0回到主菜单。

8,查询模块主要实现在结构体数组中按职工编号或姓名查找满足条件的记录的功能,通过Qur()函数来实现。

提供两种方式查询:1为按照编号来查询,2按照姓名来查询;如找到查询内容则输出记录值,找不到则提示无此项记录。

9,更新记录模块主要是实现对记录的修改、删除、插入、排序操作。

所有这些操作都在数组中完成。

修改记录操作需要对数组中目标元素的数据域中的值进行修改,分三步完成:首先显示所有的记录,然后输入要修改的职工编号,调用Locate()函数定位该职工的编号记录,第三步,若找到该记录,则修改职工编号之外的各字段的值。

10,删除记录操作完成删除制定的职工编号或者姓名的记录。

也分三步完成:首先显示所有的记录,而后输入要删除的职工编号或者姓名,输入后调用Locate()函数定位该职工的记录,第三步,若找到该记录,则从该记录所在元素的后续元素起,依次向前移一个元素位置,元素个数减1。

职工工资管理系统c语言程序设计

职工工资管理系统c语言程序设计

职工工资管理系统 C 语言程序设计简介职工工资管理系统是一个用于帮助企业管理职工工资的程序,它可以实现对职工的基本信息、工作时长、工资等进行管理。

本文将介绍如何使用 C 语言实现一个简单的职工工资管理系统。

功能设计1. 添加职工信息系统可以添加新的职工信息,包括职工编号、姓名、性别、职位等。

2. 修改职工信息已有职工信息可以进行修改,如姓名、性别、职位等。

3. 计算工资系统可以根据职工的工作时长和基础工资计算出实际工资。

4. 查询职工信息可以通过职工编号或姓名查询职工的详细信息。

5. 显示所有职工信息将所有职工的信息显示在界面上。

开发流程1. 定义数据结构首先,我们需要定义一个数据结构Employee来保存职工的信息,包括职工编号、姓名、性别、职位、基础工资等字段。

struct Employee {int id;char name[50];char gender[10];char position[50];float baseSalary;float hoursWorked;float totalSalary;};2. 编写主要函数添加职工信息void addEmployee(struct Employee emp) {// 将 emp 添加到员工列表中}修改职工信息void updateEmployee(struct Employee emp) {// 根据职工编号修改对应的员工信息}计算工资float calculateSalary(struct Employee emp) {// 计算职工的实际工资return emp.baseSalary + emp.hoursWorked * hourlyRate;}查询职工信息void searchEmployee(int id) {// 根据职工编号查询职工信息}显示所有职工信息void displayAllEmployees() {// 显示所有职工的信息}3. 用户界面交互为了方便用户操作,可以设计一个简单的用户界面,使用控制台打印实现信息展示和输入。

c语言职工工资管理系统代码

c语言职工工资管理系统代码

C语言职工工资管理系统代码1. 项目简介本项目是一个用C语言编写的职工工资管理系统。

该系统旨在帮助企业或组织更好地管理职工的工资信息,包括薪资计算、数据存储和查询等功能。

通过该系统,可以提高工资管理的效率和准确性,减少人力资源部门的负担。

2. 功能需求本系统需要实现以下功能:•添加新员工:输入员工姓名、基本工资、津贴等信息,并生成唯一的员工ID。

•删除员工:根据员工ID删除指定员工信息。

•修改员工信息:根据员工ID修改指定员工的基本信息。

•计算薪资:根据员工ID计算指定员工的实际薪资,并将结果保存到数据库中。

•查询薪资:根据员工ID查询指定员工的薪资信息。

3. 数据结构设计为了存储职工的基本信息和薪资数据,我们可以使用以下数据结构:3.1 员工结构体定义struct Employee {int id; // 员工IDchar name[50]; // 员工姓名float basicSalary; // 基本工资float allowance; // 津贴float actualSalary; // 实际薪资};3.2 员工数组定义struct Employee employees[100]; // 最多存储100个员工的信息int employeeCount = 0; // 当前员工数量4. 系统实现4.1 添加新员工void addEmployee() {struct Employee employee;printf("请输入员工姓名:");scanf("%s", );printf("请输入基本工资:");scanf("%f", &employee.basicSalary);printf("请输入津贴:");scanf("%f", &employee.allowance);employee.id = employeeCount + 1;employee.actualSalary = employee.basicSalary + employee.allowance;employees[employeeCount] = employee;employeeCount++;printf("添加成功!员工ID为:%d\n", employee.id);}4.2 删除员工void deleteEmployee() {int id;printf("请输入要删除的员工ID:");scanf("%d", &id);int index = findEmployeeIndex(id);if (index == -1) {printf("未找到对应的员工信息。

C语言 员工工资管理系统 codeblocks

C语言 员工工资管理系统  codeblocks

记得自己创建一个名字为“employee data”的空白文件哦!!,然后放到新建的codeblocks 文件夹里面#include<stdio.h>#include<windows.h>#include<string.h>#include<conio.h>FILE*fp;void welcome();void search();void add();int login();void menu1();void menu2();void enroll(int);void changeword(int);void output();void input();void delete1();int load();void save(int);void xiugai();struct nameandword{char username[30]; //保存用户名char password[30]; //保存密码char newpassword[30];//保存新密码}a[10]={"manager","123","123"};struct employee{char num[10]; //职工工号char name[15]; //职工姓名float jbgz; //职工基本工资float jj; //职工奖金float kk; //职工扣款float sk; //职工税款float sfgz; //职工实发工资}b[100],b1[100];int main(){system("color 4E");int n,j,button;welcome();getchar();logo1:(j=login());if(j==0){logo4:menu1();do{printf("功能选择(1--9):");scanf("%d",&n);if(n>=1&&n<=9){button=1;break;}else{button=0;printf("您输入有误,请重新选择!\n");}}while(button==0);switch(n){case 1:system("cls");input();goto logo4;case 2:system("cls");output();goto logo4;case 3:system("cls");search();goto logo4;case 4:system("cls");add();goto logo4;case 5:system("cls");xiugai();goto logo4;case 6:system("cls");delete1();goto logo4;case 7:system("cls");changeword(j);goto logo4;case 8:system("cls");enroll(j);goto logo4;case 9:goto logo1;break;default:printf("功能暂无");}return 0;}else{logo5:menu2();do{printf("功能选择(1--3):");scanf("%d",&n);if(n>=1&&n<=3){button=1;break;}else{button=0;printf("您输入有误,请重新选择!\n");}}while(button==0);switch(n){case 1:system("cls");output();goto logo5;case 2:system("cls");changeword(j);goto logo5;case 3:goto logo1;break;default:printf("功能暂无");break;}return 0;}}void welcome() //欢迎界面{system("cls");system("color F9");printf("\n\n\n\n\n\n");printf("************************************************************************* *******");printf("*****************************欢迎使用工资管理系统*****************************");printf("************************************************************************* *********\n\n\n\n\n");printf("\t\t制作人: ");printf("黑狼\n\n\n\n\n\n");printf("\t\t\t ***按任意键进入***");}void menu1() //管理员菜单界面{system("cls");system("color 3B");printf("***菜单***\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 1 输入\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 显示\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 查找\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 4 添加\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 5 修改\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 6 删除\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 7 修改密码\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 8 注册员工账号\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 9 退出\n\n");printf("说明:1.如首次使用尚未输入数据请先输入数据\n 2.输入的数据将自动保存\n 3.再次选择输入功能时原数据将被覆盖\n\n");}void menu2() //员工菜单界面{system("cls");system("color 3B");printf("***菜单***\n\n");printf("\n\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 1 显示\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 修改密码\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 退出\n\n");}int login()//登陆界面{system("cls");system("color 80");char username[30]; //保存用户名char password[30]; //保存密码int i,count=0;printf("\n\t\t\t%c*******************************%c\n",1,1);printf("\t\t\t%c 1.以管理员身份进入系统\t%c",1,1);printf("\t\t\t\t\t\t%c\t\t\t\t%c\n",1,1);printf("\t\t\t%c 2.以员工身份进入系统\t%c\n\t\t\t",1,1);printf("%c\t\t\t\t%c",1,1);printf("\n\t\t\t%c*******************************%c\n\n\n",1,1);logo:printf("\n\t\t\t请输入账号:");//管理员账号:managerscanf("%s",username);printf("\t\t\t密码:");//密码:123scanf("%s",password);for(i=1;i<10;i++){if(strcmp(username,a[i].username)==0&&strcmp(password,a[i].password) == 0)return i;}if(strcmp(username,a[0].username)==0&&strcmp(password,a[0].password) == 0)return 0;else{printf("\t\t对不起,您输入的用户名或密码错误!");count++;if(count>=3){system("cls");printf("\n\n\n\n\n\t\t 提示:您输入错误的次数太多,请稍后再试!\n");exit(0);}goto logo;}return 0;}void enroll(j)//注册员工账号{int m;j++;logo2:printf("\n\n\n\n\t\t\t**********************************\n");printf("\t\t\t\t请输入用户名:");scanf("%s",a[j].username);getchar();printf("\t\t\t**********************************\n");printf("\t\t\t\t请输入密码:");scanf("%s",a[j].password);getchar();printf("\t\t\t**********************************\n");printf("\t\t\t\t请再次输入密码:");scanf("%s",a[j].newpassword);getchar();printf("\t\t\t**********************************\n");if(strcmp(a[j].password,a[j].newpassword)==0){printf("\t\t\t\t注册成功\n");printf("\t\t\t**********************************\n");}else{printf("\t\t\t\t注册失败\n");printf("\t\t\t**********************************\n");}printf("\n\t\t\t1.继续注册员工账号。

C语言课设职工工资管理系统

C语言课设职工工资管理系统

C语言课设职工工资管理系统Revised by Petrel at 2021一引言C语言是Combined Language(组合语言)的中英混合简称。

是一种计算机程序设计语言。

它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

设计一个程序的过程就是解决一个实际问题的过程,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;在次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数、结构体和文件等,然后确定处理过程。

本课题中主要应用了C语言中的数组、结构体、文件等关键技术。

在C语言中,数组属于构造数据类型。

一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型;结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构,在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型,结构体只能描述一个对象的状态,不能描述一个对象的行为。

文件是一种组织外部存储介质上的数据的数据类型。

它具有两个特征:一是对一个数据集合可以用一个名字命名;二是保存在外部存储介质上,可以长期保存。

通过此次课设可以锻炼学生理论联系实际能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解,并达到如下目的:1.熟悉C语言程序的编辑、编译链接和运行的过程。

2.熟练运用if语句和switch语句以及嵌套应用。

3.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。

4. 掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。

5.掌握结构体类型变量、数组的定义和使用。

6. 掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串。

C语言实训:职工工资管理系统(总10页)

C语言实训:职工工资管理系统(总10页)

C语言实训:职工工资管理系统(总10页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除指导老师:周杨萍时间:第13周()一、实训目的C语言程序设计实训是C语言程序设计课程教学的重要组成部分。

本课程通过提供学生一个实训练习的机会,巩固、提高学生的基本编程能力,同时通过训练编写综合程序的方式,提高学生分析问题和解决问题的能力,为后续课程的学习打下良好的基础。

二、实训题目和程序清单(包括程序运行截图界面)(一)实训题目:职工工资管理系统。

参考运行界面如下:具体要求:出现上述界面后,用户可以通过输入1-6之间的数字完成所提示的功能。

循环往复,直到输入7,退出系统。

本系统具有职工的工资基本信息(职工号、姓名、应发工资、奖金、水电费、公积金、医疗保险、扣款合计、实发工资),能够根据需要追加、查询、修改、删除、统计并浏览职工的工资信息。

具体功能如下:1.初始化信息(职工信息的输入,包括职工号、姓名、应发工资、奖金、水电费、公积金、医疗保险) ;2.追加职工信息(继续添加职工的信息,要求职工号不重复);3.根据职工号查询(完成按职工号查询指定职工的工资信息);4.根据职工号修改(完成按职工号修改指定职工的工资信息);5.根据职工号删除(完成按职工号删除指定职工的工资信息);6.统计并浏览(完成扣款合计和实发工资的统计,并显示所有职工的工资信息);7.退出(退出系统)。

(提示:在使用字符界面的菜单编程时,需要清屏,可以使用system("cls")函数将屏幕清屏。

需要退出系统时,可以使用exit(0)函数退出。

需要暂停程序的执行时,可以使用system("pause")函数暂停。

使用这些函数时应包含""系统函数头文件。

)(二)程序清单:#include<>gh=001;strcpy(work[1].xm,"aa");work[1].yfgz=1000;work[1].jj=500;work[1].sdf=200;work[1].gjj=100;work[1].ylbx=98;work[1].kkhj=work[1].sdf+work[1].gjj+work[1].ylbx;work[1].sfgz=work[1].yfgz+work[1].jj-work[1].kkhj;/****对第二位进行初始化****/work[2].zgh=002;strcpy(work[2].xm,"bb");work[2].yfgz=2000;work[2].jj=300;work[2].sdf=200;work[2].gjj=100;work[2].ylbx=90;work[2].kkhj=work[2].sdf+work[2].gjj+work[2].ylbx;work[2].sfgz=work[2].yfgz+work[2].jj-work[2].kkhj;/****对第三位进行初始化****/work[3].zgh=003;strcpy(work[3].xm,"cc");work[3].yfgz=1000;work[3].jj=500;work[3].sdf=200;work[3].gjj=100;work[3].ylbx=98;work[3].kkhj=work[3].sdf+work[3].gjj+work[3].ylbx;work[3].sfgz=work[3].yfgz+work[3].jj-work[3].kkhj;/****对第四位进行初始化****/work[4].zgh=004;strcpy(work[4].xm,"dd");work[4].yfgz=1000;work[4].jj=500;work[4].sdf=200;work[4].gjj=100;work[4].ylbx=98;work[4].kkhj=work[4].sdf+work[4].gjj+work[4].ylbx;work[4].sfgz=work[4].yfgz+work[4].jj-work[4].kkhj;count=5;printf("..................初始化成功....................\n");system("pause");}void zjxx() gh);printf("输入姓名:\n");scanf("%s",work[count].xm);printf("输入应发工资:\n");scanf("%f",&work[count].yfgz);printf("输入奖金:\n");scanf("%f",&work[count].jj);printf("输入水电费:\n");scanf("%f",&work[count].sdf);printf("输入公积金:\n");scanf("%f",&work[count].gjj);printf("输入医疗保险:\n");scanf("%f",&work[count].ylbx);work[count].kkhj=work[count].sdf+work[count].gjj+work[count].ylbx; work[count].sfgz=work[count].yfgz+work[count].jj-work[count].kkhj;count++;printf("还需要再添加吗(Y/N)\n");scanf("\n%c",&i);if(i=='y' || i=='Y')zjxx();elsereturn;system("pause");}void cx() gh==zgh)break;}if(i<=count){printf("....................职工的所有信息...........................\n");printf("职工号:%d\n姓名:%s\n应发工资:%.2f\n奖金:%.2f\n水电费:%.2f\n公积金:%.2f\n医疗保险:%.2f\n扣款合计:%.2f\n实发工资:%.2f\n",work[i].zgh,work[i].xm,work[i].yfgz,work[i].jj,work[i].sdf,work[i].gjj,work[i].ylbx,work[i].kkhj,work[i].sfgz);}elseprintf("sorry,mei you ci ren ");system("pause");}void xg() gh==zgh)break;}if(i<=count){printf("....................职工的所有信息...........................\n");printf("职工号:%d\n姓名:%s\n应发工资:%.2f\n奖金:%.2f\n水电费:%.2f\n公积金:%.2f\n医疗保险:%.2f\n扣款合计:%.2f\n实发工资:%.2f\n",work[i].zgh,work[i].xm,work[i].yfgz,work[i].jj,work[i].sdf,work[i].gjj,work[i].ylbx,work[i].kkhj,work[i].sfgz);}else{printf("sorry,mei you ci ren ");}printf("请重新输入姓名");scanf("%s",&work[i].xm);printf("请重新输入应发工资:\n");scanf("%f",&work[i].yfgz);printf("请重新输入奖金:\n");scanf("%f",&work[i].jj);printf("请重新输入水电费:\n");scanf("%f",&work[i].sdf);printf("请重新输入公积金:\n");scanf("%f",&work[i].gjj);printf("请重新输入医疗保险:\n");scanf("%f",&work[i].ylbx);}void sc() gh==zgh)break;}if(i<=count){printf("....................职工的所有信息...........................\n");printf("职工号:%d\n姓名:%s\n应发工资:%.2f\n奖金:%.2f\n水电费:%.2f\n 公积金:%.2f\n医疗保险:%.2f\n扣款合计:%.2f\n实发工资:%.2f\n",work[i].zgh,work[i].xm,work[i].yfgz,work[i].jj,work[i].sdf,work[i].gjj,work[i].ylbx,work[i].kkhj,work[i].sfgz);printf("确定要删除吗请输入Y/N确认\n");setbuf(stdin,NULL);gh=work[i+1].zgh;strcpy( work[i].xm, work[i+1].xm);work[i].yfgz=work[i+1].yfgz;work[i].jj=work[i+1].jj;work[i].sdf=work[i+1].sdf;work[i].gjj=work[i+1].gjj;work[i].ylbx=work[i+1].ylbx;work[i].kkhj=work[i+1].kkhj;work[i].sfgz=work[i+1].sfgz;}work[i].zgh=0 ;strcpy(work[i].xm,"0");work[i].yfgz=0;work[i].jj=0;work[i].sdf=0;work[i].gjj=0;work[i].ylbx=0;work[i].kkhj=0;work[i].sfgz=0;count--;printf("所选信息已删除");}}elseprintf("sorry! mei you ci ren ");system("pause");}void tjll()f %.2f %.2f %.2f %.2f %.2f %.2f\n",work[i].zgh,work[i].xm,work[i].yfgz,work[i].jj,work[i].sdf,work[i].gjj,work[i].ylbx,work[i].kkhj,work[i].sfgz);printf("------------------------------------------------------------------\n");yfgz=yfgz+work[i].yfgz;jj=jj+work[i].jj;sdf=sdf+work[i].sdf;gjj=gjj+work[i].gjj;ylbx=ylbx+work[i].ylbx;}kkhj=sdf+gjj+ylbx;sfgz=yfgz+jj-kkhj;printf("汇总:职工人数%d\n",count-1);printf(" 应发工资%.2f\n",yfgz);printf(" 奖金%.2f\n",jj);printf(" 水电费%.2f\n",sdf);printf(" 公积金%.2f\n",gjj);printf(" 医疗保险%.2f\n",ylbx);printf("------------------------\n");printf(" 扣款合计%.2f\n",kkhj);printf(" 实发工资%.2f\n",sfgz);system("pause");}void main()//***************主函数,主界面**************{ int xz;do{ system("cls"); //清屏,清除屏幕上的所有信息printf("******** 《职工工资管理系统》制作人:********\n");printf(" 1-----初始化信息 \n");printf(" 2-----追加职工信息 \n");printf(" 3-----根据职工号查询 \n");printf(" 4-----根据职工号修改 \n");printf(" 5-----根据职工号删除 \n");printf(" 6-----统计并浏览 \n");printf(" 7-----退出 \n");printf("**********************************************\n");printf(" 输入您的选择(-7):");scanf("%d",&xz);switch(xz){ case 1:csh(); break; //执行子函数csh(完成初始化功能)case 2:zjxx(); break; //执行子函数zjxx(完成追加职工信息)case 3:cx();break; //执行子函数cx(完成根据职工号查询)case 4:xg();break; //执行子函数xg(完成根据职工号修改)case 5:sc(); break; //执行子函数sc(完成根据职工号删除)case 6:tjll(); break; //执行子函数tjll(完成统计并浏览)case 7:printf("\n-----------谢谢,欢迎下次光临!----------\n\n");default:exit(0); //退出系统,exit(0)函数功能是退出程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、设计内容设计一个工资管理程序存储的数据包括:姓名,职工号,所属部门,基本工资,奖励工资,补贴项目及金额和扣款项目及金额。

功能:1)加入一个人的记录2)删除一个人的记录3)显示所有人的记录4)查询(包括按人名查询工资和按工号查询)5)统计功能(包括统计某一工资范围的人数和统计各部门的工资总数)6)修改功能2、设计目的1.熟悉C语言程序的编辑、编译链接和运行的过程。

2.熟练运用if语句和switch语句以及嵌套应用。

3.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。

4.掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。

5.掌握结构体类型变量、数组的定义和使用。

6. 掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串。

3、设计思路(包括所用的函数)个统删修保退添查查出存改找除人计加看数职职职职职工职据工工工工资工工信信信信信信统息计息息息息息图1 程序功能图void show();void xmcz();//按姓名查找void bmcz();//按部门查找void add();//添加职工信息void del();//删除职工信息查看职工信息void see();// void xmsc();//void search();//查找职工信息按姓名删除按工号删除void ghsc();// 按工号查找void ghcz();//void statistics();//个人工资统计void ghxg();// 按工号修改void xmxg();//按姓名修改void statistic();//统计职工信息void reserve();//保存职工信息按工资段统计void gzdtj();//void bmtj();//按部门统计void modify();//修改职工信息1、添加职工信息:开始定义数据类型numberTemp,i 添加函数流程图2、查看职工信息:开始定义i=0i<Number输出职工信息结束查看函数流程图查找函数流程图4、删除职工信息:删除函数流程图5、个人工资统计结束个人工资统计流程图工资统计流程图修改函数流程图4、程序代码#include <stdio.h>#include <stdlib.h>#include <string.h>struct worker{char depa[30];char name[30];char ID[10];int salary1,salary2,salary3,salary4;};int dq(struct worker wo[]);void show();void bc(struct worker wo[]);void add();void see();void search();void ghcz();void xmcz();void bmcz();void del();void xmsc();void ghsc();void statistics();void statistic();void gzdtj();void bmtj();void modify();void ghxg();void xmxg();void reserve();void back();struct worker wo[100]; //保存所有的职工信息int Number=0; //记录总的职工人数void main(){int choose=0;while(1){show();printf(\\t====>请选择:); scanf(%d,&choose);system(cls);switch(choose){case 0:exit(0);//退出break;case 1:add();back();//添加职工信息break;case 2:see();back();//查看职工信息break;case 3:search();back();//查找职工信息break;case 4:del ();back();//删除职工信息break;case 5:statistics ();back();//个人工资统计break;case 6:statistic();back();//统计职工工资break;case 7:modify();back();//修改职工信息break;case 8:reserve();back();//保存数据break;default:break;}fflush(stdin);system(cls);}}int dq(struct worker wo[]) {FILE *fp=NULL;int i=0;fp=fopen(C://worker.dat,b);while(fread(&wo[i],sizeof(struct worker),1,fp))i++;fclose(fp);return i;}void show(){printf(\);printf(\****************职工工资管理系统****************\n\n);printf(\*☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆*\n\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(\^^^^^^^^^^^^^^^[0] 退出系统^^^^^^^^^^^^^^^^^\n\n);printf(\*★★★★★★★★★★★★★★★★★★★★★★★*\n); }void bc(struct worker *wo){FILE *fp=NULL;fp=fopen(C://worker.dat,ab+);fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);}//添加职工信息void add(){int numberTemp=0;int i=0;struct worker temp;牰湩晴尨请输入要添加职工个数:);scanf(%d,&numberTemp);for(i=0;i<numberTemp;i++){牰湩晴尨输入第%d个职工信息\n,i+1);牰湩晴尨姓名:);scanf(%s,);牰湩晴尨工号:);scanf(%s,temp.ID);牰湩晴尨所属部门:);scanf(%s,temp.depa);牰湩晴尨基本工资:);scanf(%d,&temp.salary1);牰湩晴尨奖励工资:);scanf(%d,&temp.salary2);牰湩晴尨补贴项目即金额:);scanf(%d,&temp.salary3);牰湩晴尨扣除项目即金额:);scanf(%d, &temp.salary4);wo[Number++]=temp; //写入到数组bc(&temp); //写入到文件}牰湩晴尨添加成功\n);}//查看职工信息void see(){int i=0;牰湩晴尨以下是全部职工\n);printf(\姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目及金额\t总工资\n);while(i<Number){printf(\%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n,wo[i].name,wo[i].ID,wo[i].depa,wo[i].salary1,wo[i].sa lary2,wo[i].salary3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);i++;}}//查找职工信息void search(){int n=0;printf( 按姓名查找\n);printf( 按工号查找\n);printf(按部门查找\n);scanf(%d,&n);switch(n){case 1: xmcz();break;case 2: ghcz();break;case 3: bmcz();break;敤慦汵?瀠楲瑮?输入错误!\n);break;}}void xmcz()//按姓名查找{char name[30];int i=0;牰湩晴尨请输入要查找职工姓名:);scanf(%s,name);system(cls);printf(\姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目及金额\t总工资\n);for (i=0;i<Number;i++){if (strcmp(name,wo[i].name)==0){printf(\%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n,wo[i].name,wo[i].ID,wo[i].depa,wo[i].salary1,wo[i].sa lary2,wo[i].salary3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);}}}void ghcz()//按工号查找{char id[10];int i=0;牰湩晴尨请输入要查找工号:);scanf(%s,id);system(cls);printf(\姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目及金额\t总工资\n);for (i=0;i<Number;i++){if (strcmp(id,wo[i].ID)==0){printf(\%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n,wo[i].name,wo[i].ID,wo[i].depa,wo[i].salary1,wo[i].sa lary2,wo[i].salary3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);}}}void bmcz()//按部门查找{char depa[30];int i=0;牰湩晴尨请输入要查询的部门名称:);scanf(%s,depa);system(cls);printf(\姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目及金额\t总工资\n);for (i=0;i<Number;i++){if (strcmp(depa,wo[i].depa)==0){printf(\%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n,wo[i].name,wo[i].ID,wo[i].depa,wo[i].salary1,wo[i].sa lary2,wo[i].salary3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);}}}//删除职工信息void del(){int n=0;printf( 按姓名删除\n);printf( 按工号删除\n);scanf(%d,&n);switch(n){case 1: xmsc();break;case 2: ghsc();break;}}void xmsc()//按姓名删除{FILE *fp=NULL;char name[30];int i=0;int j=0;牰湩晴尨请输入要删除的职工姓名:); scanf(%s,name);for(i=0;i<Number;i++){if (strcmp(name,wo[i].name)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}//将剩余数据写入文件擦除以前的数据fp=fopen(C://worker.dat,wb);for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp); }fclose(fp);牰湩晴尨删除成功;\n);}void ghsc()//按工号删除{FILE *fp=NULL;char id[60];int i=0;int j=0;牰湩晴尨请输入要删除的职工工号:); scanf(%s,id);for(i=0;i<Number;i++){if (strcmp(id,wo[i].ID)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}擦除以前的数据将剩余数据写入文件//fp=fopen(C://worker.dat,wb);for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);牰湩晴尨删除成功;\n);}//个人工资统计void statistics(){int i=0;double sum[100];for(i=0;i<Number;i++){sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4; printf(%s的总工资为:%f\n,wo[i].name,sum[i]);}}void statistic()//统计职工工资{int n=0;printf( 按工资段统计\n);printf( 按部门统计\n);scanf(%d,&n);switch(n){case 1: gzdtj();break;case 2: bmtj();break;敤慦汵?瀠楲瑮?输入错误!\n);break;}}void gzdtj()//按工资段统计{int sa1,sa2;int i=0;int n,m;int sl[20]={0,0};double sum[100];牰湩晴尨请输入要查询的工资段:);scanf(%d-%d,&sa1,&sa2);system(cls);for(i=0;i<Number;i++){sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4;}for(i=0;i<Number;i++){n=sum[i]/1000;if (n>9) n=10;switch(n){case 0:sl[0]++;break;case 1:sl[1]++;break;case 2:sl[2]++;break;case 3:sl[3]++;break;case 4:sl[4]++;break;case 5:sl[5]++;break;case 6:sl[6]++;break;case 7:sl[7]++;break;case 8:sl[8]++;break;case 9:sl[9]++;break;case 10:sl[10]++;break;}}m=sa1/1000;switch(m)捻獡??牰湩晴尨工资在1000以下的人数为%d\n,sl[0]);break;慣敳ㄠ瀺楲瑮?工资在1000到2000之间的人数为%d\n,sl[1]);break; 慣敳㈠瀺楲瑮?工资在2000到3000之间的人数为%d\n,sl[2]);break; 慣敳?瀺楲瑮?工资在3000到4000之间的人数为%d\n,sl[3]);break; 慣敳?瀺楲瑮?工资在4000到5000之间的人数为%d\n,sl[4]);break; 慣敳?瀺楲瑮?工资在5000到6000之间的人数为%d\n,sl[5]);break; 慣敳?瀺楲瑮?工资在6000到7000之间的人数为%d\n,sl[6]);break; 慣敳?瀺楲瑮?工资在7000到8000之间的人数为%d\n,sl[7]);break; 慣敳?瀺楲瑮?工资在8000到9000之间的人数为%d\n,sl[8]);break; 慣敳?瀺楲瑮?工资在9000到10000之间的人数为%d\n,sl[9]);break; 慣敳ㄠ?牰湩晴尨工资在10000以上的人数为%d\n,sl[10]);break;}}void bmtj()//按部门统计{char depa[30];float sum=0;int i=0;牰湩晴尨请输入要查询的部门名称:);scanf(%s,depa);system(cls);printf(\姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目及金额\t总工资\n);for (i=0;i<Number;i++){if (strcmp(depa,wo[i].depa)==0){printf(\%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n,wo[i].name,wo[i].ID,wo[i].depa,wo[i].salary1,wo[i].sa lary2,wo[i].salary3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);sum=sum+wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4;}}牰湩晴尨该部门的总工资为:%f\n,sum);}//修改职工信息void modify(){int mode=0;牰湩晴尨请选择修改查找方式\n);printf( 按姓名查找修改\n);printf( 按工号查找修改\n);scanf(%d,&mode);switch(mode){case 1: xmxg();break;case 2: ghxg();break;敤慦汵?瀠楲瑮?输入错误!\n);break;}}void xmxg()//按姓名修改{FILE *fp=NULL;char name[30];int i=0;牰湩晴尨请输入要修改的职工姓名:);scanf(%s,name);for (i=0;i<Number;i++){if (strcmp(name,wo[i].name));elsebreak;}printf(\姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目及金额\t总工资\n);printf(\%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n,wo[i].name,wo[i].ID,wo[i].depa,wo[i].salary1,wo[i].sa lary2,wo[i].salary3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);牰湩晴尨请重新输入该职工信息);牰湩晴尨姓名:);scanf(%s, wo[i].name);牰湩晴尨工号:);scanf(%s,wo[i].ID);牰湩晴尨所属部门:);scanf(%s,wo[i].depa);牰湩晴尨基本工资:);scanf(%d,wo[i].salary1);牰湩晴尨奖励工资:);scanf(%d,wo[i].salary2);牰湩晴尨补贴项目即金额:);scanf(%d, wo[i].salary3);牰湩晴尨扣款项目及金额:);scanf(%d, wo[i].salary4);//信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen(C://worker.dat,wb);for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);}void ghxg()//按工号修改{FILE *fp=NULL;char id[30];int i=0;牰湩晴尨请输入要修改的职工工号:);scanf(%s,id);for (i=0;i<Number;i++){if (strcmp(id,wo[i].ID));elsebreak;}printf(\姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目及金额\t\n); 总工资.printf(\%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n,wo[i].name,wo[i].ID,wo[i].depa,wo[i].salary1,wo[i].sa lary2,wo[i].salary3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);牰湩晴尨请重新输入该职工信息);牰湩晴尨姓名:);scanf(%s, wo[i].name);牰湩晴尨工号:);scanf(%s,wo[i].ID);牰湩晴尨所属部门:);scanf(%s,wo[i].depa);牰湩晴尨基本工资:);scanf(%d,wo[i].salary1);牰湩晴尨奖励工资:);scanf(%d,wo[i].salary2);牰湩晴尨补贴项目即金额:);scanf(%d, wo[i].salary3);牰湩晴尨扣款项目及金额:);scanf(%d, wo[i].salary4);//信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen(C://worker.dat,wb);for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf(\=======>修改成功\n);}//保存数据void reserve(){printf(\=====程序在运行时已自动保存.....\n);}void back(){printf(\===>按Enter键返回主菜单\n);}5.、运行结果****************职工工资管理系统*****************☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆*^^^^^^^^^^^^^^^[1]添加职工信息^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[2]查看职工信息^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[3]查找职工信息^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[4]删除职工信息^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[5]个人工资统计^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[6]统计职工工资^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[7]修改职工信息^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[8] 保存数据^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[0] 退出系统^^^^^^^^^^^^^^^^^*★★★★★★★★★★★★★★★★★★★★★★★* ====>请选择:输入一条记录信息:选择1,回车。

相关文档
最新文档