职工工资信息管理系统设计本科论文_第1页
职工工资信息管理系统设计本科论文_第2页
职工工资信息管理系统设计本科论文_第3页
职工工资信息管理系统设计本科论文_第4页
职工工资信息管理系统设计本科论文_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《综合实验》实验报告实验名称___职工工资信息管理系统________学生专业_____网络工程_________________学生学号____________学生姓名_____________________题目职工工资信息管理系统Ⅰ、需要处理的基础抒抉职工基本信息:如工资卡号、身份证号、姓名、性别、年龄、工龄、部门、技术职称、技术职称编号、家庭电话号码、手机号码等。工资基础信息:技术职称编号、技术职称、基本工资、职务工资、各种补助等。费用扣除信息:工资卡号、水费、电费、清洁费(5元/月)、闭路电视费(10/月)等。工资单数据:工资卡号、姓名、应发工资、水费、电费、清洁费、闭路电视费、税金、实发工资、特别奖励。其中:税金计算方法为:应发工资<1800元,税金=0;1800<应发工资<3400,税金=(应发工资-1800)*5%应发工资>3400元,税金=(应发工资-3400)*10%Ⅱ、系统功能:(1)、各种基本数据的录入。如:职工基本信息录入。(2)、各种基本数据的修改。如:允许对以及录入的数据重新进行编辑、修改。(3)、各种基本数据的插入。如:在工资基础信息中插入一条新信息。(4)、各种基本数据的删除。如:假设某员工调离,删除该员工的相关信息等。(5)、基于各种数据的查询。如:技术职称为技术员的所有员工、基本工资在1000元以上的员工等。(6)、基于各种基本数据的统计计算Ⅲ、数据结构说明及举例数据结构可以采用十字交叉链表,也允许辅之以其他链表来完成对系统基础数据的完整描述。系统功能模块结构图职工工资信息管理系统职工工资信息管理系统载入模块插入模块统计模块查找模块删除模块修改模块录入模块载入模块插入模块统计模块查找模块删除模块修改模块录入模块 各模块功能载入模块(structworker*loadrec())根据data.txt文件中所保存的数据送到内存中进行处理,此时可省略录入信息的过程。录入模块(structworker*enterrec())对数据进行格式化,重新录入所有员工的信息。修改模块(voidchange(structworker*p1))根据用户所提供的员工身份证号查找员工并重新输入改员工的信息。插入模块(voidnewrec(structworker*head))新建一个员工的信息,并把该员工放到数据链表的最后面。删除模块(structworker*delrec(structworker*head))根据用户锁提供的员工身份证号查找员工并删除该员工的信息。查找模块根据用户的操作判断用户所需要查找的数据类型进行查找。统计模块根据用户的操作判断用户所需要统计的数据类型进行统计。四、实验结果1、2、3、4、……五、体会以前也做过很多实验,有时候觉得做实验没什么用,都是些小工具、小实验。现在才发现原来大实验是靠平时积累出来的,没有写过小实验,怎么会懂得写像这次综合实验一样的大实验呢!能写出想职工工资信息管理系统这么“庞大”的实验真的很有成就感。总结一句话:知识是日积月累的。由于时间比较赶,所以就实现了大部分的功能,还有小部分内容有待完善,敬请老师谅解,谢谢!六、参考文献①《C程序设计》谭浩强清华大学出版社②百度知道……附录:程序清单(程序代码)#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#include"stdlib.h"#defineLENsizeof(structworker)structworker{ charcredit_num[20]; charid[20]; charname[10]; charsex[10]; intage; intworkage; chardepartment[20]; charposition[20]; intposition_num; chartelephone[9]; charmobilephone[12]; doublebasepay; doublepositionpay; doubleextrapay; doublewater_fare; doublepower_fare; doubleclean_fare; doubletv_fare; doublepay; doubletax; doublerealpay; doubleothers;structworker*next;};voidmenu()//菜单{ system("cls"); printf("********************\n"); printf("*职工工资信息管理系统*\n"); printf("********************\n"); printf("功能有限敬请谅解\n"); printf("如有雷同纯属巧合\n");printf("**********************************************\n");printf("**********************************************\n");printf("**0、退出编辑**\n"); printf("**1、数据录入**\n");printf("**2、数据修改**\n");printf("**3、数据插入**\n");printf("**4、数据删除**\n"); printf("**5、数据查询**\n"); printf("**6、数据统计计算**\n"); printf("**任何情况下点击右上角的叉叉图标即可关闭**\n");printf("**********************************************\n");printf("**********************************************\n"); printf("请输入所选择的序号:");}structworker*enterrec()//录入信息{ structworker*head,*p1,*p2; FILE*fp; system("cls"); p1=p2=(structworker*)malloc(LEN); head=p1; printf("\n\n请正确输入职工基本信息:(本项信息没有的用""0""代替)\n请输入身份证号码:");scanf("%s",p1->id); while(strcmp(p1->id,"0")!=0){printf("请输入姓名:");scanf("%s",p1->name);printf("请输入性别:");scanf("%s",p1->sex);printf("请输入年龄:");scanf("%d",&p1->age);printf("请输入工龄:");scanf("%d",&p1->workage);printf("请输入部门:");scanf("%s",p1->department);printf("请输入技术职称:");scanf("%s",p1->position);printf("请输入技术职称编号:");scanf("%d",&p1->position_num);printf("请输入工资卡号:");scanf("%s",p1->credit_num);printf("请输入家庭电话号码:");scanf("%s",p1->telephone);printf("请输入手机号码:");scanf("%s",p1->mobilephone);printf("请输入基本工资:");scanf("%lf",&p1->basepay);printf("请输入职务工资:");scanf("%lf",&p1->positionpay);printf("请输入补助资金:");scanf("%lf",&p1->extrapay);printf("请输入水费:");scanf("%lf",&p1->water_fare);printf("请输入电费:");scanf("%lf",&p1->power_fare);printf("请输入特别奖励资金:");scanf("%lf",&p1->others); p1->clean_fare=5; p1->tv_fare=10; p1->pay=p1->basepay+p1->positionpay+p1->extrapay-p1->water_fare-p1->power_fare-p1->clean_fare-p1->tv_fare; if(p1->pay<=1800)p1->tax=0; elseif(p1->pay>1800&&p1->pay<=3400)p1->tax=(p1->pay-1800)*0.05; elsep1->tax=(p1->pay-3400)*0.1; p1->realpay=p1->pay-p1->tax+p1->others; p1=(structworker*)malloc(LEN); p2->next=p1; p2=p1; printf("请输入下一个员工身份证号码(若录入结束输入0即可!)"); scanf("%s",p1->id); } p2->next=NULL; fp=fopen("data.txt","at+"); p1=head; while(p1->next!=NULL){ fprintf(fp,"%s%s%s%d%d%s%s%d%s%s%s%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f\n",p1->id,p1->name,p1->sex,p1->age,p1->workage,p1->department,p1->position,p1->position_num,p1->credit_num,p1->telephone,p1->mobilephone,p1->basepay,p1->positionpay,p1->extrapay,p1->water_fare,p1->power_fare,p1->others,p1->pay,p1->tax,p1->realpay); p1=p1->next;} fclose(fp); printf("录入成功\n"); system("pause"); returnhead;}voidchange(structworker*p1)//修改{ charid[20]; system("cls"); printf("请输入要编辑的员工身份证号:"); scanf("%s",id); while(p1->next!=NULL) { if(strcmp(p1->id,id)==0)break; elsep1=p1->next;} if(strcmp(p1->id,id)==0) { printf("\n\n请重新输入该职工基本信息:\n请输入身份证号码:");scanf("%s",p1->id);printf("请重新输入姓名:");scanf("%s",p1->name);printf("请重新输入性别:");scanf("%s",p1->sex);printf("请重新输入年龄:");scanf("%d",&p1->age);printf("请重新输入工龄:");scanf("%d",&p1->workage);printf("请重新输入部门:");scanf("%s",p1->department);printf("请重新输入技术职称:");scanf("%s",p1->position);printf("请重新输入技术职称编号:");scanf("%d",&p1->position_num);printf("请重新输入工资卡号:");scanf("%s",p1->credit_num);printf("请重新输入家庭电话号码:");scanf("%s",p1->telephone);printf("请重新输入手机号码:");scanf("%s",p1->mobilephone);printf("请重新输入基本工资:");scanf("%lf",&p1->basepay);printf("请重新输入职务工资:");scanf("%lf",&p1->positionpay);printf("请重新输入补助资金:");scanf("%lf",&p1->extrapay);printf("请重新输入水费:");scanf("%lf",&p1->water_fare);printf("请重新输入电费:");scanf("%lf",&p1->power_fare);printf("请重新输入特别奖励资金:"); scanf("%lf",&p1->others); p1->clean_fare=5; p1->tv_fare=10; p1->pay=p1->basepay+p1->positionpay+p1->extrapay-p1->water_fare-p1->power_fare-p1->clean_fare-p1->tv_fare; if(p1->pay<=1800)p1->tax=0; elseif(p1->pay>1800&&p1->pay<=3400)p1->tax=(p1->pay-1800)*0.05; elsep1->tax=(p1->pay-3400)*0.1; p1->realpay=p1->pay-p1->tax+p1->others; printf("修改成功\n");} elseprintf("找不到该员工\n"); system("pause");}voidwrite(structworker*head)//写入{ system("cls"); structworker*p1; FILE*fp; fp=fopen("data.txt","wt+"); p1=head; while(p1->next!=NULL){ fprintf(fp,"%s%s%s%d%d%s%s%d%s%s%s%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f\n",p1->id,p1->name,p1->sex,p1->age,p1->workage,p1->department,p1->position,p1->position_num,p1->credit_num,p1->telephone,p1->mobilephone,p1->basepay,p1->positionpay,p1->extrapay,p1->water_fare,p1->power_fare,p1->others,p1->pay,p1->tax,p1->realpay); p1=p1->next;} fclose(fp); printf("数据已成功保存在data.txt中!\n");}structworker*loadrec(){ FILE*fp;structworker*head,*p1,*p2; fp=fopen("data.txt","rt"); p1=p2=(structworker*)malloc(LEN); head=p1; while(!feof(fp)) { fscanf(fp,"%s%s%s%d%d%s%s%d%s%s%s%lf%lf%lf%lf%lf%lf%lf%lf%lf\n",p1->id,p1->name,&p1->sex,&p1->age,&p1->workage,p1->department,p1->position,&p1->position_num,p1->credit_num,&p1->telephone,p1->mobilephone,&p1->basepay,&p1->positionpay,&p1->extrapay,&p1->water_fare,&p1->power_fare,&p1->others,&p1->pay,&p1->tax,&p1->realpay); p1=(structworker*)malloc(LEN); p2->next=p1; p2=p1; } p1->next=NULL; returnhead;}voidnewrec(structworker*head)//插入{ system("cls"); structworker*p1,*p2; p1=head; while(p1->next!=NULL) p1=p1->next; p2=(structworker*)malloc(LEN); p2->next=NULL; p1->next=p2; p2=p1; printf("\n\n请输入新职工基本信息:\n请输入身份证号码:");scanf("%s",p1->id);printf("请输入姓名:");scanf("%s",p1->name);printf("请输入性别:");scanf("%s",p1->sex);printf("请输入年龄:");scanf("%d",&p1->age);printf("请输入工龄:");scanf("%d",&p1->workage);printf("请输入部门:");scanf("%s",p1->department);printf("请输入技术职称:");scanf("%s",p1->position);printf("请输入技术职称编号:");scanf("%d",&p1->position_num);printf("请输入工资卡号:");scanf("%s",p1->credit_num);printf("请输入家庭电话号码:");scanf("%s",p1->telephone);printf("请输入手机号码:");scanf("%s",p1->mobilephone);printf("请输入基本工资:");scanf("%lf",&p1->basepay);printf("请输入职务工资:");scanf("%lf",&p1->positionpay);printf("请输入补助资金:");scanf("%lf",&p1->extrapay);printf("请输入水费:");scanf("%lf",&p1->water_fare);printf("请输入电费:");scanf("%lf",&p1->power_fare);printf("请输入特别奖励资金:"); scanf("%lf",&p1->others); p1->clean_fare=5; p1->tv_fare=10; p1->pay=p1->basepay+p1->positionpay+p1->extrapay-p1->water_fare-p1->power_fare-p1->clean_fare-p1->tv_fare; if(p1->pay<=1800)p1->tax=0; elseif(p1->pay>1800&&p1->pay<=3400)p1->tax=(p1->pay-1800)*0.05; elsep1->tax=(p1->pay-3400)*0.1; p1->realpay=p1->pay-p1->tax+p1->others; printf("插入信息成功\n"); system("pause");}structworker*delrec(structworker*head)//删除{ system("cls"); structworker*p1,*p2; charstr[20]; p1=head; p2=NULL; printf("请输入要删除职工的身份证号:"); scanf("%s",str); while(p1->next!=NULL) { if(strcmp(p1->id,str)==0)break; else p2=p1; p1=p1->next;} if(p1->next==NULL&&(strcmp(p1->id,str)!=0))printf("找不到该员工\n"); elseif(p2==NULL){p1=p1->next;head=p1;printf("删除成功!\n");} else{p2->next=p1->next;printf("删除成功!\n");}system("pause"); returnhead;}voidsearch1(structworker*head){ system("cls"); structworker*p1; p1=head; printf("技术职称为技术员的所有员工身份证号:\n"); while(p1!=NULL) { if(strcmp(p1->position,"技术员")==0){printf("%s\n",p1->id);p1=p1->next;} elsep1=p1->next;} system("pause");}voidsearch2(structworker*head){ system("cls"); structworker*p1; p1=head; printf("基本工资在1000元以上的员工身份证号:\n"); while(p1!=NULL) { if(p1->basepay>=1000){printf("%s\n",p1->id);p1=p1->next;} elsep1=p1->next;} system("pause");}voidmenu1(structworker*head){ system("cls"); intn; printf("**1、查询技术职称为技术员的所有员工\n");printf("**2、查询基本工资在1000元以上的员工\n");printf("请输入所选择的序号:"); scanf("%d",&n); switch(n) { case1:search1(head);break; case2:search2(head);break; default:printf("输入有误,请退出重新输入\n");system("pause");}}voidstatistic1(structworker*head){ structworker*p1; intn=0; p1=head; while(p1!=NULL) { if(p1->age<=20){n++;p1=p1->next;} elsep1=p1->next;} printf("年龄20岁以下青年员工数:%d\n",n-1); system("pause");}voidstatistic2(structworke

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论