工资信息管理系统
这个你到网上下载个不就行了吗??
你也可以用VPRO 编啊
这里就给你一个看下吧,,想改就改下吧,,
祝你好运!!
如下::
#include
void menu()
{
int n,w1;
do
{
printf("************************************************
");
printf("************************************************
");
printf(" *** choose function ************
");
printf(" *** 1 Enter new data ************
");
printf(" *** 2 Modify data ************
");
printf(" *** 3 Search by people.xueli and num*****
");
printf(" *** 4 Browse data ************
");
printf(" *** 5 add data ************
");
printf(" *** 6 Exit ************
");
printf("************************************************
");
printf("************************************************
");
printf("Choose your number(1-6):[ ]\b\b");
scanf("%d",&n);
if(n6)
w1=1;
else w1=0;
}
while(w1==1);
switch(n)
{
case 1:enter();break;
case 2:modify();break;
case 3:search();break;
case 4:browse();break;
case 5:add();break;
case 6:exit(0);
}
}
main()
{
system("cls");
menu();
}
#define N 100
struct people
{
char num[100];
char name[15];
char sex[20];
char age[20];
char xueli[20];
char gongzhi[20];
char address[20];
char telephone[20];
}people[N];
# include
enter()
{
int i,n;
printf("How many people(0-%d)?:",N-1);
scanf("%d",&n);
printf("
Enter data now
");
for(i=0;i<n;i++)
{
printf("
Input %dth people record.
",i+1);
input(i);
}
if(i!=0)save(n);
printf_back();
}
browse()
{
int i,j,n;
n=load();
printf_face();
for(i=0;i<n;i++)
{
if((i!=0)&&(i%10==0))
{
printf("
Pass any key to continue ....");
getch();
puts("
");
}
printf_one(i) ;
}
printf("There are %d record.
",n);
printf("
Pass any key to back ...");
getch();
menu();
}
add()
{
int i,n,m,k;
FILE*fp;
n=load();
printf("How many people are you want to add(0-%d)?:",N-1-n);
scanf("%d",&m);
k=m+n;
for(i=n;i<k;i++)
{
printf("
Input %dth people record.
",i-n+1 );
input(i);
}
if((fp=fopen("Pro.txt","ab"))==NULL)
{
printf("cannot open file
");
}
for(i=n;i<k;i++)
if(fwrite(&people[i],sizeof(struct people),1,fp)!=1)
printf("file write error
");
fclose(fp);
printf_back();
}
search()
{
int i,n,k,w1=1,w2,w3,w4,m,a;
struct people p;
n=load();
do
{
printf("
Which way do you want to choose?
1).By xueli 2).By num [ ]\b\b");
scanf("%d",&m);
switch(m)
{
case 1:
do
{ k=-1;
printf("
Enter xeuli that you want to search! xueli.");
scanf("%s",p.xueli);
printf_face();
for(i=0;i<n;i++)
if(strcmp(p.xueli,people[i].xueli)==0)
{ k=i;
printf_one(k);break;
}
if(k==-1)
{ printf("
NO exist!please");
printf("
Are you again?
1).again 2).NO and back [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}
while(k==-1&&w1==1);break;
case 2:
do
{k=-1;
printf("
Enter num that you want to search! num.");
scanf("%s",p.num);
printf_face();
for(i=0;i<n;i++)
if(strcmp(p.num,people[i].num)==0)
{k=i;
printf_one(k);break;
}
if(k==-1)
{printf("
NO exist!please");
printf("
Are you again?
1).again 2).NO and back [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}
while(k==-1&&w1==1);break;
}
w4=0;w3=0;
if(k!=-1)
{printf("
What do you want to do?
1).Search 2).Modify 3).Delete 4).Back menu [ ]\b\b");
scanf("%d",&w2);
switch(w2)
{case 2:w3=modify_data(k,n);break;
case 3:{printf("
Are you sure?
1).Sure 2).No and back [ ]\b\b");
scanf("%d",&w4);
if(w4==1)
for(a=k;a<n;a++)
{strcpy(people[a].num,people[a+1].num);
strcpy(people[a].name,people[a+1].name);
strcpy(people[a].sex,people[a+1].sex);
strcpy(people[a].age,people[a+1].age);
strcpy(people[a].xueli,people[a+1].xueli);
strcpy(people[a].gongzhi,people[a+1].gongzhi);
strcpy(people[a].address,people[a+1].address);
strcpy(people[a].telephone,people[a+1].telephone);
}
break;
}
}
if(w3==1||w4==1)
{save(n);
printf("
Successful.^_^.");
printf("
Whant do you want to do?
1).Search another 2).Back [ ]\b\b" );
scanf("%d",&w2);
}
}
}
while(w2==1);
menu();
}
modify()
{struct people p;
FILE *fp;
int i,n,k,w0=1,w1,w2=0;
n=load();
do
{
k=-1;
printf_face();
for(i=0;i<n;i++)
{if((i!=0)&&(i%10==0))
{printf("
Remember NO.which needed modify.pass any key to contiune ...");
getch();
puts("
");
}
printf_one(i);
}
do
{printf("
Enter NO.that you want to modify! NO.:");
scanf("%s",p.num);
for(i=0;i<n;i++)
if(strcmp(p.num,people[i].num)==0)
{k=i;
p=people[i];
}
if(k==-1)printf("
NO exist!please again");
}while(k==-1);
printf_face();
printf_one(k);
w1=modify_data(k,n);
if(w1==1)
{printf("
Successful ^_^.
Are you modify another ?
1).Yes 2).Back with save[ ]\b\b");
scanf("%d",&w0);
w2=1;
}
else
{w0=0;
if(w2==1)
people[k]=p;
}
if(w0!=1&&w2==1)
save(n);
}while(w0==1);
menu();
}
save(int n)
{FILE *fp;
int i;
if((fp=fopen("Pro.txt","wb"))==NULL)
{printf("
Cannot open file
");
return NULL;
}
for(i=0;i<n;i++)
if(people[i].num!=0)
if(fwrite(&people[i],sizeof(struct people),1,fp)!=1)
printf("file write error
");
fclose(fp);
}
load()
{FILE *fp;
int i;
if((fp=fopen("Pro.txt","rb"))==NULL)
{printf("
Cannot open file
");
return NULL;
}
for(i=0;!feof(fp);i++)
fread(&people[i],sizeof(struct people),1,fp);
fclose(fp);
return(i-1);
}
input(int i)
{
no_input(i,i);
printf("num:");
scanf("%s",people[i].num);
printf("name:");
scanf("%s", people[i].name) ;
printf("sex:");
scanf("%s",people[i].sex);
printf("age:");
scanf("%s",people[i].age);
printf("xueli:");
scanf("%s",people[i].xueli);
printf("gongzhi:");
scanf("%s",people[i].gongzhi);
printf("address:");
scanf("%s",people[i].address);
printf("telephone:");
scanf("%s",people[i].telephone);
}
modify_data(int i)
{int c,w1;
do
{puts("
modify by=>
1).num 2).name 3).sex 4).ages 5).xueli 6)gongzhi 7)address 8)telephone ");
printf("Which you needed?:[ ]\b\b");
scanf("%d",&c);
if(c>8||c<1)
{puts("
Choice error!Please again!");
getchar();
}
}while(c>8||c<1);
do
{switch(c)
{
case 1:printf("num:");scanf("%s",people[i].num);break;
case 2:printf("name:");scanf("%s",people[i].name);break;
case 3:printf("sex:");scanf("%s",people[i].sex);break;
case 4:printf("age:");scanf("%s",people[i].age);break;
case 5:printf("xueli:");scanf("%s",people[i].xueli);break;
case 6:printf("gongzhi:");scanf("%s",people[i].gongzhi);break;
case 7:printf("address:");scanf("%s",people[i].address);break;
case 8:printf("telephone:");scanf("%s",people[i].telephone);break;
}
puts("
Now:
");
printf_face();
printf_one(i);
printf("
Are you sure?
1).Sure 2).No and remodify 3).Back without save in this time [ ]\b\b");
scanf("%d",&w1);
}
while(w1==2);
return(w1);
}
no_input(int i,int n)
{int j,k,w1;
do
{w1=0;
for(j=0;people[i].num[j]!='\0';j++)
if(people[i].num[j]>'9')
{puts("Input error!Only be made up of(0-9).Please reinput!
");
w1=1;break;
}
if(w1!=1)
for(k=0;k<n;k++)
if(k!=i&&strcmp(people[k].num,people[i].num)==0)
{puts("This record is exist.please reinput!
");
}
}
while(w1==1);
}
printf_face()
{
printf("
num name sex ages xueli gongzhi address telephone
");
}
printf_one(int i)
{
int j;
printf("%7s%7s%7s%7s%7s%7s%10s%12s
",people[i].num,people[i].name,people[i].sex,people[i].age,people
[i].xueli,people[i].gongzhi,people[i].address,people[i].telephone);
}
printf_back()
{
int j,w;
printf("
Successful.^_^
");
printf("What do you want you to do?
1).Browse all now2).Back: [ ]\b\b");
scanf("%d",&w);
if(w==1)
browse();
else menu();
}
就这此地,,记得加分哟,,我要分,,,
以上回答你满意么?
这个是我自己做的管理系统,里面的汉字什么的你改下就OK了,比如把单价改成工资```总价改成总工资````数量改成月底百分比提成什么的```其他的不用改的。看着行你就给分,好的话追加,感觉垃圾就骂我。
#include
struct material
{int num;
char name[20];
char leibie[20];
char shijian[20];
int shuliang;
int price;
int total;
int delet ; }
work[50];
static n=1;int f,g=1,e;
FILE *fp1;
char fname[20];
jianli() /*创建新文件*/
{
int i,x=0;FILE *fp;
system("cls");
menu1();
menu2();
printf(" 请输入文件名!");
scanf("%s",fname);
fp=fopen(fname,"rb");
for(i=0;i<50;i++)
{fread(&work[i],sizeof(struct material),1,fp);
if(work[i].total!=0)x++;
}
fclose(fp);n=x;
}
r()
{
int i;FILE *fp;
if((fp=fopen(fname,"rb"))==NULL)
{
printf("
cannot open file!
");}
printf("编号 名称 类别 登记时间 数量 单价 总价
");
for(i=0;i<n;i++)
{
fread(&work[i],sizeof(struct material),1,fp);
if(work[i].delet==0)
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d
",
work[i].num,work[i].name,work[i].leibie,work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
fclose(fp);
}
r1()
{
int i;FILE *fp;
if((fp=fopen(fname,"rb"))==NULL)
{
printf("
cannot open file!
");}
printf("编号 名称 类别 登记时间 数量 单价 总价
");
for(i=0;i<n;i++)
{
fread(&work[i],sizeof(struct material),1,fp);
if(work[i].delet==1)
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d
",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
fclose(fp);
}
display2() /*显示所有信息*/
{
int i,d=0;FILE *fp;
fp=fopen(fname,"rb");
system("cls");menu1();
printf("以下是所有材料信息!
");
for(i=0;i<n;i++)
fread(&work[i],sizeof(struct material),1,fp);
printf("编号 名称 类别 登记时间 数量 单价 总价
");
for(i=0;i<n;i++)
if(work[i].delet==0)
{d++;
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d
",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
if(d==0)printf("没找着,想好了再找!
");
printf("退出请按任意数字键!
");
scanf("%d",&i);
}
display1() /*显示信息*/
{int i;int d=0;
printf("以下是排序后的信息 :
");
printf("编号 名称 类别 登记时间 数量 单价 总价
");
for(i=0;i<n;i++)
if(work[i].delet==0)
{d++;
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d
",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
if(d==0){printf("没找着,想好了再找!
");system("pause");}
}
save() /*保存函数*/
{FILE *fp;int i;
system("cls");menu1();
printf("保存在原文件请按 1 另存为请按 2
");
scanf("%d",&e);
while(1)
{
if(e==1)
{
if((fp=fopen(fname,"w"))==0)
{printf("cannot open
");return;}
for(i=0;i<n;i++)
if(fwrite(&work[i],sizeof(struct material), 1,fp)!=1)
printf("error!
");break;
}
else if(e==2)
{
printf("input jianli file name!
");
scanf("%s",fname);
if((fp=fopen(fname,"w"))==0)
{printf("cannot open
");return;}
for(i=0;i<n;i++)
if(fwrite(&work[i],sizeof(struct material), 1,fp)!=1)
printf("error!error!
");break;
}
else printf("error!
");
}
fclose(fp);
system("cls");menu1();
printf("OK了!
");system("pause");
}
slect()
{
int d,i;system("cls");menu1();menu2();scanf("%d",&d);
if(d==1){add();slect();}
else if(d==2){display2();slect();}
else if(d==3){cha();slect();}
else if(d==4){delet();slect();}
else if(d==5){modify();slect();}
else if(d==6){order();slect();}
else if(d==7){recy();slect();}
else if(d==8){tongji();slect();}
else if(d==9){jianli();slect();}
else if(d==0){printf("exit!
");exit();}
else {printf("error!
");slect();}
}
cha() /*查询*/
{
int i,num,c,suc=0,suc1;char name[20];FILE *fp;
fp=fopen(fname,"rb");
for(i=0;i<n;i++)
fread(&work[i],sizeof(struct material),1,fp);
while(1)
{
system("cls");menu1();
printf("您有两种方式查询:
");
printf("输入名称请按 1 输入材料号请按 2
");
scanf("%d",&c);
system("cls");menu1();
if(c==1)
{printf("输入名称
");
scanf("%s",name);break;}
else if(c==2)
{printf("输入材料号
");
scanf("%d",&num);break;}
else while(1)
{ system("cls");menu1();printf("输入出错啦!!!!
");
printf("重输请按 0 退出请按 1
");
scanf("%d",&suc);
if(suc==0||suc==1)
break;
else continue;
}
if(suc==1)break;
}
if(suc!=1)
{
for(i=0;i<n;i++)
if((strcmp(name,work[i].name)==0||num==work[i].num)&&work[i].delet==0)break;
if(i<n)
{ system("cls");menu1();
printf("编号 名称 类别 登记时间 数量 单价 总价
");
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d
",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
printf("请按任意数字键继续!
");
scanf("%d",&i);
}
else {system("cls");menu1();
printf(" I’m sorry!我都快死机了也没找到....!
",i);
printf("继续请按任意数字键!
");
scanf("%d",&i);}
while(1)
{ system("cls");menu1();
printf("继续请按 0 退出请按 1
");
scanf("%d",&suc1);
if(suc1==0||suc1==1)
break;
else printf(" error!
",i);
printf("继续请按任意数字键!
");
scanf("%d",&i);
}
if(suc1==0) cha();
if(suc1==1) {printf("bye!
");
system("pause");
}
}
else printf("bye!
");
}
add() /*添加*/
{
int e,i,num,c,h,suc=0,suc1;char name[20];int a;
while(suc==0)
{if(n<50){a=n;n++;work[a].delet=0;}
else
{for(i=0;i<n;i++)
if(work[i].delet==2)break;
{a=i;work[a].delet=0;}
}
while(1)
{printf("文件已经存有以下信息:
");
system("cls");menu1();r();
printf("请输入编号:
");
scanf("%d",&work[a].num);
for(h=0;h<n;h++)
{if(h==a)h++;
if((work[a].num==work[h].num)&&work[h].delet==0)break;
}
if(h<n)
{system("cls");menu1();
printf("编号重复!想好了再写!
"); printf("请按任意数字键继续!
");
scanf("%d",&i);
}
else break;
}
system("cls");menu1();r();
while(1)
{
printf("请输入名称:name
");
scanf("%s",&work[a].name);
for(h=0;h<n;h++)
{if(h==a)h++;
if(strcmp(work[a].name,work[h].name)==0&&work[h].delet==0)break;
}
if(h<n)
{system("cls");menu1();printf("名称重复!想好了写!
");
printf("请按任意数字键继续!
");
scanf("%d",&i);}
else break;
}
system("cls");menu1();r();
printf("请输入类别:
");
scanf("%s",&work[a].leibie);system("cls");menu1();r();
printf("请输入登记时间:
");
scanf("%s",&work[a].shijian);system("cls");menu1();r();
printf("请输入数量:
");
scanf("%d",&work[a].shuliang);system("cls");menu1();r();
printf("请输入单价:
");
scanf("%d",&work[a].price);system("cls");menu1();r();
work[a].total=work[a].shuliang*work[a].price;
work[a].delet=0;system("cls");menu1();r();
while(1)
{
printf("
");
printf(" 保存请按 1 重输请按 2
");
scanf("%d",&e);
if(e==1){save();suc=1;break;}
else if(e==2){n--;break;}
else {system("cls");menu1();printf("写错啦!想好了写!!
");}
}
while(e==1)
{system("cls");menu1();
printf("继续请按 0 退出请按 1
");
scanf("%d",&suc);
if(suc==0||suc==1)break;
else {system("cls");menu1();printf("输入有误!想好了写!
");}
}
if(suc==1)break;
}
}
delet() /*删除*/
{
char j;int e,i,num,c,suc=0;
char name[20];
system("cls");menu1();r();
while(1)
{
printf("请输入您要删除的材料的信息:名称 或 材料号
");
printf("
");
printf("输入名称请按 1 输入材料号请按2
");
scanf("%d",&c);
system("cls");menu1();r();
if(c==1)
{printf("输入名称
");
scanf("%s",name);break;}
else if(c==2)
{printf("输入材料号
");
scanf("%d",&num);break;}
else while(1)
{printf("输入出错啦!!!!
");
printf("重输请按 0 确认请按 1
");
scanf("%d",&suc);
if(suc==0||suc==1)
break;
else continue;
}
if(suc==1)break;
}
if(suc!=1)
{
for(i=0;i<n;i++)
if((strcmp(name,work[i].name)==0||num==work[i].num)&&work[i].delet==0)break;
if(i<n)
while(1)
{ system("cls");menu1();r();
printf("您要删除 %s 的信息!
",work[i].name);
printf("
");
printf("暂时删除请按 1 永久删除请按 2
");
scanf("%d",&e);
if(e==1)
{work[i].delet=1;system("cls");menu1();printf("deleted sucessfully!
");save();break; }
if(e==2)
{work[i].delet=2;system("cls");menu1();printf("deleted sucessfully!
");save();break;}
else {system("cls");menu1(); printf(" 输入出错啦!!!!
",i);
printf("继续请按任意数字键!
"); scanf("%d",&i);}
}
if(i>=n){system("cls");menu1(); printf(" I’m sorry!我都快死机了也没找到....!
",i);
printf("继续请按任意数字键!
"); scanf("%d",&i);}
while(1)
{system("cls");menu1();
printf("继续请按 0 退出请按 1
");scanf("%d",&e);
if(e==0||e==1)break;
else {system("cls");menu1();printf(" 输入出错啦!!!!
",i);
printf("继续请按任意数字键!
");scanf("%d",&i);}
}
if(e==0)delet();
else printf("bye!
");
}
}
modify() /*修改*/
{ char name[20];int i,e=1,a,h;
system("cls");menu1();
r();
printf("请输入您要修改的材料的名称!
");
scanf("%s",name);
for(i=0;i<n;i++)
if(strcmp(work[i].name,name)==0&&work[i].delet==0)break;
if(i<n)
{system("cls");menu1();
printf("您要修改的材料的编号为num: %d, 修改 0 放弃修改 1
",work[i].num);
scanf("%d",&e);
if(e==0)
while(1)
{ printf("请输入编号:
");
scanf("%d",&work[i].num);
for(h=0;h<n;h++)
{if(h==i)h++;
if((work[i].num==work[h].num)&&work[h].delet==0)break;
}
if(h<n) printf("编号重复!想好了写!
");
else break;
}
system("cls");menu1();
printf("您要修改的材料的名称为:%s, 修改 0 放弃修改 1
",work[i].name);
scanf("%d",&e);
if(e==0)
while(1)
{ printf("请输入名称:
");
scanf("%s",&work[i].name);
for(h=0;h<n;h++)
{if(h==i)h++;
if(strcmp(work[i].name,work[h].name)==0&&work[h].delet==0)break;
}
if(h<n) printf("名称重复!想好了写!s
");
else break;
}
system("cls");menu1();
printf("您要修改的材料的类别为 %s, 修改 0 放弃修改 1
",work[i].leibie);
scanf("%d",&e);
if(e==0)
{printf("请输入类别:
");
scanf("%s",&work[i].leibie);}
system("cls");menu1();
printf("您要修改的材料的登记时间为:%s, 修改 0 放弃修改 1
",work[i].shijian);
scanf("%d",&e);
if(e==0)
{printf("请输入登记时间:
");
scanf("%s",&work[i].shijian);}
system("cls");menu1();
printf("您要修改的材料的数量为%d, 修改 0 放弃修改 1
", work[i].shuliang);
scanf("%d",&e);
if(e==0)
{printf("请输入数量:
");
scanf("%d",&work[i].shuliang);}
system("cls");menu1();
printf("您要修改的材料的单价为%d, 修改 0 放弃修改 1
",work[i].price);
scanf("%d",&e);
if(e==0)
{printf("请输入单价:
");
scanf("%d",&work[i].price);}
work[i].total=work[i].shuliang*work[i].price;
system("cls");menu1();
printf("搞定!
");
printf("新信息为:
");
printf("编号 名称 类别 登记时间 数量 单价 总价
");
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d
",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
while(1)
{
printf(" 保存请按 1 取消请按 2
");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {system("cls");menu1();printf("写错啦!想好了写!!
");}
}
}
if(i==n) {system("cls");menu1();printf("no such a material!
"); printf("继续请按任意数字键!
");
scanf("%d",&i);}
while(e==1)
{system("cls");menu1();
printf("继续请按 0 退出请按 1
");
scanf("%d",&e);
if(e==0||e==1)break;
else {system("cls");menu1();printf("输入有误!想好了写!
");
printf("继续请按任意数字键!
"); scanf("%d",&i);}
}
if(e==0)modify();
if(e==1)printf("exit!
");
}
er() /*冒泡排序*/
{int t;char dai[20];
t=work[f].price;work[f].price=work[f+1].price;work[f+1].price=t;
t=work[f].num;work[f].num=work[f+1].num;work[f+1].num=t;
t=work[f].shuliang;work[f].shuliang=work[f+1].shuliang;work[f+1].shuliang=t;
t=work[f].total;work[f].total=work[f+1].total;work[f+1].total=t;
strcpy(dai,work[f].name);
strcpy(work[f].name,work[f+1].name);
strcpy(work[f+1].name,dai);
strcpy(dai,work[f].leibie);
strcpy(work[f].leibie,work[f+1].leibie);
strcpy(work[f+1].leibie,dai);
strcpy(dai,work[f].shijian);
strcpy(work[f].shijian,work[f+1].shijian);
strcpy(work[f+1].shijian,dai);
}
order1() /*按数量排序*/
{ int i,j,e;
system("cls");menu1();
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if((work[i].shuliang>work[i+1].shuliang)&&work[i].delet==0)
{f=i;er();}
while(1)
{ system("cls");menu1();display1();
printf(" 保存请按 1 取消请按 2
");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {system("cls");menu1();printf("写错啦!想好了写!!
");
printf("继续请按任意数字键!
");scanf("%d",&i);}
}
}
order2() /*按单价排序*/
{ int i,j;
system("cls");menu1();
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if((work[i].price>work[i+1].price)&&work[i].delet==0)
{f=i;er();}
while(1)
{ system("cls");menu1();display1();
printf(" 保存请按 1 取消请按 2
");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {system("cls");menu1();printf("写错啦!想好了写!!
");
printf("继续请按任意数字键!
");scanf("%d",&i);}
}
}
order3() /*按总价排序*/
{ int i,j;
system("cls");menu1();
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if((work[i].total>work[i+1].total)&&work[i].delet==0)
{f=i;er();}
while(1)
{ system("cls");menu1();display1();
printf(" 保存请按 1 取消请按 2
");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {system("cls");menu1();printf("写错啦!想好了写!!
");
printf("继续请按任意数字键!
");scanf("%d",&i);}
}
}
deci() /*退出继续选择*/
{ int e,i;
while(1)
{ system("cls");menu1();
printf(" 继续按 1 退出按 2
");
scanf("%d",&e);
if(e==1){g=1;break;}
if(e==2){g=2;break;}
else {printf("error!
"); printf("继续请按任意数字键!
");
scanf("%d",&i);}
}
}
order() /*排序函数*/
{ int e,i;
while(g==1)
{system("cls");menu1();
printf("按数量排序请按 1
");
printf("按单价排序请按 2
");
printf("按总价排序请按 3
");
scanf("%d",&e);
if(e==1){order1();deci();}
else if(e==2){order2();deci();}
else if(e==3){order3();deci();}
else {system("cls");menu1();printf("写错啦!想好了写!!
"); printf("继续请按任意数字键!
");
scanf("%d",&i);}
}
g=1;
}
recy() /*恢复函数*/
{
int i,e,num;FILE *fp;
system("cls");menu1();
fp=fopen(fname,"rb");
for(i=0;i<n;i++)
fread(&work[i],sizeof(struct material),1,fp);
printf("编号 名称 类别 登记时间 数量 单价 总价
");
for(i=0;i<n;i++)
if(work[i].delet==1)
{ printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d
",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
else if(i==n){printf("没找着,想好了再找!
");printf("继续请按任意数字键!
");
scanf("%d",&i);}
while(1)
{ system("cls");menu1();r1();
printf("全部死刑(清空)0 宣判无罪(恢复)1 大赦天下(全部恢复)2 打道回府(退出)3
");
scanf("%d",&e);
if(e==0)
{for(i=0;i<n;i++)
if(work[i].delet==1)work[i].delet=2;break;
}
else if(e==1)
{ system("cls");menu1();r1();
printf("请输入要恢复的材料的编号:
");
scanf("%d",&num);
for(i=0;i<n;i++)
if(num==work[i].num&&work[i].delet==1) break;
if(i<n) {work[i].delet=0;break;}
else if(i==n) {printf("没找着,想好了再找!
");printf("继续请按任意数字键!
");
scanf("%d",&i); break;}
}
else if(e==2)
{for(i=0;i<n;i++)
if(work[i].delet==1)work[i].delet=0;break;
}
else if(e==3)break;
else {printf("写错啦!想好了写!!
"); printf("继续请按任意数字键!
");
scanf("%d",&i);}
}
system("cls");menu1();printf("搞定!
");
printf("按任意数字键退出!
");scanf("%d",&i);save();
}
tongji() /*统计函数*/
{int i,e,n1=0,n2=0,n3=0,n4=0,n5=0,z=0,c=0;FILE *fp;
system("cls");menu1();
fp=fopen(fname,"rb");
for(i=0;i<n;i++)
fread(&work[i],sizeof(struct material),1,fp);
for(i=0;i<n;i++)
{if(work[i].delet==0){z=z+work[i].total;c++;}
if(work[i].total<3000&&work[i].delet==0)n1++;
if(work[i].total>=3000&&work[i].total<4000&&work[i].delet==0)n2++;
if(work[i].total>=4000&&work[i].total<5000&&work[i].delet==0)n3++;
if(work[i].total>=5000&&work[i].delet==0)n4++;
}
n5=z/c;
printf(" 总价 材料种类数
",n1);
printf(" 3000以下: %d
",n1);
printf(" 3000 --- 4000: %d
",n2);
printf(" 4000 --- 5000: %d
",n3);
printf(" 5000以下: %d
",n4);
printf("平均价格: %d
",n5);
printf("
");
system("pause");
while(1)
{ system("cls");menu1();
printf(" 保存请按 1 取消请按 2
");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {printf("写错啦!想好了写!!
"); printf("继续请按任意数字键!
");
scanf("%d",&i);}
}
printf("按任意数字键退出!
");
scanf("%d",&i);
}
menu1() /*欢迎界面*/
{
printf("
");
printf(" 课 程 设 计
");
printf("
");
printf(" 材料管理系统
");
printf("
");
printf(" 自动化
");
printf(" 王璇
");
printf("
");
printf("
");
printf("
");
printf("
");
printf("
");
printf("
");
}
menu2() /*菜单函数*/
{
printf("1.添加材料信息
");
printf("2.查看全部材料信息
");
printf("3.查找材料资料
");
printf("4.删除材料资料
");
printf("5.修改材料数据
");
printf("6.材料信息排序
");
printf("7.已经删除的材料档案
");
printf("8.材料信息记录统计
");
printf("9.文件管理
");
printf("0.退出
");
}
main() /*主函数*/
{
system("cls");
menu1();
jianli();
slect();
}
(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)
(3) 修改:允许对已经录入的数据重新进行编辑、修改;
(4) 显示:显示全体职工数据;
(5)查询:
a. 输入职工姓名,显示该职工的全部数据;
b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
(6) 退出程序。
*/
list<employee> emps;
int _tmain(int argc, _TCHAR* argv[])
{
void print(const employee &e);
void input();
void del();
void mod();
void show_all();
void show_name();
void show_dep();
cout<<"简易职工薪水管理程序 by 做他\n";// delete this line
cout<<"版权没有 请随意复制或修改任何代码\n";//delete this line
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
int choose=0;
cin>>choose;
assert(!cin.fail());
while (choose!=6)
{
if (choose==1) input();
if (choose==2) del();
if (choose==3) mod();
if (choose==4)
{
int choice=0;
cout<<"请选择操作 1.按姓名查询 2.按部门查询 3.退出:";
cin>>choice;
if (choice==1) show_name();
if (choice==2) show_dep();
if (choice==3)
{
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cin>>choose;
assert(!cin.fail());
continue;
}
}
if (choose==5) show_all();
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cin>>choose;
assert(!cin.fail());
}
return 0;
}
void print(const employee &e)
{
cout<<"编号:"<<e.m_num<<endl;
cout<<"姓名:"<<e.m_name<<endl;
cout<<"部门:"<<e.m_dep<<endl;
cout<<"保险:"<<e.m_insurance<<endl;
cout<<"税金:"<<e.m_tax<<endl;
cout<<"应付工资:"<<e.m_salary<<endl;
cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl;
}
void input()
{
string num,name,dep;
double salary,ins,tax;
cout<<"请输入员工编号:";
cin>>num;
cout<<"请输入员工姓名:";
cin>>name;
cout<<"请输入员工部门:";
cin>>dep;
cout<<"请输入员工保险:";
cin>>ins;
assert(!cin.fail());
cout<<"请输入员工税金:";
cin>>tax;
assert(!cin.fail());
cout<<"请输入员工应付工资:";
cin>>salary;
assert(!cin.fail());
employee temp;
temp.m_dep=dep;
temp.m_insurance=ins;
temp.m_name=name;
temp.m_num=num;
temp.m_salary=salary;
temp.m_tax=tax;
emps.push_back(temp);
cout<<"员工录入操作完毕.\n";
}
void del()
{
if (emps.size()==0)
{
cout<<"没有员工记录.\n";
return;
}
string name;
bool isfind=false;
cout<<"请输入要删除的员工姓名:";
cin>>name;
list<employee>::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
emps.erase(iter);
cout<<"姓名为\""<<name<<"\"的员工记录已删除.\n";
return;
}
}
if (!isfind)
{
cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
return;
}
}
void mod()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout<<"请输入要修改的员工姓名:";
cin>>name;
list<employee>::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
break;
}
}
if (isfind)
{
string num,name,dep;
double tax,ins,salary;
print(*iter);
cout<<endl;
cout<<"请输入新的员工编号:";
cin>>num;
cout<<"请输入新的员工姓名:";
cin>>name;
cout<<"请输入新的员工部门:";
cin>>dep;
cout<<"请输入新的员工保险:";
cin>>ins;
assert(!cin.fail());
cout<<"请输入新的员工税金:";
cin>>tax;
assert(!cin.fail());
cout<<"请输入新的员工工资:";
cin>>salary;
assert(!cin.fail());
iter->m_dep=dep;
iter->m_insurance=ins;
iter->m_name=name;
iter->m_num=num;
iter->m_salary=salary;
iter->m_tax=tax;
cout<<"1 员工记录被成功修改.\n";
}
else
{
cout<<"没有找到姓名为\""<<name<<"\"的员工记录.\n";
}
}
void show_all()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
cout<<"显示全体员工数据:\n";
cout<<"--------------------\n";
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
cout<<endl;
print(*iter);
cout<<endl;
}
cout<<"--------------------\n";
}
void show_name()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout<<"请输入要查询的员工姓名:";
cin>>name;
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
print(*iter);
break;
}
}
if (!isfind)
{
cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
return;
}
}
void show_dep()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
double isfind=0.00;
double total_salary=0.00;
string dep;
cout<<"请输入要查询的部门名称:";
cin>>dep;
cout<<"部门["<<dep<<"]的员工信息:\n";
cout<<"--------------------\n\n";
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_dep==dep)
{
isfind++;
total_salary+=iter->m_salary;
print(*iter);
cout<<endl;
continue;
}
}
cout<<"--------------------\n";
if (isfind==0)
{
cout<<"没有找到名称为["<<dep<<"]的部门.\n";
}
else
{
cout<<"部门["<<dep<<"]工资统计:\n";
cout<<"工资总额:"<<total_salary<<endl;
cout<<"平均工资:"<<total_salary/isfind<<endl;
这个你到网上下载个不就行了吗??
你也可以用VPRO 编啊
这里就给你一个看下吧,,想改就改下吧,,
祝你好运!!
如下::
#include<string.h>
void menu()
{
int n,w1;
do
{
printf("\t\t************************************************\n\n");
printf("\t\t************************************************\n\n");
printf("\t\t *** choose function ************\n\n");
printf("\t\t *** 1 Enter new data ************\n\n");
printf("\t\t *** 2 Modify data ************\n\n");
printf("\t\t *** 3 Search by people.xueli and num*****\n\n");
printf("\t\t *** 4 Browse data ************\n\n");
printf("\t\t *** 5 add data ************\n\n");
printf("\t\t *** 6 Exit ************\n\n");
printf("\t\t************************************************\n\n");
printf("\t\t************************************************\n\n");
printf("Choose your number(1-6):[ ]\b\b");
scanf("%d",&n);
if(n<1||n>6)
w1=1;
else w1=0;
}
while(w1==1);
switch(n)
{
case 1:enter();break;
case 2:modify();break;
case 3:search();break;
case 4:browse();break;
case 5:add();break;
case 6:exit(0);
}
}
main()
{
system("cls");
menu();
}
#define N 100
struct people
{
char num[100];
char name[15];
char sex[20];
char age[20];
char xueli[20];
char gongzhi[20];
char address[20];
char telephone[20];
}people[N];
# include <stdio.h>
enter()
{
int i,n;
printf("How many people(0-%d)?:",N-1);
scanf("%d",&n);
printf("\n Enter data now\n\n");
for(i=0;i<n;i++)
{
printf("\n Input %dth people record.\n",i+1);
input(i);
}
if(i!=0)save(n);
printf_back();
}
browse()
{
int i,j,n;
n=load();
printf_face();
for(i=0;i<n;i++)
{
if((i!=0)&&(i%10==0))
{
printf("\n\nPass any key to continue ....");
getch();
puts("\n\n");
}
printf_one(i) ;
}
printf("\tThere are %d record.\n",n);
printf("\nPass any key to back ...");
getch();
menu();
}
add()
{
int i,n,m,k;
FILE*fp;
n=load();
printf("How many people are you want to add(0-%d)?:",N-1-n);
scanf("%d",&m);
k=m+n;
for(i=n;i<k;i++)
{
printf("\nInput %dth people record.\n",i-n+1 );
input(i);
}
if((fp=fopen("Pro.txt","ab"))==NULL)
{
printf("cannot open file\n");
}
for(i=n;i<k;i++)
if(fwrite(&people[i],sizeof(struct people),1,fp)!=1)
printf("file write error\n");
fclose(fp);
printf_back();
}
search()
{
int i,n,k,w1=1,w2,w3,w4,m,a;
struct people p;
n=load();
do
{
printf("\n\nWhich way do you want to choose? \n\t1).By xueli 2).By num [ ]\b\b");
scanf("%d",&m);
switch(m)
{
case 1:
do
{ k=-1;
printf("\n\nEnter xeuli that you want to search! xueli.");
scanf("%s",p.xueli);
printf_face();
for(i=0;i<n;i++)
if(strcmp(p.xueli,people[i].xueli)==0)
{ k=i;
printf_one(k);break;
}
if(k==-1)
{ printf("\n\nNO exist!please");
printf("\n\nAre you again?\n\t1).again 2).NO and back [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}
while(k==-1&&w1==1);break;
case 2:
do
{k=-1;
printf("\n\nEnter num that you want to search! num.");
scanf("%s",p.num);
printf_face();
for(i=0;i<n;i++)
if(strcmp(p.num,people[i].num)==0)
{k=i;
printf_one(k);break;
}
if(k==-1)
{printf("\n\nNO exist!please");
printf("\n\nAre you again?\n\t1).again 2).NO and back [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}
while(k==-1&&w1==1);break;
}
w4=0;w3=0;
if(k!=-1)
{printf("\n\nWhat do you want to do?\n\t 1).Search 2).Modify 3).Delete 4).Back menu [ ]\b\b");
scanf("%d",&w2);
switch(w2)
{case 2:w3=modify_data(k,n);break;
case 3:{printf("\nAre you sure?\n\t 1).Sure 2).No and back [ ]\b\b");
scanf("%d",&w4);
if(w4==1)
for(a=k;a<n;a++)
{strcpy(people[a].num,people[a+1].num);
strcpy(people[a].name,people[a+1].name);
strcpy(people[a].sex,people[a+1].sex);
strcpy(people[a].age,people[a+1].age);
strcpy(people[a].xueli,people[a+1].xueli);
strcpy(people[a].gongzhi,people[a+1].gongzhi);
strcpy(people[a].address,people[a+1].address);
strcpy(people[a].telephone,people[a+1].telephone);
管理信息系统包括哪些基本特点?
3、有预测能力和控制能力:其使用数学模型,如运筹学模型和数理统计模型,来分析数据和信息,以便预测未来,提供决策支持。4、人机系统:机关机器占的大部分,但人始终是管理系统建设的主体,它涉及到多方面的人员群体。所以管理信息系统也是一个人机结合的系统。各级管理人员既是系统的使用者,又是系统的...
工资子系统核算和管理的内容包括哪些
(1)系统初始设置。系统的初始设置主要是设置系统工作必不可少的各种编码信息和初始数据。(2)日常业务数据录入。主要是录入考勤、产量工时等每月变动的工资数据。(3)工资的结算与分配。工资的结算包括职工日工资的计算、职工个人应付工资合计、个人收入调节税的计算及实发工资的计算公式设定和计算。
工资管理系统C语言
while(nod->next !=NULL){ if((!strcmp(nod->next->name,s))||(!strcmp(nod->next->unit,s))){ nod->next=nod->next->next;nod->next=NULL;} } } int addmenu()\/\/添加教师信息子菜单 { TEACHER *node;char command;float salary,allowance,tax,total;system("cls");...
管理信息系统的结构按管理层次可分为什么?
管理信息系统的结构按管理层次可分为高层、中层、基层三类。管理信息系统(Management Information System,简称MIS)是一个以人为主导,利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新、拓展和维护的系统。管理信息系统是一个不断发展的新型学科,MIS的定义随着...
管理信息系统有哪些特点
管理信息系统的特点是:1、管理信息是重要的资源。信息资源决定了如何更有效地利用物资资源。掌握了信息资源,就可以更好地利用有形资源,使有形资源发挥更好的效益。2、管理信息是实施管理控制的依据。在管理控制中,以信息来控制整个的生产过程、服务过程的运作,也靠信息的反馈来不断地修正已有的计划。
管理信息系统开发过程包括哪些阶段?
分为规划阶段、分析阶段、设计阶段、实施阶段、维护与评价五个阶段:1、规划阶段 系统规划阶段的任务是:在对原系统进行初步调查的基础上提出开发新系统的要求,根据需要和可能,给出新系统的总体方案,并对这些方案进行可行性分析,产生系统开发计划和可行性研究报告两份文档。2、分析阶段 系统分析阶段的...
怎么安装了行政事业单位资产管理信息系统后我的财务软件打不开了,提示...
您看一下这个资产管理软件是不是也共用了这个数据库 这个数据库的服务有没有启动等等
行政事业单位资产管理信息系统已填好,如何导入优盘
到当地财政部门考上模板,导入模板就可以了
资源管理系统中关于资源资产机房资产照片的拍照顺序
以防设备或环境发生变化。7、然后确保所有设备和标识都有清晰的照片。8、如果机房内有特殊设备,如冷却系统或安全设备,应特别注意拍照。9、然后在的情况下,拍摄设备的细节照片,如端口、标签和表面状况。10、最后在所有照片拍摄完毕后,进行整理和分类,以便后续管理和查询。
什么是信息化?什么是管理信息系统?
信息化是指通过发展、培养以计算机为主的新的生产力的过程。将以往的生产工具以先进的计算机进行控制,具备信息获取、信息传递、信息处理、信息再生、信息利用的功能。管理信息系统是指以人为主导,通过利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新、拓展和维护...
以泡木香: 目前国内大部分人事管理软件都是saas版本. 费用也从几万到十几万不等,主要看需要那些功能,现有人事工作中,慧人力主要有员工档案信息管理,职位管理,复杂薪资核算等等功能. 产品安全稳定,实用性强. 还有手机+pc端同时管理,并且手机打卡考勤,工作汇报,等.
行唐县13486049320: 人事工资管理系统的人事工资管理系统 - ?
以泡木香: 人事工资管理系统是一款专业的人事档案管理软件,人事工资管理软件,人事管理软件界面设计简洁,美观,其人性化的软件流程,使普通用户不需培训也能快速掌握软件操作使用方法,上手极易.强大的报表统计功能更是能让您完整的掌握企业,公司内部的人事,工资,档案的详细情况.企业人事管理软件广泛适用于企业,公司的人事管理,档案管理,是您企业进行人力资源管理的强大工具.
行唐县13486049320: 薪资管理系统那款最好用??
以泡木香: 楼主,向你推荐我公司正在用的“管理123”开发的薪资管理系统.该系统是在组织发展战略指导下,对员工薪酬支付原则、薪酬策略、薪酬水平、薪酬结构、薪酬构成进行确定、分配和调整的动态化电子动态管理.可以自定义各种基本项目,...
行唐县13486049320: C语言程序设计 -- 工资管理系统 - ?
以泡木香: #include "stdio.h"#include "stdlib.h"#include "string.h" typedef struct empl { char number[20]; char name[20]; int pay; int subsidy; int costlive; empl *next; }; int show(empl *p) { if(!p)return 0; printf("number\t mame\t pay\t subsidey\t costlive\n"...
行唐县13486049320: 有什么比较好的薪酬管理系统么? - ?
以泡木香: 我觉得比较好的薪酬管理系统有以下特征:给你推荐一下.1.能够支持复杂的薪酬体系落地 市面上的大多数薪酬管理系统,设计的功能往往过于通用,可以解决一些简单的或某一垂直领域的薪酬计算问题,但无法适应企业变化中的薪酬体系....
行唐县13486049320: 现在市场上的薪资管理软件有哪些?哪家公司的比较好用? - ?
以泡木香: 你试试管理123的薪资管理软件,我们公司目前就用的这个,用着还行,正常需求都能满足.
行唐县13486049320: C语言课程设计————职工工资信息管理系统 - ?
以泡木香: /* Microsoft Visual C++ .NET编译通过 by 做他@07.12.29*/#include "stdafx.h"#include "iostream"#include "string"#include "list"#include "cassert" using namespace std;/* 编号、姓名、部门、应付工资、保险、税金、实付工资.其...
行唐县13486049320: 如何用access做一个工资管理系统? - ?
以泡木香: 单独用access极不好做,最好搭配java,做成在线浏览的jsp,这样不仅能方便记录、方便公司内的其他电脑浏览、也可以自动按基本信息的推算工资变化.
行唐县13486049320: 简单的工资管理系统的设计 急用 - ?
以泡木香: 这个很简单,用EXCEL公式一套就可以了的.管理系统是由管理者与管理对象组成的并由管理者负责控制的一个整体.管理系统因具体对象不同而千差万别.
行唐县13486049320: 目前红海eHR的工资管理系统做得怎么样? - ?
以泡木香: 这么说吧,eHR系统这样的人事管理系统,在做好薪酬管理的基础人员管理工作的同时,可以从多个管理方面入手实现企业的良好薪酬管理. 红海eHR的系统已经实现了薪资核算、发放的全面线上管理,并且可以帮助企业优化税务,同时满足个税新政要求.工资管理还可以自动关联考勤、绩效、社保、个税申报数据,实现毫厘级精准核算.一定程度上解决了无法从海量薪资数据中及时发现薪资管理的问题,并且拥有薪酬水平分析,提供每月员工薪酬诊断报告,可以查询每位员工的薪酬水平分布状态,提供员工调薪预警,避免人才流失,提高员工满意度.