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

开通VIP
 

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

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

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

注意事项

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

C语言程序设计基础课程设计工资系统报告.doc

1、C语言程序设计基础课程设计工资系统报告942020年4月19日资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 目录一、 需求分析-2二、 概要设计-2三、 详细设计-4四、 调试分析-4五、 用户手册-5六、 测试数据-6七、 程序代码-14 第1页一、 需求分析1. 第一步, 依据身份进行登录, 管理员和职工所能进行的操作不同, 具备较高安全性, 同时用户可根据需要修改自己的密码, 管理员还可添加和删除用户, 首次使用时不存在用户, 管理员可进行注册, 注册成功后再进入使用。2. 多职工信息进行操作时, 建立动态链表, 每个节点包含一个职员的工号、 姓名、 工资等全部信息, 经

2、过链表构建一个完整的职工信息库, 链表具备录入、 删除、 修改、 查询及统计功能, 各功能显示在菜单中, 由主函数分别调用。3. 为了避免一个函数体过长, 进行细化子函数, 小型子函数在各个主调函数里多次调用, 便于使用。4. 以可读可写可追加方式新建一个文本文件, 用于存储链表里所有节点上包含的信息, 将节点信息导入文件时, 从头指针开始, 依次写入。5. 查询、 修改、 删除、 职工信息时, 调用子函数以只读方式打开系统库文件, 并将文件从头至尾读取一遍, 每次读取一个节点的长度, 将每次读取到的信息依次导入到链表的节点中去, 再对链表进行所需功能的操作。修改和删除完成后, 将整个链表包含

3、的信息重新写入文件, 写入之前打开系统库文件同时进行格式化。6. 统计职工最高、 最低工资及工资均方差时, 以同时方式将职工工资等信息导入到链表中, 然后以子菜单的形式输出统计的项目, 包括各部门和全公司以及最高、 最低工资和工资均方差。统计各部门最高、 最低工资和工资均方差时需再调用子函数分别进行操作。统计全公司最高、 最低工资和工资均方差时采用多分支结构进行。7. 经过屏幕操作等函数对界面进行处理, 相对美观。菜单及所有操作提示信息均采用中文输出, 每一步操作后会有相应的提示。如文件不存在或为空时, 会提示”文件打开失败! ”或”文件是空的! ”或输入有误时提示重新输入。 二、 概要设计1

4、. 函数设计main(); 主函数控制整个程序流程, 先登录再进行子函数调用menu1(); 管理员菜单函数menu2(); 职工菜单函数, 可操作范围比管理员小createlianbiao(); 创立链表函数, 用链表构建整个信息库input(); 录入函数, 将链表存进文件readwenjian(struct employee_gz *head); 读取文件内容到指定链表 第2页search(struct employee_gz *head,char xinxi); 查询员工工资信息 shuchuxinxi(struct employee_gz *head,char xinxi); 输出查

5、询到的员工信息xiugai(struct employee_gz *head,char infor); 修改链表信息送到主修改里去modify(struct employee_gz *head); 修改文件里员工工资信息Delete(struct employee_gz *head); 删除文件里某员工信息shanchujd(struct employee_gz *head,char info); 删除节点信息zhuceyh(); 注册账号tianjiayh(); 添加账户信息 deleteyh(); 删除用户信息 choose(struct employee_gz *head,char bu

6、men); 选择统计的项目count_zdgz(struct employee_gz *head,char bumen); 用于某部门计算最低工资count_zggz(struct employee_gz *head,char bumen); 用于某部门计算最高工资count_pjgz(struct employee_gz *head,char bumen); 用于某部门计算平均工资count_gzfc(struct employee_gz *head,char bumen); 用于某部门计算工资方差count_gz(struct employee_gz *head,char bumen);

7、浏览统计的各项工资指标tianjiayh(); 管理员可进行添加职工账户信息, 用于职工登录系统查询信息2. 流程控制(1) 主函数模块int main()读取账户文件; do 管理员登录; 函数分支: 1)录入记录: 调用读取职工工资信息文件函数和创立链表函数后写入文件; 2)删除记录: 调用读取职工工资信息文件函数和修改链表函数后重新写入文件; 3)查询记录: 调用读取职工工资信息文件函数和输出所查节点信息函数; 4)修改记录: 调用读取职工工资信息文件函数和修改节点信息函数后重新写入文件; 5)统计记录: 采用两层多分支结构, 第一层分支结构进行部门选择, 调用读取职工工资信息文件函数和

8、统计最低、 最高、 平均工资和工资方差函数, 统计全公司工资时直接查找和计算; 6)重新登录: 返回主函数; 7)添加登录账户: 调用添加账户函数; 8)修改账户密码: 调用修改密码函数; 9)删除登录账户: 调用删除账户函数; 0)退出系统: exit(0); 职工登录; 第3页函数分支: 1)查询个人记录: 调用输出符合搜索条件的节点信息函数; 2)浏览公司记录: 调用统计工资函数; 3)重新登录: 返回主函数; 4)修改登录密码: 调用修改密码函数; 0)退出系统: exit(0); while(退出系统: exit(0)三、 详细设计1. 基本数据类型 (1)字符串型; (2)长整数型

9、; 2. 程序设计步骤说明及注释 (1)函数介绍及调用关系见概要设计。 (2)注释见附录( 源代码中以标出注释) 。四、 调试分析1. 开始创立了链表之后, 将整个链表中的信息写入文件时, 写入方式不对, 向文件里写入数据块内容时, 数据以二进制方式存储, 新建文件和打开文件的方式必须加上b, 并用循环控制, 从头结点开始, 每次写入一个节点, 数据长度为1, 而不是其它的数字。2. 修改和删除后文件里的数据出现错乱, 再次查询时出现乱码, 原因还是操作后的写入方式不对, 需要以”wb”方式将原文件清空再将整个链表中的信息写入。 3. 进行工资信息统计时, 输出结果有错误, 加入员工数的输出后

10、发现输出的员工数比录入的多, 且其工资为0的情况, 进行查询函数检验时发现会输出多余的空信息( 无职工名、 无工号、 工资为零等) 或者重复输出, 原因应该是存入文件时存在问题, 因此在输出查询信息及统计时加入了限制条件将空节点或者多余的信息筛选掉。4. 统计分为各部门和全公司, 如果只用一个子函数实现所有统计功能则比较繁琐、 函数体太大, 因此需再使用子函数分别对各项目进行统计, 那么进行不同部门的统计时调用子函数就比较困难。因此在这些统计最低工资、 最高工资、 平均工资、 工资方差的函数中, 需要定义一个部门变量, 在条件语句里把部门信息经过参数传递在子函数中使用, 从而经过条件语句找到该

11、部门信 第4页 息并统计。5. 在删除和修改函数中, 为了避免繁琐, 同样调用子函数对链表进行操作, 在 进行修改方式和删除方式选择时, 需要重新定义一个共同变量并传递给子函数, 在判断语句里采用”或”语句对姓名和工号同时搜索。6. 在进行职工信息添加时, 开始没有避免重复信息的输入, 输入已有的职工工号时, 应提示”已有该职工信息! ”, 因此要对原文件的内容进行便利检索, 同时要对正在建立的链表进行检索, 因为无法将原文件内容与正在建立的链 表连接起来, 只能经过对两个链表进行两次检索, 将正在建立的链表以追加的方式写到已经建立好的文件中( 添加到元数据后面) 。7. 进行菜单内的操作提示

12、输入有误时, 再按任意键会直接退到主菜单, 再要进行该操作需重新选择菜单, 耗费时间, 使用循环语句控制, 提示”输入有误时! ”再次提示输入, 将新输入的数据重新赋给变量, 知道输入信息正确时, 包括部门及职务的合法性检验。8. 将职工的基金、 税金、 应发工资等信息修改后, 输出查询的各项结果除以修改的其它的不变, 那么就不符合要求, 因为应发工资等于基本工资与岗位工资、 奖金之和, 实发工资等于应发工资减去基金和税金, 因此修改这些信息时, 需要重新计算, 保证各项信息正确。9. 上一界面或者上一语句操作完成后需跳转下一语句, 有时会出现两层信息重叠在一起, 甚至错误, 原因是没有清除上

13、一层内容, 因此需要在很多地方加入清屏操作或是删除上一行的操作, 进行删除上面多行时, 要从所需删的最下面一行开始删除, 依次向上。10. 职工登录后, 把其工号( 用户名) 作为参数传递给子函数, 查询其个人信息 时, 按此工号对文件里的内容( 先将文件内容读到链表里) 进行检索后输出。11. 开始没有修改登录密码的操作, 不便于用户使用, 增加修改密码函数后, 管 理员和职工能够各自修改自己的密码, 保证用户安全。后来还同时添加了删 除登录账户函数, 便于管理员管理。12. 考虑到首次使用时, 没有任何账户信息, 也没有存储用户的文件, 而导致运 行故障。因此首次运行时, 增加语句完成管理

14、员用户的注册, 注册成功后管 理员再进行相关操作。五、 用户手册1. 本程序的运行环境为windows xp或windows 7(32位)的操作系统 ,执行文件为 第5页 GONGZI1.EXE。2. 打开运行程序后, 按照提示进行登录操作身份分为管理员和职工, 依据自己的身份对应用户名及密码登录, 身份不符将不能登录, 需重新输入。管理员首次运行应先录入信息, 并添加对应的职工登录账户信息。 3. 职工登录后菜单与管理员不同, 职工只能查询自己信息和浏览公司及各部门最高、 最低工资以及平均工资和工资方差信息, 并可选择重新登录。4. 管理员进行管理时, 可添加、 删除登录账户, 管理员和职工

15、用户可根据喜好修改自己的登录密码。5. 完成所需操作后可选择重新登录或退出程序。 六、 测试数据1. 文件中包含的所有数据 第6页 2. 注册账户 3.管理员和职工菜单 第7页 4. 录入职工信息 第8页 5. 查询信息 6. 修改信息 第9页 7. 删除信息 8. 统计单位及项目选择 第10页 9. 输出统计信息 第11页 10. 查询个人信息 第12页 11. 信息合法性校验 第13页 12. 提示信息 第14页 13. 修改密码 第15页 七、 附录 源程序文件清单: 数据: C:KESHE( 员工工资信息文件) C:XITONGJIAMI(账户登录名及密码文件) 源程序#include

16、#include#include#include#include#includestruct employee_gz *createlianbiao();/*声明创立链表函数*/struct employee_gz *input(); /*声明录入函数*/struct employee_gz *count_gz(struct employee_gz *head,char bumen);/*声明统计函数*/struct employee_gz *search(struct employee_gz *head,char xinxi);/*声明查询函数*/struct employee_gz *mo

17、dify(struct employee_gz *head); /*声明修改文件函数*/struct employee_gz *xiugai(struct employee_gz *head,char infor);/*声明修改链表函数*/struct employee_gz *Delete(struct employee_gz *head); /*声明删除函数*/struct employee_gz *shanchujd(struct employee_gz *head,char info);/*声明删除节点函数*/void zhuceyh(); /*声明注册账号函数*/void menu1

18、(); /*声明管理员菜单函数*/void menu2(); /*声明职工菜单函数*/void tianjiayh(); /*声明添加账户信息函数*/void deleteyh(); /*声明删除用户函数*/void xiugaimm(char yhm,char shenfen); /*声明修改账户密码函数*/void choose(struct employee_gz *head,char bumen); /*声明统计中的选择函数*/struct employee_gz *readwenjian(struct employee_gz *head);/*声明读取文件函数*/struct emp

19、loyee_gz *shuchuxinxi(struct employee_gz *head,char xinxi);/*声明输出信息函数*/void count_zdgz(struct employee_gz *head,char bumen);/*声明计算最低工资函数*/void count_zggz(struct employee_gz *head,char bumen);/*声明计算最高工资函数*/void count_pjgz(struct employee_gz *head,char bumen);/*声明计算平均工资函数*/void count_gzfc(struct emplo

20、yee_gz *head,char bumen);/*声明计算工资方差函数*/struct employee_gz char gonghao20; /*职工工号*/ char sfzh20; /*身份证号*/ char name20; /*姓名*/ char bumen20; /*部门*/ char zhiwu20; /*职位*/ char jiguan20; /*籍贯*/ long int jbgz; /*基本工资*/ long int jijin; /*基金*/ long int yfgz; /*应发工资*/ long int shuijin; /*税金*/ long int jiangj

21、in; /*奖金*/ long int sfgz; /*实发工资*/ long int gwgz; /*岗位工资*/ struct employee_gz *next; /*指向下一节点的指针*/;struct pass char shenfen20; /*用户身份*/ char yhm20; /*用户名*/ char mima20; /*密码*/ struct pass *next; /*指向下一节点的指针*/;int main() FILE *pfp; struct employee_gz *head; struct pass *ptr,*dl,*mhead,*tail; char bum

22、en20; char xinxi20; char yhm20; char shenfen20; char mima20; int choice,a,b=0; system(graftabl 936); textmode(C80);textcolor(25);textbackground(7); clrscr(); head=NULL; mhead=NULL; tail=NULL; if(pfp=fopen(C:xitongjiami.txt,rb)=NULL) gotoxy(20,6);cprintf(账户信息文件打开失败!); getch();clrscr(); gotoxy(20,2);c

23、printf(请建立文件并注册用户!); gotoxy(20,3);cprintf(请完成下面的注册!); zhuceyh(); clrscr(); pfp=fopen(C:xitongjiami.txt,rb); while(!feof(pfp) /*将文件中的数据导入链表中*/ ptr=(struct pass *)malloc(sizeof(struct pass); fread(ptr,sizeof(struct pass),1,pfp); if(mhead=NULL) mhead=ptr; else tail-next=ptr; tail=ptr; ptr-next=NULL; fc

24、lose(pfp); dl=mhead; gotoxy(22,5);cprintf(您的身份是:1(管理员) 2(职工); /*登录选择*/ scanf(%d,&a); gotoxy(22,5);delline(); /*删除光标所在行*/ if(a=1) /*管理员登录*/ strcpy(shenfen,guanliyuan); gotoxy(24,5);cprintf(用户名:); gotoxy(24,6);cprintf(密 码:); gotoxy(32,5);scanf(%s,&yhm); gotoxy(32,6);scanf(%s,&mima); while(dl!=NULL) if

25、(strcmp(dl-shenfen,shenfen)=0&strcmp(dl-yhm,yhm)=0&strcmp(dl-mima,mima)=0) b=1; do /*菜单循环控制*/ clrscr();menu1(); gotoxy(16,11);cprintf(输入您的选择:); scanf(%d,&choice); clrscr(); /*清屏*/ switch(choice) /*函数调用*/ case 1:input();break; case 2:Delete(head);break; case 3:search(head,xinxi);break; case 4:modify(

26、head);break; case 5:count_gz(head,bumen);break; case 6:main(); case 7:tianjiayh();break; case 8:xiugaimm(yhm,shenfen); main();break; case 9:deleteyh();break; case 0:exit(0); default:gotoxy(32,3);cprintf(输入有误!); getch();break; while(choice!=0); dl=dl-next; if(b=0) clrscr();gotoxy(20,6); cprintf(用户名或密

27、码错误!请重新登录!);getch(); main(); else if(a=2) /*职工登录*/ strcpy(shenfen,zhigong); gotoxy(22,5);cprintf(工 号:); gotoxy(22,6);cprintf(密 码:); gotoxy(30,5);scanf(%s,&yhm); gotoxy(30,6);scanf(%s,&mima); while(dl!=NULL) if(strcmp(dl-shenfen,shenfen)=0&strcmp(dl-yhm,yhm)=0&strcmp(dl-mima,mima)=0) b=1; do /*菜单循环控制

28、*/ clrscr();menu2(); gotoxy(24,11);cprintf(输入您的选择:); scanf(%d,&choice); clrscr(); switch(choice) /*函数调用*/ case 1:strcpy(xinxi,yhm); /*以工号查询*/ head=readwenjian(head); shuchuxinxi(head,xinxi); getch();break; case 2:count_gz(head,bumen);break; case 3:main(); case 4:xiugaimm(yhm,shenfen);break; case 0:e

29、xit(0); default:gotoxy(32,3);cprintf(输入有误!); getch();break; while(choice!=0); dl=dl-next; if(b=0) clrscr();gotoxy(20,6); cprintf(用户名或密码错误!请重新登录!);getch(); main(); else gotoxy(20,6);cprintf(输入有误!请重新输入!);getch(); main(); void menu1() /*管理员菜单*/ gotoxy(12,3); cprintf( 职工工资管理系统); gotoxy(12,4); cprintf(*菜

30、单*); gotoxy(12,5); cprintf(* * 1 录入工资记录 2 删除工资记录 * *); gotoxy(12,6); cprintf(* * 3 查询工资记录 4 修改工资记录 * *); gotoxy(12,7); cprintf(* * 5 统计工资信息 6 重新登录系统 * *); gotoxy(12,8); cprintf(* * 7 添加账户信息 8 修改登录密码 * *); gotoxy(12,9); cprintf(* * 9 删除系统用户 0 安全退出系统 * *); gotoxy(12,10); cprintf(*);void menu2() /*职工菜单

31、*/ gotoxy(22,3); cprintf( 职工工资系统); gotoxy(22,4); cprintf(*菜单*); gotoxy(22,5); cprintf(* * 1 查询个人工资信息 * *); gotoxy(22,6); cprintf(* * 2 浏览公司工资信息 * *); gotoxy(22,7); cprintf(* * 3 重新登录工资系统 * *); gotoxy(22,8); cprintf(* * 4 修改账户登录密码 * *); gotoxy(22,9); cprintf(* * 0 安全退出工资系统 * *); gotoxy(22,10); cprintf(*);struct employee_gz *readwenjian(struct employee_gz *head)/*读取文件函数*/ FILE *fp; struct employe

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服