C语言课程设计教师工资管理系统职工工资管理系统.docx
《C语言课程设计教师工资管理系统职工工资管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计教师工资管理系统职工工资管理系统.docx(41页珍藏版)》请在冰豆网上搜索。
![C语言课程设计教师工资管理系统职工工资管理系统.docx](https://file1.bdocx.com/fileroot1/2023-8/13/a7a0d681-7dcc-44b6-8ebb-a8abb860e914/a7a0d681-7dcc-44b6-8ebb-a8abb860e9141.gif)
C语言课程设计教师工资管理系统职工工资管理系统
课程设计教师工资管理系统
运行平台:
VC6.0(其他平台未经测试,不一定保证有效)
制作者:
弓箭中南大学信息科学与工程学院
源代码如下:
#include
#include
#include
#include
#defineLENsizeof(structteacher)
structteacher
{
intnum;
charname[20];
charsex[20];
charworkplace[50];
charaddress[50];
longphone;
doublede_salary;
doublede_jintie;
doublede_shenghuobutie;
doubleyingfa_salary;
doublecost_phone;
doublecost_water_elec;
doublecost_rent;
doublecost_tax;
doublecost_weisheng;
doublecost_gongjijin;
doublecost_all;
doubleshifa_salary;
structteacher*next;
};
/***********************************读取函数************************************/
structteacher*load()
{
structteacher*p1,*p2,*head;
FILE*fp;
inti=1;
if((fp=fopen("save","rb"))==NULL)
{
printf("文件不存在!
按下任意键返回主菜单...");getch();
return(NULL);
}
else
{
head=NULL;
p1=(structteacher*)malloc(LEN);
while(fread(p1,LEN-4,1,fp)==1)
{
if(i==1)
{
head=p1;
p2=p1;
i=2;
}
else
{
p2->next=p1;
p2=p2->next;
}
p1=(structteacher*)malloc(LEN);
}
p2->next=NULL;
free(p1);
fclose(fp);
return(head);
}
}
/**********************************欢迎菜单函数*************************************/
voidwelcome()
{
printf("\n\n\n>>>>>欢迎使用教师工资管理系统Beta1.2<<<<<\n");
printf("*******************************************************\n");
printf("*C语言课程设计教师工资管理系统*\n");
printf("*姓名:
弓箭*\n");
printf("*******************************************************\n");
printf("\n\n按下任意键进入系统...");
getch();
system("cls");
}
/**********************************制作人员名单*************************************/
voidlist()
{
system("cls");
printf("\n\n\n>>>>>版权所有XX<<<<<\n");
printf("*******************************************************************************\n");
printf("*学校(College):
中南大学CentralSouthUniversity*\n");
printf("*软件名称(Software):
教师工资管理系统Teacher'sSalaryManagingSystem*\n");
printf("*版本号(Edition):
Beta1.2*\n");
printf("*制作人(Producer):
弓箭James*\n");
printf("*所在班级(Class):
电气信息类1001班ElectricInformation1001*\n");
printf("*所在学院(Institute):
信息科学与工程学院InformationEngineeringInstitute*\n");
printf("*******************************************************************************\n");
printf(">>>>>ILLEGALCOPYBANNED<<<<<\n");
printf("\n\n按下任意键返回主菜单...");
getch();
}
/***********************************菜单函数*****************************************/
intmenu()
{
inti;
printf("\n\n\n>>>>>欢迎使用教师工资管理系统Beta1.2<<<<<\n");
printf("*******************************************************\n");
printf("*1.输入教师信息*\n");
printf("*2.插入教师信息*\n");
printf("*3.修改教师信息*\n");
printf("*4.删除教师信息*\n");
printf("*5.浏览教师信息*\n");
printf("*6.显示制作人员名单*\n");
printf("*7.退出系统*\n");
printf("*******************************************************\n");
printf("请输入你想要的操作:
");
scanf("%d",&i);getchar();
returni;
}
/***********************************插入函数*****************************************/
voidinput()
{
structteacher*head,*p1,*p2,*p3,*px;
inti,t;
FILE*fp;
chark,n='n',num[30],name[20];
p1=p2=p3=px=(structteacher*)malloc(LEN);
if((head=load())!
=NULL)
{
do
{
n='n';
printf("请输入要插入的教师信息:
\n");
printf("------------------------------\n");
printf("请输入教工号:
");gets(num);px->num=atoi(num);
printf("请输入姓名:
");gets(px->name);
printf("请输入性别:
");gets(px->sex);
printf("请输入单位名称:
");gets(px->workplace);
printf("请输入家庭住址:
");gets(px->address);
printf("请输入联系电话:
");gets(num);px->phone=atoi(num);
printf("请输入基本工资:
");gets(num);px->de_salary=atof(num);
printf("请输入津贴:
");gets(num);px->de_jintie=atof(num);
printf("请输入生活补贴:
");gets(num);px->de_shenghuobutie=atof(num);
printf("请输入电话费:
");gets(num);px->cost_phone=atof(num);
printf("请输入水电费:
");gets(num);px->cost_water_elec=atof(num);
printf("请输入房租:
");gets(num);px->cost_rent=atof(num);
printf("请输入个人所得税:
");gets(num);px->cost_tax=atof(num);
printf("请输入卫生费:
");gets(num);px->cost_weisheng=atof(num);
printf("请输入公积金:
");gets(num);px->cost_gongjijin=atof(num);
px->yingfa_salary=px->de_salary+px->de_jintie+px->de_shenghuobutie;
px->cost_all=px->cost_phone+px->cost_water_elec+px->cost_rent+px->cost_tax+px->cost_weisheng+px->cost_gongjijin;
px->shifa_salary=px->yingfa_salary-px->cost_all;
printf("数据输入完毕,按下任意键继续...");getch();
system("cls");
printf("\n\n\n>>>>>>>>>>>插入教师信息<<<<<<<<<<<\n");
printf("*******************************************************\n");
printf("*1.输入教师号*\n");
printf("*2.输入姓名*\n");
printf("*3.返回上级菜单*\n");
printf("*******************************************************\n");
printf("请选择插入方式:
");
scanf("%d",&i);getchar();
while(i<1||i>3)
{
printf("输入有误!
请重新输入:
");
scanf("%d",&i);getchar();
}
switch(i)
{
case1:
printf("请输入要插入在哪条数据后面:
");
scanf("%d",&t);getchar();
p1=head;
while(p1->num!
=t)
{
if(p1->next!
=NULL)
{p1=p1->next;
}
else
{
printf("查找不到相关数据!
\n");
break;
}
}
if(p1->num==t)
{
printf("-----------------------------要插入的信息如下:
--------------------------------\n");
printf("教工号姓名性别单位名称家庭住址联系电话\n");
printf("%-4d%-13s%s%-19s%-19s%-14ld\n",px->num,px->name,px->sex,px->workplace,px->address,px->phone);
printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");
printf("%-10.1lf%-10.1lf%-10.1lf%-10.1lf%-10.1lf%-10.1lf%-10.1lf\n",px->cost_phone,px->cost_water_elec,px->cost_rent,px->cost_tax,px->cost_weisheng,px->cost_gongjijin,px->cost_all);
printf("基本工资津贴生活补贴应发工资实发工资\n");
printf("%-13.1lf%-13.1lf%-13.1lf%-13.1lf%-13.1lf\n",px->de_salary,px->de_jintie,px->de_shenghuobutie,px->yingfa_salary,px->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
printf("确定插入吗?
(y或n):
");
scanf("%c",&k);getchar();
}
if(k=='y'||k=='Y')
{
if(p1->num==t)
{
if(p1==head)/*如果插入点为头指针*/
{
p3=p1->next;
p1->next=px;
px->next=p3;
p2=head;
}
elseif(p1->next==NULL)/*如果插入点为末尾指针*/
{
p3=p1;p1=head;p2=head;
while(p1->next!
=p3)
{p1=p1->next;}
p1=p1->next;
p1->next=px;
px->next=NULL;
}
else{/*如果插入点为中间指针*/
p3=p1;p1=head;p2=head;
while(p1->next!
=p3)
{p1=p1->next;}
p1=p1->next;
p3=p1->next;
px->next=p3;
p1->next=px;
}
if((fp=fopen("save","wb"))==NULL)
{
printf("文件不存在!
按下任意键返回主菜单...");getch();
}
else
{
do
{
fwrite(p2,LEN-4,1,fp);
if(p2->next!
=NULL)
p2=p2->next;
}while(p2->next!
=NULL);
if(p2!
=head)
fwrite(p2,LEN-4,1,fp);
}fclose(fp);
printf("插入成功!
按下任意键继续...");getch();
}
}
else{printf("插入已被取消!
按下任意键继续...");getch();}
break;
case2:
printf("请输入要插入的教师姓名:
");
gets(name);
p1=head;
while(strcmp((p1->name),name)!
=0)
{
if(p1->next!
=NULL)
p1=p1->next;
else
{
printf("查找不到相关数据!
\n");
break;
}
}
if(strcmp((p1->name),name)==0)
{
printf("-----------------------------要插入的信息如下:
--------------------------------\n");
printf("教工号姓名性别单位名称家庭住址联系电话\n");
printf("%-4d%-13s%s%-19s%-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1->phone);
printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");
printf("%-10.1lf%-10.1lf%-10.1lf%-10.1lf%-10.1lf%-10.1lf%-10.1lf\n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);
printf("基本工资津贴生活补贴应发工资实发工资\n");
printf("%-13.1lf%-13.1lf%-13.1lf%-13.1lf%-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yingfa_salary,p1->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
printf("确定插入吗?
(y或n):
");
scanf("%c",&k);getchar();
}
if(k=='y'||k=='Y')
{
if(strcmp((p1->name),name)==0)
{
if(p1==head)/*如果插入点为头指针*/
{
p1->next=px;
p2=head;
}
elseif(p1->next==NULL)/*如果插入点为末尾指针*/
{
p3=p1;p1=head;p2=head;
while(p1->next!
=p3)
{p1=p1->next;}
p1=p1->next;
p1->next=px;
px->next=NULL;
}
else{/*如果插入点为中间指针*/
p3=p1;p1=head;p2=head;
while(p1->next!
=p3)
{p1=p1->next;}
p1=p1->next;
p1->next=px;
p3=p3->next;
px->next=p3;
}
if((fp=fopen("save","wb"))==NULL)
{
printf("文件不存在!
按下任意键返回主菜单...");getch();
}
else
{
do
{
fwrite(p2,LEN-4,1,fp);
if(p2->next!
=NULL)
p2=p2->next;
}while(p2->next!
=NULL);
if(p2!
=head)
fwrite(p2,LEN-4,1,fp);
}fclose(fp);
printf("插入成功!
按下任意键继续...");getch();
}
}
else{printf("插入已被取消!
按下任意键继续...");getch();}
break;
case3:
break;
default:
break;
}
if(i!
=3)
{
printf("\n继续插入其他教师的信息吗?
(y或n)");
scanf("%c",&n);getchar();
}
}while((n=='y'||n=='Y')&&i!
=3);
}
printf("数据插入成功!
按下任意键返回主菜单...");getch();
getchar();
}
/***********************************输入函数*****************************************/
voidinsert()
{
FILE*fp;
charm,num[30];
structteacher*p1;
p1=(structteacher*)malloc(LEN);
if((fp=fopen("save","ab"))==NULL)
{
printf("文件不存在!
按下任意键返回主菜单...");getch();
}
else
{
printf("请输入教师信息:
\n");
do
{
printf("------------------------------\n");
printf("请输入教工号:
");gets(num);p1->num=atoi(num);
prin