month,p1->num,p1->name,p1->should_pay,p1->rebate,p1->actual_paytypedefstructpa" />

C工资管理系统源代码

C工资管理系统源代码
C工资管理系统源代码

#include

#include

#include

#include

#include

#define TITLE "\n 月份工号姓名应发工资各种折扣实发工资\n"

#define DATA " %2d %4ld %-10s %6.1f %6.1f %6.1f\n",p1->month,p1->num,p1->na me,p1->should_pay,p1->rebate,p1->actual_pay

typedef struct pay

{

long num;

short month;

char name[20];

float gw,jn,zw,zl,jt,yj;

float should_pay;

float fz,gj,sd,others;

float rebate;

float actual_pay;

struct pay *next;

}PAY;

FILE *fp;

PAY *p1=NULL,*p2=NULL,*head=NULL;

void menu();

PAY *input();

void output();

void save(PAY *head);

PAY *open();

PAY *insert();

void search();

PAY *del();

PAY *revise();

/*主程序模块*/

void main(void)

{

short sel;

do

{

menu();

scanf("%d",&sel);

switch(sel)

{

case 1:

head=input(); //输入模块

break;

case 2:

head=insert(); //插入模块

break;

case 3:

head=revise(); //修改模块

break;

case 4:

head=del(); //删除模块

break;

case 5:

search(); //查找模块

break;

case 6:

output(); //输出模块

break;

case 7:

save(head); //保存模块

break;

case 0:

break;

}

}while(sel!=0);

}

/*菜单*/

void menu()

{

printf("\n\n\n\n\n\n\n");

printf("\t\t\t\t *主菜单选项*\n\n"); printf("\t\t\t\t1.创建工资档案\n"); printf("\t\t\t\t2.新增工资信息\n"); printf("\t\t\t\t3.修改工资信息\n"); printf("\t\t\t\t4.删除工资信息\n"); printf("\t\t\t\t5.查找工资信息\n"); printf("\t\t\t\t6.分类信息列表\n"); printf("\t\t\t\t7.保存信息\n"); printf("\t\t\t\t0.退出\n"); printf("\n\n\n\n\n\n\n\n");

}

/*输入模块*/

PAY *input()

{

short n=1;

p1=(PAY*)malloc(sizeof(PAY));

if(p1==NULL)

{

printf("内存不足,无法创建链表!");

getch();

}

printf("\n请输入第%d位职工的信息(以工号为0结束):\n",n);

printf(" 工号:");

scanf("%d",&p1->num);

if(p1->num==0)

{

printf("按任意键返回!");

getch();

free(p1);

return 0;

}

getchar();

printf(" 姓名:");

gets(p1->name);

printf(" 工资月份:");

scanf("%d",&p1->month);

printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n"); scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj); printf(" 房租扣款,公积金,水电费,其它扣款:\n");

scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);

p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;

p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;

p1->actual_pay=p1->should_pay-p1->rebate;

while(p1!=NULL)

{

if(n==1)

head=p1;

else

p2->next=p1;

n++;

p2=p1;

p1=(PAY*)malloc(sizeof(PAY));

if(p1==NULL)

{

printf("内存不足,无法创建链表!");

getch();

}

printf("请输入第%d位职工的信息(以工号为0结束):\n",n);

printf(" 工号:");

scanf("%d",&p1->num);

if(p1->num==0)

{

p1=NULL;

break;

}

printf(" 姓名:");

gets(p1->name);

printf(" 工资月份:");

scanf("%d",&p1->month);

printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n"); scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj); printf(" 房租扣款,公积金,水电费,其它扣款:\n");

scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);

p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;

p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;

p1->actual_pay=p1->should_pay-p1->rebate;

}

p2->next=NULL;

//edit by Yan-Xingyu Class Network-021

printf("职工信息已输入,请按任意键返回,并存盘……");

getch();

return head;

}

/*输出模块*/

void output()

{

short sel,flag,month;

float min,max;

do

{

do

{

printf("\n\n请选择您的列表方式:\n");

printf("\t\t1.全部清单\n");

printf("\t\t2.按月输出\n");

printf("\t\t3.按工资段输出\n");

printf("\t\t0.返回\n");

scanf("%d",&sel);

}while(sel!=1&&sel!=2&&sel!=3&&sel!=0);

head=open();

if(head==NULL)

return;

else

{

case 1:

printf("\n\t\t\t ******全部清单******\n");

printf(TITLE);

p1=head;

do

{

printf(DATA);

p1=p1->next;

}while(p1!=NULL);

break;

case 2:

flag=0;

printf("输入要查的月份:");

scanf("%d",&month);

printf("\n\t\t\t******第%d月工资清单******\n",month);

printf(TITLE);

p1=head;

do

{

if(p1->month==month)

{

printf(DATA);

p1=p1->next;

flag=1;

}

else

p1=p1->next;

}while(p1!=NULL);

if(flag==0)

printf("没有该月清单\n");

break;

case 3:

flag=0;

printf("输入最低工资:");

scanf("%f",&min);

printf("输入最高工资:");

scanf("%f",&max);

printf("\n\t\t ******%5.1f到%5.1f工资的名单******\n",min,max); printf(TITLE);

p1=head;

do

{

if(p1->actual_pay>min&&p1->actual_pay

{

printf(DATA);

p1=p1->next;

flag=1;

}

else

p1=p1->next;

}while(p1!=NULL);

if(flag==0)

printf("没有该工资段的职工\n");

break;

case 0:

break;

}

}while(sel!=0);

}

/*保存文件*/

void save(PAY *head)

{

short write;

fp=fopen("pay.txt","w");

if(fp==NULL)

{

printf("创建文件失败!");

getch();

return;

}

p1=p2=head;

while(p1!=NULL)

{

write=fwrite(p1,sizeof(PAY),1,fp);

if(!write)

{

printf("无法写入文件!");

getch();

return;

}

p1=p1->next;

}

fclose(fp);

printf("成功存盘!");

getch();

}

/*打开文件*/

PAY *open()

{

short n=1,read;

fp=fopen("pay.txt","r");

if(fp==NULL)

{

printf("无法打开档案文件!");

getch();

return NULL;

}

if((p1=p2=(PAY*)malloc(sizeof(PAY)))==NULL) {

printf("内存不足!");

getch();

return NULL;

}

read=fread(p1,sizeof(PAY),1,fp);

if(!read)

{

printf("文件读取出错!1");

getch();

return NULL;

}

if(p1->next==NULL)

head=p1;

else

{

do

{

if(n==1)

head=p1;

else

p2->next=p1;

n++;

p2=p1;

if((p1=(PAY*)malloc(sizeof(PAY)))==NULL) {

printf("内存不足!");

getch();

return NULL;

}

read=fread(p1,sizeof(PAY),1,fp);

if(!read)

{

printf("文件读取出错!2");

getch();

return NULL;

}

}while(p1->next!=NULL);

p2->next=p1;

}

return head;

fclose(fp);

}

/*插入模块*/

PAY *insert()

{

PAY *p3=NULL;

char sel;

head=open();

if(head==NULL)

return NULL;

else

do

{

printf("请输入要插入的职工信息:\n");

p3=(PAY*)malloc(sizeof(PAY));

if(p3==NULL)

{

printf("内存不足,无法创建链表!");

getch();

}

printf(" 工号:");

scanf("%d",&p3->num);

getchar();

printf(" 姓名:");

gets(p3->name);

printf(" 工资月份:");

scanf("%d",&p3->month);

printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n");

scanf("%f,%f,%f,%f,%f,%f",&p3->gw,&p3->jn,&p3->zw,&p3->zl,&p3->jt,&p3->yj);

printf(" 房租扣款,公积金,水电费,其它扣款:\n");

scanf("%f,%f,%f,%f",&p3->fz,&p3->gj,&p3->sd,&p3->others);

p3->should_pay=p3->gw+p3->jn+p3->zw+p3->zl+p3->jt+p3->yj;

p3->rebate=p3->fz+p3->gj+p3->sd+p3->others;

p3->actual_pay=p3->should_pay-p3->rebate;

p1=head;

while(p1!=NULL)

{

p2=p1;

p1=p1->next;

}

p2->next=p3;

p3->next=NULL;

printf("成功插入,是否继续?是(Y)否(N)\n");

sel=getch();

}while(sel=='Y'||sel=='y');

printf("\n任意键返回,并存盘……\n");

getch();

return head;

}

/*查找模块*/

void search()

{

short sel;

long num;

char name[20],choose;

head=open();

if(head==NULL)

return;

else

do

{

do

{

printf("\n选择查找方式:\n");

printf("\t\t1.按工号查找\n");

printf("\t\t2.按姓名查找\n");

scanf("%d",&sel);

getchar();

}while(sel!=1&&sel!=2);

switch(sel)

{

case 1:

printf("输入要查的工号:");

scanf("%ld",&num);

break;

case 2:

printf("输入要查的姓名:");

gets(name);

break;

}

p1=head;

while((p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0)) //用成p1!=NULL有问题?

p1=p1->next;

if((p1->num==num)||strcmp(p1->name,name)==0)

{

printf("您要查找的信息如下:\n");

printf(TITLE);

printf(DATA);

}

else

printf("没有该信息!\n");

printf("是否继续?是(Y)否(N)\n");

choose=getch();

}while(choose=='Y'||choose=='y');

printf("任意键返回");

getch();

}

/*删除模块*/

PAY *del()

{

short sel;

long num;

char name[20],choose;

head=open();

if(head==NULL)

return NULL;

else

do

{

do

{

printf("\n选择删除方式:\n");

printf("\t\t1.按工号删除\n");

printf("\t\t2.按姓名删除\n");

scanf("%d",&sel);

getchar();

}while(sel!=1&&sel!=2);

switch(sel)

{

case 1:

printf("输入要删除的工号:");

scanf("%ld",&num);

break;

case 2:

printf("输入要删除的姓名:");

gets(name);

break;

}

p1=head;

if((p1->num==num)||strcmp(p1->name,name)==0)

{

head=p1->next;

printf("删除信息成功!");

}

else

{

while((p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0)) {

p2=p1;

p1=p1->next;

}

if((p1->num==num)||strcmp(p1->name,name)==0)

{

p2->next=p1->next;

free(p1);

printf("\n删除信息成功!\n");

}

else

printf("\n没有该信息!\n");

}

printf("是否继续?是(Y)否(N)\n");

choose=getch();

}while(choose=='Y'||choose=='y');

printf("任意键返回,并存盘……");

getch();

return head;

}

/*修改模块*/

PAY *revise()

{

short sel;

long num;

char name[20],choose;

head=open();

if(head==NULL)

return NULL;

else

do

{

do

{

printf("\n查找要修改的对象:\n");

printf("\t\t1.按工号查找\n");

printf("\t\t2.按姓名查找\n");

scanf("%d",&sel);

getchar();

}while(sel!=1&&sel!=2);

switch(sel)

{

case 1:

printf("输入要查的工号:");

scanf("%ld",&num);

break;

case 2:

printf("输入要查的姓名:");

gets(name);

break;

}

p1=head;

while((p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0)) //用成p1!=NULL有问题?

p1=p1->next;

if((p1->num==num)||strcmp(p1->name,name)==0)

{

printf("您要修改的原始信息如下:\n");

printf(TITLE);

printf(DATA);

printf("\n将上述信息改为如下信息:\n");

printf(" 工号:");

scanf("%d",&p1->num);

getchar();

printf(" 姓名:");

gets(p1->name);

printf(" 工资月份:");

scanf("%d",&p1->month);

printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n");

scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj);

printf(" 房租扣款,公积金,水电费,其它扣款:\n");

scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);

p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;

p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;

p1->actual_pay=p1->should_pay-p1->rebate;

}

else

printf("你要修改的信息不存在!\n");

printf("是否继续?是(Y)否(N)\n");

choose=getch();

}while(choose=='Y'||choose=='y');

printf("任意键返回,并存盘……");

getch();

return head;

}

c语言工资管理系统

沈阳航空工业学院 课程设计任务书 一、课程设计题目:工资管理系统 二、课程设计工作自 三、课程设计内容 用C语言编写软件完成以下任务: 1输入工资数(职工数据要有职工号.姓名.所属部门.工龄和工资)保存在paid.dat文件中. 2对现有的职工数据根据所属部门排序,并显示出企业的平均工资. 3 职工涨工资(根据工龄按比例进行工资调整). 4 查询职工的相关数据. 四、课程设计要求: 程序质量: 1贯彻结构化程序设计思想. 2用户界面友好,功能明确,操作方便.可以加以其他功能和修饰. 3用户界面的菜单中包含"职工信息录入","排序及显示"."

工资调整","信息查询"."退出"5项.所有职工数据的改变都 应该在paid.dat文件中体现出来. 4代码应适当缩进,并给出必要的注释,以增强程序的可读 行. 课程设计说明书: 课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下: 1封面 2课程设计任务书 3目录 4需求分析(分析题目的要求) 5程序流程图(总体流程图和主要功能模块流程图)6核心技术的实现说明及相应程序段 7个人总结 8参考资料 9源程序及适当的注释 指导教师:_____ 学生签名:_____

目录 一、需求分析 (1) 二、程序流程图 (2) 三、核心技术的实现说明及相应程序段 (5) 四、个人总结 (16) 五、参考文献 (17) 六、源程序 (18)

一、需求分析 经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:输入职工数据函数(shuru),职工排序函数(sort_part),增加职工工资函数(add_paid),职工信息的查询函数(search_worker),以及主函数main(). 1、输入职工数据函数实现的功能是按照工号对职工的数据输入并保存在paid.dat; 2、职工排序函数按照题目的具体要求实现的是按职工部门排序并算出平均工资。 3、增加职工工资函数允许职工按照根据工龄按比例进行工资调整。 4、职工信息的查询函数输出paid.dat文件中的职工的相关数据。 除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。 每一个职工记录都包含职工号.姓名.所属部门.工龄

数据库课程设计—企业工资管理系统(java版完整代码)

课程设计报告企业工资管理系统 姓名XXX 班级XXXXX 学号XXXXXX 课程名称数据库原理及应用指导教师 201X年X月X日

目录 一.工资管理系统需求分析………………………………… 1.1功能需求………………………………………………… 1.1.1功能划分……………………………………… 1.1.2功能描述……………………………………………1.2性能需求………………………………………………… 1.3数据流图……………………………………………… 二.总体设计………………………………………………… 2.1数据库概念设计………………………………………… 2.2功能模块………………………………………………… 三.系统详细设计…………………………………………… 3.1数据库逻辑设计………………………………………… 3.2各模块功能……………………………………………… 3.2.1职工信息管理系统………………………………… 3.2.2职工工资管理系统………………………………… 3.2.3职工津贴管理系统………………………………… 四.系统实现………………………………………………… 4.1界面截图………………………………………………… 4.1.1主界面及工资基本信息界面…………………… 4.1.2登录界面………………………………………… 4.1.3系统主界面……………………………………… 4.1.4信息录入,修改,删除,查询界面………… 4.2设计代码………………………………………………… 五.实验总结…………………………………………………

1、需求分析 1.1功能需求 1.1.1功能划分 (1)、员工信息表;及时反映员工的基本信息 (2)、员工津贴表,反映员工津贴 (3)、员工基本工资表 1.1.2 功能描述 (1)、基本工资的设定 (2)、津贴的设定 (3)、计算出月工资 (4)、录入员工工资信息 (5)、添加员工工资信息 (6)、更改员工工资信息 1.2性能需求 此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。但在用户使用过程中,能自行根据实际情况进行小数计算精度的设定,最大能允许保留小数点后5位的精度。在时间特性上,当用户发出命令请求时的服务器的响应时间、对数据更新处理、工资数据的查询检索等上,同样要求系统响应时间不会超过0.5秒时间。系统支持多种操作系统的运行环境,多不同操作系统,不同文件格式的磁盘上的数据均能实现信息的互通,及共享。当服务器移植到其他的系统平台,如:Linux平台下时,同样能和其他的系统进行数据存取同步,不会出现系统之间互不兼容的情况,系统支持多系统之间的互连互通,系统有巨大的强健性。本课程设计是用Java语言编写,mysql数据库。 1.3数据流图 根据工资管理要求及用户需求调查分析,得到以下数据流图 图1.1第一层数据流图

C++工资管理系统源代码

C++工资管理系统源代 码 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】

#define TITLE "\n 月份工号姓名应发工资各种折扣实发工资\n" #define DATA " %2d %4ld %-10s % % %\n",p1->month,p1- >num,p1->name,p1->should_pay,p1->rebate,p1->actual_pay typedef struct pay { long num; short month; char name[20]; float gw,jn,zw,zl,jt,yj; float should_pay; float fz,gj,sd,others; float rebate; float actual_pay; struct pay *next; }PAY;

FILE *fp; PAY *p1=NULL,*p2=NULL,*head=NULL; void menu(); PAY *input(); void output(); void save(PAY *head); PAY *open(); PAY *insert(); void search(); PAY *del(); PAY *revise(); /*主程序模块*/ void main(void) { short sel; do

{ menu(); scanf("%d",&sel); switch(sel) { case 1: head=input(); 建工资档案\n"); printf("\t\t\t\t2.新增工资信息\n"); printf("\t\t\t\t3.修改工资信息\n"); printf("\t\t\t\t4.删除工资信息\n"); printf("\t\t\t\t5.查找工资信息\n"); printf("\t\t\t\t6.分类信息列表\n"); printf("\t\t\t\t7.保存信息\n"); printf("\t\t\t\t0.退出\n"); printf("\n\n\n\n\n\n\n\n"); }

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

#include #include #include #include #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; 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)

C员工工资管理系统源代码

C员工工资管理系统源代码

#include #include #include #include #include #include using namespace std; #define NULL 0 #define LEN sizeof(struct student) int const N=20; void Menu(); void Pass(); int n=0; //定义一个全局变量统计职工人数//——--------->定义一个职工信息的结构体 struct student { char name[N]; //用来存放姓名 char sex[N]; //用来存放性别 long id; //用来存放编号 float paid[3]; //用来存放工资 int total; //用来存放总工资 struct student *next;

}; //-------------->职工类 class Information { public: Information() ; //构造函数. ~Information() ; //析构函数. student *creat(); //建立链表 void output(student *head); //显示职工信息 int count(student *head); //定义函数count()统计职工总数student *insert(student*head); //指针函数*insert()用来添加职工信息. student *cancel(student *head,long id); //指针函数*cancel()用来删除职工信息. student *find(student *head,long id); //指针函数*find()用来查找职工信息. student *modify(student *head,long id); //指针函数*modife()用来修改职工的信息. void paixu(student *head); //定义paixu()函数将职工的总额从大到小排列并输出 void average(student *head); //定义职工工资平均值的函数void save(student *head); //保存文件信息

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

C语言课设职工工资管 理系统 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

一引言 C语言是CombinedLanguage(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。设计一个程序的过程就是解决一个实际问题的过程,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;在次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数、结构体和文件等,然后确定处理过程。 本课题中主要应用了C语言中的数组、结构体、文件等关键技术。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型;结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构,在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型,结构体只能描述一个对象的状态,不能描述一个对象的行为。文件是一种组织外部存储介质上的数据的数据类型。它具有两个特征:一是对一个数据集合可以用一个名字命名;二是保存在外部存储介质上,可以长期保存。 通过此次课设可以锻炼学生理论联系实际能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解,并达到如下目的:1.熟悉C语言程序的编辑、编译链接和运行的过程。2.熟练运用if语句和switch语句以及嵌套应用。3.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。4.掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。5.掌握结构体类型变量、数组的定义和使用。6.掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串。

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

员工工资管理系统c语言 编程 The latest revision on November 22, 2020

#include<> #include<> #include<> #include<> #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;

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)

工资管理系统的分析与设计[1]

工资管理系统的分析与设计 一、手工系统业务流程分析 工资是企业以货币形式支付给职工的劳动报酬,它是构成企业生产成本的组成部分。同时,根据企业现行的会计制度,按照工资总额的一定比例从成本中提取的职工福利费用于各种福利开支。工资核算是企业会计核算的一项重要组成部分,是一项重复、繁琐、细致的工作。工资核算正确与否,不仅关系到职工个人的利益,而且也影响产品成本的计算。 (一) 工资核算的内容及方法 工资核算包括工资结算、工资分配及福利费的计提等三方面的内容。工资结算是指应付给职工工资的计算,代扣款项的计算及实发工资的计算,工资分配是将工资分配给有关的成本项目或特定的资金来源负担,福利费是根据工资总额的一定比例计提。 (二) 工资结算凭证的编制 会计部门根据各部门提供的原始数据,计算出每个职工的应发工资,代扣款项和实发工资后,填制工资结算单。工资结算单通常一式三份,一份以“工资条”形式发给职工,以便查对,另一份留劳资部门备查,第三份经职工签收后,作为支付和结算的凭证。在编制工资结算单以后,为了发放工资和分配工资费用,须按工资发放部门和职工类别进行汇总,编制工资结算汇总表。 (三) 工资费用的分配 根据工资结算汇总表,按工资的用途和规定的资金来源进行分配,并按一定的比例计提福利费。工资分配的固定转账分录如下:

借:生产成本——基本生产成本 制造费用—一基本生产车间 生产成本——辅助生产成本 应付福利费 营业费用 在建工程 管理费用 贷:应付工资 按一定比例计提职工福利费的固定转账分录如下: 借:生产成本——基本生产成本 制造费用——基本生产车间 生产成本——辅助生产成本 应付福利费 营业费用 在建工程 管理费用 贷:应付福利费 (四) 工资管理的业务处理流程图(如图所示) 要求 根据手工系统的分析,工资管理系统应具备哪些功能? 根据工资管理的业务处理流程图,请绘制相应的数据流程图。

教师工资管理系统C实现

教师工资管理系统 一.选题背景 二.需求分析 一、设计选题与目标 1.选题要求: 教师工资管理系统 每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。 A、教师信息处理 (1)输入教师信息 (2) 插入(修改)教师信息: (3) 删除教师信息: (4) 浏览教师信息: 提示:具体功能及操作参考题1。 B、教师数据处理: (1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。 (2) 教师实发工资、应发工资、合计扣款计算。 提示:计算规则如题目。 (3) 教师数据管理 提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信

息写入文件 (4) 教师数据查询: 提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。 (5) 教师综合信息输出 提示:输出教师信息到屏幕。 2.目标 教师数据处理: (1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。 (2) 教师实发工资、应发工资、合计扣款计算。 计算规则如题目。 (3) 教师数据管理 输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件 (4) 教师数据查询: 输入教师号或其他信息,即读出所有数据信息,并显示出来。 (5) 教师综合信息输出 输出教师信息到屏幕 三.总体设计 利用六个模块分别实现教师信息的输入,修改,删除,查询,保存以及信息文件的读入功能。并使用不同的函数实现不同的功能。使用链表存储及处理数据。 程序流程图如下:

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

C语言课程设计教师工资管理系统职工工资管 理系统 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

课程设计教师工资管理系统 运行平台:(其他平台未经测试,不一定保证有效) 制作者:弓箭中南大学信息科学与工程学院 源代码如下: #include <> #include <> #include <> #include <> #define LEN sizeof(struct teacher) struct teacher { int num; char name[20]; char sex[20]; char workplace[50]; char address[50]; long phone; double de_salary; double de_jintie; double de_shenghuobutie; double yingfa_salary; double cost_phone; double cost_water_elec; double cost_rent; double cost_tax; double cost_weisheng; double cost_gongjijin; double cost_all; double shifa_salary; struct teacher *next; }; /***********************************读取函数************************************/ struct teacher *load() { struct teacher *p1,*p2,*head; FILE *fp;

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

程序设计课程设计报告 工资管理系统 院系:地质工程系 班级:地质工程班 组员:陈欣永 胡世俊 李积荣赵海俊 马小成

目录 一、设计目的 (1) 二、设计内容与要求 (2) 1.设计内容 (3) 2.设计要求 (4) 三、总流程图设计 (5) 四、程序详细功能设计 (6) 五、程序调试 (7) 六、设计小结 (8) 七、参考文献 (9) 附录 (10) 1

一、设计目的 在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。 进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。 《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。 二、设计内容与要求

1.设计内容 主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。 2.设计要求 在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。 三、总体流程图设计 3

四、程序详细功能设计 1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。 2、应用文件保存工资管理数据。 3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。

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

c 语言课程设计报告职工工资管理系统 1 课程设计报告 课程设计报告 题目:职工工资管理系统 设计者: 专业班级: 学号: 指导教师: 所属院系: 2011 年 6 月29 日 一.设计需求说明 一、职工工资管理系统功能设计要求 1.输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位 津贴、医疗保险、公积金的数据作为一个记录。?该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。 2.显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的 各项工资和平均工资。

3.修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记 录内容进行显示。 4.查找记录: 可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。 5. 删除记录:可删除数据文件中的任一记录。 6.恢复记录:能恢复被删除的任一记录。 7.统计:(A)计算各项工资平均工资及总工资,(B)?统计符合指定条件(如职 工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元)以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(?包括各项总的平均工资)。 8.保存数据文件功能。 9.打开数据文件功能。 经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以 逐 个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。程序运行结果如下表所示(记录个数至少8 个)。 二.模块设计分析系统功能模块图: 工作程序分析 ①输入:输入职工工资资料

通过结构体的数组来进行操作,先头定义数组em[] ,先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。同时将数据储存在 ckerk_list 文件中并自动保存至磁盘。 注:如首次使用,尚未输入数据,请先输入数据。输入的数据将自动保 存。 再次选择输入功能时原数据将被覆盖。 ②保存:将输入的资料存入磁盘 读取文件clerk_list ,若文件不存在,打印“打开失败并退出。若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。 ③读取:读取磁盘中的资料 打开文件clerk_list ,若文件不存在,打印“打开失败”并退出。若存在,读取文件中的数据,并返回职工人数。 ④显示:显示职工工资资料 先通过读取函数的返回值确定职工人数m,再通过循环将员工工资资料逐个打印,当循环次数达到m 时退出循环。其中总工资由程序计算,总工资=基本工资+职务工资+津贴-医疗保险-公积金 ⑤删除:删除某员工的资料 打印员工资料并提示输入要删除职工的姓名,输入后若该职工不存在则打印“查无此人”;若存在,则显示该职工资料并询问是否确定删除。若确定,则删除。删除时,通过对比输入的姓名与资料中的姓名做对比从而确定要删除

小型公司工资管理系统(C)源代码

#include #include #include #include class Employ// 基类- 雇员类{ protected: int num; char name[10]; char sex; int age; int wage; public: virtual void set()=0; virtual void print()=0; virtual void reserved()=0; }; class Manager:public Employ// 经理类 { public: void set(); void print(); void reserved(); }; class Salesman:public Employ// 销售员类{ protected: int salesvolume; int snum; public: void set(); void print(); void reserved(); void printinfor(); int getsales() {return salesvolume;} int getsnum() {return snum;} };

class MarketMan:public Manager// 销售经理类{ protected: int salesvolume; public: void set(); void print(); void reserved(); int resetwage(); int getnum() {return num;} char*getname() {return name;} int getamount(Salesman s[],int n) { salesvolume=0; for(int i=0;i>num; cout<<" 其姓名:"; cin>>name; cout<<" 性别(m/w):"; cin>>sex; cout<<" 年龄:";

职工工资管理系统设计课程设计含源代码

设计题目职工工资管理系统设计

xxx技术学院课程设计任务书

二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求) (1)分析职工工资管理系统程序结构: 画出程序粗略的流程图和各个模块的详细流程图,每个功能模块用文字说明他们的功能(与对应流程图放在一起); (2)对你已经实现的功能(修改的、新编写的)做详细的说明, 并附上流程图及程序清单。 (3)自己对该职工工资管理系统的进一步设想; (4)对于有设想但最终未实现的功能的大致编程思路的阐述; (5)论述在设计过程中遇到的并且对你具有启发性的问题。 (6)严禁抄袭,发现雷同,双方扣分。 三、课程设计工作进度计划: 周一、二:教师布置任务,讲解本课设模块。画出主程序粗略的流程图和各个模块的详细流程图。设计程序及调试程序。 周三、四:设计程序及调试程序。同时着手写报告。 周五:完成设计,提交报告,接受教师考评。 四、主要参考资料 (1)《面向对象程序设计》,郑莉,清华大学出版社, (2)《面向对象程序设计C++语言》,朱战立等编西安电子科技大学出版社 (3)《面向对象程序设计----Visual C++》,刘斌等编, 清华大学出版社 (4)《面向对象程序设计----C++语言描述》, Richard Johnsonbaugh(美)等著,蔡宇辉等译,机械工业出版社,2003

目录 1 概述: (5) 1.1 基本功能 (5) 1.2 拓展功能 (5) 2 课题分析 (6) 2.1 类的设计 (6) 2.2类的实现 (6) 3 详细设计说明 (7) 3.1 程序主界面 (7) 3.2 方案 (7) 3.3 程序描述(输入INPUT) (9) 4 课程设计总结 (12) 5 软件使用说明 (12) 6 附录(参考文献,原代码:) (13) 6.1 参考文献: (13) 6.2 原代码 (13)

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

程序设计课程设计报告工资管理系统 院系:地质工程系 班级:地质工程班 组员:陈欣永胡世俊 李积荣赵海俊 马小成

目录 一、设计目的 (1) 二、设计内容与要求 (2) 1.设计内容 (3) 2.设计要求 (4) 三、总流程图设计 (5) 四、程序详细功能设计 (6) 五、程序调试 (7) 六、设计小结 (8) 七、参考文献 (9) 附录 (10)

一、设计目的 在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。 进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。 《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。

二、设计内容与要求 1.设计内容 主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。 2.设计要求 在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。 三、总体流程图设计

四、程序详细功能设计 1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。 2、应用文件保存工资管理数据。 3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。

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

员工工资管理系统c语 言编程精编 Document number:WTT-LKK-GBB-08921-EIGG-22986

#include<> #include<> #include<> #include<> #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; 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");

毕业论文-C语言课程设计报告职工工资管理系统

程序设计基础课程设计报告书题目: 职工工资管理系统

课程设计任务书

目录 第1章课程设计的目的与要求..................... 错误!未定义书签。 1.1 课程设计目的 (3) 1.2 课程设计的实验环境 (3) 1.3 课程设计的预备知识 (3) 1.4 课程设计要求 (3) 第2章课程设计内容 (4) 2.1程序功能介绍 (4) 2.2程序整体设计说明 (4) 2.2.1设计思路 (4) 2.2.2数据结构设计及用法说明 (5) 2.2.3各模块的功能及程序说明 (6) 2.2.4程序结果 (7) 2.3程序源代码及注释 (9) 第3章课程设计总结.............................. 错误!未定义书签。

第1章课程设计的目的与要求 1.1 课程设计目的 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 1.2 课程设计的实验环境 硬件要求能运行Windows 2003/XP操作系统的微机系统。C语言程序设计及相应的开发环境。 1.3 课程设计的预备知识 熟悉C语言及C语言开发工具。 1.4 课程设计要求 1. 分析课程设计题目的要求 2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告

企业职工工资管理系统 附代码

#include #include #include #define E 50 void Creat(); void Creat2(); void Creat3(); void Chakan(); void Chakan2(); void Chakan3(); void add(); void del(); void xiugai(); void findnum(); void findname(); void findname2(); void findshijian(); void gengxin(); void findtime(); void jisuan(); void jisuan2(); void jisuan3(); void pai(); void put(); int number; float sum; struct employee { char num[5]; char name[10]; char sex[3]; char shengri[10]; char degree[10]; int nianxian; } emp[E]; struct emp_kao { char num[5]; char name[10]; char riqi[10];

int tianshu; }emp_kaoqin[E]; struct emp_gong { char num[5]; char name[10]; float zhiwugongzi,zhiwubutie,zhufangbutie,kaoqin,yingfagongzi,yanglaobaoxian,zhufang,shifagongzi; }emp_gongzi[E]; void main () { char YN[3]; char *Y="Y"; char *N="N"; int i; int LL; //put(); printf(" ********企业职工工资管理系统********\n"); kaishi: printf("\n创建文件(请选【1】)\n 操作文件(请选【2】)\n 查看文件(请选【3】)\n 更新文件(请选【4】)\n"); scanf("%d",&LL); if(LL==1) { Creat(); printf("\n创建考勤记录文件??Y/N(注意大写)\n"); scanf("%s",&YN); if (strcmp(YN,Y) == 0) { Creat2(); printf("\n创建工资信息文件??Y/N(注意大写)\n"); scanf("%s",&YN); if (strcmp(YN,Y) == 0) { Creat3(); goto kaishi; } else { goto kaishi; } } else { goto kaishi;

相关文档
最新文档