中南大学C语言程序设计实验职工工资管理系统附详细操作说明书及注释.docx
《中南大学C语言程序设计实验职工工资管理系统附详细操作说明书及注释.docx》由会员分享,可在线阅读,更多相关《中南大学C语言程序设计实验职工工资管理系统附详细操作说明书及注释.docx(21页珍藏版)》请在冰豆网上搜索。
中南大学C语言程序设计实验职工工资管理系统附详细操作说明书及注释
/*Note:
YourchoiceisCIDE*/
#include"stdio.h"
#include"string.h"
#include"conio.h"
#include"stdlib.h"
structMessage/*此结构体用于存放职工信息以及创建链表*/
{
charname[30];
intID;
intJBGZ;
intZWGZ;
intJT;
intYLBX;
intGJJ;
longintTotal;
floatSum_3;
structMessage*nextPrt;
}static*head,*Rec_1=NULL,*Rec_2=NULL,*Rec_3=NULL;/*此处创建一个表头,以及三个用于恢复函数的静态变量*/
staticfloatSum_JBGZ=0,Sum_ZWGZ=0,Sum_JT=0,Sum_YLBX=0,Sum_GJJ=0;
staticfloatAverage_JBGZ,Average_ZWGZ,Average_JT,Average_YLBX,Average_GJJ;
voidInput();/*此处声明各一级函数*/
voidOutput();
voidDelete();
voidAdd();
voidRecover();
voidModify();
voidSearch();
voidStatistic();
structMessage*creat(structMessage*h);/*此处声明各二级函数*/
voidprint_Message(structMessage*h);
structMessage*del_Message(structMessage*h,char*str);
structMessage*add_Message(structMessage*h,structMessage*a,char*strafter);
structMessage*Recover_Message(structMessage*h);
structMessage*Modify_Message(structMessage*h,char*str);
voidSearch_Message(structMessage*h);
voidStatistic_Message(structMessage*h);
main()/*主函数为菜单页*/
{chari;/*功能:
调用各一级函数一级退出程序*/
clrscr();
gotoxy(27,9);
printf("\16[中南大学]");
gotoxy(27,11);
printf("\16[职工工资管理系统]");
gotoxy(27,13);
printf("\16[设计者:
路]");
gotoxy(27,15);
printf("\16[输入任意键继续]\n");
getch();
for(;;)
{
clrscr();
gotoxy(25,9);
printf("*******菜单******");
gotoxy(25,10);
printf("*a.输入记录*");
gotoxy(25,11);
printf("*b.显示记录*");
gotoxy(25,12);
printf("*c.修改记录*");
gotoxy(25,13);
printf("*d.查找记录*");
gotoxy(25,14);
printf("*e.添加记录*");
gotoxy(25,15);
printf("*f.删除记录*");
gotoxy(25,16);
printf("*g.恢复记录*");
gotoxy(25,17);
printf("*h.统计数据*");
gotoxy(25,18);
printf("*i.退出程序*");
gotoxy(25,19);
printf("*请选择a—i*");
gotoxy(25,20);
printf("***************");
i=getch();
if(i=='i')break;
elseswitch(i)
{case'a':
Input();break;/*调用记录输入函数*/
case'b':
Output();break;/*调用记录显示函数*/
case'c':
Modify();break;/*调用记录修改函数*/
case'd':
Search();break;/*调用记录查找函数*/
case'e':
Add();break;/*调用记录添加函数*/
case'f':
Delete();break;/*调用记录删除函数*/
case'g':
Recover();break;/*调用记录恢复函数*/
case'h':
Statistic();break;/*调用记录统计函数*/
}}}
voidInput()/*定义输入函数(一级)*/
{/*主要功能:
调用二级子函数创建链表*/
head=NULL;
head=creat(head);
}
voidOutput()/*定义显示函数(一级)*/
{/*主要功能:
调用二级子函数实现按一定格式输出所有职工工资信息*/
clrscr();
print_Message(head);
}
voidDelete()/*定义删除函数(一级)*/
{/*主要功能:
调用二级子函数实现删除任意职工工资信息并输出删除后的工资信息*/
charname[50],*del_Mes=name;
clrscr();
gotoxy(1,1);
printf("请输入:
\n");
scanf("%s",name);
head=del_Message(head,del_Mes);
clrscr();
printf("删除数据后:
\n");
printf("----------------------------------------------------------\n");
print_Message(head);
}
voidAdd()/*定义添加函数(一级)*/
{/*主要功能:
调用二级函数以实现在任意位置添加一条或多条职工工资信息*/
charafter_name[30],i;
structMessage*p;
clrscr();
gotoxy(1,1);
printf("\n请输入需要添加的信息\n");
printf("----------------------------------------------------------\n");
p=(structMessage*)malloc(sizeof(structMessage));
if(p!
=NULL)
{
printf("请输入:
\n");
scanf("%s",&p->name);
printf("请输入ID:
\n");
scanf("%d",&p->ID);
printf("请输入基本工资:
\n");
scanf("%d",&p->JBGZ);
printf("请输入职位工资:
\n");
scanf("%d",&p->ZWGZ);
printf("请输入津贴:
\n");
scanf("%d",&p->JT);
printf("请输入医疗保险:
\n");
scanf("%d",&p->YLBX);
printf("请输入公积金:
\n");
scanf("%d",&p->GJJ);
p->Total=p->JBGZ+p->ZWGZ+p->JT-p->YLBX-p->GJJ;
printf("总工资为:
%d\n",p->Total);
}
printf("\n输入在哪个职工信息下方添加新信息:
\n");
scanf("%s",after_name);
head=add_Message(head,p,after_name);
printf("\n是否继续添加?
Y/N");
i=getch();
while(i!
='N')
{
printf("\n请输入你想要添加的信息\n");
printf("----------------------------------------------------------\n");
p=(structMessage*)malloc(sizeof(structMessage));
if(p!
=NULL)
{
printf("请输入:
\n");
scanf("%s",&p->name);
printf("请输入ID:
\n");
scanf("%d",&p->ID);
printf("请输入基本工资:
\n");
scanf("%d",&p->JBGZ);
printf("请输入职位工资:
\n");
scanf("%d",&p->ZWGZ);
printf("请输入津贴:
\n");
scanf("%d",&p->JT);
printf("请输入医疗保险:
\n");
scanf("%d",&p->YLBX);
printf("请输入公积金:
\n");
scanf("%d",&p->GJJ);
p->Total=p->JBGZ+p->ZWGZ+p->JT-p->YLBX-p->GJJ;
printf("总工资为:
%ld\n",p->Total);
}
printf("\n输入在哪个职工信息下方添加新信息:
\n");
scanf("%s",after_name);
head=add_Message(head,p,after_name);
printf("\n是否继续添加?
Y/N");
i=getch();
}
clrscr();
gotoxy(1,1);
printf("\n添加后的信息为:
\n");
printf("----------------------------------------------------------\n");
print_Message(head);
}
voidRecover()/*定义记录恢复函数(一级)*/
{/*主要功能:
调用二级函数以实现恢复已删除的信息*/
clrscr();
head=Recover_Message(head);
gotoxy(1,4)