#include #include #include #include #include #define Bytes sizeof(struct linkman) //宏定义 #define FORMAT "\t%-10s%-10s%-15s%-15s%-20s\n\n" //宏定义输出格式 #define DATA peo[i].name,peo[i].birthplace,peo[i].tel_1,peo[i].tel_2,peo[i].email //宏定义结构体输出列表 struct linkman { char name[10]; char birthplace[10]; char tel_1[15]; char tel_2[15]; char email[20]; }; struct linkman peo[100]; void addman(); void queryman(); void delman(); void update(); void outputman(); void menu(); void menu()//菜单模块 { system("cls"); printf("\n\t\t**********通讯录管理系统*********\n"); printf("\t\t┌-------------------------------┐\n"); printf("\t\t│ 1.添加联系人 │\n"); printf("\t\t│ 2.查询联系人 │\n"); printf("\t\t│ 3.删除联系人 │\n"); printf("\t\t│ 4.修改联系人信息 │\n"); printf("\t\t│ 5.输出联系人列表 │\n"); printf("\t\t│ 0.退出 │\n"); printf("\t\t└-------------------------------┘\n"); printf("\t\t请您选择功能(0-5):"); } void tou() //列表头 { system("cls"); printf("\n"); printf("*************************************联系人列表***************************************\n\n"); printf("\t姓名\t 籍贯\t 电话号码1\t 电话号码2\t 电子邮箱\n\n"); } void wei() //列表尾 { printf("\n**************************************************************************************\n\n"); } int main () { system("mode con: cols=86 lines=30");//设置窗口大小 int n; menu(); scanf("%d",&n); while(n) { switch(n) { case 1: addman(); getch(); break; case 2: queryman(); getch(); break; case 3: delman(); getch(); break; case 4: update(); getch(); break; case 5: outputman(); getch(); break; default:break; } menu(); scanf("%d",&n); } } void addman() { FILE *p1; int i,n,count=0; // count为联系人个数 if ((p1=fopen("D:\\我的项目\\linkman.txt","a+"))==NULL) //打开linkman文件 { printf("不能打开此文件"); exit(0); } while(!feof(p1)) //feof为检测文件结束符 { if(fread(&peo[count],Bytes,1,p1)==1) count++; } fclose(p1); //关闭文件 if(count==0) printf("\n\t联系人列表为空!\n\n"); else { system("cls"); //清屏 outputman(); } if ((p1=fopen("D:\\我的项目\\linkman.txt","wb"))==NULL)//以二进制方式打开linkman文件 { printf("\t不能打开联系人列表\n"); return; } for(i=0;i