You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

196 lines
4.1 KiB

6 years ago
#include"stdio.h"
#include"string.h"
#include"windows.h"
struct Staff
{
char gh[50];
char name[50];
int workload;
bool operator< (const Staff& a)const{
return workload<a.workload;}
}; void menu();
void staff_add();
void display();
void order();
void qh();
int main()
{
int n,f;
while(1)
{
do{
menu();
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(1<><31>5):\n");
scanf("%d",&n);
if(n>=1&&n<=5)
{
f=1;
break;
}
else
{
f=0;
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>!");
}
}
while(f==0);
switch(n)
{
case 1:printf(" ְ<><D6B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ\n");
printf("\n");system("cls");
staff_add();
break;
case 2:printf(" <20><><EFBFBD><EFBFBD>ְ<EFBFBD><D6B0><EFBFBD><EFBFBD>Ϣ\n");
printf("\n");system("cls");
display();
break;
case 3:printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
printf("\n");
system("cls");
order();
break;
case 4:printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
printf("\n");
system("cls");
qh();
break;
case 5:goto loop;
default :break;
}
}
loop:
system("cls");
printf("\n\n\n\n\n\n----------ллʹ<D0BB>ã<EFBFBD>---------\n\n\n\n\n\n");
}
void menu()
{
printf("\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
printf("+ ְ<><D6B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>ϵͳ +\n");
printf("+ +\n");
printf("+ 1. ְ<><D6B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD> +\n");
printf("+ +\n");
printf("+ 2. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD><D6B0><EFBFBD><EFBFBD>Ϣ +\n");
printf("+ +\n");
printf("+ 3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> +\n");
printf("+ +\n");
printf("+ 4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> +\n");
printf("+ +\n");
printf("+ 5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> +\n");
printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
}
void staff_add()
{Staff Sta;
FILE *fp;
int flag=1;
fp=fopen("staff.txt","a+");
if(fp==NULL)
{printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
}
else
{
while(flag==1)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:");
scanf("%s",Sta.gh);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:");
scanf("%s",Sta.name);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:");
scanf("%d",&Sta.workload);
fprintf(fp,"\n");
fprintf(fp,"%s %s %d",Sta.gh,Sta.name,Sta.workload);
printf("<EFBFBD><EFBFBD><EFBFBD>ӳɹ<EFBFBD>!\n");
printf(" <20><>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>:");
scanf("%d",&flag);
}
}
fclose(fp);
}
void display()
{
FILE *fp;
char ch;
fp=fopen("staff.txt","r");
if(fp==NULL)
printf("can not open!\n");
else
{
fscanf(fp,"%c",&ch);
while(!feof(fp))
{
putchar(ch);
fscanf(fp,"%c",&ch);
}
fclose(fp);
}
printf("\n");
}
void order()
{
FILE*fp;
int a=0,i,j,q,p;
Staff workload1[50];
char t[50];
char u[50];
fp=fopen("staff.txt","a+");
if(fp==NULL)
printf("can not open!\n");
else
{
while(!feof(fp))
{
fscanf(fp,"%s %s %d",workload1[a].gh,workload1[a].name,&workload1[a].workload);
a++;
}
for(i=0;i<a;i++)
{
for(j=i+1;j<a;j++)
{
if(workload1[i]<workload1[j])
{
p=workload1[i].workload;
workload1[i].workload=workload1[j].workload;
workload1[j].workload=p;
strcpy(t,workload1[i].name);
strcpy(workload1[i].name,workload1[j].name);
strcpy(workload1[j].name,t);
strcpy(u,workload1[i].gh);
strcpy(workload1[i].gh,workload1[j].gh);
strcpy(workload1[j].gh,u);
}
}
}
for(q=0;q<a;q++)
{
printf("%s %s %d\n",workload1[q].gh,workload1[q].name,workload1[q].workload);
}
}
fclose(fp);
}
void qh()
{
FILE*fp;
Staff workload1[50];
int a=0,i,sum=0;
fp=fopen("staff.txt","a+");
if(fp==NULL)
printf("can not open!\n");
else
{
while(!feof(fp))
{
fscanf(fp,"%s%s%d",workload1[a].gh,workload1[a].name,&workload1[a].workload);
a++;
}
for(i=0;i<a;i++)
{
sum=sum+workload1[i].workload;
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>\n%d",sum);
}
fclose(fp);
}