最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)手機電話簿管理系統(tǒng)

 更新時間:2022年06月02日 11:32:35   作者:普通學(xué)長  
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)手機電話簿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現(xiàn)手機電話簿管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

一、任務(wù)概述(文章僅供參考)

用c設(shè)計出模擬手機通訊錄管理系統(tǒng),實現(xiàn)對手機中的通訊錄進行管理

二、設(shè)計功能

查看功能:選擇此功能時,列出下列三類選擇。A辦公類,B個人類,C商務(wù)類,當(dāng)選中某類時,顯示出此類中的所有數(shù)據(jù)。
增加功能:能錄入新數(shù)據(jù),一個結(jié)點包括:姓名、電話號碼、分類(可選項有:A 辦公類,B 個人類,C 商務(wù)類)、電子郵件。
撥號功能:能顯示出通訊錄中所有人的姓名,當(dāng)選中某個姓名時,屏幕上模擬打字機的效果依次顯示出此人的電話號碼中的各個數(shù)字,并伴隨相應(yīng)的撥號聲音。
修改功能:選中某個人的姓名時,可對此人的相應(yīng)數(shù)據(jù)進行修改。
刪除功能:選中某個人的姓名時,可對此人的相應(yīng)數(shù)據(jù)進行刪除,并自動調(diào)整后續(xù)條目的編號。

三、功能展示

四、思維導(dǎo)圖

五、程序源碼

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define N 15 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //最大容量為15
typedef struct ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//定義一個結(jié)構(gòu)
{
? char name[10];
? char haoma[15];
? ? ?char leibie[10];
? ? ?char dizhi[20];
}ren;
//菜單
void menu() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //目錄
{
? system("cls"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//清屏
? ? printf("\n\n\n ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓");
? ? printf(" ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃");
? ? printf(" ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃");
? ? printf(" ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃");
? ? printf(" ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃");
? ? printf(" ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃");
? ? printf(" ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃");
? ? printf(" ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃");
? ? printf(" ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ?┏━━━━━━━━━━┓ ? ? ? ? ? ? ? ? ?┃");?
? ? printf("\n ┃ ? ? ? ? ? ? ?┃ 歡迎使用手機通訊錄 ┃ ? ? ? ? ? ? ? ? ?┃ \n");
? ? printf(" ┃ ? ? ? ? ? ? ?┗━━━━━━━━━━┛ ? ? ? ? ? ? ? ? ?┃");
? ? printf(" ┃ ? ? ? ? ? ? ?┏━━━━━━━━━━┓ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? 1.添加聯(lián)系人 ? ┃ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? 2.查詢聯(lián)系人 ? ┃ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? 3.修改聯(lián)系人 ? ┃ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? 4.刪除聯(lián)系人 ? ┃ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? 5.撥號 ? ? ? ? ┃ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? 0.退出 ? ? ? ? ┃ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ?┃\n"); ?
? ? printf(" ┃ ? ? ? ? ? ? ?┗━━━━━━━━━━┛ ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃\n");
? ? printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ? ? ? ? ");
? ? printf("\n");

? ?printf("請選擇相應(yīng)的功能:");
}?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//號碼添加
void input()
{
? ? ?FILE *fp; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //定義文件指針
? ? ?ren ry,s; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 定義兩個ren結(jié)構(gòu)體的量
? ? ?if((fp=fopen("ren.dat","ab+"))==NULL)
? {printf("can't open file!\n");exit(0);}
? ? ?printf("\n錄入格式\n姓名:\n號碼:\n類別:\n郵箱:\n當(dāng)輸入姓名為#結(jié)束錄入\n");
? ? ?while(1)
? { ?printf("請輸入姓名:");
? ? ?scanf("%s",ry.name);
? ? ? if(strcmp(ry.name,"#")==0) break; ? ? ? ? ? ? ? //如果輸入#則退出添加
? ? ? ? ? ?printf("請輸入電話號碼:");
? ? ? ? ?scanf("%s",ry.haoma);
? ? ? ? ?printf("請輸入類別(A辦公類B個人類C商務(wù)類):");
? ? ? ? ?scanf("%s",ry.leibie);
? ? ? ? ?printf("請輸入郵箱地址:");
? ? ? ? ?scanf("%s",ry.dizhi);
? ? ? ? ?fseek(fp,0,0); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//指針定位到文件開始位置
? ? ? ?fread(&s,sizeof(ren),1,fp);
? ? ? ?while(!feof(fp))
? ? { ? ? ? if(strcmp(s.haoma,ry.haoma)==0)
? ? ? {printf("號碼已經(jīng)存在,不能記錄.\n");break;}//遇到有相同的號碼
? ? ? ? ? ? fread(&s,sizeof(ren),1,fp);
? }
? ? ? ?if(feof(fp)) ? ? ? ? ? ? ? ? ? ? //讀到自后也沒有相同的號碼
? ? ? ? ? fwrite(&ry,sizeof(ren),1,fp); //將信息寫入文件
? }
? ? ?fclose(fp); ? ? ? ? ? ? ? ? ? ? ? ? //關(guān)閉文件
? ? ?getchar(); ? ? ? ? ? ? ? ? ? ? ? ? ?//接受一個輸入
}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

void search() ? ? ? ? ? ? ? ? ? ? ? ? ? ? //查詢
{
ren ry;
FILE *fp;
char leibie[10];
system("cls");
printf("\n輸入要查人員的類別: ");scanf("%s",leibie);//要查詢的類別

? ? if((fp=fopen("ren.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}
? ? ? ? fread(&ry,sizeof(ren),1,fp);
? ?if(!feof(fp))
? ?{ ? printf(" ? ?人員的信息如下:\n");
? ? ? ?printf("說明:(A辦公類B個人類C商務(wù)類)");
? ? printf("\n%10s %15s %10s %20s \n","姓名","號碼","類別","郵箱");
while(!feof(fp))
{
? ? ? if(strcmp(ry.leibie,leibie)==0) ? ? ? ? ? ? ? ?//若為該類別則輸出
? ?{?
? ? ? printf("%10s %15s %10s %20s \n",ry.name,ry.haoma,ry.leibie,ry.dizhi);
? ?}
? ?fread(&ry,sizeof(ren),1,fp);
}
? ?}
? ?else printf("查找失敗!!!");
? ?fclose(fp);
? ?getch();
}


? ? ? //修改:輸入人員的姓名,查找該人員,若找到則修改該人員的信息,并顯示修改前后的結(jié)果;
void modi()
{ ? ren ry;
FILE *fp;
char name[10];
system("cls");
if((fp=fopen("ren.dat","rb+"))==NULL) {printf("can't open file!\n");exit(0);}
? ?if(!feof(fp))
? ?{printf(" ? 修改前全部人員的信息如下:\n");
? printf("\n%10s %15s %10s %20s \n","姓名","號碼","類別","郵箱");?
? fread(&ry,sizeof(ren),1,fp); ??
while(!feof(fp))
? ?{?
? ? ? ? ? ??
? ? ? ?printf("%10s %15s %10s %20s \n",ry.name,ry.haoma,ry.leibie,ry.dizhi);
? ? ? ? fread(&ry,sizeof(ren),1,fp);
? ? ?}
? ?}
printf("\n輸入要修改人員的姓名: ");scanf("%s",name);
? ? if((fp=fopen("ren.dat","rb+"))==NULL) {printf("can't open file!\n");exit(0);}
? ?while(!feof(fp))
? ?{ ?fread(&ry,sizeof(ren),1,fp);
? ? ? if(strcmp(ry.name,name)==0) ? ? ? ? ? ?
? ?{ ?printf(" ? 修改前人員的信息如下:\n");
? ? ? printf("\n%10s %15s %10s %20s \n","姓名","號碼","類別","郵箱");
? ? ? ? ?printf("%10s %15s %10s %20s \n",ry.name,ry.haoma,ry.leibie,ry.dizhi);
? ? ? ? ?printf("\n請輸入該人的號碼:");scanf("%s",ry.haoma);
? ? ? ? ?printf("\n類別:");scanf("%s",ry.leibie); ? ? ? ? ? ? ? //新信息輸入
? ? ? ? ?printf("\n郵箱:");scanf("%s",ry.dizhi);
? ? ? break; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //修改完畢退出
? ?}
? ?}
? ?if(!feof(fp))
? ?{ ?
? ? ? printf(" ?\n 修改后的人的信息如下:\n");
? ?printf("\n%10s %15s %10s %20s \n","姓名","號碼","類別","郵箱");
? ? ? printf("%10s %15s %10s %20s \n",ry.name,ry.haoma,ry.leibie,ry.dizhi);
? ? ? fseek(fp,-sizeof(ren),1); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//指針向前一位定位
? ? ? fwrite(&ry,sizeof(ren),1,fp);
? ?}
? ?else
printf("\n此人不存在,修改失敗!!");
? ?fclose(fp);
? ?getch();
}
? ? ?//刪除:輸入人員姓名,若該人員存在,則刪除,并顯示刪除后余下的人員的信息

void dele()
{ ? ren ?ry[N];
? ? FILE *fp;
? ? char name[10];
? ? int i,len,k=-1;
? ? system("cls");
? ? printf("\n輸入要刪除的人員姓名: ");scanf("%s",name);
? ? i=0;
? ? if((fp=fopen("ren.dat","rb+"))==NULL) {printf("can't open file!\n");exit(0);}
? ? while(!feof(fp))
{ ? ? fread(&ry[i],sizeof(ren),1,fp);
? ? ? ? ? if(feof(fp)) break;
? ? ? ? ? if(strcmp(ry[i].name,name)==0) k=i;
? ? ? ? ? i++;
}
? ? fclose(fp);
? ? ? ? ? ? ? ? ? ? ? ? ? //以下是刪除后重新寫文件
? ?len=i;
? ?if(k>=0)
? ?{ ? ?if((fp=fopen("ren.dat","wb+"))==NULL) {printf("can't open file!\n");exit(0);}
? ? ? ? for(i=0;i<len;i++)
? { ? if(i==k) continue;
? ? ? ? ? ? fwrite(&ry[i],sizeof(ren),1,fp);
? }
? ? ? ? fclose(fp);printf("刪除成功!!!\n");
? ?}
? ?
? ?else printf("刪除失敗!!!\n");
? ?getch();
}

void bohao() //撥號
{ ? ?ren ry;
? ? ?FILE *fp;
? ? ?char name[10];
? system("cls");
? printf("\n輸入要撥人員的姓名: ");scanf("%s",name);
? ? ?if((fp=fopen("ren.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}
? ? ?while(!feof(fp))
? { ? ? fread(&ry,sizeof(ren),1,fp);
? ? ? ? ? ?if(strcmp(ry.name,name)==0)
? ? ?{ ?printf("\n\a\a\a\a\a\a %15s\a\a\a\a\a\n",ry.haoma); ? //輸出號碼和聲音
? ? ? ? ? ? break;
? ? ?}
? }
? if(feof(fp)) printf("撥號失敗!!!");
? ? ?fclose(fp);
? ? ?getch();
}
//菜單選擇

void choice()
{?
char ch;
while(1)
{
? menu();// 顯示菜單
? ch=getch();//選擇菜單
if(ch=='0') break;
? switch(ch)//判斷功能項
? {
? case '1': input();break;
? case '2':search();break;
? case '3':modi();break;
? case '4':dele();break;
? case '5':bohao();break;
? }
}
printf("\n歡迎使用!!!\n");
}

//主函數(shù)
main()
{
choice();//調(diào)用菜單選擇

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言關(guān)鍵字總結(jié)解析

    C語言關(guān)鍵字總結(jié)解析

    這篇文章主要介紹了C語言關(guān)鍵字總結(jié)解析,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是本文的詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • c語言動態(tài)數(shù)組示例

    c語言動態(tài)數(shù)組示例

    這是一個簡單的動態(tài)分配數(shù)組大小的例子,需要的朋友可以參考下
    2014-04-04
  • OpenCV實現(xiàn)雙邊濾波算法

    OpenCV實現(xiàn)雙邊濾波算法

    這篇文章主要為大家詳細(xì)介紹了OpenCV實現(xiàn)雙邊濾波算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C++中神奇的tuple詳解使用技巧及實例解析

    C++中神奇的tuple詳解使用技巧及實例解析

    C++11標(biāo)準(zhǔn)新引入了一種類模板,命名為 tuple(中文可直譯為元組),下面這篇文章主要給大家介紹了關(guān)于C++中神奇的tuple詳解使用技巧及實例解析的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • C語言中使用快速排序算法對元素排序的實例詳解

    C語言中使用快速排序算法對元素排序的實例詳解

    這篇文章主要介紹了C語言中使用快速排序算法對元素排序的實例詳解,文中細(xì)分了幾個情況來舉例,在注釋里有說明,需要的朋友可以參考下
    2016-04-04
  • C語言技巧提升之回調(diào)函數(shù)的掌握

    C語言技巧提升之回調(diào)函數(shù)的掌握

    這篇文章主要為大家詳細(xì)介紹一下C語言中回調(diào)函數(shù)的用法教程,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下
    2022-12-12
  • 美化你的代碼 vb(VBS)代碼格式化的實現(xiàn)代碼

    美化你的代碼 vb(VBS)代碼格式化的實現(xiàn)代碼

    雖然VB.NET出現(xiàn)很久了,但還有好多人仍然在使用VB6。我在實現(xiàn)一些小功能的時候也喜歡用VB6,畢竟誰都不想每天的美好心情被VS那烏龜般的啟動速度影響
    2012-05-05
  • Qt中簡單的按鈕槽函數(shù)傳遞參數(shù)方法

    Qt中簡單的按鈕槽函數(shù)傳遞參數(shù)方法

    這篇文章主要介紹了Qt中簡單的按鈕槽函數(shù)傳遞參數(shù)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言實現(xiàn)超市信息管理系統(tǒng)

    C語言實現(xiàn)超市信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)超市信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 解決pip?install?dlib報錯C++11?is?required?to?use?dlib

    解決pip?install?dlib報錯C++11?is?required?to?use?dlib

    這篇文章主要介紹了在使用pip?install?dlib安裝dlib的時候報錯C++11?is?required?to?use?dlib的解決方法,需要的的小伙伴可以參考一下,希望對你有所幫助
    2022-02-02

最新評論

惠东县| 凤山县| 佛学| 西华县| 青龙| 宁津县| 莱州市| 罗平县| 珲春市| 新建县| 青龙| 浮梁县| 和静县| 兴和县| 闽清县| 隆安县| 常宁市| 吉隆县| 富宁县| 奎屯市| 通化市| 遵义县| 乌审旗| 调兵山市| 凤台县| 依安县| 灌云县| 开化县| 华容县| 盐城市| 绥滨县| 通山县| 盐池县| 军事| 涿鹿县| 托里县| 桐柏县| 桐柏县| 华池县| 张家川| 江油市|