国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C語言實現通訊錄系統

2020-05-23 13:32:26
字體:
來源:轉載
供稿:網友

C語言通訊錄系統實現,供大家參考,具體內容如下

需求分析:

利用文件讀,寫的方法

實現增加通訊錄聯系人信息

實現刪除通訊錄聯系人信息

實現查找通訊錄聯系人信息

實現修改通訊錄聯系人信息

實現查看現有通訊錄聯系人信息

代碼實現:

// main.c // C語言通訊錄實現 // // Created by Brisinga on 15/10/14. // Copyright © 2015年 yan. All rights reserved. //  #include <stdio.h> #include<string.h> #define LEN 10 #define NAMELEN 22 #define TELLEN 12  //*************結構體變量定義**************** //定義聯系人的個數 int contactCount = 0; //定義結構體 typedef struct{    //定義聯系人姓名   char name[NAMELEN];   //定義聯系人電話   char tel[TELLEN];  }Person;  //初始化聯系人數組 Person contact[LEN]; //定義文件名 charchar *path = "a.data";  //接收用戶輸入的編號 int no; //**************函數聲明********************  //初始化聲明 void init(); //校驗聲明 int isValid(int n,int min,int max); //添加聯系人 void addContact(); //刪除聯系人 void deleteContact(); //修改聯系人 void updateContact(); //查看所有聯系人 void doList(); //搜索聯系人 void searchContact(); //退出系統 void quit(); //聯系人寫入文件 void writeFile(); //***************************************   int main(int argc, const charchar * argv[]) {        //通訊錄初始化   init();   printf("通訊錄初始化成功!/n");            while (1) {          //定義界面   printf("**********************************/n");   printf("***********歡迎使用通訊錄***********/n");   printf("***********1.添加聯系人*************/n");   printf("***********2.刪除聯系人*************/n");   printf("***********3.修改聯系人*************/n");   printf("***********4.查看所有聯系人**********/n");   printf("***********5.搜索聯系人*************/n");   printf("***********6.退出系統***************/n");   printf("**********************************/n");               //提示用戶輸入編號     printf("請輸入要進行操作的編號:/n");     scanf("%d",&no);     //判斷輸入是否合法     isValid(no, 1, 6);     //判斷用戶的操作     switch (no) {       case 1:         //添加聯系人         addContact();         break;       case 2:         //刪除聯系人         deleteContact();         break;       case 3:         //更新聯系人         updateContact();         break;       case 4:         //查看聯系人         doList();         break;       case 5:         //搜索聯系人         searchContact();         break;       case 6:         //退出         quit();         return 0;                default:         break;     }        }   return 0; }  //通訊錄初始化 void init(){    //定義文件指針   FILEFILE *fp = fopen(path, "r");   //判斷通訊錄是否存在   if (fp!=NULL) {   //如果存在   //1.讀取聯系人個數     fread(&contactCount, sizeof(contactCount), 1, fp);   //2.讀取每一個聯系人nts     for (int i=0; i<contactCount; i++) {       fread(&contact[i], sizeof(Person), 1, fp);     }        }else{      //如果不存在   //創建通訊錄     fp = fopen(path, "wb");   //寫入當前聯系人的個數     fwrite(&contactCount, sizeof(contactCount), 1, fp);    }   fclose(fp);  }  //校驗輸入是否合法 int isValid(int n,int min,int max){      //如果輸入的編號大于min小于max,則返回0   if (n>=min&&n<=max) {     return 0;   }      //否則返回1   printf("輸入非法!/n");   return 1;  }  //添加聯系人 void addContact(){      //提示用戶輸入要添加聯系人的姓名   printf("請輸入要添加的聯系人姓名:*注意姓名之間不能有空格/n");   //接收聯系人姓名   scanf("%s",contact[contactCount].name);   //提示用戶輸入要添加聯系任的電話   printf("請輸入要添加聯系人的電話: *注意電話號碼之間不能有空格/n");   //接收聯系人電話   scanf("%s",contact[contactCount].tel);   //詢問是否確定添加   printf("確定要添加么?1.確定 0.取消/n");   scanf("%d",&no);   if (no) {     contactCount++;     //寫入文件     writeFile();     printf("添加成功!/n");   }   }  //刪除聯系人 void deleteContact(){      //顯示聯系人   doList();   int flag;   //提示用戶輸入要刪除聯系人的編號   printf("請輸入要刪除聯系人的編號:/n");   //接收用戶輸入的編號   scanf("%d",&no);   //判斷編號是否合法   if(!isValid(no, 1, contactCount)){   //編號合法     printf("確定要刪除么?刪除后將無法恢復!1.確定 0.取消/n");     scanf("%d",&flag);     if (flag) {       //如果要刪除的聯系人在末尾     if (no==contactCount) {       //則contactCount-1       contactCount--;     }else{      //如果要刪除的聯系人不在末尾   //移動數組元素       for (int i=no-1; i<contactCount-1; i++) {         contact[i]=contact[i+1];       }            }   //contactCount--       contactCount--;   //寫文件     writeFile();     }      }else   //編號不合法,則退出     printf("編號不合法!/n");     return ;  }  //修改聯系人 void updateContact(){      //顯示聯系人   doList();   //提示用戶輸入要修改聯系人的編號   printf("請輸入要修改的聯系人的編號:/n");   //接收用戶輸入的編號   scanf("%d",&no);   //判斷編號是否合法   int flag;   if (!isValid(no, 1, contactCount)) {     //提示用戶輸入新的的聯系人的姓名       printf("請輸入新的姓名:*注意:姓名之間不能有空格/n");      //接收用戶輸入的姓名       scanf("%s",contact[no-1].name);      //提示用戶輸入新的電話號碼       printf("請輸入新的電話號碼:*注意:電話號碼之間不能有空格/n");      //接收用戶輸入的電話號碼       scanf("%s",contact[no-1].tel);           //詢問用戶確定修改么?     printf("確定要修改么?1.確定 0.取消/n");     scanf("%d",&flag);     if (flag) {            //寫文件       writeFile();       printf("聯系人修改成功!/n");     }else{          printf("編號不合法!!/n");       return ;          }      }     }  //查看所有聯系人 void doList(){      printf("顯示所有聯系人:/n");   printf("編號/t姓名/t電話/n");   for (int i=0; i<contactCount; i++) {     printf("%d/t%s/t%s/n",i+1,contact[i].name,contact[i].tel);   }  }  //搜索聯系人 void searchContact(){      int flag = 1;   //接收用戶輸入的姓名   char searchName[NAMELEN];   //接收用戶輸入的電話   char searchTel[TELLEN];   //詢問用戶搜索方式   printf("請輸入查找的方式: 1.按姓名查找 2.按電話號碼查找/n");   //接收用戶的搜索方式   scanf("%d",&no);   if (no==1) {     //請用戶輸入要查找的姓名     printf("請輸入要查找到姓名:/n");     scanf("%s",searchName);     for (int i=0; i<contactCount; i++) {       if (!strcmp(searchName,contact[i].name)) {         printf("您查找的聯系人為:/n");         printf("%d/t%s/t%s/n",i+1,contact[i].name,contact[i].tel);         return ;       }else{                flag = 0;       }     }        }else if(no==2){          //請用戶輸入要查找的電話號碼     printf("請輸入要查找的電話號碼:/n");     scanf("%s",searchTel);     for (int i=0; i<contactCount; i++) {       if (!strcmp(searchTel,contact[i].tel)) {         printf("您查找的聯系人為:/n");         printf("%d/t%s/t%s/n",i+1,contact[i].name,contact[i].tel);         return ;       }else{                  flag = 0;       }     }         }else{     printf("非法輸入!/n");     return ;   }   if (!flag) {     printf("很抱歉!小伙伴不在通訊錄中!/n");   }          }  //退出系統 void quit(){      printf("系統正在退出.../n");   printf("系統已經退出!/n");     }  //聯系人寫入文件 void writeFile(){    //定義文件指針   FILEFILE *fp = fopen(path, "wb");   if (fp!=NULL) {     //寫入聯系人個數     fwrite(&contactCount, sizeof(contactCount), 1, fp);     //寫入每個聯系人     for (int i=0; i<contactCount; i++) {              fwrite(&contact[i], sizeof(Person),1, fp);     }        }   fclose(fp);  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳城县| 卢氏县| 乳源| 建阳市| 毕节市| 阜新市| 资源县| 涟源市| 石城县| 方山县| 军事| 渝北区| 金山区| 沂源县| 巨野县| 会同县| 永福县| 邵武市| 旬阳县| 会理县| 宜黄县| 乐亭县| 和田县| 阳新县| 绥棱县| 无棣县| 白朗县| 法库县| 昌乐县| 上林县| 恩平市| 从江县| 稻城县| 钟山县| 德阳市| 道孚县| 娱乐| 桐乡市| 浦县| 遂平县| 昭通市|