#include <stdio.h> #include <string.h> //进行宏定义 #define N 100 //定义通讯录的容量 #define NAMELEN 22 #define NUMLEN 12 //************定义部分********* //定义联系人的结构体 typedef struct{ //联系人 char name[NAMELEN]; //电话号码 char telNum[NUMLEN]; }Person; //存储所有的联系人,联系人的数组 Person contacts[N]; //能够存储100个联系人 //定义联系人的个数 int totalContactCount=0; //接收用户输入的编号 int fno; //定义数据文件保存的位置 char *filePath = "telbook.data"; //************* 函数的声明部分 ********* int validateInput(int num,int min,int max); void init(); void doAdd(); void doDelete(); void doUpdate(); void doList(); void doSearchByName(); void writeFile(); int main(int argc, const char * argv[]) { /** 1、引入头文件 2、进行必要的宏定义 3、定义文件名称变量、联系人数组、联系人结构体 4、定义函数,并进行函数声明 5、编写循环控制程序 6、显示操作界面 7、根据编号执行不同的函数 */ init(); printf("通讯录初始化完成!\n"); while (1) { printf("\n"); //软件的界面显示出来 printf("**************************\n"); printf("****** 欢迎使用通讯录 ******\n"); printf("****** 1、添加联系人 ******\n"); printf("****** 2、删除联系人 ******\n"); printf("****** 3、修改联系人 ******\n"); printf("****** 4、查看所有联系人 ****\n"); printf("****** 5、搜索联系人 ******\n"); printf("****** 6、退出系统 ******\n"); printf("**************************\n\n"); //提示用户选择一个序号 printf("请选择1-6之间的功能编号:\n"); scanf("%d",&fno); //判断编号是否合法 validateInput(fno,1,6); switch (fno) { case 1: //执行添加 doAdd(); break; case 2: //执行删除 doDelete(); break; case 3: //执行修改 doUpdate(); break; case 4: //执行显示所有联系人 doList(); break; case 5: //执行查找 doSearchByName(); break; case 6: //执行退出系统 printf("系统正在退出...\n"); printf("系统已经退出!\n"); return 0; break; default: break; } } return 0; } |