C語言 通訊錄 動態開闢記憶體版和檔案版本

2021-08-01 18:30:33 字數 3697 閱讀 8236

動態開闢記憶體:

tellist.h

#ifndef __tellist_h__

#define __tellist_h__

#define name 10

#define *** 5

#define tel 12

#define addr 20

#define max 50

typedef struct people

peo,*peo;

typedef struct con

peocon,*con;

void start(con peo);

void add_peo(con peo);

void del_peo(con peo);

void sel_peo(con peo);

void mod_peo(con peo);

void show_peo(con peo);

void empty_peo(con peo);

void sort_peo(con peo);

#endif

fun.c

#define _crt_secure_no_warnings 1

#include#include#include#include"tellist.h"

//初始化

void start(con peo)

//動態開闢

void mem_play(con peo)

}//新增聯絡人資訊

void add_peo(con peo)

else }

//刪除

int find(char *c, con peo)

return -1;

}void del_peo(con peo)

peo->count--;

printf("刪除成功!\n");

}//查詢

void sel_peo(con peo)

//修改

void mod_peo(con peo)

//顯示所有聯絡人資訊

void show_peo(con peo)

}//清空

void empty_peo(con peo)

//排序

int swap_string(const void *elem1, const void *elem2)

//void sort_peo(con peo)

#define _crt_secure_no_warnings 1

#include#include#include#include"tellist.h"

//通訊錄

enum op

;//動態開闢

void menu()

int main()

} system("pause");

return 0;

}

檔案版:

#ifndef __tellist_h__

#define __tellist_h__

#define _crt_secure_no_warnings 1

#include#include#include#define name 10

#define *** 5

#define tel 12

#define addr 20

#define max 50

typedef struct people

peo,*peo;

typedef struct con

peocon,*con;

void start(con peo);

void add_peo(con peo);

void del_peo(con peo);

void sel_peo(con peo);

void mod_peo(con peo);

void show_peo(con peo);

void empty_peo(con peo);

void sort_peo(con peo);

//檔案寫入

void write_file(con position);

//檔案讀取

void read_file(con peo);

//修改檔案

void mod_file(con position, char* name, int flag);

#endif

fun.c

#include"tellist.h"

extern char file_name[30] = "\0";

void write_file(con peo)

else

fprintf(list, "%-10s", peo->num[peo->count].name);

fprintf(list, "%-6s", peo->num[peo->count].***);

fprintf(list, "%2d", peo->num[peo->count].age);

fprintf(list, "%-8s", peo->num[peo->count].tel);

fprintf(list, "%-10s", peo->num[peo->count].addr);

fprintf(list, "%s", "\n");

} else

fclose(list);

}//讀取檔案

void read_file(con peo)

else }

}//修改

void mod_file(con peo, char *name, int i)

else

break;

} fclose(list);

list = fopen(file_name, "r+");

fseek(list, num1, seek_set);

if (i == 0)

else

fclose(list);

}//初始化

void start(con peo)

//動態開闢

void mem_play(con peo)

}//新增聯絡人資訊

void add_peo(con peo)

else }

//刪除

int find(char *c, con peo)

return -1;

}void del_peo(con peo)

peo->count--;

printf("刪除成功!\n");

}//查詢

void sel_peo(con peo)

//修改

void mod_peo(con peo)

//顯示所有聯絡人資訊

void show_peo(con peo)*/}

//清空

void empty_peo(con peo)

main.c

#include"tellist.h"

char file_name[30];

//通訊錄

enum op

;//動態開闢

void menu()

int main()

} system("pause");

return 0;

}

通訊錄動態版(動態記憶體開闢)

實現乙個通訊錄 通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括 姓名 性別 年齡 住址 提供方法 1.新增聯絡人資訊 2.刪除指定聯絡人資訊 3.查詢指定聯絡人資訊 4.修改指定聯絡人資訊 5.顯示所有聯絡人資訊 6.清空所有聯絡人 7.以名字排序所有聯絡人 define crt secur...

動態通訊錄(動態記憶體開闢)(C語言)

鑑於上次的通訊錄我介紹的比較詳細,我這次的介紹簡單一點。ifndef message h define message h include include include include include define max 1000 最大1000位聯絡人 define name max 20 名字...

通訊錄動態開闢版本

contact.h include include include ifndef cntact h define cntact h define name max 20 define max 4 define tel max 12 define addr max 50 define default ...