麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

通訊錄(鏈表、文件)

2019-11-14 09:14:04
字體:
來源:轉載
供稿:網友
#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<string.h>#define len sizeof(struct Node)#define ERROR   1#define OK      0struct Node{char name[30];    int data;    struct Node *next;};typedef struct Node  LinkList; /* 定義LinkList *//* 初始化順序線性表生成一個頭返回head */LinkList * InitList() { LinkList *head;   head=(LinkList *)malloc(len);  /* 產生頭結點,并使L指向此頭結點 */   if(head==NULL)     /* 存儲分配失敗 */    PRintf("malloc is not good");   head->next=NULL;   /* 指針域為空 */   return head;}/*數據的輸出打印*/void print(LinkList *head){LinkList *p;p=head->next;if(p==NULL)printf("this is empty/n");while(p!=NULL){printf("姓名: %-10s 號碼: %-10d/n",p->name,p->data);p=p->next;}}/*  初始化后   數據添加   采用(頭插法) */LinkList * CreateListHead(LinkList *head) {printf("*表示輸入結束/n");LinkList *p;int i;//head = (LinkList *)malloc(len);//head->next = NULL;            /*  先建立一個帶頭結點的單鏈表 *///p=head->next;//////////////while(1){p = (LinkList *)malloc(len); /*  生成新結點 */printf("請輸入姓名:/n");scanf("%s",p->name);if(strcmp(p->name,"*") == 0)break;printf("請輸入號碼:/n");scanf("%d",&p->data);p->next = head->next;    head->next = p;/*  插入到表頭 */}return head;}/* 刪除 *//* 操作結果:輸入要刪除的  元素     進行刪除 */LinkList * ListDelete(LinkList *head) { LinkList *pre,*after,*p;p=(LinkList *)malloc(len);//插入時申請空間printf("請輸入要刪除姓名:/n");scanf("%s",p->name);pre = head;after=head->next;while(after != NULL){ if(strcmp(after->name,p->name)==0){ pre->next=after->next;free(after);break;}else{pre=after;after=after->next;//錯誤地點}}if(after == NULL)printf("this data is not exist/n");return head;}/* 插入 *//* 操作結果:把數據插在第 n 個位置 */LinkList * ListInsert(LinkList *head,int n){LinkList *new,*look;;new=(LinkList *)malloc(len);//插入時申請空間printf("添加  新聯系人/n");printf("新加  姓名:/n");scanf("%s",new->name);printf("新加  號碼:/n");scanf("%d",&new->data);int count=0;if(head==NULL){head=new;new->next=NULL;}else{if(n==0){new->next=head;head=new;}else{look=head;while((look!=NULL)&&(count<n-1)){look=look->next;count++;}if(count==n-1){new->next=look->next;look->next=new;}if(new==NULL)printf("out of the range,");}}return head;} /*   排序*//*  按照   名字    排序*/LinkList *ListSort(LinkList *head){LinkList *p1,*p2,*p,*s;int i,j,n=1;   s=head->next; /* s指向第一個結點 */   while(s)        /*數元素的個數,計數...........遍歷得到n*/                    {         n++;        s=s->next;       }p=(LinkList *)malloc(len);for(i=0;i<(n-1);i++){ p1=head;p2=p1->next;for(j=0;j<(n-i-1);j++){if(strcmp(p1->name,p2->name)>0){p->data=p1->data;p1->data=p2->data;p2->data=p->data;strcpy(p->name,p1->name);strcpy(p1->name,p2->name);strcpy(p2->name,p->name);}p1=p2;p2=p2->next;}}return head;}/*     查找     通過名字,找到電話號碼*/LinkList *xuzhao(LinkList *head){LinkList *p,*x;p=head;int count=0;x=(LinkList *)malloc(len);//申請空間printf("****輸入要查找姓名****/n");scanf("%s",x->name);while(1){ if( strcmp(p->name,x->name)==0 ){printf("姓名%-10s 號碼:%-10d/n",p->name,p->data);break;}p=p->next;if(p==NULL){ printf("*********查無此人*************/n");break;}}}LinkList * xiugai(LinkList *head){LinkList *p,*x,*q;p=head;int count=0;x=(LinkList *)malloc(len);printf("輸入要修改姓名/n");scanf("%s",x->name);while(1){ if( strcmp(p->name,x->name)==0 ){break;}p=p->next; if(p == NULL){printf("這個名字不存在/n");return head;}}printf("修改為:姓名   號碼/n");scanf("%s %d",p->name,&p->data);printf("姓名%-10s 號碼:%-10d/n",p->name,p->data);return head;}/*桌面顯示*/int beijing(){printf("********************************************/n");printf("**選擇:1   創建通訊錄                          /n");printf("**選擇:2   查找聯系人                        /n");printf("**選擇:3   刪除聯系人                          /n");printf("**選擇:4   添加聯系人                         /n");printf("**選擇:5   對聯系人排序                      /n");printf("**選擇:6   對聯系人信息修改               /n");printf("**選擇:0   退出編輯                           /n");printf("********************************************/n");}/*將數據進行保存*/void save(LinkList *head){LinkList *p;FILE *fp;p=head->next; fp=fopen("s2.txt","wt");if( fp == NULL){printf("fopen error");exit(-1);}while( p != NULL){fwrite(p,len,1,fp);p=p->next;}fclose(fp);}/*將文件數據寫入入鏈表*/LinkList * out_liaobiao(LinkList *head){LinkList *tmp,*p;FILE * fp;  fp=fopen("s2.txt","rt");if(fp == NULL)    {        printf("fopen error/n");        exit(1);    }  tmp=(LinkList *)malloc(len);while( fread(tmp,len,1,fp))//fread 返回數據塊的數目{tmp->next = head->next;    head->next = tmp;tmp=(LinkList *)malloc(len);}return head;fclose(fp);}/*將文件數據寫入入鏈表*//*   也可以用另外一種方法*//*LinkList * out_liaobiao(LinkList *head){FILE * fp;LinkList *p;int i = 0;long llen;if( (fp=fopen("s2.txt","rt")) == NULL ){printf("fopen error/n");        exit(1);}fseek(fp,0,2);llen= ftell(fp);fseek(fp,0,0);while(llen != 0){p=(LinkList *)malloc(len);if( p == NULL)printf("tmp empty/n");fread(p,len,1,fp);p->next = head->next;    head->next = p;llen=llen-len;}if(llen==0)return head;fclose(fp);}*/int main(){LinkList *head;int num;head=InitList();head=out_liaobiao(head);print(head); while(1){ beijing();printf("請選擇/n");scanf("%d",&num);switch(num){case 0: save(head);exit(0);case 1: head=CreateListHead(head); //f_write(head);//save(head);print(head);break; case 2: xuzhao(head);              break;case 3: head=ListDelete(head);print(head); break;case 4: head=ListInsert(head,1);print(head); break;case 5: head=ListSort(head);print(head); break;case 6: head=xiugai(head);print(head); break;/*case 7: head=InitList();print(head);break;case 8: head=out_liaobiao(head);print(head); break;*/default : printf("這是錯誤的,請重新選擇/n"); break;}}}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蜜桃视频观看麻豆 | av免费提供 | 麻豆传传媒久久久爱 | 欧美人与牲禽动交精品一区 | 久久91精品 | 黄色片网页| 一级黄色影片在线观看 | 黄色免费在线电影 | 激情网站免费观看 | 成人在线免费视频播放 | 久久免费视频3 | 午夜爱爱福利 | 一级大黄毛片 | 日本aaaa片毛片免费观蜜桃 | 亚洲小视频在线观看,com | 精品二区在线观看 | 日本人乱人乱亲乱色视频观看 | 国产一区二区久久精品 | 黄色免费不卡视频 | 特级毛片免费视频 | 日韩视频一区二区三区在线观看 | 草操视频 | 精品国产高清一区二区三区 | 一级做受毛片免费大片 | 成人福利视频在线观看 | 日本羞羞影院 | 色淫视频| 在线观看免费污视频 | 老女人碰碰在线碰碰视频 | 欧美在线观看视频网站 | www.91视频com | 北京一级毛片 | 717影院理论午夜伦八戒秦先生 | 粉嫩av一区二区三区四区在线观看 | 久草在线网址 | 黄色7777 | 嗯~啊~弄嗯~啊h高潮视频 | 久久久麻豆 | 国产一区在线视频观看 | 国产精品成人一区二区三区电影毛片 | 伊人一二三四区 |