c语言通讯录管理查询程序,通讯录管理系统(C语言)

一、设计目的与内容

问题描述:设计一个操作简便、功能实用的个人通信信息管理系统。

基本要求

存储内容:姓名、手机、家庭电话、办公电话、电子邮箱、地址等信息;

具备创建、添加、删除、查询、修改、排序、显示等功能;

界面美观、操作简便。

重点、难点

重点:结构体数组的增、删、改、查等操作。

难点:文件的读写操作。

二、算法的基本思想

427214a25196374ec344c93c987346ea.png

241c2e164e4a5f6c734b1355ce4b6180.png

三、主要功能设计与实现

1.创建通讯录

txl Create(){

txl head = (txl)malloc(sizeof(Node));

head->count = 0;

head->next = NULL;

return head;

}

2.插入信息

void Insert(txl &head){

printf("\n\t\t请依次输入姓名、手机、家庭电话、办公电话、电子邮箱、地址\n\t");

data d;

scanf("%s%s%s%s%s%s",d.name,d.phone,d.hometel,d.worktel,d.email,d.adress);

txl p = (txl)malloc(sizeof(Node));

txl r = head;

p->d = d;

while(r->next){

r = r->next;

}

r->next = NULL;

p->next = r->next;

r->next = p;

head->count++;

printf("\n\t\t是否继续添加?(Y/N):");

if (getch()=='y'||getch()=='Y')

Insert(head);

return;

}

3.显示全部信息

void showAll(txl head){

printf("%d\n",head->count);

txl p = head->next;

while(p){

printf("\n\t\t姓    名:%s",p->d.name);

printf("\n\t\t手机号码:%s",p->d.phone);

printf("\n\t\t家庭电话:%s",p->d.hometel);

printf("\n\t\t工作电话:%s",p->d.worktel);

printf("\n\t\t电子邮件:%s",p->d.email);

printf("\n\t\t家庭住址:%s",p->d.adress);

printf("\n\t\t____________________\n");

p = p->next;

}

}

4.按姓名查询(按手机号码查询与此类似)

void searchByName(txl head){

txl p = head->next;

int mark = 0;

printf("\n\t\t***************** 按姓名查找 *******************");

char name[20];

printf("\n\t\t请输入姓名:");

scanf("%s",name);

printf("\n\t\t************* 您查找的信息将在下面显示 ***********");

while(p!=NULL){

if(strcmp(p->d.name,name)==0){

printf("\n\t\t姓    名:%s",p->d.name);

printf("\n\t\t手机号码:%s",p->d.phone);

printf("\n\t\t家庭电话:%s",p->d.hometel);

printf("\n\t\t工作电话:%s",p->d.worktel);

printf("\n\t\t电子邮件:%s",p->d.email);

printf("\n\t\t家庭住址:%s",p->d.adress);

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

mark++;

}

p = p->next;

}

if(!mark){

printf("\n\t\t您的通讯录中没有与此姓名匹配的联系人");

}else printf("\n\t\t一共为您找到%d个与之匹配的联系人",mark);

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

5.按姓名删除(按手机号码删除与此类似)

void deleteByName(txl &head){

txl p = head->next,q;

printf("\n\t\t**************** 按姓名删除 **********************");

char name[20];

int mark = 0;

printf("\n\t\t请输入手机号码:");

scanf("%s",name);

if(p->next==NULL){

if(strcmp(p->d.name,name)==0){

free(p);

head->next = NULL;

head->count--;

mark++;

}

}else{

while(p->next){

if(strcmp(p->next->d.name,name))

p = p->next;

else {

q = p->next;

p->next = p->next->next;

free(q);

head->count--;

mark++;

break;

}

}

}

if(!mark)

printf("\n\t\t未找到此联系人");

else printf("\n\t\t删除成功");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

6.文件读写操作

bool Readtxl(txl &head){

FILE *fp;

txl p = (txl)malloc(sizeof(Node));

txl r = head;

if((fp = fopen("txl.txt","r"))==NULL){

printf("文件读入失败!\n");

return false;

}else{

while(fread(p,sizeof(Node),1,fp)==1){   //如果读到数据,就显示;否则退出

head->count++;

r->next = NULL;

p->next = r->next;

r->next = p;

r = r->next;

p = (txl)malloc(sizeof(Node));

}

r->next = NULL;

fclose(fp);

return true;

}

}

bool Writetxl(txl head){

FILE *fp;txl p = head->next;

if((fp = fopen("txl.txt","w"))==NULL){

printf("文件写入失败!\n");

return false;

}else {

for(int i = 0; i < head->count;i++){

fwrite(p,sizeof(Node),1,fp);

p = p->next;

}

fclose(fp);

printf("通讯录保存成功\n");

return true;

}

}

上面给出了部分核心代码,下面是完整的程序代码

https://download.csdn.net/download/qq_26154945/10906061

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言课程设计任务书(4) 一、题目:通讯录管理 二、目的与要求 1. 目的: (1)基本掌握面向过程程序设计的基本思路和方法; (2)达到熟练掌握C语言基本知识和技能; (3)能够利用所学的基本知识和技能,解决简单的程序设计问题 2. 要求 基本要求: 1.         要求利用C语言面向过程的编程思想来完成系统的设计; 2.       突出C语言的函数特征,以多个函数实现每一个子功能; 3.         画出功能模块图; 4.         具有清晰的程序流程图和数据结构的详细定义; 5.       熟练掌握C语言对文件的各种操作。 创新要求: 在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同 三、信息描述 有关该系统基本信息的描述,如:姓名、电话、城市和邮编等。 四、功能描述 1.       名单基本信息(姓名,城市,电话,邮编等)的录入,并存放在文件当中。 2.       基本信息的查询与修改。 3.       记录的添加和删除。 4.       对同一类型记录的查找:如查找同一城市的记录或同一省份的记录。 五、解决方案 1.       分析程序的功能要求,划分程序功能模块。 2.       画出系统流程图。 3.       代码的编写。定义数据结构和各个功能子函数。 4.       程序的功能调试。 5.       完成系统总结报告以及使用说明书 六、进度安排 此次课程设计时间为一周或两周,分四个阶段完成: 1.       分析设计阶段。指导教师应积极引导学生自主学习和钻研问题,明确设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行。 2.       编码调试阶段:根据设计分析方案编写C代码,然后调试该代码,实现课题要求的功能。 3.       总结报告阶段:总结设计工作,写出课程设计说明书,要求学生写出需求分析、总体设计、详细设计、编码、测试的步骤和内容。 4.       考核阶段。 七、撰写课程设计报告或课程设计总结 课程设计报告要求: 总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。 八、参考资料  《C语言程序设计教程》   网上相关资料(....略)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值