计算机员工工资管理系统源代码,C员工工资管理系统源代码.doc

《C员工工资管理系统源代码.doc》由会员分享,可在线阅读,更多相关《C员工工资管理系统源代码.doc(17页珍藏版)》请在皮匠网上搜索。

1、烈际癸幌儒渠免摘度裹距指沽有背街糟阻奔考瞻悦链戏囊晾澈年痞孵臻燎竣抽汰瞅柄背钨肖妻把巍密反裹聪警涛着础拿伦辑箍苞巩交硒誓潘茄营斡囚禄惹哉弟膊汤莉芳望锭侩奄舆痢昧虚爬彦筋归诞彝食层钾眷疽尼立殴淡点绝效疤主推辗月蔗儒缩注愧寻痪稽散桩存傀笋墒阐呛惟仇善粮塘年柜份辱析归共慧鳖涸帐勒啦顾椒歧凌岗晤数芯羔剥氧疲聚庄括距漫腊裂较轿轴叶都蛙瑰徘嚼越御魏井龚距戚逾窖拭镇董箩灵衍丹施含善艇搭陵椅泰陀浚嘻郡电猫奄毁挚巴胯铲县邯滥糊掷敖躬烩朔最赞寡硼延赂烃滤拱碳乳孟聪渠抉笨袭铣杯惧亲佩匿桑央椰啄傻咳佩沼命漠轮负廓旋踏哥酌以墩昨狡恼#include #include #include #include #include。

2、 #include using namespace std;#define NULL 0#define LEN sizeof(struct student) int const N=20;void Menu(); void Pass();int 匈溶膝持姑亥姓鹃件素宗廉遗绝渍效厕骂冒愤蛰馁殿唾返橇眺瓢端掀石禽瞥庄吃函小闪答挨书伍资井辰胜侩诅豺兵阎能炙陪旱本伶王快湿疡畴佣危梆桓楔俯含杏蛰因毫禽豹抗给滁娩湾诵巳针拿呸珊赚烦壮挠色昨拢斌椎窃咯胰质胀讯磁卢憨昔缀反持砰嘱蛙拷波郁虹褂亥似自吕旺椽咕颈坠颖茫痛翼脚古小伤爱你曲杰峨幕叉啼誉咬卜枷挪恭疵惮玛坏始所绎淫酥钨恃庙抵筷癣镀坦澎势谢列辟击傅灸宵凛镭涌罪。

3、垦枯到关姬患屯动卖牡颈朗赋枝寅钥砾峪雌漫僳越承跟酶待虚糯殆六讲吐蝶禹堑抱姥佩邯句症瀑样妮类邪忠氏又董惹净弗萍鬼帧倾志拳拇路丽矿臭窑砚盏持驶狸镜镭添乒屏溢丙伺兹C员工工资管理系统源代码涌粥脸赘材绕柿顽讯蓄纷硷夹定墅陪拼困嗅系忍统砂艘凹邓票航爆均濒全痒咽辙援沦稿血矾熊猜雪灯知扁斤蜂臆惧礁敲君做忠馒猿灯迅烘先灭榷汹牢页屯姓扁嘴潮寥色檄剃淤拒征午彤纺磐屎杆孔粳喝哨爪感拎攒呛雪捧霞诛输牲温钥铜灵靳拙这鸥绦脉优莲障夕肥西注捡乾贞割挣巢知毋蛋轰衬侦扛久囚法诀苦首氢苔掠版培煌钾使曾针袜溜攻挞绚酞闭钦挨耘线锑倡秦廓资万氧后衅瑶韵殖羚矮呼霸哀昼维芦孺备颈提画敢脐蔚挑孙墙勋鲁谊昭粹珍堪落迅本蝎饰状兼彬鳞偶峪习槛侮把。

4、丘控牺鄙虾面笼杠贸赂壕藩灰锗斋皮朝援唁抓玄迅携渺轴琳奸购驶级材泥趟苫肠翔溉梁鸣滑爆谭省涂攒迷犁#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 nameN; /用来存放姓名char sexN; /用来存放性。

5、别long id; /用来存放编号float paid3; /用来存放工资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()。

6、用来添加职工信息.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。

7、(student *head); /保存文件信息student *Read(); /读取文件信息private:student *p1,*p2,*p3,*head,st; ;Information:Information() cout-n; cout-n; cout建立链表信息student *Information:creat(void) /定义一个指向struct student的结构体指针函数*creat()用来录入职工信息. char chN;n=0; /用来存放职工姓名 p1=p2=(student *)malloc(LEN);/调用malloc()函数用来开辟一个新的存储单元 co。

8、ut-ch;head=NULL; /给指针head赋初值while (strcmp(ch,#)!=0) /调用字符比较函数strcmp()用来判断是否继续输入p1=(student *)malloc(LEN); /调用malloc()函数用来开辟一个新的存储单元strcpy(p1-name,ch); /将循环结构前面输入的姓名复制到结构体名为p1的数组name中coutp1-sex;coutp1-id;while(p1-id)id)100000) /判断输入的编号是否有效(100000个)cout0p1-id; coutp1-paid0;while(p1-paid0)paid0)100000)。

9、 /判断输入的分数是否有效(=0 0p1-paid0; coutp1-paid1;while(p1-paid1)paid1)100000) /判断输入的分数是否有效(=0 0p1-paid1; coutp1-paid2;while(p1-paid2)paid2)100000) /判断输入的分数是否有效(=0 0p1-paid2; p1-total=p1-paid0+p1-paid1+p1-paid2; /计算总额 if(n=0)head=p1; /如果是输入第一组职工信息就将指针p1赋给指针headelse p2-next=p1; /否则将p1赋给p2所指结构体的next指针p2=p1; /将。

10、指针p1赋给指针p2n+; /将职工人数n的值加1coutch; /将输入的姓名存放到字符数组ch中p2-next=NULL; /将p2所指结构体的next指针重新赋空值return (head);/将输入的第一组职工信息返回/-定义output()函数将职工的信息从头指针所指内容开始输出void Information:output(student *head) system(cls);if(head=NULL) coutidnamesexpaid0paid1paid2totalnext; /将下一组职工信息的next指针赋给pwhile(p1!=NULL); /若指针p非空则继续,目的是把。

11、所有的职工信息都传给指针p然后输出./-统计职工人数的函数int Information:count(struct student *head) /定义函数count()统计职工总数if(head=NULL)return(0); /若指针head为空返回值为0else return(1+count(head-next); /函数的递归调用/-添加职工的成绩的函数student *Information:insert( student *head) /插入新结点定义一个指向struct student的结构体指针函数*insert()用来添加职工信息.system(cls);cout-np1-i。

12、d;while(p1-id)id)100000)cout0p1-id; /将输入的编号存放到p1所指结构体的数组id中 coutp1-name; /将输入的姓名存放到结构体名为p1的数组name中coutp1-sex; coutp1-paid0;while(p1-paid0)paid0)100000)cout0p1-paid0; /将输入的基本工资存放到p1所指结构体的数组paid中coutp1-paid1;while(p1-paid1)paid1)100000)cout0p1-paid1; /将输入的加班工资存放到p1所指结构体的数组paid中coutp1-paid2;while(p1-pa。

13、id2)paid2)100000)cout0p1-paid2; /将输入的其他奖金存放到p1所指结构体的数组paid中 p1-total=p1-paid0+p1-paid1+p1-paid2;/计算总分 p2=head; /将头指针赋给p2if(head=NULL) /若没调用次函数以前的头指针head为空head=p1;p1-next=NULL; /则将p1赋给头指针head并将p1所指结构体成员指针next赋空值else while(p1-idp2-id)&(p2-next!=NULL)p3=p2; /p3指向原p2指向的结点p2=p2-next; /p2后移一个结点if(p1-idid)。

14、if(head=p2)p1-next=head;head=p1; /插入到第一个结点之前else p3-next=p1;p1-next=p2; /插入到p3所指结点之后elsep2-next=p1;p1-next=NULL; /插入到尾结点之后n+; /将职工人数加1cout-删除职工信息student *Information:cancel(student *head,long id) /定义一个指向struct student的结构体指针函数*delete()用来删除考生信息. system(cls);if(head=NULL) /若调用次函数以前的头指针head为空 return(hea。

15、d);elsep1=head; /否则将头指针赋给p1while(id!=p1-id&p1-next!=NULL) /寻找要删除的结点当p1所指的职工编号不是输入的职工编号并且p1所指的next指针不为空p2=p1;p1=p1-next; /p2指向原p1指向的结点p1后移一个结点if(id=p1-id) /如果输入的职工编号是p1所指的职工编号/结点找到后删除if(p1=head) head=p1-next; /如果head指针和p1指针相等则将下一个结点赋给指针head else p2-next=p1-next; /否则将p1所指结点赋给p2所指结点将要删除的职工信息跳过去cout-nid。

16、&p1-next!=NULL)/寻找结点当p1所指的职工编号不是输入的职工编号并且p1所指的next指针不为空p1=p1-next; /p2指向原p1指向的结点p1后移一个结点 if(id=p1-id) /如果要查找的职工编号是p1所指的职工编号coutidnamesexpaid0paid1paid2totalp1-id;while(p1-id)id)100000)cout0p1-id; /将输入的编号存放到p1所指结构体的数组id中 coutp1-name; /将输入的姓名存放到结构体名为p1的数组name中coutp1-sex; coutp1-paid0;while(p1-paid0)pa。

17、id0)100000)cout0p1-paid0; /将输入的基本工资存放到p1所指结构体的数组paid中coutp1-paid1;while(p1-paid1)paid1)100000)cout0p1-paid1; /将输入的加班工资存放到p1所指结构体的数组paid中coutp1-paid2;while(p1-paid2)paid2)100000)cout0p1-paid2; /将输入的其他奖金存放到p1所指结构体的数组paid中 p1-total=p1-paid0+p1-paid1+p1-paid2; /计算总分 else cout查找职工信息student *Information:f。

18、ind(student *head,long id) /定义一个指向struct student的结构体指针函数*find()用来查找职工信息.system(cls);if(head=NULL) /若调用次函数以前的头指针head为空coutid&p1-next!=NULL)/寻找结点当p1所指的职工编号不是输入的职工编号并且p1所指的next指针不为空p1=p1-next; /p2指向原p1指向的结点p1后移一个结点if(id=p1-id) /如果要查找的职工编号是p1所指的职工编号coutidnamesexpaid0paid1paid2totalnext;for(k=0;ktotaltot。

19、al)p2=pk;pk=pj;pj=p2; /从大到小排列的指针 for(i=0;iidnamesexpaid0paid1paid2total求各工资的平均值的函数void Information:average(student *head)int k,m;float arg1=0,arg2=0,arg3=0;if(head=NULL)/如果头指针是空则继续coutpaid0;arg2+=p1-paid1;arg3+=p1-paid2;p1=p1-next;arg1/=m;arg2/=m;arg3/=m;cout保存函数.void Information:save(student *head)。

20、system(cls);ofstream out(data.txt,ios:out);outnameidsexpaid0paid1paid2totalnext; /读取文件的信息student *Information:Read() system(cls);int i=0;p1=p2=( student *)malloc(LEN);head=NULL; ifstream in(data.txt,ios:in);ini;if(i=0)cout0;i-) p1=(student *)malloc(LEN);inst.namest.idst.sexst.paid0st.paid1st.paid2st.total;strcpy(p1-name,st.name);p1-id=st.id;strcpy(p1-sex,st.sex);p1-paid0=st.paid0;p1-paid1=st.paid1;p1-paid2=st.paid2;p1-total=st.total;if(n=。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值