毕业设计论文职工信息管理系统.docx

上传人:b****3 文档编号:6810855 上传时间:2023-05-10 格式:DOCX 页数:38 大小:285.20KB
下载 相关 举报
毕业设计论文职工信息管理系统.docx_第1页
第1页 / 共38页
毕业设计论文职工信息管理系统.docx_第2页
第2页 / 共38页
毕业设计论文职工信息管理系统.docx_第3页
第3页 / 共38页
毕业设计论文职工信息管理系统.docx_第4页
第4页 / 共38页
毕业设计论文职工信息管理系统.docx_第5页
第5页 / 共38页
毕业设计论文职工信息管理系统.docx_第6页
第6页 / 共38页
毕业设计论文职工信息管理系统.docx_第7页
第7页 / 共38页
毕业设计论文职工信息管理系统.docx_第8页
第8页 / 共38页
毕业设计论文职工信息管理系统.docx_第9页
第9页 / 共38页
毕业设计论文职工信息管理系统.docx_第10页
第10页 / 共38页
毕业设计论文职工信息管理系统.docx_第11页
第11页 / 共38页
毕业设计论文职工信息管理系统.docx_第12页
第12页 / 共38页
毕业设计论文职工信息管理系统.docx_第13页
第13页 / 共38页
毕业设计论文职工信息管理系统.docx_第14页
第14页 / 共38页
毕业设计论文职工信息管理系统.docx_第15页
第15页 / 共38页
毕业设计论文职工信息管理系统.docx_第16页
第16页 / 共38页
毕业设计论文职工信息管理系统.docx_第17页
第17页 / 共38页
毕业设计论文职工信息管理系统.docx_第18页
第18页 / 共38页
毕业设计论文职工信息管理系统.docx_第19页
第19页 / 共38页
毕业设计论文职工信息管理系统.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业设计论文职工信息管理系统.docx

《毕业设计论文职工信息管理系统.docx》由会员分享,可在线阅读,更多相关《毕业设计论文职工信息管理系统.docx(38页珍藏版)》请在冰点文库上搜索。

毕业设计论文职工信息管理系统.docx

毕业设计论文职工信息管理系统

 

C语言课程设计报告

题目:

职工信息管理系统

 

班级:

电科二班

学生姓名:

学号:

指导老师:

日期:

2011-6-29

 

目录

1、前言...............................................................................................2

2、需求分析.......................................................................................3

3、总体设计.......................................................................................3

4、详细设计.......................................................................................4

5、调试过程.......................................................................................5

6、结束语...........................................................................................7

 

7、参考文献.......................................................................................7

 

8、附录...............................................................................................8

1.前言

C语言是近年来在国内外都得到迅速推广的一种现代通用的程序设计语言,它不但具有丰富的数据类型与运算符、灵活的控制结构、简洁而高效的表达式、清晰的程序结构和良好的可移植性等优点,还具有直接支持计算机硬件编程的强大功能。

其既具有高级语言的优点,有具有低级语言的优点,具有完善的结构化、模块化程序结构,是世界最流行、使用最广泛的高级程序设计语言之一。

但由于课堂教学和实验的深度和广度有限,练习的深度也受到一定的限制。

所以开设了课程设计这门课。

它比教学实验复杂一些,涉及的深度也广些,这样便可培养我们学生实际分析问题、编程和动手能力,也可以让我们更好的掌握《C语言》这门课程。

 

2.需求分析

根据要设计职工信息管理系统可以知道职工数据由职工编号、姓名、部门、职称、基本工资、加班工资、奖金和总工资构成。

功能要求如下:

(1)添加职工的记录

(2)查询职工(分别按职工编号和姓名)

(3)对职工数据排序(分别按总工资的降序)

(4)删除职工记录

(5)修改职工记录

(6)插入职工信息

(7)输出职工信息表

(8)保存职工信息

3.总体设计

根据上面的需求分析,可以将这个系统设计分为以下模块:

增加职工信息、删除职工信息、查询职工信息、修改职工信息、插入职工信息、排序、保存职工信息、显示职工信息。

系统功能模块如下:

 

 

4.详细设计

(1).主函数:

创建一个链表,并使用指针。

voidmain()

Linklist;

FILE*fp;

intchoose;

charch;

intcount=0;

structnode*p,*r;

pintf("\t\t\t\t职工信息管理系统\n\t\t\t\t\n");

list=(structnode*)malloc(sizeof(structnode));

if(!

list)

{printf("\nallocatememoryfailure");

return;}

(2).定义各部分功能函数:

voidAdd(Linkl)增加职工信息

voidDel(Linkl)删除职工信息

voidQur(Linkl)查询职工信息

voidModify(Linkl)修改职工信息

voidInsert(Linkl)插入职工信息

voidSort(Linkl)排序

(3)菜单函数:

voidmenu()

{

printf("\t***************************************************************\n");

printf("\t**\n");

printf("\t*职工信息管理系统*\n");

printf("\t**\n");

printf("\t*[1]增加职工信息[2]删除职工信息*\n");

printf("\t*[3]查询职工信息[4]修改职工信息*\n");

printf("\t*[5]插入职工记录[6]排序*\n");

printf("\t*[7]保存职工信息[8]显示职工信息*\n");

printf("\t*[0]退出系统*\n");

printf("\t**\n");

printf("\t**************************************************************\n");

}

(4).输出中文标题函数:

voidprintstart();

voidWrong();

voidNofind();

voidprintc();

5、调试过程

1.主菜单

2.增加职工信息

3.删除职工信息

4.查询职工信息

5.修改职工信息

6.插入职工信息

7排序.

6.结束语

通过为期二周的课程设计学习,我对《C语言》这门课程有了更深一步的了解。

它是计算机程序设计的重要理论技术基础,在我们电子科学与技术专业的学习中占据着十分重要的地位。

同时也使我知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。

因为我们学习知识就是为了实践。

而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

然而这个程序还有不足之处,比如说:

界面会跟随输入的数据而变得整齐或不整齐等等,这些都是有待改进的地方。

7.参考文献:

1.网站搜索:

2.《程序设计基础》(c语言)杨有安陈维曹慧雅鲁丽编著

3.《C程序设计课程设计》刘振安,孙忱刘燕君编著

4.《C语言程序设计-实验指导.课程设计.习题解答》高涛陆丽娜编著

5.《C语言课程设计案例精编》姜灵芝余健编著

8.附录(源程序):

#include

#include

#include

intsaveflag=0;

structemployee

{

charname[15];

charnum[10];

charsex[4];

charbm[15];

charzc[20];

intgz;

intjbgz;

intjj;

intzgz;

};

typedefstructnode

{

structemployeedata;

structnode*next;

}Node,*Link;

voidadd(Linkl);

voiddisp(Linkl);

voiddel(Linkl);

Node*Locate(Linkl,charfindmess[],charnameornum[]);

voidQur(Linkl);

voidSort(Linkl);

voidModify(Linkl);

voidsave(Linkl);

voidprinte(Node*p);

voidprintstart();

voidWrong();

voidNofind();

voidprintc();

voidmenu()

{

printf("\t****************************************************************\n");printf("\t**\n");

printf("\t*职工信息管理系统*\n");

printf("\t**\n");

printf("\t*[1]增加职工信息[2]删除职工信息*\n");

printf("\t*[3]查询职工信息[4]修改职工信息*\n");

printf("\t*[5]插入职工记录[6]排序*\n");

printf("\t*[7]保存职工信息[8]显示职工信息*\n");

printf("\t*[0]退出系统*\n");

printf("\t**\n");

printf("\t***************************************************************\n");

}

{

intcount=0;

Node*p;

p=l->next;

if(!

p)

{

printf("\n=====>提示:

没有职工记录可以显示!

\n");

return;

}

printf("\t\t\t\t显示结果\n");

printstart();

printc();

printf("\n");

while(p)

{

printe(p);

p=p->next;

}

printstart();

printf("\n");

}

voidprintstart()

{

printf("-----------------------------------------------------------------\n");

}

voidWrong()

{

printf("\n=====>提示:

输入错误!

\n");

}

voidNofind()

{

printf("\n=====>提示:

没有找到该职工!

\n");

}

voidprintc()

{

printf("工号\t姓名性别部门职称工资加班工资奖金总工资\n");

}

voidprinte(Node*p)

{

printf("%-12s%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.bm,p->data.zc,p->data.gz,p->data.jbgz,p->data.jj,p->data.zgz);

}

Node*Locate(Linkl,charfindmess[],charzcornum[])

{

Node*r;

if(strcmp(zcornum,"num")==0){

r=l->next;

while(r!

=NULL)

{

if(strcmp(r->data.num,findmess)==0)

returnr;

r=r->next;

}

}

elseif(strcmp(zcornum,"zc")==0)

{

r=l->next;

while(r!

=NULL)

{

if(strcmp(r->data.zc,findmess)==0)

returnr;

r=r->next;

}

}

return0;

}

voidAdd(Linkl)

{

Node*p,*r,*s;

charnum[10];

intflag=0;

r=l;

s=l->next;

while(r->next!

=NULL)

while

(1)

{

printf("请你输入工号(以'0'返回上一级菜单:

)");

scanf("%s",num);

if(strcmp(num,"0")==0)

break;

s=l->next;

while(s)

{

if(strcmp(s->data.num,num)==0)

{

printf("=====>提示:

工号为'%d'的职工已经存在,若要修改请你选择'4修改'!

\n",num);

flag=1;

break;

return;

}

s=s->next;

}

p=(Node*)malloc(sizeof(Node));

strcpy(p->data.num,num);

printf("请你输入姓名:

");

scanf("%s",p->data.name);

getchar();

printf("请你输入性别:

");

scanf("%s",p->data.sex);

getchar();

printf("请你输入职工所在部门:

");

scanf("%s",&p->data.bm);

getchar();

printf("请你输入职工职称:

");

scanf("%s",&p->data.zc);

getchar();

printf("请你输入职工工资:

");

scanf("%d",&p->data.gz);

getchar();

printf("请你输入职工加班工资:

");

scanf("%d",&p->data.jbgz);

getchar();

printf("请你输入职工奖金:

");

scanf("%d",&p->data.jj);

getchar();

p->data.zgz=p->data.gz+p->data.jbgz+p->data.jj;

p->next=NULL;

r->next=p;

r=p;

saveflag=1;

}

}

voidDel(Linkl)

{

intsel;

Node*p,*r;

charfindmess[20];

if(!

l->next){

printf("\n=====>提示:

没有记录可以删除!

\n");

return;

}

printf("\n=====>1按工号删除\n=====>2按姓名删除\n");

scanf("%d",&sel);

if(sel==1)//按工号删除

{

printf("请你输入要删除的工号:

");

scanf("%s",findmess);

p=Locate(l,findmess,"num");

if(p)

{

r=l;

while(r->next!

=p)

r=r->next;

r->next=p->next;

free(p);

printf("\n=====>提示:

该职工已经成功删除!

\n");

saveflag=1;

}

else

Nofind();

}

elseif(sel==2)

{

printf("请你输入要删除的姓名:

");

scanf("%s",findmess);

p=Locate(l,findmess,"name");

if(p)

{

r=l;

while(r->next!

=p)

r=r->next;

r->next=p->next;//rr->next(p)p->next

free(p);

printf("\n=====>提示:

该职工已经成功删除!

\n");

saveflag=1;

}

else

Nofind();

}//if(sel==2)

else

Wrong();

}

voidQur(Linkl)

{

intsel;

charfindmess[20];

Node*p;

if(!

l->next)

{

printf("\n=====>提示:

没有资料可以查询!

\n");

return;

}

printf("\n=====>1按工号查找\n=====>2按职称查找\n");

scanf("%d",&sel);

if(sel==1)/*工号*/

{

printf("请你输入要查找的工号:

");

scanf("%s",findmess);

p=Locate(l,findmess,"num");

if(p)

{

printf("\t\t\t\t查找结果\n");

printstart();

printc();

printe(p);

printstart();

}

else

Nofind();

}

elseif(sel==2)

{

printf("请你输入要查找的职称:

");

scanf("%s",findmess);

p=Locate(l,findmess,"zc");

if(p)

{

printf("\t\t\t\t查找结果\n");

printstart();

printc();

printe(p);

printstart();

}

else

Nofind();

}

else

Wrong();

}

voidModify(Linkl)//修改功能

{

Node*p;

charfindmess[20];

if(!

l->next)

{

printf("\n=====>提示:

没有资料可以修改!

\n");

return;

}

printf("请你输入要修改的职工工号:

");

scanf("%s",findmess);

p=Locate(l,findmess,"num");

if(p)

{

printf("请你输入新工号(原来是%s):

",p->data.num);

scanf("%s",p->data.num);

printf("请你输入新姓名(原来是%s):

",p->data.name);

scanf("%s",p->data.name);

getchar();

printf("请你输入新性别(原来是%s):

",p->data.sex);

scanf("%s",p->data.sex);

getchar();

printf("请你输入新的部门(原来是%s):

",p->data.bm);

scanf("%s",&p->data.bm);

printf("请你输入新的职称(原来是%s):

",p->data.zc);

scanf("%s",&p->data.zc);

getchar();

printf("请你输入新的工资(原来是%d):

",p->data.gz);

scanf("%d",&p->data.gz);

getchar();

printf("请你输入新的加班工资(原来是%d):

",p->data.jbgz);

scanf("%d",&p->data.jbgz);

getchar();

printf("请你输入新的奖金(原来是%d):

",p->data.jj);

scanf("%d",&p->data.jj);

getchar();

p->data.zgz=p->data.gz+p->data.jbgz+p->data.jj;

printf("\n=====>提示:

资料修改成功!

\n");

}

else

Nofind();

}

voidInsert(Linkl)

{

Node*s,*r,*p;

charch,new_num[10],old_num[10];

intflag=0;

s=l->next;

system("cls");

Disp(l);

while

(1)

{

printf("请你输入已存在的工号(以'0'返回上一级菜单:

)");

scanf("%s",old_num);

if(strcmp(old_num,"0")==0)

return;

s=l->next;

flag=0;

while(s)

{

if(strcmp(s->data.num,old_num)==0)

{

flag=1;

break;

}

s=s->next;

}

if(flag==1)

break;

else

{

getchar();

printf("\n=====>Thenumber%sisnotexisting,tryagain?

(y/n):

",old_num);

scanf("%c",&ch);

if(ch=='y'||ch=='Y')

{continue;}

else

{return;}

}

}

printf("请你输入待插入的工号(以'0'返回上一级菜单:

)");

scanf("%s",new_num);

if(strcmp(new_num,"0")==0)

return;

s=l->next;

while(s)

{

if(strcmp(s->data.num,new_num)==0)

{

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2