目录
该程序可对100个学生信息实现增加,删除,查找,修改,展示,排序这六个功能
信息管理系统
- void menu()
- {
- printf("**************************************\n");
- printf("** 1. add 2. del **\n");
- printf("** 3. search 4.modify **\n");
- printf("** 5. show 6.sort **\n");
- printf("** 0. exit **\n");
- printf("**************************************\n");
- }
struct People { char name[20]; int age; char sex[5]; char tele[12]; char addr[20]; }; struct Con { struct People data[100]; int count; };先建立俩个结构体,一个用来存放每个用户的信息,另一个存放所有人的信息,对100个学生信息全部初始化为0
void Itni(struct Con* pc) { pc->count = 0; memset(pc->data, 0, sizeof(struct People)); }
void Add(struct Con* pc) { if (pc->count == 100) { printf("通讯录已满,无法添加\n"); return; } printf("请输入姓名>:"); scanf("%s", pc->data[pc->count].name); printf("请输入年龄>:"); scanf("%d", &(pc->data[pc->count].age)); printf("请输入性别>:"); scanf("%s", pc->data[pc->count].sex); printf("请输入电话>:"); scanf("%s", pc->data[pc->count].tele); printf("请输入地址>:"); scanf("%s", pc->data[pc->count].addr); pc->count++; printf("增加成功\n"); }先判断通讯录是否满了,若没满则增加
int Fine_by_name(char *name, struct Con* pc) { int i = 0; for (i = 0; i < pc->count; i++) { if (strcmp(name, pc->data[i].name) == 0) return i; } return -1; } void Del(struct Con* pc) { if (pc->count == 0) { printf("通讯录为空,无法删除\n"); return; } char arr[20]; printf("请输入要删除人的姓名>:"); scanf("%s", arr); int k=Fine_by_name(arr,pc); if (k != -1) { int i = k; for (i = k; i < pc->count - 1; i++) { pc->data[i] = pc->data[i + 1]; } pc->count--; printf("删除成功\n"); } else printf("不存在该用户\n"); }删除前要先判断通讯录是否为空,若不为空,则先找到该学生信息,然后把后面的数据向前挪一个就行
int Fine_by_name(char *name, struct Con* pc) { int i = 0; for (i = 0; i < pc->count; i++) { if (strcmp(name, pc->data[i].name) == 0) return i; } return -1; } void Search(struct Con* pc) { if (pc->count == 0) { printf("通讯录为空,无法查找\n"); return; } char arr[20]; printf("请输入要查找人的姓名>:"); scanf("%s", arr); int k = Fine_by_name(arr, pc); if (k != -1) { printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址"); printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[k].name, pc->data[k].age, pc->data[k].sex, pc->data[k].tele, pc->data[k].addr); } else printf("不存在该用户\n"); }查找前也要判断通讯录是否为空,若不为空则通过姓名来进行查找,查找到该学生信息之后进行打印
int Fine_by_name(char *name, struct Con* pc) { int i = 0; for (i = 0; i < pc->count; i++) { if (strcmp(name, pc->data[i].name) == 0) return i; } return -1; } void Modify(struct Con* pc) { if (pc->count == 0) { printf("通讯录为空,无法修改\n"); return; } char arr[20]; printf("请输入要修改人的姓名>:"); scanf("%s", arr); int k = Fine_by_name(arr, pc); if (k != -1) { printf("请输入姓名>:"); scanf("%s", pc->data[k].name); printf("请输入年龄>:"); scanf("%d", &(pc->data[k].age)); printf("请输入性别>:"); scanf("%s", pc->data[k].sex); printf("请输入电话>:"); scanf("%s", pc->data[k].tele); printf("请输入地址>:"); scanf("%s", pc->data[k].addr); } else printf("不存在该用户\n"); }先判断是否为空,若为空则退出,不为空则通过名字找到该学生,找到之后进行修改
void Show(struct Con* pc) { int i = 0; printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址"); for (i = 0; i < pc->count; i++) { printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[i].name, pc->data[i].age, pc->data[i].sex, pc->data[i].tele, pc->data[i].addr); } }直接对学生信息进行打印
char cmp(void* e1, void* e2) { return *((char*)e1) - *((char*)e2); } void Sort(struct Con* pc) { qsort(pc->data, pc->count, sizeof(struct People), cmp); printf("排序成功\n"); }用快排,对学生姓名进行排序
- #include"contact.h"
- void menu()
- {
- printf("**************************************\n");
- printf("** 1. add 2. del **\n");
- printf("** 3. search 4.modify **\n");
- printf("** 5. show 6.sort **\n");
- printf("** 0. exit **\n");
- printf("**************************************\n");
- }
- int main()
- {
-
- int input;
- struct Con infor;
- Itni(&infor);
- do
- {
- menu();
- printf("请选择>:");
- scanf("%d", &input);
- switch (input)
- {
- case 1:
- Add(&infor);
- break;
- case 2:
- Del(&infor);
- break;
- case 3:
- Search(&infor);
- break;
- case 4:
- Modify(&infor);
- break;
- case 5:
- Show(&infor);
- break;
- case 6:
- Sort(&infor);
- break;
- case 0:
- printf("退出\n");
- break;
- }
- } while (input);
- return 0;
- }
- #include"contact.h"
- void Itni(struct Con* pc)
- {
- pc->count = 0;
- memset(pc->data, 0, sizeof(struct People));
- }
- void Add(struct Con* pc)
- {
- if (pc->count == 100)
- {
- printf("通讯录已满,无法添加\n");
- return;
- }
- printf("请输入姓名>:");
- scanf("%s", pc->data[pc->count].name);
- printf("请输入年龄>:");
- scanf("%d", &(pc->data[pc->count].age));
- printf("请输入性别>:");
- scanf("%s", pc->data[pc->count].sex);
- printf("请输入电话>:");
- scanf("%s", pc->data[pc->count].tele);
- printf("请输入地址>:");
- scanf("%s", pc->data[pc->count].addr);
- pc->count++;
- printf("增加成功\n");
- }
- void Show(struct Con* pc)
- {
- int i = 0;
- printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址");
- for (i = 0; i < pc->count; i++)
- {
- printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[i].name, pc->data[i].age, pc->data[i].sex, pc->data[i].tele, pc->data[i].addr);
- }
- }
- int Fine_by_name(char *name, struct Con* pc)
- {
- int i = 0;
- for (i = 0; i < pc->count; i++)
- {
- if (strcmp(name, pc->data[i].name) == 0)
- return i;
- }
- return -1;
- }
- void Del(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法删除\n");
- return;
- }
- char arr[20];
- printf("请输入要删除人的姓名>:");
- scanf("%s", arr);
- int k=Fine_by_name(arr,pc);
- if (k != -1)
- {
- int i = k;
- for (i = k; i < pc->count - 1; i++)
- {
- pc->data[i] = pc->data[i + 1];
- }
- pc->count--;
- printf("删除成功\n");
- }
- else
- printf("不存在该用户\n");
- }
- void Search(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法查找\n");
- return;
- }
- char arr[20];
- printf("请输入要查找人的姓名>:");
- scanf("%s", arr);
- int k = Fine_by_name(arr, pc);
- if (k != -1)
- {
- printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址");
- printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[k].name, pc->data[k].age, pc->data[k].sex, pc->data[k].tele, pc->data[k].addr);
- }
- else
- printf("不存在该用户\n");
- }
- void Modify(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法修改\n");
- return;
- }
- char arr[20];
- printf("请输入要修改人的姓名>:");
- scanf("%s", arr);
- int k = Fine_by_name(arr, pc);
- if (k != -1)
- {
- printf("请输入姓名>:");
- scanf("%s", pc->data[k].name);
- printf("请输入年龄>:");
- scanf("%d", &(pc->data[k].age));
- printf("请输入性别>:");
- scanf("%s", pc->data[k].sex);
- printf("请输入电话>:");
- scanf("%s", pc->data[k].tele);
- printf("请输入地址>:");
- scanf("%s", pc->data[k].addr);
- }
- else
- printf("不存在该用户\n");
- }
- char cmp(void* e1, void* e2)
- {
- return *((char*)e1) - *((char*)e2);
- }
- void Sort(struct Con* pc)
- {
- qsort(pc->data, pc->count, sizeof(struct People), cmp);
- printf("排序成功\n");
- }
- #include
- #include
- #include
- struct People
- {
- char name[20];
- int age;
- char sex[5];
- char tele[12];
- char addr[20];
- };
- struct Con
- {
- struct People data[100];
- int count;
- };
- void Itni(struct Con* pc);
- void Add(struct Con* pc);
- void Show(struct Con* pc);
- void Del(struct Con* pc);
- void Search(struct Con* pc);
- void Modify(struct Con* pc);
- void Sort(struct Con* pc);
一开始开辟3个人的容量,当容量满时,若还要增加信息,则每次增加2位容量
- void menu()
- {
- printf("**************************************\n");
- printf("** 1. add 2. del **\n");
- printf("** 3. search 4.modify **\n");
- printf("** 5. show 6.sort **\n");
- printf("** 0. exit **\n");
- printf("**************************************\n");
- }
struct People { char name[20]; int age; char sex[5]; char tele[12]; char addr[20]; }; struct Con { struct People *data; int count; int capacity; };静态实现时,初始化之前我们给第二个结构体里面,创建了100个数组,用来存个人信息,但动态开辟就不需要这么做了,我们在初始化的时候在开辟空间,所以Con结构体内部需要进行修改,设置一个指针指向个人信息
void Itni(struct Con* pc) { pc->count = 0; pc->data=(struct People*)malloc(sizeof(struct People)*3); if (pc->data == NULL) { printf("%s", perror); } pc->capacity = 3; }先用动态开辟3个人信息的空间,然后容量设置为3,因为此时只是开辟了空间,并没有存放个人信息,所以count是0,conut是用来统计存放人数的
void Check(struct Con* pc) { if (pc->capacity == pc->count) { struct Con* str = (struct Con*)realloc(pc->data, sizeof(struct People) * (pc->capacity + 2)); if (str == NULL) { printf("%s", strerror(errno)); } else { pc->data = str; } pc->capacity += 3; printf("增容成功\n"); } } void Add(struct Con* pc) { Check(pc); printf("请输入姓名>:"); scanf("%s", pc->data[pc->count].name); printf("请输入年龄>:"); scanf("%d", &(pc->data[pc->count].age)); printf("请输入性别>:"); scanf("%s", pc->data[pc->count].sex); printf("请输入电话>:"); scanf("%s", pc->data[pc->count].tele); printf("请输入地址>:"); scanf("%s", pc->data[pc->count].addr); pc->count++; printf("增加成功\n"); }增加之前,我们应先判断count是否小于capacity,也就是判断当前容量满没满,若容量满了,我们开辟2个人的空间。然后输入信息
- void Del(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法删除\n");
- return;
- }
- char arr[20];
- printf("请输入要删除人的姓名>:");
- scanf("%s", arr);
- int k=Fine_by_name(arr,pc);
- if (k != -1)
- {
- int i = k;
- for (i = k; i < pc->count - 1; i++)
- {
- pc->data[i] = pc->data[i + 1];
- }
- pc->count--;
- printf("删除成功\n");
- }
- else
- printf("不存在该用户\n");
- }
- void Search(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法查找\n");
- return;
- }
- char arr[20];
- printf("请输入要查找人的姓名>:");
- scanf("%s", arr);
- int k = Fine_by_name(arr, pc);
- if (k != -1)
- {
- printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址");
- printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[k].name, pc->data[k].age, pc->data[k].sex, pc->data[k].tele, pc->data[k].addr);
- }
- else
- printf("不存在该用户\n");
- }
- void Modify(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法修改\n");
- return;
- }
- char arr[20];
- printf("请输入要修改人的姓名>:");
- scanf("%s", arr);
- int k = Fine_by_name(arr, pc);
- if (k != -1)
- {
- printf("请输入姓名>:");
- scanf("%s", pc->data[k].name);
- printf("请输入年龄>:");
- scanf("%d", &(pc->data[k].age));
- printf("请输入性别>:");
- scanf("%s", pc->data[k].sex);
- printf("请输入电话>:");
- scanf("%s", pc->data[k].tele);
- printf("请输入地址>:");
- scanf("%s", pc->data[k].addr);
- }
- else
- printf("不存在该用户\n");
- }
- void Show(struct Con* pc)
- {
- int i = 0;
- printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址");
- for (i = 0; i < pc->count; i++)
- {
- printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[i].name, pc->data[i].age, pc->data[i].sex, pc->data[i].tele, pc->data[i].addr);
- }
- }
- char cmp(void* e1, void* e2)
- {
- return *((char*)e1) - *((char*)e2);
- }
- void Sort(struct Con* pc)
- {
- qsort(pc->data, pc->count, sizeof(struct People), cmp);
- printf("排序成功\n");
- }
- void Destory(struct Con* pc)
- {
- free(pc->data);
- pc->data= NULL;
- }
实现数据的保存和程序再次运行的时候对上一次数据的读取
- void Save(struct Con* pc)
- {
- FILE* Pfwrite = fopen("contact.txt", "wb");
- if (Pfwrite == NULL)
- {
- return 1;
- }
- int i = 0;
- for (i = 0; i < pc->count; i++)
- {
- fwrite(pc->data+i, sizeof(struct People), 1, Pfwrite);
- }
- fclose(Pfwrite);
- printf("保存成功\n");
- }
- void Loadcontact(struct Con* pc)
- {
- FILE* Pfread =fopen ("contact.txt", "rb");
- if (Pfread == NULL)
- {
- return 1;
- }
- struct People tmp = { 0 };
- while (fread(&tmp, sizeof(struct People),1, Pfread) == 1)
- {
- Check(pc);
- pc->data[pc->count] = tmp;
- pc->count++;
- }
- fclose(Pfread);
- Pfread = NULL;
- }
- void Itni(struct Con* pc)
- {
- pc->count = 0;
- pc->data=(struct People*)malloc(sizeof(struct People)*3);
- if (pc->data == NULL)
- {
- printf("%s", strerror(errno));
- }
- pc->capacity = 3;
- Loadcontact(pc);
- }
这里初始化的时候要打开文件,读取上一次的数据
- void Add(struct Con* pc)
- {
- Check(pc);
- printf("请输入姓名>:");
- scanf("%s", pc->data[pc->count].name);
- printf("请输入年龄>:");
- scanf("%d", &(pc->data[pc->count].age));
- printf("请输入性别>:");
- scanf("%s", pc->data[pc->count].sex);
- printf("请输入电话>:");
- scanf("%s", pc->data[pc->count].tele);
- printf("请输入地址>:");
- scanf("%s", pc->data[pc->count].addr);
- pc->count++;
- printf("增加成功\n");
- }
- void Del(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法删除\n");
- return;
- }
- char arr[20];
- printf("请输入要删除人的姓名>:");
- scanf("%s", arr);
- int k=Fine_by_name(arr,pc);
- if (k != -1)
- {
- int i = k;
- for (i = k; i < pc->count - 1; i++)
- {
- pc->data[i] = pc->data[i + 1];
- }
- pc->count--;
- printf("删除成功\n");
- }
- else
- printf("不存在该用户\n");
- }
- void Search(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法查找\n");
- return;
- }
- char arr[20];
- printf("请输入要查找人的姓名>:");
- scanf("%s", arr);
- int k = Fine_by_name(arr, pc);
- if (k != -1)
- {
- printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址");
- printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[k].name, pc->data[k].age, pc->data[k].sex, pc->data[k].tele, pc->data[k].addr);
- }
- else
- printf("不存在该用户\n");
- }
- void Modify(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法修改\n");
- return;
- }
- char arr[20];
- printf("请输入要修改人的姓名>:");
- scanf("%s", arr);
- int k = Fine_by_name(arr, pc);
- if (k != -1)
- {
- printf("请输入姓名>:");
- scanf("%s", pc->data[k].name);
- printf("请输入年龄>:");
- scanf("%d", &(pc->data[k].age));
- printf("请输入性别>:");
- scanf("%s", pc->data[k].sex);
- printf("请输入电话>:");
- scanf("%s", pc->data[k].tele);
- printf("请输入地址>:");
- scanf("%s", pc->data[k].addr);
- }
- else
- printf("不存在该用户\n");
- }
- void Show(struct Con* pc)
- {
- int i = 0;
- printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址");
- for (i = 0; i < pc->count; i++)
- {
- printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[i].name, pc->data[i].age, pc->data[i].sex, pc->data[i].tele, pc->data[i].addr);
- }
- }
- char cmp(void* e1, void* e2)
- {
- return *((char*)e1) - *((char*)e2);
- }
- void Sort(struct Con* pc)
- {
- qsort(pc->data, pc->count, sizeof(struct People), cmp);
- printf("排序成功\n");
- }
- void Destory(struct Con* pc)
- {
- free(pc->data);
- pc->data= NULL;
- }
- #include"contact.h"
- void menu()
- {
- printf("**************************************\n");
- printf("** 1. add 2. del **\n");
- printf("** 3. search 4.modify **\n");
- printf("** 5. show 6.sort **\n");
- printf("** 0. exit **\n");
- printf("**************************************\n");
- }
- int main()
- {
-
- int input;
- struct Con infor;
- Itni(&infor);
- do
- {
- menu();
- printf("请选择>:");
- scanf("%d", &input);
- switch (input)
- {
- case 1:
- Add(&infor);
- break;
- case 2:
- Del(&infor);
- break;
- case 3:
- Search(&infor);
- break;
- case 4:
- Modify(&infor);
- break;
- case 5:
- Show(&infor);
- break;
- case 6:
- Sort(&infor);
- break;
- case 0:
- Save(&infor);
- Destory(&infor);
- printf("退出\n");
- break;
- }
- } while (input);
- return 0;
- }
- #include"contact.h"
- void Check(struct Con* pc)
- {
- if (pc->capacity == pc->count)
- {
- struct Con* str = (struct Con*)realloc(pc->data, sizeof(struct People) * (pc->capacity + 2));
- if (str == NULL)
- {
- printf("%s", strerror(errno));
- }
- else
- {
- pc->data = str;
- pc->capacity = pc->capacity +2;
- printf("增容成功\n");
- }
- }
- }
- void Loadcontact(struct Con* pc)
- {
- FILE* Pfread =fopen ("contact.txt", "rb");
- if (Pfread == NULL)
- {
- return 1;
- }
- struct People tmp = { 0 };
- while (fread(&tmp, sizeof(struct People),1, Pfread) == 1)
- {
- Check(pc);
- pc->data[pc->count] = tmp;
- pc->count++;
- }
- fclose(Pfread);
- Pfread = NULL;
- }
- void Itni(struct Con* pc)
- {
- pc->count = 0;
- pc->data=(struct People*)malloc(sizeof(struct People)*3);
- if (pc->data == NULL)
- {
- printf("%s", strerror(errno));
- }
- pc->capacity = 3;
- Loadcontact(pc);
- }
-
- void Add(struct Con* pc)
- {
- Check(pc);
- printf("请输入姓名>:");
- scanf("%s", pc->data[pc->count].name);
- printf("请输入年龄>:");
- scanf("%d", &(pc->data[pc->count].age));
- printf("请输入性别>:");
- scanf("%s", pc->data[pc->count].sex);
- printf("请输入电话>:");
- scanf("%s", pc->data[pc->count].tele);
- printf("请输入地址>:");
- scanf("%s", pc->data[pc->count].addr);
- pc->count++;
- printf("增加成功\n");
- }
- void Destory(struct Con* pc)
- {
- free(pc->data);
- pc->data= NULL;
- }
- void Show(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录位空\n");
- return;
- }
- else
- {
- int i = 0;
- printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址");
- for (i = 0; i < pc->count; i++)
- {
- printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[i].name, pc->data[i].age, pc->data[i].sex, pc->data[i].tele, pc->data[i].addr);
- }
- }
- }
- int Fine_by_name(char *name, struct Con* pc)
- {
- int i = 0;
- for (i = 0; i < pc->count; i++)
- {
- if (strcmp(name, pc->data[i].name) == 0)
- return i;
- }
- return -1;
- }
- void Del(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法删除\n");
- return;
- }
- char arr[20];
- printf("请输入要删除人的姓名>:");
- scanf("%s", arr);
- int k=Fine_by_name(arr,pc);
- if (k != -1)
- {
- int i = k;
- for (i = k; i < pc->count - 1; i++)
- {
- pc->data[i] = pc->data[i + 1];
- }
- pc->count--;
- printf("删除成功\n");
- }
- else
- printf("不存在该用户\n");
- }
- void Search(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法查找\n");
- return;
- }
- char arr[20];
- printf("请输入要查找人的姓名>:");
- scanf("%s", arr);
- int k = Fine_by_name(arr, pc);
- if (k != -1)
- {
- printf("%20s\t%5s\t%5s\t%12s\t%30s\n", "名字", "年龄", "性别", "电话", "住址");
- printf("%20s\t%3d\t%5s\t%12s\t%30s\n", pc->data[k].name, pc->data[k].age, pc->data[k].sex, pc->data[k].tele, pc->data[k].addr);
- }
- else
- printf("不存在该用户\n");
- }
- void Modify(struct Con* pc)
- {
- if (pc->count == 0)
- {
- printf("通讯录为空,无法修改\n");
- return;
- }
- char arr[20];
- printf("请输入要修改人的姓名>:");
- scanf("%s", arr);
- int k = Fine_by_name(arr, pc);
- if (k != -1)
- {
- printf("请输入姓名>:");
- scanf("%s", pc->data[k].name);
- printf("请输入年龄>:");
- scanf("%d", &(pc->data[k].age));
- printf("请输入性别>:");
- scanf("%s", pc->data[k].sex);
- printf("请输入电话>:");
- scanf("%s", pc->data[k].tele);
- printf("请输入地址>:");
- scanf("%s", pc->data[k].addr);
- }
- else
- printf("不存在该用户\n");
- }
- char cmp(void* e1, void* e2)
- {
- return *((char*)e1) - *((char*)e2);
- }
- void Sort(struct Con* pc)
- {
- qsort(pc->data, pc->count, sizeof(struct People), cmp);
- printf("排序成功\n");
- }
- void Save(struct Con* pc)
- {
- FILE* Pfwrite = fopen("contact.txt", "wb");
- if (Pfwrite == NULL)
- {
- return 1;
- }
- int i = 0;
- for (i = 0; i < pc->count; i++)
- {
- fwrite(pc->data+i, sizeof(struct People), 1, Pfwrite);
- }
- fclose(Pfwrite);
- printf("保存成功\n");
- }
- #include
- #include
- #include
- #include
- struct People
- {
- char name[20];
- int age;
- char sex[5];
- char tele[12];
- char addr[20];
- };
- struct Con
- {
- struct People *data;
- int count;
- int capacity;
- };
- void Itni(struct Con* pc);
- void Add(struct Con* pc);
- void Show(struct Con* pc);
- void Del(struct Con* pc);
- void Search(struct Con* pc);
- void Modify(struct Con* pc);
- void Sort(struct Con* pc);
- void Destory(struct Con* pc);
- void Save(struct Con* pc);