1、 3.2 自编程序第四章 调试与操作说明 4.1 系统调试 4.2 操作使用说明第五章 课程设计与总结体会 5.1 对开发的过程归纳与总结 5.2 在过程中遇到的技术难点与解决方法 5.3 程序尚存问题 5.4 进一步开发的见解与建议 5.5 收获与体会第六章 致谢第七章 参考文献第八章 附录源码链接1. 课程设计题目带头结点的单循环链表(职工工资管理系统)2. 课程设计任务及要求编写一个职工工资管理系统,可以实现对数据的基本处理,要求用带头结点的单循环链表实现3. 课程设计思想首先完成对程序的密码的确认,其次完成数据录入模块,然后实现对已录入的数据的存储和读入,最后就可以在其基础建立链表完成
2、其余各项操作4. 软硬件运行环境及开发工具Turboc2.0,Windows XP,VC+6.02.1 设计流程图图1主函数流程图2.1.1录入读取建链流程图建链流程图如图2所示 图2建链流程图2.1.2考勤基本情况增、删、改数据流程图操作流程图如图3所示 图3操作函数流程图2.2 主要的数据结构2.2.1链表结构如图4所示图4链表结构图2.2.2链表的结点结构如表1所示表1链表的结点结构Char20Char4Int指针NamSexBamDemInmMonnext*姓名性别基础工资扣除工资补贴工资实际工资下一结点3.1 计算机程序框图3.1.1密码确认部分程序图如表5所示 有 是 无 否 不对
3、 对图5 密码确认部分程序图3.1.2确认编号是否存在部分程序图如图6所示 是 是 否图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(n); p=head; r=head-next; while(a=1) q=(LNode *)malloc(sizeof(struct node); b=1; while(b=1)/*编码确认部分*/ printf(输入编号: scanf(%d,&q-num); r=head- w
4、hile(r!=NULL&r!=head&r-num!=q-num) r=r- if(r=NULL|r=head) b=0; else printf(你输入的员工已录入,请重新输入。 b=1; 输入姓名:scanf(%snam);输入性别:sex); printf(输入基本工资:bam);输入补贴工资: scanf(inm);输入扣除工资:dem); q-mon=q-bam+q-inm-q-dem; p-next=q;p=q; i+;是否输入另一个数据?n输入1继续录入,其他键退出c); getchar(); if(c=1) q-next=head; continue; else q- bre
5、ak;printlink(head);getchar();meau(head);3.2.2排序模块的部分代码(起泡法)void paixu1(Link head) Link q,p,t; int m; q=head- p=q- t=(Link)malloc(sizeof(struct node); while(q-next!=head) while(p! if(q-nump- t-num=p-num; strcpy(t-nam,p-sex,p-bam=p-bam;inm=p-inm;t-dem=p-mon=p-mon; p-num=q- strcpy(p-nam,q- strcpy(q-sex
6、,q-bam=q-inm=q-dem=q-num=t-nam,t-sex,t-bam=t-inm=t-dem=t-mon=t- p=p- q=q-排序成功!是否输出数据,输入1输出,其他键退出m); if(m=1) printlink(head); getchar(); meau(head);3.2.3姓名查找的部分代码void namesearch(Link head) char y20; char c20=; char b20= Link p; int t; p=head-请输入所要查询的姓名:y); t=strlen(y); strncpy(c,y,t);=head) strncpy(b
7、,p-nam,t); if(strcmp(c,b)=0) if(a=1) printf(编号 姓名 性别 基础工资 扣除工资 补贴工资 实际工资n a=0; %2d%10s%6s%11d%12d%12d%12dn,p-num,p-bam,p-dem,p-inm,p-mon); p=p- if(a=1)没有该学生数据。4.1 系统调试经多次调试修改,程序大体上无错误,可以实现基本要求。4.2 操作使用说明第一次进系统因无密码文件直接进入界面,请建立新密码。同样因无要处理的数据第一次请录入链表,并选择是否保存,保存后的下次使用可以直接读入保存的数据。再选择相关函数执行相应的操作,按系统给出的提示使
8、用,程序大体上满足要求,但可以在某些细节还有不完善之处,若带来不便还请原谅。5.1 对开发的过程归纳与总结程序的设计调式过程,需要分析总结,画图分析可以相对容易直观的找出错误。5.2 在过程中遇到的技术难点与解决方法1因为主函数是以mimaqueren函数开始现再确认是否进入菜单,所以执行完每个函数默认返回主函数后都会出现确认密码部分,很不方便解决方法,要在每个功能函数最末加上meau函数,使其不直接返回,而是跳转到菜单函数。2与姓名模糊查询有关的函数,总是显示的无数据查书知是因为char后几位字符不定,循环判定结果一直是无数据,对字符串初始为空解决。3数据录入插入模块中对同号的的判定,起初做
9、时用了不少方法,返回不行,递归不行,测返回也不行,最后想的办法是把输入编号放入循环里,有同号继续循环,无同号退出继续往下输入。作完后老师讲了更方便的算法,不过没有使用。 4还有一部分错误错的很不应该,如在编写程序时,并没有把参数传进,这种错误系统并不提示错误位置,浪费不少时间找错纠正。 5最不该的问题,使用VC读入时总提示内存出错,检查好久找不出错误,用TC执行却可以,程序不同,结果不同,以后要注意5.3 程序尚存问题不能实现对读入和保存路径的输入,某些程序虽然可以完成其功能,但并不是最优化最有效率的算法,界面太粗糙。排序的算法,每一项都是相似的算法,若用类的知识,倒是能解决,只是在本环境下不
10、能实现。5.4 进一步开发的见解与建议算法不够优化,界面不很美观,功能不很完善。可以在这些方面完善程序,在某些功能上还不全面,还有优化提升的空间5.5 收获与体会通过这次的设计,练习熟悉了C语言的编译,有更深的体会和了解。对传值传址更为熟悉,对单链表的相关算法,如键立,插入,删除等也基本掌握,最基本的单链算法是后期学习的基础,调试程序作分析找错误时,画图细心分析每步的进程,提高了逻辑能力和思维能力。也经过这次的练习找到自已很多的不足,好的编程习惯很重要,可以节省不少的调试时间。对基础的掌握很重要,这样可不不必时时查资料,向同学咨询。计算机编程要多多练习,这样才可以熟悉,可以加深记忆,提高编程的能力。在编程的过程中,有时因某些错误难以改正而无奈,可以调试改正好后的成就感也让人愉悦。大学的生活很松散,在编程过程中会觉得时间过得很快,专心的做一件事,也让人充实。这也是学习计算机的乐趣所在,以后会加深在计算机方面的学习。设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这一个月的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;同时我认为我们的工作是一个团队的
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1