日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言通讯录感想,C语言通讯录实例分享

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言通讯录感想,C语言通讯录实例分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例為大家分享了C語言通訊錄實例的具體代碼,供大家參考,具體內容如下

main.c文件:

//

// main.c

// c語言通訊錄

//

// Created by stevenchang on 9/6/15.

// Copyright (c) 2015 cz. All rights reserved.

//

/**

1.添加聯系人

2.刪除聯系人

3.更新聯系人

4.顯示所有聯系人

5.查找聯系人

6.退出系統

*/

#include

int main(int argc, const char * argv[]) {

//程序的初始化

initContacts();

while(1) {

int flag = 0;

printf("*************C語言通訊錄*************\n");

printf("************1.添加用戶***************\n");

printf("************2.刪除用戶***************\n");

printf("************3.更新用戶***************\n");

printf("************4.查找用戶***************\n");

printf("************5.顯示所有用戶************\n");

printf("************6.退出系統***************\n");

printf("************************************\n");

printf("請輸入1-6的功能編號 :\n");

scanf("%d",&flag);

//判斷編號是否合法

validateNum(flag, 1, 6);

switch (flag) {

case 1:

addContact(); //添加用戶

break;

case 2:

deleteContact(); //刪除用戶

break;

case 3:

updateContact(); //更新用戶

break;

case 4:

searchContact(); //查找用戶

break;

case 5:

listContact(); //顯示所有用戶

break;

case 6:

printf("系統正在退出!\n");

printf("成功退出系統!\n");

return 0;

break;

default:

break;

}

}

return 0;

}

MyFile.c文件:

//

// MyFile.c

// c語言通訊錄

//

// Created by stevenchang on 9/6/15.

// Copyright (c) 2015 cz. All rights reserved.

//

#include "MyFile.h"

//**************函數的實現**********************//

/**

* 添加聯系人

*/

void addContact() {

int flag = 0;

printf("您選擇的是添加聯系人,請按操作進行!\n");

printf("請輸入用戶姓名(*注意聯系人姓名中間不能有空格):\n");

scanf("%s",contacts[totalContactsCount].name);

printf("請輸入電話(*注意聯系人電話中間不能有空格): \n");

scanf("%s",contacts[totalContactsCount].tel);

printf("是否確認添加!1:是 0:否\n");

scanf("%d",&flag);

if (flag) {

//聯系人個數加1

totalContactsCount++;

//將聯系人信息保存到文件中

writeFile();

}

printf("已經放棄添加!\n");

return ;

}

/**

* 刪除聯系人

*/

void deleteContact() {

int no;

printf("您選擇的是刪除聯系人,請按操作進行!\n");

printf("請輸入要刪除的編號:\n");

scanf("%d",&no);

//判斷輸入的編號是否合法

if (!validateNum(no, 1, totalContactsCount)) {

printf("您輸入的編號不合法!\n");

return ;

}

//合法

//如果刪除的是最后一個元素

if (no == totalContactsCount) {

totalContactsCount--;

} else {

//如果刪除的不是最后一個元素

for (int i = no; i < totalContactsCount; i++) {

contacts[no-1] = contacts[no]; //元素的移動和覆蓋

}

totalContactsCount--;

}

//同步文件

writeFile();

}

/**

* 更新聯系人

*/

void updateContact() {

int no;

char newName[NAMELENGTH];

char newTel[TELLENGTH];

printf("您選擇的是更新聯系人,請按操作進行!\n");

printf("請輸入要修改的聯系人編號:\n");

scanf("%d",&no);

//判斷編號是否合法

if (!validateNum(no, 1, totalContactsCount)) {

return ;

}

//合法

printf("請重新輸入用戶名:\n");

scanf("%s",newName);

printf("請重新輸入電話號碼\n");

scanf("%s",newTel);

strcpy(contacts[no-1].name, newName);

strcpy(contacts[no-1].tel, newTel);

//寫入文件

writeFile();

}

/**

* 顯示所有聯系人

*/

void listContact() {

printf("您選擇的是顯示所有聯系人,聯系人如下!\n");

if (totalContactsCount > 0) {

printf("序號\t姓名\t電話\n");

for (int i = 0 ; i < totalContactsCount; i++) {

printf("%d\t%s\t%s\n",i+1,contacts[i].name, contacts[i].tel);

}

} else {

printf("聯系人為空,請添加聯系人!\n");

return ;

}

}

/**

* 查找聯系人

*/

void searchContact() {

printf("您選擇的是查找聯系人,請按操作進行!\n");

char searchName[NAMELENGTH];

printf("請輸入要查找的聯系人姓名:\n");

scanf("%s",searchName);

for (int i = 0 ; i < totalContactsCount; i++) {

if (strcmp(searchName, contacts[i].name)==0) { //說明相同

printf("聯系人姓名為:%s,電話號碼為:%s\n",contacts[i].name,contacts[i].tel);

return ;

}

if (i == totalContactsCount-1) {

printf("此聯系人不存在!\n");

}

}

}

/**

* 通訊錄的初始化

*/

void initContacts() {

printf("通訊錄正在初始化!\n");

FILE *fp = fopen(filePath, "r");

if (fp!=NULL) { //讀取文件成功

//讀取聯系人的個數

fread(&totalContactsCount, sizeof(totalContactsCount), 1, fp);

//讀取每個聯系人

for (int i = 0; i < totalContactsCount; i++) {

//讀取聯系人數據,到聯系人數組中

fread(&contacts[i], sizeof(Person), 1, fp);

}

} else {

//讀取文件失敗

//創建文件

fp = fopen(filePath, "wb");

//寫入聯系人的個數

fwrite(&totalContactsCount, sizeof(totalContactsCount), 1, fp);

printf("通訊錄文件創建成功!\n");

}

//關閉文件指針

fclose(fp);

printf("通訊錄初始化成功!\n");

}

/**

* 判斷功能編號是否合法 1:合法 0:非法

*/

int validateNum(int num, int min, int max) {

if (num < min || num > max) {

printf("輸入的功能編號不正確,請重新輸入!\n");

return 0;

}

return 1;

}

/**

*將聯系人寫入文件

*/

void writeFile() {

//以二進制文件打開文件

FILE *fp = fopen(filePath, "wb");

if (fp != NULL) {

//寫入聯系人個數

fwrite(&totalContactsCount, sizeof(totalContactsCount), 1, fp);

//寫入每個聯系人個數

for (int i = 0; i < totalContactsCount; i++) {

fwrite(&contacts[i], sizeof(Person), 1, fp);

}

}

fclose(fp);

printf("文件更新成功\n");

}

MyFile.h文件:

//

// MyFile.h

// c語言通訊錄

//

// Created by stevenchang on 9/6/15.

// Copyright (c) 2015 cz. All rights reserved.

//

#ifndef __c_______MyFile__

#define __c_______MyFile__

#include

#include

#define N 100 //宏定義一個通訊錄的容量

#define NAMELENGTH 22 //宏定義一個名字的長度

#define TELLENGTH 12 //宏定義一個電話號碼的長度

//********************函數的聲明*********************//

void addContact(); //添加聯系人

void deleteContact(); //刪除聯系人

void updateContact(); //更新聯系人

void listContact(); //顯示所有聯系人

void searchContact(); //查找聯系人

void initContacts(); //通訊錄的初始化

int validateNum(int num, int min, int max); //判斷功能編號是否合法 1:合法 0:非法

void writeFile(); //將聯系人寫入文件

typedef struct Person { //定義一個結構體

char name[NAMELENGTH]; //定義姓名數組

char tel[TELLENGTH]; //定義結構體數組

} Person;

//定義文件路徑

char *filePath = "telData.data";

int totalContactsCount = 0;

Person contacts[N]; //定義Person結構體數組

#endif /* defined(__c_______MyFile__) */

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

總結

以上是生活随笔為你收集整理的c语言通讯录感想,C语言通讯录实例分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一本色道久久综合亚洲精品小说 | 丁香六月欧美 | 光明影院手机版在线观看免费 | 国产日韩一区二区三区在线观看 | 真实乱偷全部视频 | 免费国产一区二区三区 | 日韩精品1区2区 | 国产精品一区免费 | 97xxx| 爱看av | 国产一区二区三区在线免费观看 | 欧美丰满少妇人妻精品 | aa视频免费观看 | 金鱼妻日剧免费观看完整版全集 | 中文字幕一区二区三区乱码人妻 | 久久人爽| 青春草国产视频 | 国产精品成人免费精品自在线观看 | www.色偷偷 | www四虎| 亚洲色图欧美视频 | 无套暴操 | 蜜桃av免费 | 国产精品第一 | 精品美女一区 | 日本久久久久久久久久 | 三级福利片 | 亚洲精品成a人在线观看 | 成人免费视频国产免费麻豆 | 年下总裁被打光屁股sp | 九九热这里有精品视频 | 干老太太视频 | 这里只有精品6 | 免费在线看污 | 国产福利资源 | 婷婷.com| 国产香蕉一区二区三区 | 国内精久久久久久久久久人 | 亚洲一区二区小说 | 国产精品呻吟久久 | 中国第一毛片 | 后入内射无码人妻一区 | 影音先锋啪啪 | 精品欧美乱码久久久久久 | 欧美专区在线视频 | 日韩一区二区精品视频 | 久久精品国产亚洲av高清色欲 | 黄色大片免费看 | 日本精品在线播放 | 视频福利在线观看 | 婚后打屁股高h1v1调教 | 亚洲欧洲视频在线观看 | 天天添天天操 | 国产精品毛片一区二区在线看 | 欧美大尺度做爰啪啪床戏明星 | 丰满少妇高潮一区二区 | 精品动漫一区二区三区在线观看 | 俺也去av | 激情综合六月 | 91久久国语露脸精品国产高跟 | 成人蜜桃视频 | 精品乱码一区二区三区四区 | 欧美日韩免费在线视频 | 中文字幕+乱码+中文乱码www | 亚洲一本在线观看 | 国产乱码久久久 | 九九影院最新理论片 | www.欧美色图| 蜜桃成熟时李丽珍在线观看 | 无码一区二区三区 | 超碰97在线看 | 久久精品男人 | 夜夜嗨av一区二区三区 | 欧美黄色a | 韩国av免费观看 | 亚洲成人av影片 | www.国产成人| 女女百合高h喷汁呻吟玩具 www.亚洲一区 | 久久综合久久88 | 国产成人短视频在线观看 | 毛片网站网址 | 国产一级爽片 | 免费无码毛片一区二区app | 欧美性在线视频 | 日韩欧美在线视频播放 | 国产性一乱一性一伧一色 | 夜夜嗨av禁果av粉嫩av懂色av | 国产女人叫床高潮大片免费 | 97超碰资源站 | 成人亚洲国产 | 国产精品一区二区三区四 | 亚洲一卡二卡三卡 | 午夜毛片视频 | 琪琪色影音先锋 | 亚洲人成亚洲人成在线观看 | 激情小说视频在线 | 视频在线观看电影完整版高清免费 | 黄色福利片 | 青青操青青 |