ImageVerifierCode 换一换
格式:DOC , 页数:26 ,大小:274.04KB ,
资源ID:2929991      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2929991.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(C语言课程设计单项链表实现工资管理系统.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言课程设计单项链表实现工资管理系统.doc

1、高级语言(C语言)课程设计说明书起止日期: 2012 年 07 月 2 日 至 2012 年 07 月 14 日题目工资管理系统学生姓名班级学号成绩通信与信息工程学院一 课程设计要求课程设计系统组成及模块功能:工资管理程序主要完成对职工的工资信息录入,然后进行排序,统计,查询,计算税金等功能操作。具体要求如下:1. 职工录入工资信息包括:编号,姓名,基本工资,扣款,应发工资,税金,实发工资2.程序主菜单如下: *MENU*, /*菜单的标题行*/ 0. init list /*初始化单链表*/ 1. Enter list /*输入数据,创建单链表*/ 2. List all /*显示所有记录*

2、/ 3. Calc the salary /*计算实发工资*/ 4. Search record on name /*查找职工信息数据*/ 5. Delete a record /*删除记录*/ 6. Sort on sfgz /*按实发工资升序排序*/ 7. Computer ticket number /*计算所需票面数*/ 8. Total on number /*分类合计*/ 9. Quit /*退出*/3. 要求定义如下函数,对应菜单功能/*函数原型*/void init(); /*单链表初始化*/void create(); /*创建单链表, 输入数据*/void calc();

3、/*计算实发工资*/void delete(); /*删除*/void search(); /*查找*/void computer(); /*计算所需各种票面张数*/void sort(); /*排序*/void list(); /*显示所有数据*/void print(SALARY *p); /*输出单条记录*/float fax(float x); /*计算税金*/void total(); /*分类合计*/int menu_select(); /*主菜单*/二 程序的功能设计此工资管理系统主要利用链表实现,由如下八个功能模块实现1、输入模块。主要完成输入工资信息的工作,并存入链表中。2、

4、输出模块。主要完成对所有工人信息的输出。3、修改模块。主要完成对职工信息的修改工作。4、插入模块。主要完成对职工信息的插入工作。5、查询模块。主要完成对某个职工信息的查询工作。6、删除模块。主要完成对某退休或离职职工信息的删除。7、排序模块。主要完成对所有职工按实发工资进行的升序或降序排列。8、保存模块。主要完成对已经输入和修改或删除的保存文件。9、退出。 退出系统三 程序的数据结构本程序运用结构体、单项链表等数据结构。职工信息结构体如下:struct worker /定义数据结构/ char no11; /编号/ char name15; /姓名/ char xb10; /性别/ doubl

5、e jbgz; /基本工资/ double koukuan; /扣款/ double yfgz; /应发工资/ double shuijin; /税金/ double sfgz; /实发工资/ char post10; /职位/ struct worker *next; typedef struct worker STU;/结构体类型名/四、程序的函数设计1. 函数的功能描述int menu_select(void); /主菜单/STU *append(STU *head); /添加记录/STU *appendNode(STU *head);void list(STU *head); /显示所

6、有数据/STU *modify(STU *head);/修改职工记录/STU *modifyNode(STU *head);void *search(STU *head); /查询职工信息/void *no(STU *head); /编号查询/void *name(STU *head); /姓名查询/STU *dele(STU *head); /删除职工信息/STU *deleNode(STU *head, char k11);void *save(STU *head); /保存文件/ STU *insert(STU *head); /插入职工信息/STU *tax(STU *head); /

7、计算税金/STU *calc(STU *head); /计算应发工资/STU *total(STU *head); /计算实发工资/STU *sort(STU *head); /对职工信息进行排序/STU *insort(STU *head); /升序函数/STU *desort(STU *head); /降序函数/void *index(STU *head); /分类统计/void *index1(STU *head);void *index2(STU *head);void *index3(STU *head);void *index4(STU *head);int user_ID();

8、/登录账户函数/ STU 表示结构体类型名Head 表示链表的头结点2. 、函数的调用关系void main() int ch; char a; STU *head = NULL; system(color 02);/背景色/前景色的设置(0黑色、1蓝色、2绿色、3浅绿色、4红色、5紫色、6黄色、7白色、8灰色、9淡紫色、A淡绿色、B淡浅绿色、C淡红色、D淡紫色、E淡黄色、F亮白色)/ a=getchar(); while(!a); system(cls); user_ID();while(1) ch=menu_select(); switch(ch) case 1:head=append(h

9、ead);break; /制作工资表/ case 2:list(head);break; /输出所有的职工的信息 / case 3:head=modify(head);break; /修改职工信息/ case 4:head=insert(head);break; /插入职工信息/case 5:search(head);break; /查询职工信息/case 6:head=dele(head);break;/删除职工信息/ case 7:head=sort(head);break; /对职工信息进行排序/case 8:save(head);break; /保存文件/case 9:index(he

10、ad);break; /分类统计/ case 0:exit(0); /退出/ default:printf(Input error!n); break; 五、程序源代码 #include#include#include#include#include#include struct worker /定义数据结构/ char no11; /编号/ char name15; /姓名/ char xb10; /性别/ double jbgz; /基本工资/ double koukuan; /扣款/ double yfgz; /应发工资/ double shuijin; /税金/ double sfgz

11、; /实发工资/ char post10; /职位/ struct worker *next; typedef struct worker STU;/结构体类型名/*函数原型*/int menu_select(void); /主菜单/STU *append(STU *head); /添加记录/STU *appendNode(STU *head);void list(STU *head); /显示所有数据/STU *modify(STU *head);/修改职工记录/STU *modifyNode(STU *head);void *search(STU *head); /查询职工信息/void

12、*no(STU *head); /编号查询/void *name(STU *head); /姓名查询/STU *dele(STU *head); /删除职工信息/STU *deleNode(STU *head, char k11);STU *insert(STU *head); /插入职工信息/STU *tax(STU *head); /计算税金/STU *calc(STU *head); /计算应发工资/STU *total(STU *head); /计算实发工资/STU *sort(STU *head); /对职工信息进行排序/STU *insort(STU *head); /升序函数/S

13、TU *desort(STU *head); /降序函数/void index(STU *head); /分类统计/void index1(STU *head);void index2(STU *head);void index3(STU *head);void index4(STU *head);int user_ID(); /登录账户函数/void main() int ch; char a; STU *head = NULL; system(color 02);/背景色/前景色的设置(0黑色、1蓝色、2绿色、3浅绿色、4红色、5紫色、6黄色、7白色、8灰色、9淡紫色、A淡绿色、B淡浅绿色

14、、C淡红色、D淡紫色、E淡黄色、F亮白色)/ printf( &*&*&*&*&*&*&*&n); printf( * 欢迎使用工资管理系统 *n); printf( *n); printf( *表头*n); printf( *实验名称:工资管理系统 *n); printf( *学校:西安科技大学 *n); printf( *姓名:张帝 *n); printf( *学号:1107050415 *n); printf( *专业:电子信息工程 *n); printf( *n); printf( &*按任意键继续*&n); a=getchar(); while(!a); system(cls); u

15、ser_ID();while(1) ch=menu_select(); switch(ch) case 1:head=append(head);break; /制作工资表/ case 2:list(head);break; /输出所有的职工的信息 / case 3:head=modify(head);break; /修改职工信息/ case 4:head=insert(head);break; /插入职工信息/case 5:search(head);break; /查询职工信息/case 6:head=dele(head);break;/删除职工信息/ case 7:head=sort(hea

16、d);break; /对职工信息进行排序/case 8:index(head);break; /分类统计/ case 0:exit(0); /退出/ default:printf(Input error!n); break; int menu_select(void) int ch; printf( &*主菜单*&n); printf( *1. 制作工资表 *n); printf( *2. 输出所有的职工的信息 *n); printf( *3. 修改职工的信息 *n); printf( *4. 插入职工信息 *n); printf( *5. 查询职工的信息 *n); printf( *6. 删

17、除职工的信息 *n); printf( *7. 对职工信息进行排序 *n); printf( *8. 分类统计 *n); printf( *0. 退出 *n); printf( &*&n); printf( 请输入你的选择:); scanf( %d,&ch); return ch;STU *append(STU *head) char c; system(cls); dohead=appendNode(head); /向链表末尾添加一个节点/ printf(确认添加新纪录请按Y/y! ); printf(其他键视为不添加!n); printf(你想添加一个新的记录吗(Y/N)?); scanf

18、( %c,&c); while (c=Y | c=y); system(cls); return head;STU *appendNode(STU *head) STU *p = NULL; STU *pr = head; p=(STU *)malloc(sizeof(STU); /为新添加的节点申请内存/ if (p = NULL) /若申请内存失败,则输出错误信息,退出程序/ printf(No enough memory to alloc); exit(0); if (head=NULL) /若原链表为空,则将新建节点置为首节点/ head=p; else while (pr-next

19、!= NULL)/若未到表尾,则继续移动指针pr,直到pr指向表尾/ pr = pr-next; pr-next = p; /将新建节点添加到链表的末尾/ pr = p; /让pr指向新建节点/ printf(输入职工的编号:); scanf(%s, p-no); printf(输入职工的姓名:); scanf(%s, p-name); printf(输入职工的性别:); scanf(%s, p-xb); printf(输入职工的职位:); scanf(%s, p-post); printf(输入职工的月基本工资:); scanf(%lf, &p-jbgz); printf(输入职工的月扣款数

20、:); scanf(%lf,&p-koukuan); p-sfgz=0; /初始实发工资为0/ p-shuijin=0; /初始税金为0/ p-yfgz=0; /初始应发工资为0/ pr-next = NULL; /将新建节点置为表尾/ return head; void list(STU *head) STU *p=head; system(cls); if(p=NULL) printf(工资表为空请重新输入!n); else head=calc(head); head=tax(head); head=total(head); printf(*工资表*n); printf(编号t姓名t性别t

21、职位t基本工资t扣款t应发工资t实发工资); while(p!=NULL) printf(%st%st%st%st%.2lf t%.2lft%.2lf t%.2lfn,p-no,p-name,p-xb,p-post,p-jbgz,p-koukuan,p-yfgz,p-sfgz); p=p-next; STU *modify(STU *head) char c; STU *p=NULL; STU *q=head; system(cls); dop=modifyNode(head); printf(继续修改请按Y/y! ); printf(其他键视为不修改!n);printf(你想继续修改记录吗(

22、Y/N)?); scanf( %c,&c); while (c=Y | c=y); return head;STU *modifyNode(STU *head) int i,j; char k11; STU *p=NULL; STU *q=head; system(cls); if(q=NULL) printf(工资表为空请重新输入!n); return head; printf(请输入你想修改的职工的编号:); scanf(%s,k); while(q&strcmp(q-no,k)!=0) /做比较判断/ q=q-next; /没找到,指针后移继续查找/ if(q=NULL) /指针为空,说

23、明没有找到/ printf(Not found!n); return head; else printf(编号t姓名t性别t职位t基本工资t扣款t应发工资t实发工资); printf(%st%st%st%st%.2lf t%.2lft%.2lft%.2lfn,q-no,q-name,q-xb,q-post,q-jbgz,q-koukuan,q-yfgz,q-sfgz); printf(按1修改职工编号n); printf(按2修改职工姓名n); printf(按3修改职工性别n); printf(按4修改职工职位n); printf(按5修改职工基本工资n); printf(按6修改职工扣款数

24、n); printf(请输入要修改的列名:); scanf(%d,&i); switch(i) case 1:system(cls); printf(请输入修改后的职工编号:); scanf(%s,q-no); system(cls); printf(nn是否继续修改?n); printf(是请输入1n); printf(否请输入2n); printf(你的选择:); scanf(%d,&j); switch(j) case 1:p=modifyNode(head);break; case 2:system(cls);break; default:printf(Input error!n);

25、break; break; case 2:system(cls); printf(请输入修改后的职工姓名:); scanf(%s,q-name); system(cls); printf(nn是否继续修改?n); printf(是请输入1n); printf(否请输入2n); printf(你的选择:); scanf(%d,&j); switch(j) case 1:modifyNode(head);break; case 2:system(cls);break; default:printf(Input error!n); break; break; case 3:system(cls);

26、printf(请输入修改后的职工性别:); scanf(%s,q-xb); system(cls); printf(nn是否继续修改?n); printf(是请输入1n); printf(否请输入2n); printf(你的选择:); scanf(%d,&j); switch(j) case 1:modifyNode(head);break; case 2:system(cls);break; default:printf(Input error!n); break; break; case 4:system(cls); printf(请输入修改后的职工职位:); scanf(%s,q-pos

27、t); system(cls); printf(nn是否继续修改?n); printf(是请输入1n); printf(否请输入2n); printf(你的选择:); scanf(%d,&j); switch(j) case 1:modifyNode(head);break; case 2:system(cls);break; default:printf(Input error!n); break; break; case 5:system(cls); printf(请输入修改后的职工基本工资:); scanf(%lf, &q-jbgz); system(cls); printf(nn是否继

28、续修改?n); printf(是请输入1n); printf(否请输入2n); printf(你的选择:); scanf(%d,&j); switch(j) case 1:modifyNode(head);break; case 2:system(cls);break; default:printf(Input error!n); break; break; case 6:system(cls); printf(请输入修改后的扣款数:); scanf(%lf,&q-koukuan); system(cls); printf(nn是否继续修改?n); printf(是请输入1n); printf

29、(否请输入2n); printf(你的选择:); scanf(%d,&j); switch(j) case 1:modifyNode(head);break; case 2:system(cls);break; default:printf(Input error!n); break; default:printf(Input error!n);break; return p;void *search(STU *head) int a; system(cls); printf(nnnnnn); printf(*查询菜单*n); printf(* 1按职工的编号查询 *n); printf(*

30、2按职工的姓名查询 *n); printf(*n); printf(请按数字键选择:); scanf(%d,&a); switch(a) case 1:no(head); break; case 2:name(head);break;default:printf(Input error!n); break; return NULL;void *no(STU *head)char k11; STU *q=head; system(cls); if(q=NULL) printf(工资表为空请重新输入!n); return head; printf(请输入你想查找的职工的编号:); scanf(%s

31、,k); while(q&strcmp(q-no,k)!=0) /做比较判断/ q=q-next; /没找到,指针后移继续查找/ if(q=NULL) /指针为空,说明没有找到/ printf(Not found!n); return NULL; else printf(编号t姓名t性别t职位t基本工资t扣款t应发工资t实发工资); printf(%st%st%st%st%.2lf t%.2lft%.2lft%.2lfn,q-no,q-name,q-xb,q-post,q-jbgz,q-koukuan,q-yfgz,q-sfgz); return NULL;void *name(STU *he

32、ad)char k15; STU *q=head; system(cls); if(q=NULL) printf(工资表为空请重新输入!n); return head; printf(请输入你想查找的职工的姓名:); scanf(%s,k); while(q&strcmp(q-name,k)!=0) /做比较判断/ q=q-next; /没找到,指针后移继续查找/ if(q=NULL) /指针为空,说明没有找到/ printf(Not found!n); return NULL; else printf(编号t姓名t性别t职位t基本工资t扣款t应发工资t实发工资); printf(%st%st

33、%st%st%.2lf t%.2lft%.2lft%.2lfn,q-no,q-name,q-xb,q-post,q-jbgz,q-koukuan,q-yfgz,q-sfgz); return NULL;STU *dele(STU *head) int i = 0; char k11; char c; system(cls); do printf(请输入你想删除的记录编号:); scanf(%s,k); head=deleNode(head,k); /删除编号为k的工人信息/ list(head); /显示当前链表中的各节点信息/ printf(删除请按Y/y!n); printf(按其它键视为不删除!n); printf(确认继续删除职工信息(Y/N)?); s

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服