虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C/C++编程 > C语言实现通讯录系统

C语言实现通讯录系统
类别:C/C++编程   作者:码皇   来源:互联网   点击:

这篇文章主要为大家详细介绍了C语言实现通讯录系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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("%dt%st%sn",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("%dt%st%sn",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("%dt%st%sn",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);
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

  • C语言超市管理系统设计
  • C语言图书借阅系统源码
  • C语言通讯录管理系统课程设计
  • C语言通讯录管理系统完整版
  • C语言链表实现图书管理系统
  • C语言银行储蓄系统源码
  • C语言银行系统课程设计
  • C语言职工信息管理系统源码
  • C语言实现歌曲信息管理系统
  • C语言商品销售系统源码分享
相关热词搜索: C语言 通讯录