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

首頁 > 編程 > C > 正文

C語言實現通訊錄系統

2020-01-26 13:46:07
字體:
來源:轉載
供稿:網友

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);  }

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 固阳县| 西和县| 尤溪县| 黔西县| 桦南县| 自治县| 上犹县| 田阳县| 甘洛县| 凤凰县| 旬阳县| 剑河县| 郑州市| 武宣县| 延川县| 横山县| 文水县| 梧州市| 香港 | 通化市| 肥西县| 晋宁县| 朝阳区| 庐江县| 即墨市| 阳东县| 香格里拉县| 新巴尔虎右旗| 泽库县| 渝北区| 汤阴县| 无锡市| 万载县| 苏尼特右旗| 息烽县| 锡林郭勒盟| 樟树市| 新沂市| 花莲市| 环江| 恩施市|