測試環境:vs2013
#ifndef _address_list_h_
#define _address_list_h_
#include
#include
#include
#pragma warning(disable:4996)
typedef struct
a datatype;
typedef struct addlist
addlist, *paddlist;
struct a
;void initlinkman(paddlist ps, int capacity);//對聯絡人列表初始化
void checkcapacity(paddlist ps);//對聯絡人列表空間擴容
void addlinkman(paddlist ps);//新增聯絡人
void delelinkman(paddlist ps);//刪除聯絡人
void findlinkman(paddlist ps);//查詢來聯絡人
void alterlinkman(paddlist ps);//修改聯絡人
void showlinkman(paddlist ps);//列印聯絡人資訊
void sortname(paddlist ps);
#endif
#include "address_list.h"
static void print_linkman(paddlist ps, int i)
void initlinkman(paddlist ps, int capacity)
ps->capacity = capacity;
ps->size = 0;
}void checkcapacity(paddlist ps)
ps->capacity = 2 * ps->capacity;//申請空間成功
}void addlinkman(paddlist ps)
static void menu(int num)//這裡的引數是為了區分不同函式的menu
void delelinkman(paddlist ps)
dops->size--;//刪除成功
printf("已刪除!\n");
return;}}
printf("對不起,該聯絡人不存在!\n");
}break;
case
2:
ps->size--;//刪除成功
printf("已刪除!\n");
return;}}
printf("對不起,該聯絡人不存在!\n");
}break;
case
3:
ps->size--;//刪除成功
printf("已刪除!\n");
return;}}
printf("對不起,該聯絡人不存在!\n");
}break;
case
4:
ps->size--;//刪除成功
printf("已刪除!\n");
return;}}
printf("對不起,該聯絡人不存在!\n");
}break;
case
5:
ps->size--;//刪除成功
printf("已刪除!\n");
return;}}
printf("對不起,該聯絡人不存在!\n");
}break;
default :
printf("輸入錯誤,請重新輸入\n");
break;
}} while (input);
}void findlinkman(paddlist ps)do}
printf
("對不起,該聯絡人不存在!\n");
}break;
case 2:
}printf
("對不起,該聯絡人不存在!\n");
}break;
case 3:
}printf
("對不起,該聯絡人不存在!\n");
}break;
case 4:
}printf
("對不起,該聯絡人不存在!\n");
}break;
case 5:
}printf
("對不起,該聯絡人不存在!\n");
}break;
default:
printf
("輸入錯誤,請重新輸入\n");
break;
}} while
(input);
}void
alterlinkman
(paddlist ps)
}printf
("對不起,該聯絡人不存在!\n");
}break;
case 2:
}printf
("對不起,該聯絡人不存在!\n");
}break;
case 3:
}printf
("對不起,該聯絡人不存在!\n");
}break;
case 4:
}printf
("對不起,該聯絡人不存在!\n");
}break;
case 5:
}printf
("對不起,該聯絡人不存在!\n");
}break;
default:
printf
("輸入錯誤,請重新輸入\n");
break;
}} while
(input);
}void
showlinkman
(paddlist ps)
for(; i < ps->size; i++)
}void
sortname
(paddlist ps)
for(i = 0; i < ps->size-1; i++)}}
}
#include
#include
#include "address_list.h"
#pragma warning(disable:4996)
static
void menu()
int main()
} while (input);
system("pause");
return
0;}
動態通訊錄
動態版通訊錄,是乙個動態增容的過程 自定義標頭檔案部分 ifndef contact h define contact h define max name 20 define max 5 define max tele 12 define max addr 100 define max 1000 d...
動態通訊錄
上次實現了靜態版本的通訊錄,雖然能夠初步滿足我們的需求,但總歸還是不夠完美,那麼下面我將次通訊錄的靜態版本改為動態版本。這就需要用到動態分配 所謂動態分配,就是需要的時候再分配,這是相對於靜態分配而言的,靜態分配就是一次分配完畢,不管你用多少。而動態分配則是按需分配。下面我們來具體實現一下唄 con...
動態通訊錄
動態通訊錄 contact.h ifndef contact h define contact h include include include include pragma warning disable 4996 enum option define max name 20 define ma...