parent
e99132f366
commit
1b752f1dbb
@ -1,197 +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 print_w_Doc(worker *head);
|
|
||||||
void input_w_Doc(worker *head);
|
|
||||||
void delect_w_Doc(worker *head);
|
|
||||||
void fun1_w_Doc(worker *head);
|
|
||||||
void stor_w_Doc(worker *head);
|
|
||||||
void fun_w_Doc(worker *head);
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
worker *head;
|
|
||||||
head=create_w_Doc();
|
|
||||||
input_w_Doc(head);
|
|
||||||
delect_w_Doc(head);
|
|
||||||
fun1_w_Doc(head);
|
|
||||||
fun_w_Doc(head);
|
|
||||||
stor_w_Doc(head);
|
|
||||||
print_w_Doc(head);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
worker *create_w_Doc()
|
|
||||||
{
|
|
||||||
printf(" *************************** \n ");
|
|
||||||
printf(" * 职工工作量统计 * \n ");
|
|
||||||
worker *head,*p1,*p2;
|
|
||||||
length=0;
|
|
||||||
int num,work;
|
|
||||||
head=p1=(worker*)malloc(sizeof(worker));
|
|
||||||
printf("请输入工号、工作量:\n\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);
|
|
||||||
}
|
|
||||||
printf("输入成功!\n\n");
|
|
||||||
return head;
|
|
||||||
}
|
|
||||||
|
|
||||||
void input_w_Doc(worker *head)
|
|
||||||
{
|
|
||||||
worker *p1,*p2;
|
|
||||||
int n,i;
|
|
||||||
p1=head;
|
|
||||||
printf("请输入你需要加入的位置:");
|
|
||||||
scanf("%d",&n);
|
|
||||||
if(n>length)
|
|
||||||
{
|
|
||||||
printf("输入错误!\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf("输入职工工号、工作量:\n");
|
|
||||||
p2=(worker*)malloc(sizeof(worker));
|
|
||||||
scanf("%d%d",&p2->num,&p2->work);
|
|
||||||
p1=head;
|
|
||||||
while(p1!=NULL)
|
|
||||||
{
|
|
||||||
if(p1->num==p2->num)
|
|
||||||
{
|
|
||||||
printf("输入不正确,请重新输入:");
|
|
||||||
scanf("%d%d",&p2->num,&p2->work);
|
|
||||||
}
|
|
||||||
p1=p1->next;
|
|
||||||
}
|
|
||||||
p1=head;
|
|
||||||
for(i=0;i<n;i++)
|
|
||||||
{
|
|
||||||
p1=p1->next;
|
|
||||||
}
|
|
||||||
p2->next=p1->next;
|
|
||||||
p1->next=p2;
|
|
||||||
length++;
|
|
||||||
printf("插入成功!\n\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void delect_w_Doc(worker *head)
|
|
||||||
{
|
|
||||||
worker *p1,*p2;
|
|
||||||
int num;
|
|
||||||
p1=head->next;
|
|
||||||
p2=head;
|
|
||||||
printf("请输入需要删除的工号:");
|
|
||||||
scanf("%d",&num);
|
|
||||||
while(p1!=NULL)
|
|
||||||
{
|
|
||||||
if(p1->num==num)
|
|
||||||
{
|
|
||||||
p2->next=p1->next;
|
|
||||||
free(p1);
|
|
||||||
length--;
|
|
||||||
printf("删除成功!\n\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
p1=p1->next;
|
|
||||||
p2=p2->next;
|
|
||||||
}
|
|
||||||
printf("输入错误!\n\n");
|
|
||||||
}
|
|
||||||
void fun1_w_Doc(worker *head)
|
|
||||||
{
|
|
||||||
worker *p1;
|
|
||||||
int num, work;
|
|
||||||
p1=head;
|
|
||||||
printf("请输入你需要累加的工号:");
|
|
||||||
scanf("%d",&num);
|
|
||||||
p1=head;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
if(p1->num==num)
|
|
||||||
{
|
|
||||||
printf("请输入你需要累加的工作量:");
|
|
||||||
scanf("%d",&work);
|
|
||||||
p1->work+=work;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
p1=p1->next;
|
|
||||||
}while(p1!=NULL);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void fun_w_Doc(worker *head)
|
|
||||||
{
|
|
||||||
worker *p1,*p2;
|
|
||||||
p1=head;
|
|
||||||
p2=head->next;
|
|
||||||
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;
|
|
||||||
p2=p1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void stor_w_Doc(worker *head)
|
|
||||||
{
|
|
||||||
worker *p1,*p2;
|
|
||||||
int n;
|
|
||||||
p1=head->next;
|
|
||||||
int i;
|
|
||||||
i=1;
|
|
||||||
while(p1!=NULL)
|
|
||||||
{
|
|
||||||
p1->ranking=i;
|
|
||||||
p1=p1->next;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in new issue