1、课程设计报告课程名称:职工工资管理系统课程设计 设计题目:带头结点单循环链表(职工工资管理系统)系 别: 计算机系 专 业: 信息管理 组 别: 学生姓名: 学 号: 起止日期: 09年11月 7 日 09年 12月20日指导教师: 目录第一章 需求分析 1.1 课程设计题目 1.2 课程设计任务及要求 1.3 课程设计思想 1。4 软硬件运行环境及开发工具第二章 概要设计 2.1 设计流程图 2。2 主要的数据结构 2。3 方法及原理的简要说明第三章 详细设计 3。1 计算机程序框图 3。2 自编程序第四章 调试与操作说明 4。1 系统调试 4。2 操作使用说明第五章 课程设计与总结体会 5
2、。1 对开发的过程归纳与总结 5。2 在过程中遇到的技术难点与解决方法 5。3 程序尚存问题 5。4 进一步开发的见解与建议 5.5 收获与体会第六章 致谢第七章 参考文献第八章 附录源码链接http:/hi。baidu。com/%D7CFBB%EAC7%E0D0%C4/blog/item/04046e1d54500fcbf6039eee.html第一章 需求分析1. 课程设计题目带头结点的单循环链表(职工工资管理系统)2. 课程设计任务及要求编写一个职工工资管理系统,可以实现对数据的基本处理,要求用带头结点的单循环链表实现3. 课程设计思想首先完成对程序的密码的确认,其次完成数据录入模块,然
3、后实现对已录入的数据的存储和读入,最后就可以在其基础建立链表完成其余各项操作4. 软硬件运行环境及开发工具Turboc2。0,Windows XP,VC+6.0第二章 概要设计2。1 设计流程图确认密码主菜单密码修改录入摸块查找摸块插入模块保存模块保存读入统计模块删除模块排序模块图1主函数流程图2。1.1录入读取建链流程图用户D1 数据表增加数据算法建链流程图如图2所示图2建链流程图2.1。2考勤基本情况增、删、改数据流程图操作流程图如图3所示 用户算法D1 数据表窗口展示图3操作函数流程图2。2 主要的数据结构2。2。1链表结构如图4所示Head结点1结点2图4链表结构图2.2。2链表的结点
4、结构如表1所示表1链表的结点结构Char20Char4IntIntIntInt指针NamSexBamDemInmMonnext姓名性别基础工资扣除工资补贴工资实际工资下一结点第三章 详细设计3.1 计算机程序框图3。1.1密码确认部分程序图如表5所示有无密码I=0退出确认密码码I +主菜单INEXTR=NULLB=0B=1输入其他部分开始录入 是 是 否 否 是 是 否图6确认编号是否存在部分程序图3.2 自编程序3.2.1录入模块void setlink(Link head) /建立单链表/ Link p,q,r; int i=0;int c; int a=1; int b; printf(
5、”n”); p=head; r=head-next; while(a=1) q=(LNode )malloc(sizeof(struct node)); b=1; while(b=1)/*编码确认部分/ printf(输入编号:n”); scanf(”%d”,qnum); r=headnext; while(r!=NULL&r!=head&r-num!=q-num) r=r-next; if(r=NULLr=head) b=0; else printf(你输入的员工已录入,请重新输入.n); b=1; printf(”输入姓名:n”);scanf(”s”,&qnam); printf(输入性别
6、:”);scanf(”s”,&qsex); printf(输入基本工资:n”);scanf(”%d,qbam); printf(输入补贴工资:n); scanf(”d,&qinm); printf(”输入扣除工资:n”);scanf(”%d,q-dem); qmon=q-bam+qinmqdem; 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);ge
7、tchar();meau(head);3.2.2排序模块的部分代码(起泡法)void paixu1(Link head) Link q,p,t; int m; q=headnext; p=qnext; t=(Link)malloc(sizeof(struct node)); while(qnext!=head) while(p!=head) if(qnump-num) tnum=pnum; strcpy(t-nam,p-nam); strcpy(t-sex,p-sex); tbam=p-bam; t-inm=p-inm;t-dem=pdem;tmon=p-mon; p-num=q-num; s
8、trcpy(p-nam,q-nam); strcpy(qsex,q-sex); pbam=qbam; p-inm=q-inm;p-dem=qdem;pmon=q-mon; q-num=tnum; strcpy(qnam,tnam); strcpy(q-sex,tsex); q-bam=t-bam; qinm=tinm;q-dem=tdem;qmon=t-mon;p=p-next; q=qnext; p=q-next; printf(”排序成功!!!n); printf(”是否输出数据,输入1输出,其他键退出); scanf(d,m); if(m=1) printlink(head); getc
9、har();meau(head);3.2。3姓名查找的部分代码void namesearch(Link head) char y20; char c20=; char b20=”; Link p; int t; int a=1; p=headnext; printf(请输入所要查询的姓名:n); scanf(s”,y); t=strlen(y); strncpy(c,y,t); while(p!=head) strncpy(b,pnam,t); if(strcmp(c,b)=0) if(a=1) printf(编号 姓名 性别 基础工资 扣除工资 补贴工资 实际工资n); a=0; print
10、f(”%2d%10s6s%11d12d12d12dn,p-num,pnam,psex,p-bam,pdem,pinm,p-mon); p=p-next; if(a=1) printf(”没有该学生数据。); getchar();meau(head);第四章 调试与操作说明4。1 系统调试经多次调试修改,程序大体上无错误,可以实现基本要求。4。2 操作使用说明第一次进系统因无密码文件直接进入界面,请建立新密码。同样因无要处理的数据第一次请录入链表,并选择是否保存,保存后的下次使用可以直接读入保存的数据.再选择相关函数执行相应的操作,按系统给出的提示使用,程序大体上满足要求,但可以在某些细节还有不
11、完善之处,若带来不便还请原谅.第五章 课程设计与总结体会5。1 对开发的过程归纳与总结程序的设计调式过程,需要分析总结,画图分析可以相对容易直观的找出错误。5.2 在过程中遇到的技术难点与解决方法1因为主函数是以mimaqueren函数开始现再确认是否进入菜单,所以执行完每个函数默认返回主函数后都会出现确认密码部分,很不方便解决方法,要在每个功能函数最末加上meau函数,使其不直接返回,而是跳转到菜单函数。2与姓名模糊查询有关的函数,总是显示的无数据查书知是因为char后几位字符不定,循环判定结果一直是无数据,对字符串初始为空解决.3数据录入插入模块中对同号的的判定,起初做时用了不少方法,返回
12、不行,递归不行,测返回也不行,最后想的办法是把输入编号放入循环里,有同号继续循环,无同号退出继续往下输入。作完后老师讲了更方便的算法,不过没有使用. 4还有一部分错误错的很不应该,如在编写程序时,并没有把参数传进,这种错误系统并不提示错误位置,浪费不少时间找错纠正。 5最不该的问题,使用VC读入时总提示内存出错,检查好久找不出错误,用TC执行却可以,程序不同,结果不同,以后要注意5.3 程序尚存问题不能实现对读入和保存路径的输入,某些程序虽然可以完成其功能,但并不是最优化最有效率的算法,界面太粗糙.排序的算法,每一项都是相似的算法,若用类的知识,倒是能解决,只是在本环境下不能实现。5。4 进一
13、步开发的见解与建议算法不够优化,界面不很美观,功能不很完善。可以在这些方面完善程序,在某些功能上还不全面,还有优化提升的空间5.5 收获与体会通过这次的设计,练习熟悉了C语言的编译,有更深的体会和了解。对传值传址更为熟悉,对单链表的相关算法,如键立,插入,删除等也基本掌握,最基本的单链算法是后期学习的基础,调试程序作分析找错误时,画图细心分析每步的进程,提高了逻辑能力和思维能力.也经过这次的练习找到自已很多的不足,好的编程习惯很重要,可以节省不少的调试时间。对基础的掌握很重要,这样可不不必时时查资料,向同学咨询。计算机编程要多多练习,这样才可以熟悉,可以加深记忆,提高编程的能力。在编程的过程中
14、,有时因某些错误难以改正而无奈,可以调试改正好后的成就感也让人愉悦。大学的生活很松散,在编程过程中会觉得时间过得很快,专心的做一件事,也让人充实。这也是学习计算机的乐趣所在,以后会加深在计算机方面的学习.设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这一个月的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;同时我认为我们的工作是一个团队的工作,团队需要个人,个人
15、也离不开团队,必须发扬团结协作的精神.在计算机上的工作基本没有一人能完成的,写程序时只有一个人知道原理是远远不够的,必须让每个合作伙伴都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次练习也正好锻炼我们这一点,这也是非常宝贵的.这也是学习计算机的乐趣所在,以后会加深在计算机方面的学习。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力.在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样
16、的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。计算机是门注重实践的学科,要学好计算机必须要多多的实践.这次练习让我更明白了这点.通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际。经过这段时间的上机实践学习,使我对c语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不太了解,还有
17、对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定.对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。 学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为
18、工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓环境”就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利
19、运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难.第六章 致谢感谢老师的教导,同学的帮助。第七章 参考文献谭浩强C程序设计(第三版)清货华大学出版社严蔚敏数据结构(C语言版)清华大学出版社第八章 附录算法图6中,P!=R,比较的是关键字,这里指P-num!=r-num.另图6的算法之外有个判断是否继续输入的循环,这里没有画出。算法图5的密码确认算法,是初进系统时的算法,不是修改密码的算法。指导教师评语: 指导教师签名: 年 月 日成绩评定项 目权重成绩1、设计过程中出勤、学习态度等方面0。12、设计技术水平0.43、编程风格0.24、设计报告书写及图纸规范程度0.3总 成 绩
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100