c语言 工资信息管理系统.docx
《c语言 工资信息管理系统.docx》由会员分享,可在线阅读,更多相关《c语言 工资信息管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
![c语言 工资信息管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/22/eb4a7925-1c8b-4367-a884-80340f7e4ac6/eb4a7925-1c8b-4367-a884-80340f7e4ac61.gif)
c语言工资信息管理系统
学院:
材料与化学学院
专业:
材料科学与工程
学号:
20111003049
姓名:
陈超
指导老师:
赵丹
#include
#include
#include
#include
#defineN50
voidmain()
{
voidmenu();
menu();
}
voidmenu()
{
voidenter();
voidadd();
voidbrowse();
voidsearch();
voidorder();
intn,w1;
do
{
puts("\t\t*********************MENU*************************\n\n");
puts("\t\t\t1.Enter");
puts("\t\t\t2.Add");
puts("\t\t\t3.browseall");
puts("\t\t\t4.Search");
puts("\t\t\t5.Order");
puts("\t\t\t6.Exit");
puts("\n\n\t\t*************************************************\n");
printf("Choiceyournumber(1-6):
[]\b\b");
scanf("%d",&n);
if(n<1||n>9)/*对选择的数字进行判断*/
{
w1=1;
getchar();
}
elsew1=0;
}
while(w1==1);
switch(n)
{
case1:
enter();break;/*输入模块*/
case2:
add();break;/*追加模块*/
case3:
browse();break;/*浏览模块*/
case4:
search();break;/*查找模块*/
case5:
order();break;/*排序模块*/
case6:
exit(0);/*退出模块*/
}
}
structlist
{
intnum;
charname[20];
intmonth;
intsalary1;
intwater;
intelectrisity;
floatfax;
floatsalary2;
}list[N];
voidenter()
{
voidprintf_back();
voidsave(intn);
voidinput(inti);
inti,n;
printf("howmanyworkers(1-%d)?
:
",N-1);
scanf("%d",&n);
printf("\nenterdatenow\n\n");
for(i=0;i{
printf("\ninput%dthstudentrecord.\n",i+1);
input(i);
}
if(i!
=0)save(n);
printf_back();
}
voidadd()
{
voidprintf_back();
inti,n,m,k;
intload();
voidsave(intn);
voidinput(inti);
FILE*fp;
n=load();
printf("howmanyworkersareyouwanttoadd(0-%d)?
:
",N-1-n);
scanf("%d",&m);
k=m+n;
for(i=n+1;i<=k;i++)
{
printf("\ninput%dthworkersrecord.\n",i-n+2);
input(i);
}
fp=fopen("workers.txt","ab");
for(i=n+1;i<=k;i++)
fwrite(&list[i],sizeof(structlist),1,fp);
save(n);
fclose(fp);
printf_back();
}
voidbrowse()
{
voidprintf_one(inti);
voidprintf_face();
intload();
voidmenu();
inti,n;
n=load();
printf_face();
for(i=0;i{
if((i!
=0)&&(i%10==0))
{printf("\n\npassanykeytocontiune...");
getch();
puts("\n\n");}
printf_one(i);
printf("\n");
}
printf("\tthereare%drecorde.\n",n);
printf("\npassanykeytoback..");
getch();
menu();
}
voidsearch()
{
intn,w1;
do
{
puts("\t\t\t1.searchbyname");
puts("\t\t\t2.searchbynum");
scanf("%d",&n);
if(n<1||n>9)
{
w1=1;
getchar();
}
elsew1=0;
}
while(w1==1);
switch(n)
{
voidsearch_1();
voidsearch_2();
case1:
search_1();break;
case2:
search_2();break;
}
}
voidsearch_1()
{
intload();
voidprintf_face();
voidmenu();
voidprintf_one(inti);
inti,n,k,w1=1,w2,w3,w4;
structlists;
n=load();
do
{
do
{
k=-1;
printf("\n\nenternamethatyouwanttosearch!
name:
");
scanf("%s",s.name);
printf_face();
for(i=0;iif(strcmp(s.name,list[i].name)==0)
{
k=i;
printf_one(k);break;
}
if(k==-1)
{
printf("\n\nNO.exit!
please");
printf("\n\nareyouagain?
\n\t1).again2).NOandback[]\b\b");
scanf("%d",&w1);
if(w1==2)break;
}
}
while(k==-1&&w1==1);
w4=0;w3=0;
if(k!
=-1)
{
printf("successful");
printf("\n\nwhatdoyouwanttodo?
\n\t1).searchanother2).back[]\b\b");
scanf("%d",&w2);
}
}
while(w2==1);
menu();
}
voidsearch_2()
{
intload();
voidprintf_face();
voidmenu();
voidprintf_one(inti);
structlists;
inti,n,k,w1=1,w2,w3,w4;
n=load();
do
{
do
{
k=-1;
printf("\n\nenternumthatyouwanttosearch!
num:
");
scanf("%d",&s.num);
printf_face();
for(i=0;iif(s.num==list[i].num)
{
k=i;
printf_one(k);break;
}
if(k==-1)
{
printf("\n\nNO.exit!
please");
printf("\n\nareyouagain?
\n\t1).again2).NOandback[]\b\b");
scanf("%d",&w1);
if(w1==2)break;
}
}
while(k==-1&&w1==1);
w4=0;w3=0;
if(k!
=-1)
{
printf("successful");
printf("\n\nwhatdoyouwanttodo?
\n\t1).searchanother2).back[]\b\b");
scanf("%d",&w2);
}
}
while(w2==1);
menu();
}
voidorder()
{intw1,n;
voidorder_1();
voidorder_2();
do
{
puts("\t\t\t1.orderbynum");
puts("\t\t\t2.orderbysalary");
scanf("%d",&n);
if(n<1||n>9)
{
w1=1;
getchar();
}
elsew1=0;
}
while(w1==1);
switch(n)
{
case1:
order_1();break;
case2:
order_2();break;
}
}
voidorder_1()
{
intload();
voidprintf_back();
voidsave(inti);
inti,j,n;
voidbrowse();
structlists;
n=load();
for(i=0;i{for(j=i+1;j{if(list[j].nums=list[j];
list[j]=list[i];
list[i]=s;
}
}
save(n);
browse();
puts("\n\n");
printf_back();
}
voidorder_2()
{
intload();
voidprintf_back();
voidsave(inti);
inti,j,n;
structlists;
voidbrowse();
n=load();
for(i=0;i{for(j=i+1;j{if(list[i].salary2s=list[j];list[j]=list[i];list[i]=s;
}
}
save(n);
browse();
puts("\n\n");
printf_back();
}
voidsave(intn)
{
FILE*fp;
inti;
fp=fopen("workers.txt","wb");
for(i=0;ifwrite(&list[i],sizeof(structlist),1,fp);
fclose(fp);
}
intload()
{
FILE*fp;
inti;
fp=fopen("workers.txt","rb");
for(i=0;!
feof(fp);i++)
fread(&list[i],sizeof(structlist),1,fp);
fclose(fp);
return(i-1);
}
voidinput(inti)
{
floatsalary2(inti);
floatfax(inti);
printf("No.:
");
scanf("%d",&list[i].num);
printf("name:
");
scanf("%s",list[i].name);
printf("month:
");
scanf("%d",&list[i].month);
printf("salary1:
");
scanf("%d",&list[i].salary1);
printf("water:
");
scanf("%d",&list[i].water);
printf("electricity:
");
scanf("%d",&list[i].electrisity);
fax(i);
salary2(i);
}
floatfax(inti)
{
if(list[i].salary1<800)list[i].fax=0;
elseif(list[i].salary1<1400)
list[i].fax=(((list[i].salary1-800)*5/100));
elselist[i].fax=(((list[i].salary1-1400)/10));
returnlist[i].fax;
}
floatsalary2(inti)
{
list[i].salary2=(list[i].salary1-list[i].water-list[i].electrisity-list[i].fax);
returnlist[i].salary2;
}
voidprintf_back()
{
intw;
voidmenu();
voidbrowse();
printf("\n\n\tsuccessful");
printf("whatdoyouwanttodo?
\n\n\t1).browseallnow\t2).back:
[]\b\b");
scanf("%d",&w);
if(w==1)browse();
elsemenu();
}
voidprintf_one(inti)
{
printf("%9d",list[i].num);
printf("%9s",list[i].name);
printf("%9d",list[i].month);
printf("%9d",list[i].salary1);
printf("%9d",list[i].water);
printf("%9d",list[i].electrisity);
printf("%9.2f",list[i].fax);
printf("%9.2f",list[i].salary2);
}
voidprintf_face()
{
printf("\n\tNo.namemonthsalary1waterelectrisityfaxsalary2\n");
}