third commit

master
1836015489@qq.com 6 years ago
parent 1b752f1dbb
commit bd47ba4a3a

Binary file not shown.

@ -1,98 +0,0 @@
#include <stdio.h>
#include<stdlib.h>
struct work_info
{
int num;
int work;
int ranking;
struct work_info *next;
};
int length;
typedef struct work_info worker;
worker *create_w_Doc();
void fun_w_Doc(worker *head);
void print_w_Doc(worker *head);
int main()
{
worker *head;
head=create_w_Doc();
fun_w_Doc(head);
print_w_Doc(head);
return 0;
}
worker *create_w_Doc()
{
worker *head,*p1,*p2;
length=0;
int num,work;
head=p1=(worker*)malloc(sizeof(worker));
printf("请输入工号(请不要输入相同的工号)、工作量:\n");
scanf("%d%d",&num,&work);
while(num!=0)
{
p2=(worker*)malloc(sizeof(worker));
p2->num=num;
p2->work=work;
p1->next=p2;
p1=p2;
length++;
scanf("%d%d",&num,&work);
}
return head;
}
void fun_w_Doc(worker *head)
{
worker *p1,*p2;
while(p1!=NULL)
{
for(p1=head;p1!=NULL;p1=p1->next)
{
for(p2=p1->next;p2!=NULL;p2=p2->next)
if(p1->work<p2->work)
{
p1->next=p2->next;
p2->next=p1;
}
p1=p1->next;
}
for(p2=p1->next;p2!=NULL;p2=p2->next)
{
if(p1->work==p2->work)
{
if(p1->num>p2->num)
{
p2->next=p1;
p1->next=p2->next;
p2=p1;
}
p1=p1->next;
}
}
}
return;
}
void print_w_Doc(worker *head)
{
worker *p;
if(p=NULL)
{
printf("无记录!");
return;
}
printf("记录为:\n\n");
printf("工号 工作量 名次\n");
p=head->next;
do
{
printf("%d %d %d\n",p->num,p->work,p->ranking);
p=p->next;
}while(p!=NULL);
}

@ -12,12 +12,13 @@ int length;
typedef struct work_info worker; typedef struct work_info worker;
worker *create_w_Doc(); worker *create_w_Doc();
void print_w_Doc(worker *head);
void input_w_Doc(worker *head); void input_w_Doc(worker *head);
void delect_w_Doc(worker *head); void delect_w_Doc(worker *head);
void fun1_w_Doc(worker *head); void fun1_w_Doc(worker *head);
void stor_w_Doc(worker *head); void stor_w_Doc(worker *head);
void fun2_w_Doc(worker *head);
void fun_w_Doc(worker *head); void fun_w_Doc(worker *head);
void print_w_Doc(worker *head);
int main() int main()
{ {
@ -28,18 +29,21 @@ int main()
fun1_w_Doc(head); fun1_w_Doc(head);
fun_w_Doc(head); fun_w_Doc(head);
stor_w_Doc(head); stor_w_Doc(head);
fun2_w_Doc(head);
print_w_Doc(head); print_w_Doc(head);
return 0; return 0;
} }
worker *create_w_Doc() worker *create_w_Doc()
{ {
printf(" *************************** \n "); printf(" *************************** \n");
printf(" * Ö°¹¤¹¤×÷Á¿Í³¼Æ * \n "); printf(" * 职工工作量统计 * \n");
printf(" *************************** \n");
worker *head,*p1,*p2; worker *head,*p1,*p2;
length=0; length=0;
int num,work; int num,work;
head=p1=(worker*)malloc(sizeof(worker)); p1=(worker*)malloc(sizeof(worker));
head=p1;
printf("请输入工号、工作量:\n\n"); printf("请输入工号、工作量:\n\n");
scanf("%d%d",&num,&work); scanf("%d%d",&num,&work);
while(num!=0) while(num!=0)
@ -60,7 +64,6 @@ void input_w_Doc(worker *head)
{ {
worker *p1,*p2; worker *p1,*p2;
int n,i; int n,i;
p1=head;
printf("请输入你需要加入的位置:"); printf("请输入你需要加入的位置:");
scanf("%d",&n); scanf("%d",&n);
if(n>length) if(n>length)
@ -96,6 +99,7 @@ void input_w_Doc(worker *head)
} }
} }
void delect_w_Doc(worker *head) void delect_w_Doc(worker *head)
{ {
worker *p1,*p2; worker *p1,*p2;
@ -119,11 +123,12 @@ void delect_w_Doc(worker *head)
} }
printf("输入错误!\n\n"); printf("输入错误!\n\n");
} }
void fun1_w_Doc(worker *head) void fun1_w_Doc(worker *head)
{ {
worker *p1; worker *p1;
int num, work; int num,work;
p1=head; p1=head->next;
printf("请输入你需要累加的工号:"); printf("请输入你需要累加的工号:");
scanf("%d",&num); scanf("%d",&num);
p1=head; p1=head;
@ -134,33 +139,40 @@ void fun1_w_Doc(worker *head)
printf("请输入你需要累加的工作量:"); printf("请输入你需要累加的工作量:");
scanf("%d",&work); scanf("%d",&work);
p1->work+=work; p1->work+=work;
printf("成功!\n\n");
return; return;
} }
p1=p1->next; p1=p1->next;
}while(p1!=NULL); }while(p1!=NULL);
printf("输入错误!\n\n");
return;
} }
void fun_w_Doc(worker *head) void fun_w_Doc(worker *head)
{ {
worker *p1,*p2; worker *p1,*p2;
int num,work;
p1=head; p1=head;
p2=head->next; p2=head;
for(p1=head;p1!=NULL;p1=p1->next) for(p1=head;p1!=NULL;p1=p1->next)
{ {
for(p2=p1->next;p2!=NULL;p2=p2->next) for(p2=head;p2!=NULL;p2=p2->next)
{ {
if(p1->work<p2->work) if(p1->work>p2->work)
{ {
p1->next=p2->next; num=p1->num;
p2->next=p1; p1->num=p2->num;
p2=p1; p2->num=num;
} work=p1->work;
} p1->work=p2->work;
} p2->work=work;
}
}
}
return; return;
} }
void stor_w_Doc(worker *head) void stor_w_Doc(worker *head)
{ {
worker *p1,*p2; worker *p1,*p2;
@ -174,7 +186,26 @@ void stor_w_Doc(worker *head)
p1=p1->next; p1=p1->next;
i++; i++;
} }
return; }
void fun2_w_Doc(worker *head)
{
worker *p1,*p2;
p1=head;
for(p1=head;p1!=NULL;p1=p1->next)
{
for(p2=p1;p2!=NULL;p2=p2->next)
{
if(p1->work==p2->work)
{
p2->ranking=p1->ranking;
if(p1->num>p2->num)
{
p1->next=p2->next;
p2->next=p1;
}
}
}
}
} }
void print_w_Doc(worker *head) void print_w_Doc(worker *head)

Binary file not shown.
Loading…
Cancel
Save