From e99132f3662185e5e55fa6b650abf4ca74902646 Mon Sep 17 00:00:00 2001 From: "1836015489@qq.com" <1836015489@qq.com> Date: Thu, 10 Jan 2019 01:25:40 +0800 Subject: [PATCH] first commit --- 测试.cpp | 98 ++++++++++++++++++++++++++ 设计.cpp | 197 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 295 insertions(+) create mode 100644 测试.cpp create mode 100644 设计.cpp diff --git a/测试.cpp b/测试.cpp new file mode 100644 index 0000000..fa4f7ee --- /dev/null +++ b/测试.cpp @@ -0,0 +1,98 @@ +#include +#include + +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->workwork) + { + 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); +} + + diff --git a/设计.cpp b/设计.cpp new file mode 100644 index 0000000..479b09c --- /dev/null +++ b/设计.cpp @@ -0,0 +1,197 @@ +#include +#include + +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;inext; + } + 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->workwork) + { + 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); +} +