c语言单链表实现职工工资管理.docx

上传人:b****3 文档编号:24710615 上传时间:2023-05-31 格式:DOCX 页数:26 大小:19.81KB
下载 相关 举报
c语言单链表实现职工工资管理.docx_第1页
第1页 / 共26页
c语言单链表实现职工工资管理.docx_第2页
第2页 / 共26页
c语言单链表实现职工工资管理.docx_第3页
第3页 / 共26页
c语言单链表实现职工工资管理.docx_第4页
第4页 / 共26页
c语言单链表实现职工工资管理.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

c语言单链表实现职工工资管理.docx

《c语言单链表实现职工工资管理.docx》由会员分享,可在线阅读,更多相关《c语言单链表实现职工工资管理.docx(26页珍藏版)》请在冰豆网上搜索。

c语言单链表实现职工工资管理.docx

c语言单链表实现职工工资管理

/*******************************************************************************

职工工资管理小软件

*******************************************************************************/

#include

#include

#include

#include

/******************************************************************************

职工变量定义

******************************************************************************/

typedefstructemployee

{

/*数据域*/

charsex[10];//性别

charage[10];//年龄

charpost[10];//岗位

charEmployeeID[15];//工号

charname[10];//姓名

intbasesalary;//基本工资

intpostwage;//岗位工资

floattotalwage;//总工资

/*指针域*/

structemployee*next;

}LNode,*LinkList;

/******************************************************************************

全局变量定义

******************************************************************************/

intiCount=0;

intsaveflag=0;/*是否需要存盘的标志变量*/

/*****************************************************************************

函数声明

******************************************************************************/

voidMainMenu();//登陆函数

intmenu();//主菜单函数

LinkListCreatLinkList();//职工信息创建函数

voidstringinput(char*t,intlens,char*notice);//字符长度判断函数函数

voidShowLinkList(pHead);//职工信息输出函数

voidOutOneNode(LinkListPNode);//输出一个节点的数据

LinkListFindWorker(LinkListpHead);//职工信息查询函数

voidupdate(LinkListpHead);//职工信息修改函数

voidsortList(LinkListpHead);//职工工资排序函数

 

LinkListFindWorker(LinkListpHead);//按职工姓名查找

LinkListFind_ByEmployeeID(LinkListpHead);//按职工工号查找

LinkListLoadData(LinkListpHead);

 

voidUpdateInfo();//职工信息更新函数

voidSaveData(LinkListpHead);//职工信息保存函数

//职工信息导入函数

voidauthor();//查询作者信息函数

voidback();//返回上一界面函数

/*****************************************************************************

系统主函数

******************************************************************************/

voidmain()

{

intiChoice;

for(;;)

{

system("cls");

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

printf("欢迎进入职工工资管理系统\n\n\n");

printf("1进入管理系统\n\n");

printf("2查看作者信息\n\n");

printf("0退出\n\n");

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

printf("请输入您的选择(0-2):

\n");

scanf("%d",&iChoice);

while(iChoice<0||iChoice>2)

{

system("cls");

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

printf("欢迎进入职工工资管理系统\n\n\n");

printf("1进入管理系统\n\n");

printf("2查看作者信息\n\n");

printf("0退出\n\n");

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

printf("您的输入有误!

\n");

printf("请重新输入您的选择(0-2):

\n");

scanf("%d",&iChoice);

}

switch(iChoice)

{

case1:

MainMenu();break;

case2:

author();back();break;

case0:

system("cls");

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

printf("谢谢使用!

\n\n");

printf("\t再见!

\n\n\n\n");

exit(0);

}

fflush(stdin);

getchar();

system("cls");

}

}

/*****************************************************************************

功能:

登陆函数,进行密码验证

*****************************************************************************/

voidMainMenu()

{

charkey[10],password[10]="123";

intiNum=1;

LinkListpHead;//定义单链表结点指针

printf("请输入密码:

\t");

scanf("%s",key);

while(iNum<=3)

{

if(strcmp(password,key)==0)

{

while

(1)

{

intiChoice;

iChoice=menu();

system("cls");

switch(iChoice)

{

case1:

pHead=CreatLinkList();back();break;//创建职工信息

case2:

ShowLinkList(pHead);back();break;//显示职工信息

case3:

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

printf("欢迎进入职工信息查询模块\n\n\n\n\n");

FindWorker(pHead);back();break;//查询职工信息

case4:

update(pHead);back();break;//职工信息添加

case5:

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

printf("欢迎进入职工信息修改模块\n\n\n\n\n");

update(pHead);back();break;//职工信息修改

case6:

SaveData(pHead);back();break;//职工信息保存

case7:

sortList(pHead);back();break;//职工信息

case8:

//save(pHead);break;//职工信息

case9:

author();back();break;

case10:

//copy();break;//职工信息

case11:

//pHead=load(pHead);break;//职工信息

case0:

system("cls");

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

printf("谢谢使用!

\n\n");

printf("\t再见!

\n\n\n\n");

//save();

exit(0);

}

fflush(stdin);

getchar();

system("cls");

}

}

else

{

iNum++;

printf("\n您是非法用户!

请输入密码:

\t");

scanf("%s",key);

if(iNum>2)

{

if(strcmp(password,key)==0)

continue;

else

{

printf("\n输入密码错误3次,系统将自动退出!

\n\n");

printf("欢迎下次使用!

\n\n");

exit(0);

}

}

}

}

}

/************************************************************************

功能:

主菜单函数,用于主显示菜单

参数:

iChoice

类型:

int

说明:

变量

返回值:

iChoice

************************************************************************/

intmenu()

{

intiChoice;

system("cls");

printf("\n您是合法用户!

");

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

printf("|*****************欢迎进入职工工资管理系统************************|\n");

printf("||\n");

printf("||\n");

printf("|1职工信息创建|\n");

printf("||\n");

printf("|2职工信息浏览|\n");

printf("||\n");

printf("|3职工信息查询|\n");

printf("||\n");

printf("|4职工信息添加|\n");

printf("||\n");

printf("|5职工信息修改|\n");

printf("||\n");

printf("|6职工信息保存|\n");

printf("||\n");

printf("|7职工信息删除|\n");

printf("||\n");

printf("|8职工信息读取|\n");

printf("||\n");

printf("|9职工工资排序|\n");

printf("||\n");

printf("|10职工工资统计|\n");

printf("||\n");

printf("|0退出系统|\n");

printf("||\n");

printf("||\n");

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

printf("\n\n");

printf("请输入你所选择的选项(0-9):

");

scanf("%d",&iChoice);

while(iChoice>12||iChoice<0)

{

printf("您的输入有误!

\n");

printf("请重新输入你所选择的选项(0-9):

");

scanf("%d",&iChoice);

}

returniChoice;

}

/*****************************************************************************

功能:

输入字符长度判断函数,判断输入字符长度是否超过原定长度

*****************************************************************************/

voidstringinput(char*t,intlens,char*notice)

{

charn[50];

do

{

printf(notice);//显示提示信息

scanf("%s",n);//输出字符串

if(strlen(n)>(size_t)lens)

printf("\n输入字符过长!

");//超过lens只重新输入

}while(strlen(n)>(size_t)lens);

strcpy(t,n);//将输入的字符串拷贝到字符串t中

}

/*****************************************************************************

功能:

职工信息创建

*****************************************************************************/

LinkListCreatLinkList()//创建一个链表,包含n个节点

{

LinkListpHead;

LinkListpNew,pTail;

inti,iNum=0;

pHead=(LinkList)malloc(sizeof(LNode));//为头节点分配内存空间

if(pHead==NULL)

{

printf("分配空间失败!

");

exit

(1);

}

else

pHead->next=NULL;//链表初始化

system("cls");

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

printf("欢迎进入职工信息创建模块\n\n\n\n\n");

printf("请输入要添加职工的个数:

\n");

scanf("%d",&iNum);

if(iNum>0)

{

/*利用for循环一次实现各节点的创建和数据的输入*/

for(i=0;i

{

pNew=(LinkList)malloc(sizeof(LNode));//为后继节点分配内存空间

if(pNew==NULL)

{

printf("分配空间失败!

");

exit

(1);

}

else

{

printf("\n\n");

printf("请输入第%d个职工信息:

\n\n",i+1);

printf("提示:

输入职工姓名为0则终止创建!

\n\n");

stringinput(pNew->name,10,"\n请输入职工姓名:

\t\t");

if(strcmp(pNew->name,"0")==0)

break;

stringinput(pNew->post,10,"\n请输入职工岗位:

\t\t");

stringinput(pNew->EmployeeID,15,"\n请输入职工工号:

\t\t");

stringinput(pNew->sex,10,"\n请输入职工性别:

\t\t");

stringinput(pNew->age,10,"\n请输入职工年龄:

\t\t");

printf("\n请输入职工基本工资:

\t");

scanf("%d",&pNew->basesalary);

printf("\n请输入职工岗位工资:

\t");

scanf("%d",&pNew->postwage);

if(pHead->next==NULL)

{

pHead->next=pNew;

pTail=pNew;

iCount++;

}

else

{

pTail->next=pNew;//将pNew链到链表中

pTail=pNew;

iCount++;

}

}

}

pTail->next=NULL;//将链表的最后一个节点的指针域置空

printf("\n\n");

printf("当前共输入%d个职工信息\n\n",iCount);

}

printf("\n\n");

printf("职工信息创建完成!

\n\n");

returnpHead;

}

/*******************************************************************************

功能:

输出一个节点的数据

********************************************************************************/

voidOutOneNode(LinkListpNew)

{

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

printf("|姓名|职工号|性别|年龄|任职岗位|基本工资|岗位工资|\n");

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

printf("|%9s|%10s|%7s|%5s|%10s|%10d|%10d|\n",pNew->name,pNew->EmployeeID,pNew->sex,pNew->age,pNew->post,pNew->basesalary,pNew->postwage);

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

printf("\n\n");

}

/*******************************************************************************

功能:

职工信息输出

********************************************************************************/

voidShowLinkList(LinkListpHead)

{

intiNum=0;

LinkListpNew;

pNew=pHead;

system("cls");

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

printf("欢迎进入职工信息浏览模块\n\n\n\n");

if(pNew==NULL)

{

printf("\n提示:

没有记录可以显示!

\n\n");

return;

}

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

printf("|姓名|职工号|性别|年龄|任职岗位|基本工资|岗位工资|\n");

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

for(pNew=pHead->next;pNew!

=NULL;pNew=pNew->next)

{

printf("|%9s|%10s|%7s|%5s|%10s|%10d|%10d|\n",pNew->name,pNew->EmployeeID,pNew->sex,pNew->age,pNew->post,pNew->basesalary,pNew->postwage);

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

iNum++;

}

printf("\n\n职工信息输出完成!

\n");

prin

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

当前位置:首页 > 人文社科 > 文学研究

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

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