职工工资管理系统设计带源码.docx

上传人:b****2 文档编号:1966284 上传时间:2022-10-25 格式:DOCX 页数:14 大小:73.49KB
下载 相关 举报
职工工资管理系统设计带源码.docx_第1页
第1页 / 共14页
职工工资管理系统设计带源码.docx_第2页
第2页 / 共14页
职工工资管理系统设计带源码.docx_第3页
第3页 / 共14页
职工工资管理系统设计带源码.docx_第4页
第4页 / 共14页
职工工资管理系统设计带源码.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

职工工资管理系统设计带源码.docx

《职工工资管理系统设计带源码.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统设计带源码.docx(14页珍藏版)》请在冰豆网上搜索。

职工工资管理系统设计带源码.docx

职工工资管理系统设计带源码

课程设计报告

课程名称:

职工工资管理系统课程设计

 

设计题目:

带头结点单循环链表(职工工资管理系统)

系别:

计算机系

专业:

信息管理

组别:

学生姓名:

学号:

起止日期:

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.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所示

图4链表结构图

2.2.2链表的结点结构如表1所示

表1链表的结点结构

Char[20]

Char[4]

Int

Int

Int

Int

指针

Nam

Sex

Bam

Dem

Inm

Mon

next

*姓名

性别

基础工资

扣除工资

补贴工资

实际工资

下一结点

第三章详细设计

3.1计算机程序框图

3.1.1密码确认部分程序图如表5所示

 

不对

 

图5密码确认部分程序图

3.1.2确认编号是否存在部分程序图如图6所示

 

 

 

 

是否

 

图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->num>p->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语言的编译,有更深的体会和了解。

对传值传址更为熟悉,对单链表的相关算法,如键立,插入,删除等也基本掌握,最基本的单链算法是后期学习的基础,调试程序作分析找错误时,画图细心分析每步的进程,提高了逻辑能力和思维能力。

也经过这次的练习找到自已很多的不足,好的编程习惯很重要,可以节省不少的调试时间。

对基础的掌握很重要,这样可不不必时时查资料,向同学咨询。

计算机编程要多多练习,这样才可以熟悉,可以加深记忆,提高编程的能力。

在编程的过程中,有时因某些错误难以改正而无奈,可以调试改正好后的成就感也让人愉悦。

大学的生活很松散,在编程过程中会觉得时间过得很快,专心的做一件事,也让人充实。

这也是学习计算机的乐趣所在,以后会加深在计算机方面的学习。

设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这一个月的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;同时我认为我们的工作是一个团队的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1