您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 职工工资管理系统设计报告2
课程设计报告课程名称:职工工资管理系统课程设计系别:计算机系专业:通信工程学生姓名:学号:1120119124指导教师:目录第一章需求分析1.1课程设计题目1.2课程设计任务及要求1.3课程设计思想1.4软硬件运行环境及开发工具第二章概要设计2.1设计流程图2.2主要的数据结构2.3方法及原理的简要说明第三章详细设计3.1计算机程序框图3.2自编程序第四章调试与操作说明4.1系统调试4.2操作使用说明第五章课程设计与总结体会5.1对开发的过程归纳与总结5.2在过程中遇到的技术难点与解决方法5.3程序尚存问题5.4进一步开发的见解与建议5.5收获与体会第六章致谢第七章参考文献第八章附录第一章需求分析1.课程设计题目带头结点的单循环链表(职工工资管理系统)2.课程设计任务及要求编写一个职工工资管理系统,可以实现对数据的基本处理,要求用带头结点的单循环链表实现3.课程设计思想首先完成对程序的密码的确认,其次完成数据录入模块,然后实现对已录入的数据的存储和读入,最后就可以在其基础建立链表完成其余各项操作4.软硬件运行环境及开发工具Turboc2.0,WindowsXP,VC++6.0第二章概要设计2.1设计流程图图1主函数流程图2.1.1录入读取建链流程图建链流程图如图2所示图2建链流程图2.1.2考勤基本情况增、删、改数据流程图操作流程图如图3所示图3操作函数流程图2.2主要的数据结构2.2.1链表结构如图4所示Head结点1结点2……确认密码主菜单密码修改录入摸块查找摸块插入模块保存模块保存读入统计模块删除模块排序模块用户D1数据表增加数据算法用户算法D1数据表窗口展示图4链表结构图2.2.2链表的结点结构如表1所示表1链表的结点结构Char[20]Char[4]IntIntIntInt指针NamSexBamDemInmMonnext*姓名性别基础工资扣除工资补贴工资实际工资下一结点第三章详细设计3.1计算机程序框图3.1.1密码确认部分程序图如表5所示有是无否不对对图5密码确认部分程序图3.1.2确认编号是否存在部分程序图如图6所示B=1输入P与R比较开始录入有无密码I=0退出确认密码码I++主菜单I2是是否否是是否图6确认编号是否存在部分程序图3.2自编程序3.2.1录入模块voidsetlink(Linkhead){/*建立单链表*/Linkp,q,r;inti=0;intc;inta=1;intb;printf(\n);p=head;r=head-next;while(a==1){q=(LNode*)malloc(sizeof(structnode));b=1;while(b==1)/*编码确认部分*/{printf(输入编号:\n);scanf(%d,&q-num);r=head-next;while(r!=NULL&&r!=head&&r-num!=q-num){r=r-next;}if(r==NULL||r==head)b=0;else{printf(你输入的员工已录入,请重新输入。\n);b=1;}}printf(输入姓名:\n);scanf(%s,&q-nam);printf(输入性别:);scanf(%s,&q-sex);printf(输入基本工资:\n);scanf(%d,&q-bam);printf(输入补贴工资:\n);scanf(%d,&q-inm);printf(输入扣除工资:\n);scanf(%d,&q-dem);q-mon=q-bam+q-inm-q-dem;p-next=q;p=q;i++;printf(是否输入另一个数据?\n输入1继续录入,其他键退出);scanf(%d,&c);getchar();if(c==1){q-next=head;continue;}else{q-next=head;break;}}printlink(head);getchar();meau(head);}3.2.2排序模块的部分代码(起泡法)voidpaixu1(Linkhead){Linkq,p,t;intm;q=head-next;p=q-next;t=(Link)malloc(sizeof(structnode));while(q-next!=head){while(p!=head){if(q-nump-num){t-num=p-num;strcpy(t-nam,p-nam);strcpy(t-sex,p-sex);t-bam=p-bam;t-inm=p-inm;t-dem=p-dem;t-mon=p-mon;p-num=q-num;strcpy(p-nam,q-nam);strcpy(q-sex,q-sex);p-bam=q-bam;p-inm=q-inm;p-dem=q-dem;p-mon=q-mon;q-num=t-num;strcpy(q-nam,t-nam);strcpy(q-sex,t-sex);q-bam=t-bam;q-inm=t-inm;q-dem=t-dem;q-mon=t-mon;}p=p-next;}q=q-next;p=q-next;}printf(排序成功!!!\n);printf(是否输出数据,输入1输出,其他键退出);scanf(%d,&m);if(m==1){printlink(head);}getchar();meau(head);}3.2.3姓名查找的部分代码voidnamesearch(Linkhead){chary[20];charc[20]=;charb[20]=;Linkp;intt;inta=1;p=head-next;printf(请输入所要查询的姓名:\n);scanf(%s,&y);t=strlen(y);strncpy(c,y,t);while(p!=head){strncpy(b,p-nam,t);if(strcmp(c,b)==0){if(a==1){printf(编号姓名性别基础工资扣除工资补贴工资实际工资\n);a=0;}printf(%2d%10s%6s%11d%12d%12d%12d\n,p-num,p-nam,p-sex,p-bam,p-dem,p-inm,p-mon);}p=p-next;}if(a==1)printf(没有该学生数据。);getchar();meau(head);}第四章调试与操作说明4.1系统调试经多次调试修改,程序大体上无错误,可以实现基本要求。4.2操作使用说明第一次进系统因无密码文件直接进入界面,请建立新密码。同样因无要处理的数据第一次请录入链表,并选择是否保存,保存后的下次使用可以直接读入保存的数据。再选择相关函数执行相应的操作,按系统给出的提示使用,程序大体上满足要求,但可以在某些细节还有不完善之处,若带来不便还请原谅。第五章课程设计与总结体会5.1对开发的过程归纳与总结程序的设计调式过程,需要分析总结,画图分析可以相对容易直观的找出错误。5.2在过程中遇到的技术难点与解决方法1因为主函数是以mimaqueren函数开始现再确认是否进入菜单,所以执行完每个函数默认返回主函数后都会出现确认密码部分,很不方便解决方法,要在每个功能函数最末加上meau函数,使其不直接返回,而是跳转到菜单函数。2与姓名模糊查询有关的函数,总是显示的无数据查书知是因为char后几位字符不定,循环判定结果一直是无数据,对字符串初始为空解决。3数据录入插入模块中对同号的的判定,起初做时用了不少方法,返回不行,递归不行,测返回也不行,最后想的办法是把输入编号放入循环里,有同号继续循环,无同号退出继续往下输入。作完后老师讲了更方便的算法,不过没有使用。4还有一部分错误错的很不应该,如在编写程序时,并没有把参数传进,这种错误系统并不提示错误位置,浪费不少时间找错纠正。5最不该的问题,使用VC读入时总提示内存出错,检查好久找不出错误,用TC执行却可以,程序不同,结果不同,以后要注意5.3程序尚存问题不能实现对读入和保存路径的输入,某些程序虽然可以完成其功能,但并不是最优化最有效率的算法,界面太粗糙。排序的算法,每一项都是相似的算法,若用类的知识,倒是能解决,只是在本环境下不能实现。5.4进一步开发的见解与建议算法不够优化,界面不很美观,功能不很完善。可以在这些方面完善程序,在某些功能上还不全面,还有优化提升的空间5.5收获与体会通过这次的设计,练习熟悉了C语言的编译,有更深的体会和了解。对传值传址更为熟悉,对单链表的相关算法,如键立,插入,删除等也基本掌握,最基本的单链算法是后期学习的基础,调试程序作分析找错误时,画图细心分析每步的进程,提高了逻辑能力和思维能力。也经过这次的练习找到自已很多的不足,好的编程习惯很重要,可以节省不少的调试时间。对基础的掌握很重要,这样可不不必时时查资料,向同学咨询。计算机编程要多多练习,这样才可以熟悉,可以加深记忆,提高编程的能力。在编程的过程中,有时因某些错误难以改正而无奈,可以调试改正好后的成就感也让人愉悦。大学的生活很松散,在编程过程中会觉得时间过得很快,专心的做一件事,也让人充实。这也是学习计算机的乐趣所在,以后会加深在计算机方面的学习。设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这一个月的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神.在计算机上的工作基本没有一人能完成的,写程序时只有一个人知道原理是远远不够的,必须让每个合作伙伴都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次练习也正好锻炼我们这一点,这也是非常宝贵的。这也是学习计算机的乐趣所在,以后会加深在计算机方面的学习。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。计算机是门注重实践的学科,要学好计算机必须要多多的实践。这次练习让我更明白了这点。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际。经过这段时间的上机实践学习,使我对c语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮
本文标题:职工工资管理系统设计报告2
链接地址:https://www.777doc.com/doc-2112508 .html