在使用動態儲存的時候發現每次程式結束儲存的資訊都會消失,但儲存在檔案中就輕鬆的解決了這個問題。
**實現:
#include
#include
#include
#define ok 1
#define error 0
typedef int elementtype;
typedef int status;
typedef struct node
node;
status menu(node* head);
status menuupdate(node* head);
status menudelete(node* head);
status menuquery(node* head);
int length(node* head);
status init(node** head);
status inserttail(node* head);
status deleteindex(node* head);
status deletename(node* head);
status deletephonenumber(node* head);
status updateindex(node* head);
status updatename(node* head);
status updatephone(node* head);
void queryindex(node* head);
void queryname(node* head);
void queryphonenumber(node* head, file* file);
void print(node* head);
void sort(node* head);
void read(node* head);
void write(node* head);
int main(int argc, char **argv)
read(head);
menu(head);
sort(head);
print(head);
write(head);
fclose(file);
return 0;
}//主選單
status menu(node* head)
case 2:
case 3:
case 4:
case 5:
default: printf("請重新輸入正確的操作指令\n");
}}return ok;
}//修改方式選單
status menuupdate(node* head)
case 2:
case 3:
}return ok;
}//刪除子選單
status menudelete(node* head)
case 2:
case 3:
}return ok;
}//查詢子選單
status menuquery(node* head)
case 2:
case 3:
}return ok;
}//初始化
status init(node** head)
*head = new;
(*head)->next = null;
return ok;
}//尾插法
status inserttail(node* head)
node* new = (node*)malloc(sizeof(node));
if(null == new)
head->next = new;
new->next = null;
printf("請輸入新增成員姓名:\n");
scanf("%s", new->name);
printf("請輸入成員性別:\n");
scanf("%s", new->***);
printf("請輸入成員年齡:\n");
scanf("%d", &new->age);
printf("請輸入成員手機號碼:\n");
scanf("%s", new->phonenumber);
fprintf(file, "%s\t", new->name);
fprintf(file, "%s\t", new->***);
fprintf(file, "%d\t", new->age);
fprintf(file, "%s\n", new->phonenumber);
printf("新增成功!\n");
return ok;
}//按照編號刪除
status deleteindex(node* head)
for(i = 0; i < index - 1; i++)
node* temp = head->next;
head->next = head->next->next;
free(temp);
temp = null;
printf("刪除成功!\n");
return ok;
}//按照姓名刪除
status deletename(node* head)
head = head->next;
}if(count == 0)
memset(temp, 0, 20);
printf("刪除成功!\n");
return ok;
}//按照手機號碼刪除
status deletephonenumber(node* head)
head = head->next;
}if(count == 0)
memset(temp, 0, 20);
printf("刪除成功!\n");
return ok;
}//根據編號修改對應資訊
status updateindex(node* head)
for(i = 0; i < index; i++)
printf("\n");
printf("1.只修改姓名\n");
printf("\n");
printf("2.只修改性別\n");
printf("\n");
printf("3.只修改年齡\n");
printf("\n");
printf("4.只修改手機號碼\n");
printf("\n");
printf("5.修改全部資訊\n");
printf("\n");
printf("請輸入數字\n");
scanf("%d\n", &shuzi);
switch(shuzi)
case 2:
case 3:
case 4:
case 5:
default :printf("請重新輸入\n");
}return ok;
}//根據姓名修改對應資訊
status updatename(node* head)
case 2:
case 3:
case 4:
case 5:
default :printf("請重新輸入\n");
}count++;}}
if(count == 0)
memset(temp, 0, 20);
return ok;
}//根據手機號碼修改對應資訊
status updatephone(node* head)
case 2:
case 3:
case 4:
case 5:
default :printf("請重新輸入\n");
} count++;}}
if(count == 0)
memset(number, 0, 20);
return ok;
}//按編號查詢
void queryindex(node* head)
for(i = 0; i < index - 1; i++)
printf("查詢資訊:\n");
printf("姓名:%s\t", head->next->name);
printf("性別:%s\t", head->next->***);
printf("年齡:%d\t", head->next->age);
printf("手機號碼:%s\n", head->next->phonenumber);
printf("--------------------------------------");
}//按姓名查詢
void queryname(node* head)
head = head->next;
}if(count == 0)
memset(temp, 0, 20);
}//按照手機號碼查詢
void queryphonenumber(node* head)
head = head->next;
}if(count == 0)
memset(temp, 0, 20);
}//根據姓名排序
void sort(node* head)
temp = temp->next;}}
}void print(node* head)
}int length(node* head)
return count;
}void read(node* head)//檔案讀入
fclose(file);
}void write(node* head)//檔案寫入
fclose(file);
}
通訊錄 檔案儲存
本文是基於動態儲存的通訊錄實現中加以修改 動態儲存實現通訊錄 增加資料寫入檔案函式 將資料寫入檔案 void writefile mindan book for int i 0 i book size i fclose fp 增加載入檔案資料儲存 void loadfile mindan book ...
通訊錄的實現
ifndef contacts h define contacts h define name length 20 define length 10 define tele length 11 define addr length 30 define max 1000 struct peoplein...
通訊錄 靜態實現
address.h ifndef address h define address h include include include include define max 10 這裡我為了除錯方便取了乙個較小的數值 enum op 姓名 性別 年齡 住址 typedef struct pesonm...