c语言通讯录源代码

#include #include #include #include struct person //每个元素都是结构体类型 { char name[15]; //结构体数组,用于存储姓名 char celephone[22]; char QQ[20]; }per[500]; //定义一个per数组,它有500个元素

int num=0;//*外部变量num为文件中的纪录数*// FILE *fp; void mainmenu();//*主菜单*// **模块1**

void newrecord();//新添纪录(括写入到文件)*// **模块2** void readfromfile();//*读取文件*// **模块2.1**

void searchmenu();//*查询菜单*// **模块3** void searchbyname();//*按姓名查询*// **模块3.1** void searchbycelephone();//*按手机号码查询*// **模块3.2** void searchbyqq();//*按QQ查询*// **模块3.3**

void xiugaimenu();//*修改菜单*// **模块4** void xiugaibyname();//*按姓名查找修改*// **模块4.1** void xiugaibycelephone();//*按手机号码查找修改*// **模块4.2** void xiugaixiangmu(int a);//*查找后要修改的项目(分名字和号码)*// **模块4.3**

void deletemenu();//*删除菜单*// **模块5** void deleteall();//*删除所有信 息*// **模块5.1** void deleteone();//*删除单个*// **模块5.2** void deletebycelephone(); //*按手机号码删除*// **模块5.2.1** void deletebyname();//*按姓名删除*/ **模块5.2.2**

void showall();//*输 出 全 部 信 息*// **模块6** void main()//*主函数*// { while (1) { mainmenu(); } } //*主函数结束*// void mainmenu()//*主菜单函数*// **模块1** { int a; //以下模块是主界面 printf("**********欢迎来到【通信录】**********"); printf("\n\n"); printf(" 选择1:导入信息\n"); printf(" 选择2:新建信息\n"); printf(" 选择3:查询信息\n"); printf(" 选择4:修改信息\n"); printf(" 选择5:删除个人\n"); printf(" 选择6:删除所有\n"); //printf(" 选择7:输出信息\n"); printf(" 选择0:退出系统\n\n"); printf("***************************************\n");

printf("【请选择数字0-7,其他键暂时不起作用】\n"); loop1: scanf("%d",&a); switch (a) { case 1:readfromfile();break; case 2:newrecord();break; case 3:searchmenu();break; case 4:xiugaimenu();break; case 5:deletemenu();break; case 6:deleteall();break; case 7:showall();break; case 0:exit(0); default:printf("对不起!您的输入有误!请重新输入: ");getchar();goto loop1; } }

void readfromfile()//*读取文件*// **模块2.1** { int i,j,k; if((fp=fopen("c:\\string.txt","rb"))==NULL) { printf("\n\t\t****************************"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t* 通讯录文件不存在! *"); if ((fp=fopen("per.bin","wb"))==NULL) { printf("\n* 建立失败! *"); printf("\n* *"); printf("\n* *"); printf("\n****************************"); exit(0); } else { printf("\n\t\t* 通讯录文件已建立! *"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t****************************"); printf("\n\t\t 按任意键进入主菜单 "); printf("\n\t\t 请输入您的数字选择: "); scanf("%d",&k); return; } exit(0); } fseek(fp,0,2); //*文件位置指针移动到文件末尾*// if (ftell(fp)>0) //*文件不为空*// { rewind(fp); //*文件位置指针移动到文件开始位置*// for (num=0;!feof(fp) && fread(&per[num],sizeof(struct person),1,fp);num++); printf("\n\t\t****************************"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t* 文件导入成功! *"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t****************************"); printf("\n\t\t 按1显示所有信息,按2回主菜单! "); printf("\t\t 请输入您的数字选择: "); scanf("%d",&j); if(j==1) showall(); } else { printf("\n\t\t****************************"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t* 文件导入成功! *"); printf("\n\t\t* 通讯录文件中无任何纪录! *"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t****************************"); printf("\n\t\t请按任意数字键返回主菜单"); scanf("%d",&i); return; } }

void newrecord()//*添加纪录模块*// **模块2** { char s[81];

int a; loop: printf("\n\n\n\n\t\t 请输入您要添加的联系人的信息: \n"); printf("\n请输入姓名:\n"); name: scanf("%s",&per[num].name); if(strlen(per[num].name)>15) { printf("对不起!您的输入有误!请重新输入"); goto name; } if((fp=fopen("c:\\string.txt","a"))==NULL) //打开文件 { printf("无法打开文件\n"); exit(1); }

fprintf(fp," 姓名\t\t 电话\t\t\t QQ\n"); fprintf(fp,"%-15s",per[num].name); //将字符串写进文件 fclose(fp); //关闭文件

printf("\n请输入手机号码:\n"); celephone: scanf("%s",&per[num].celephone); if(strlen(per[num].celephone)!=11) { printf("对不起!您的输入有误!请重新输入\n"); goto celephone; } if((fp=fopen("c:\\string.txt","a"))==NULL) //打开文件 { printf("无法打开文件\n"); exit(1); }

合集下载

C语言通讯录报告范文及源代码

C语言通讯录报告范文及源代码

C语言通讯录报告范文及源代码进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。

根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。

设计参数(1)系统分析、设计正确。

(2)结果以图表方式显示。

(3)界面简洁、美观。

(4)报告格式规范。

3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。

系主任:指导教师:2022年1摘要通讯录管理系统是典型的管理系统,其开发主要包括数据库的建立。

本文设计一个简要的的通讯录系统该题目要求在熟练掌握C语言的基础知识:数据类型(整型,字符型,指针,数组,结构等);运算类型,程序结构,函数的使用等。

进一步掌握各种函数的应用。

其中结构体,函数的调用,算法的设计尤为重要。

一个良好的通讯录能够方便用户增/删/查/改信息.获取用户。

要的信息.汇编语言也是计算机应用中重要的语言之一.用汇编语言程序代码编写通讯录,理解和掌握复杂的汇编语言应用程序的编程.本程序将主要完成的功能为姓名查询模块:查询,输入姓名可以查询该人其他信息;在屏上提示:选择“1”:输入姓名,按姓名查询,显示查询结果;选择“0”:结束.通过此次设计巩固和加深子程序调用关键字:通讯录管理信息系统目录1.摘要2.目录3.软件需求分析说明书4.系统分析与设计5.软件的实现6.软件的测试7.软件使用说明书8.致谢9.软件源代码软件需求分析说明书一、本课程设计的目的和意义本课程设计可加深对课堂理论学习的理解,增强动手能力,以培养学生合作的能力,为作好实践环节上的准备。

通讯录系统是在手机常见的计算机信息管理系统。

它的主要任务是对信息进行管理,如信息的输入、查询、修改、增加、删除,迅速准确地完成各种信息的输入和查询。

二、本课程设计主要内容本系统有分7个功能:(1)写入数据(2)读取数据(3)追加数据(4)查找数据(5)删除数据。

通讯录c语言程序设计代码

通讯录c语言程序设计代码

通讯录c语言程序设计代码#include<stdio.h>。

#include<string.h>。

//通讯录结构体。

typedef struct addressbook。

char name[20];。

long tel;。

char addr[20];。

}Address;。

//把Address结构体强转成Address指针。

typedef Address *Addressbook;。

//查找函数。

Addressbook find (Addressbook book,int count)。

char findName[20];。

int flag=0;。

Addressbook p;。

printf("请输入查找的姓名:");。

scanf("%s",findName);。

for(p=book;p<book+count;p++)。

if(strcmp(findName,p->name)==0)。

flag=1;。

}。

}。

if(flag==0)。

printf("没有找到%s\n",findName);。

return book;。

}。

else。

return p;。

}。

}。

//添加函数。

void add (Addressbook book,int *count)。

printf("请输入需要增加的通讯录内容:\n");。

printf("姓名:");。

scanf("%s",(book+*count)->name);。

scanf("%ld",&(book+*count)->tel);。

printf("地址:");。

scanf("%s",(book+*count)->addr);。

printf("添加成功\n");。

C语言实现简单通讯录功能

C语言实现简单通讯录功能

C语⾔实现简单通讯录功能本⽂实例为⼤家分享了C语⾔实现简单通讯录功能的具体代码,供⼤家参考,具体内容如下1.存放联系⼈信息2.信息:名字+年龄+性别+电话+住址3.增加联系⼈4.删除联系⼈5.查找联系⼈6.修改联系⼈7.排序test.c源⽂件代码如下:#define _CRT_SECURE_NO_WARNINGS 1#include "contact.h"void menu(){printf("#####################################\n");printf("##### 1. add 2. del #####\n");printf("##### 3. search 4. modify #####\n");printf("##### 5. show 6. sort #####\n");printf("##### 0. exit #####\n");printf("#####################################\n");}//创建⼀个枚举类型,分别对应菜单选项enum Option{EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT,};int main(){int input = 0;//创建⼀个通讯录struct Contact con;//初始化通讯录InitContact(&con);//最多可以放3个联系⼈信息//空间不够再增容do{menu();//进⼊循环,先打印菜单printf("请选择:>");scanf("%d", &input);//⽤户选择操作switch (input){case ADD:AddContact(&con);break;case DEL:DelContact(&con);break;case SEARCH:SearchContact(&con);break;case MODIFY:ModifyContact(&con);break;case SHOW:ShowContact(&con);break;case SORT:SortContact(&con);break;case EXIT:SaveContact(&con);//销毁通讯录DestroyContact(&con);printf("退出\n");break;default:printf("选择错误\n");break;}} while (input);return 0;}contact.c源⽂件代码如下:#define _CRT_SECURE_NO_WARNINGS 1#include "contact.h"//检测通讯录容量void CheckCapacity(struct Contact* pc){//断⾔assert(pc);if (pc->sz == pc->capacity)//如果有效联系⼈等于最⼤容纳量{//增加容量struct PeoInfo* ptr = realloc(pc->data, (pc->capacity + 2) * sizeof(struct PeoInfo)); if (ptr != NULL)//如果不为空,表⽰增容成功{pc->data = ptr;pc->capacity += 2;printf("增容成功\n");}else{perror("AddContact::realloc");return;}}}//加载有效联系⼈信息void LoadContact(struct Contact* pc){assert(pc);struct PeoInfo tmp = { 0 };//临时空间FILE* pfRead = fopen("contact.txt", "rb");//打开⽂件,读取数据if (NULL == pfRead){perror("open file for reading");return;}//加载数据//每次读取⼀个联系⼈信息,直到frea返回值⼩于1,表⽰读取完毕,循环结束while (fread(&tmp, sizeof(struct PeoInfo), 1, pfRead)){CheckCapacity(pc);pc->data[pc->sz] = tmp;pc->sz++;}//关闭⽂件fclose(pfRead);pfRead = NULL;//置空,防⽌变成野指针}//初始化通讯录void InitContact(struct Contact* pc){assert(pc);pc->sz = 0;pc->capacity = DEFAULT;pc->data = (struct PeoInfo*)malloc(DEFAULT * sizeof(struct PeoInfo));//动态申请空间 if (pc->data == NULL){perror("InitContact::malloc");return;}LoadContact(pc);//加载通讯录的信息}//增加联系⼈void AddContact(struct Contact* pc){assert(pc);CheckCapacity(pc);//检查容量是否为满,是则进⾏增容//输⼊增加指定联系⼈的信息printf("请输⼊名字:>");scanf("%s", pc->data[pc->sz].name);printf("请输⼊年龄:>");scanf("%d", &(pc->data[pc->sz].age));printf("请输⼊性别:>");scanf("%s", pc->data[pc->sz].sex);printf("请输⼊电话:>");scanf("%s", pc->data[pc->sz].tele);printf("请输⼊地址:>");scanf("%s", pc->data[pc->sz].addr);printf("添加成功\n");pc->sz++;//有效联系⼈加1}//销毁通讯录void DestroyContact(struct Contact* pc){assert(pc);free(pc->data);//释放申请的动态内存空间pc->data = NULL;//置为空指针pc->capacity = 0;//容量置0pc->sz = 0;//有效联系⼈置0}//显⽰通讯录信息void ShowContact(const struct Contact* pc){assert(pc);int i = 0;printf("%20s\t%5s\t%10s\t%12s\t%50s\n\n", "name", "age", "sex", "tele", "addr");for (i = 0; i < pc->sz; i++){//打印每⼀个数据printf("%20s\t%5d\t%10s\t%12s\t%50s\n",pc->data[i].name,pc->data[i].age,pc->data[i].sex,pc->data[i].tele,pc->data[i].addr);}}//查找指定联系⼈int FindContactByName(const struct Contact* pc, const char* name){assert(pc && name);int i = 0;for (i = 0; i < pc->sz; i++){if (strcmp(pc->data[i].name, name) == 0){return i;}}//找不到return -1;}//删除指定联系⼈void DelContact(struct Contact* pc){assert(pc);if (pc->sz == 0){printf("通讯录为空,⽆法删除\n");return;}char name[NAME_MAX] = { 0 };printf("请输⼊要删除联系⼈的名字:>");scanf("%s", name);//查找到删除的⼈int pos = FindContactByName(pc, name);if (pos == -1)printf("指定联系⼈不存在\n");else{//删除int i = 0;for (i = pos; i < pc->sz-1; i++){pc->data[i] = pc->data[i + 1];}pc->sz--;printf("成功删除\n");}}//查找指定联系⼈void SearchContact(const struct Contact* pc){assert(pc);char name[NAME_MAX] = { 0 };if (pc->sz == 0){printf("通讯录为空,⽆法查找\n");return;}printf("请输⼊要查找的联系⼈名字:>");scanf("%s", name);int pos = FindContactByName(pc, name);if (-1 == pos)printf("查⽆此⼈\n");else{printf("%15s\t%5s\t%8s\t%15s\t%30s\n\n", "name", "age", "sex", "tele", "addr"); printf("%15s\t%5d\t%8s\t%15s\t%30s\n",pc->data[pos].name,pc->data[pos].age,pc->data[pos].sex,pc->data[pos].tele,pc->data[pos].addr);}}//修改指定联系⼈void ModifyContact(struct Contact* pc){assert(pc);char name[NAME_MAX] = { 0 };if (pc->sz == 0){printf("通讯录为空,⽆法修改\n");return;}printf("请输⼊要修改的联系⼈名字:>");scanf("%s", name);int pos = FindContactByName(pc, name);printf("要修改的⼈不存在\n");else{printf("请输⼊新的名字:>");scanf("%s", pc->data[pos].name);printf("请输⼊新的年龄:>");scanf("%d", &(pc->data[pos].age));printf("请输⼊新的性别:>");scanf("%s", pc->data[pos].sex);printf("请输⼊新的电话:>");scanf("%s", pc->data[pos].tele);printf("请输⼊新的地址:>");scanf("%s", pc->data[pos].addr);}}//按照名字排序->升序int cmp_by_name(const void* e1, const void* e2){return strcmp((((struct PeoInfo*)e1)->name), (((struct PeoInfo*)e2)->name)); }//按照年龄排序->升序int cmp_by_age(const void* e1, const void* e2){return ((struct PeoInfo*)e1)->age - ((struct PeoInfo*)e2)->age;}//排序通讯录void SortContact(struct Contact* pc){assert(pc);int input = 0;if (pc->sz == 0){printf("通讯录为空,⽆法排序\n");return;}printf("按名字排序请输⼊1,年龄排序请输⼊2:>");scanf("%d", &input);if (1 == input){//名字排序qsort(pc->data, pc->sz, sizeof(struct PeoInfo), cmp_by_name);}else{//年龄排序qsort(pc->data, pc->sz, sizeof(struct PeoInfo), cmp_by_age);}}//保存通讯录void SaveContact(struct Contact* pc){assert(pc);int i = 0;FILE* pfWrite = fopen("contact.txt", "wb");把当前程序的有效联系⼈写⼊⽂件 if (NULL == pfWrite)//判断是否为空指针{perror("open file for writting");return;}//写数据for (i = 0; i < pc->sz; i++){fwrite(pc->data+i, sizeof(struct PeoInfo), 1, pfWrite);//进⾏写⼊}fclose(pfWrite);//关闭⽂件pfWrite = NULL;//置为空指针}contact.h头⽂件代码如下:#include <string.h>#include <stdio.h>#include <stdlib.h>#include <assert.h>#define DEFAULT 3#define NAME_MAX 20#define SEX_MAX 10#define TELE_MAX 12#define ADDR_MAX 50#define MAX 1000//描述联系⼈的信息struct PeoInfo{char name[NAME_MAX];int age;char sex[SEX_MAX];char tele[TELE_MAX];char addr[ADDR_MAX];};//通讯录-动态增长版本struct Contact{struct PeoInfo* data;int sz;//通讯录中当前有效元素个数int capacity;//通讯录的当前最⼤容量};//增容void CheckCapacity(struct Contact* pc);//初始化通讯录void InitContact(struct Contact* pc);//销毁通讯录void DestroyContact(struct Contact* pc);//增加联系⼈void AddContact(struct Contact* pc);//显⽰通讯录void ShowContact(const struct Contact* pc); //删除指定联系⼈void DelContact(struct Contact* pc);//查找指定联系⼈void SearchContact(const struct Contact* pc); //修改指定联系⼈void ModifyContact(struct Contact* pc);//排序通讯录void SortContact(struct Contact* pc);//保存通讯录到⽂件void SaveContact(struct Contact* pc);//加载通讯录void LoadContact(struct Contact* pc);程序运⾏:重新运⾏程序并显⽰之前添加的联系⼈会存放在指定⽂件中,再次运⾏程序会加载进去,增容成功是因为默认容纳的联系⼈有3位,要加载4位联系⼈,所以⾃动进⾏增容。

个人通讯录管理系统C语言源程序(总6页)

个人通讯录管理系统C语言源程序(总6页)

个人通讯录管理系统C语言源程序(总6页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除#include <> xt","r"))==NULL) /*以只读方式打开判定文件是否为空*/{printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/{printf("\n\t\t建立失败"); /*为空结论*/exit(0); /*退出*/}else /*不为空则执行else*/{printf("\n\t-----------------欢迎使用通讯录管理系统------------------");printf("\n\t 通讯录文件已建立 ");printf("\n\t 按任意键进入主菜单 ");printf("\n\t---------------------------------------------------------");getch();return ;}exit(0);}fseek(fp,0,2); /*文件位置指针移动到文件末尾*/if (ftell(fp)>0) /*文件不为空*/{rewind(fp); /*文件位置指针移动到文件开始位置*/for (n=0;!feof(fp) && fread(&txl[n],sizeof(struct tongxunlu),1,fp);n++);printf("\n\t----------欢迎使用通讯录管理系统版----------------");printf("\n\t 文件导入成功 ");printf("\n\t 按任意键返回主菜单 ");printf("\n\t---------------------------------------------------------");getch();return;}printf("\n\t------------欢迎使用通讯录管理系统版--------------");printf("\n\t 文件导入成功 ");printf("\n\t 通讯录文件中无任何纪录 ");printf("\n\t 按任意键返回主菜单 ");printf("\n\t---------------------------------------------------------");getch();return;}ingming); /*键盘输入*/printf("\n\t\t输入联系人电话号码:");scanf("%s",txl[n].dianhua);printf("\n\t\t输入联系人地址:");scanf("%s",txl[n].dizhi);n++; /*统计个数*/printf("\n\t\t是否继续添加联系人(Y/N):"); /*是否继续输入联系人.*/if (getch()=='y')zengjia();return;}xt","w"))==NULL){printf("\n\t\t文件打开失败");}for (i=0;i<n;i++){if (fwrite(&txl[i],sizeof(struct tongxunlu),1,fp)!=1){printf("\n\t\t写入文件错误!\n");}}fclose(fp); /*关闭文件*/printf("\n\t------------------------------------------------------"); /*输出提示信息*/printf("\n\t\t通讯录文件已保存");printf("\n\t\t谢谢使用,欢迎再次使用!\n");printf("如果对本软件有疑问,请到我们官网提出您的问题,我们将为您解答.\n");printf("我们的软件有不足之处,欢迎到官网反映,我们将努力改正!");printf("\n\t\t按任意键退出程序\n\t\t"); /*输出完毕*/exit(0);printf("\n\t------------------------------------------------------");}ingming);printf("\n\t\t电话: %s",txl[i].dianhua);printf("\n\t\t地址: %s",txl[i].dizhi);printf("\n\t\t--------------------------------------------------");if (i+1<n){printf("\n\t\t-----------------------");system("pause");ianhua,phone)==0)ingming);printf("\n\t\t电话: %s",txl[i].dianhua);printf("\n\t\t地址: %s",txl[i].dizhi);printf("\n\t\t------------------------------------------------");printf("\n\t\t按任意键返回主菜单:");mark++;getch();return;}}if (mark==0){printf("\n\t\t没有找到联系人的信息");printf("\n\t\t按任意键返回主菜单");getch();return;}}void chazhao_xingming()ingming,name)==0){printf("\n\t\t------------ 以下是您查找的联系人信息 ---------------");printf("\n\t\t姓名: %s",txl[i].xingming);printf("\n\t\t电话: %s",txl[i].dianhua);printf("\n\t\t地址: %s",txl[i].dizhi);printf("\n\t\t---------------------------------------------------");mark++;getch();return;}}if (mark==0){printf("\n\t\t没有找到联系人的信息");printf("\n\t\t按任意键返回主菜单");getch();return;}}xt","w"))==NULL) /*文件空输出*/{printf("\n\t\t不能打开文件,删除失败");readfile();}n=0;printf("\n\t\t纪录已删除,按任意键返回主菜单");getch();return;}elsereturn;}void shanchu_xingming()ingming,name) == 0) ingming);printf("\n\t\t电话: %s",txl[i].dianhua);printf("\n\t\t地址: %s",txl[i].dizhi);printf("\n\t\t--------------------------------");printf("\n\t\t是否删除(y/n)");if (getch()=='y') ianhua,phone)==0){printf("\n\t\t以下是您要删除的联系人纪录:");printf("\n\t\t姓名: %s",txl[i].xingming);printf("\n\t\t电话: %s",txl[i].dianhua);printf("\n\t\t地址: %s",txl[i].dizhi);printf("\n\t\t是否删除(y/n)");if (getch()=='y'){for (m=i;m<n-1;m++) ingming,name)==0) {printf("\n\t\t以下是您要修改的联系人信息");printf("\n\t\t姓名: %s",txl[i].xingming);printf("\n\t\t电话: %s",txl[i].dianhua);printf("\n\t\t地址: %s",txl[i].dizhi);printf("\n\t\t是否修改(y/n)");if(getch()=='y'){printf("\n\t------------请选择修改信息---------------");printf("\n\t 1-修改姓名 2-修改电话 ");printf("\n\t 3-修改地址 ");printf("\n\t-----------------------------------------");printf("\n\t请选择您所所要的服务:");scanf("%s",&c);switch(c){case '1': printf("\n\t请输入新姓名: ");scanf("%s",txl[i].xingming);break;case'2':printf("\n\t请输入新电话: %s");scanf("%s",txl[i].dianhua);break;case'3':printf("\n\t请输入新地址: ");scanf("%s",txl[i].dizhi);break;}}}}if(mark==0){printf("\n\t\t没有找到联系人信息");printf("\n\t是否继续修改?(Y/N):");if(getch()=='y')xiugai_xingming();return;}}void xiugai_dianhua(){char c,phone[15];int i,mark=0;printf("\n\t\t请输入要修改联系人的号码:");scanf("%s",phone);if(n==0){printf("\n\t\t文件中无任何联系人");printf("\n\t\t按任意键返回主菜单");getch();mark++;return;}for(i=0;i<n;i++){if(strcmp(txl[i].dianhua,phone)==0){printf("\n\t\t以下是您要修改的联系人信息");printf("\n\t\t姓名: %s",txl[i].xingming);printf("\n\t\t电话: %s",txl[i].dianhua);printf("\n\t\t地址: %s",txl[i].dizhi);printf("\n\t\t是否修改(y/n)");if(getch()=='y'){printf("\n\t------------请选择修改信息---------------");printf("\n\t 1-修改姓名 2-修改电话 ");printf("\n\t 3-修改地址 ");printf("\n\t-----------------------------------------");printf("\n\t请选择您所所要的服务:");scanf("%s",&c);switch(c){case'1': printf("\n\t请输入新姓名: ");scanf("%s",txl[i].xingming);break;case'2':printf("\n\t请输入新电话: ");scanf("%s",txl[i].dianhua);break;case'3':printf("\n\t请输入新地址: ");scanf("%s",txl[i].dizhi);break;}}}}if(mark==0){printf("\n\t没有该联系人信息");printf("\n\t是否继续修改?(Y/N):");if(getch()=='y')xiugai_dianhua();return;}}。

c语言编写的通讯录代码、

c语言编写的通讯录代码、

#include<stdio.h>#include<string.h>struct friends_list{char name[10];int age;char telephone[13];};int Count=0;void new_friend(struct friends_list friends[]);void search_friend(struct friends_list friends[],char*name);void Modify_friend(struct friends_list friends[],char*name);void Delete_friend(struct friends_list friends[],char*name,int n);int main(void){int choice,n;char name[10];struct friends_list friends[50];do{printf("手机通讯录功能选项: 1:新建2:查询3:修改4:删除0:退出\n"); printf("请选择功能:");scanf("%d",&choice);switch(choice){case 1:new_friend(friends);break;case 2:printf("请输入要查找的联系人姓名:");scanf("%s",name);search_friend(friends,name);break;case 3:printf("请输入您要修改的联系人的姓名:");scanf("%s",name);printf("\n");Modify_friend(friends,name);break;case 4:printf("1:单个删除2:全部删除\n\n");printf("请选择您需要的操作:\n");scanf("%d",&n);if(n==1){printf("输入名字\n");scanf("%s",name);Delete_friend(friends,name,n);break;}if(n==2){Delete_friend(friends,name,n);break;}case 0: break;}}while(choice!=0);printf("谢谢使用通讯录功能!\n");return 0;}void new_friend(struct friends_list friends[ ]){struct friends_list f;if(Count==50){printf("通讯录已满!\n");return;}printf("请输入新的联系人的姓名:");scanf("%s",);printf("请输入新联系人的年龄:");scanf("%d",&f.age);printf("请输入新联系人的联系电话:");scanf("%s",f.telephone);friends[Count] = f;Count++;}/*查询联系人*/void search_friend(struct friends_list friends[],char*name){int i,flag=0;if(Count==0){printf("通讯录是空的!\n");return;}/*在书本源代码的基础上,我修改了一下,让程序可以查询多个相同名字的联系人*/ for(i=0;i<Count;i++)if(strcmp(name,friends[i].name)==0){printf("姓名:%s\t",friends[i].name);printf("年龄:%d\t",friends[i].age);printf("电话:%s\n",friends[i].telephone);flag++;}if(flag==0)printf("无此联系人!\n");}/*修改联系人*/void Modify_friend(struct friends_list friends[],char*name){int k,y=0;int t,j=1,g=0;struct friends_list x;if(Count==0){printf("通讯录是空的!\n");return;}/*首先,判断要修改的联系人中有没有相同的名字*/for(k=0;k<Count;k++){if(strcmp(name,friends[k].name)==0)y++;}/*如果,y等于1,说明只有一个需要修改的联系人*/if(y==1){for(k=0;k<Count;k++){if(strcmp(name,friends[k].name)==0){printf("请重新输入姓名\n");scanf("%s",);printf("请重新输入年龄\n");scanf("%d",&x.age);printf("请重新输入电话号码\n");scanf("%s",x.telephone);friends[k]=x;}}}/*如果,y大于1,说明你选择修改的人中,有多个相同名字的联系人*/ if(y>1){/*用序号来显示所有需要修改的联系人*/printf("此通讯录有%d个名字相同的联系人.\n",y);for(k=0;k<Count;k++){if(strcmp(name,friends[k].name)==0){printf("%d:姓名:%-10s",j,friends[k].name);printf("年龄:%-5d",friends[k].age);printf("电话:%13s\n",friends[k].telephone);j++;}}/*选择需要修改的联系人的序号*/printf("请选择所要修改的联系人序号:\n");scanf("%d",&t);for(k=0;k<Count;k++){if(strcmp(name,friends[k].name)==0){g++;if(g==t){/*如果g等于t,说明在序号中找到了需要修改的人*/ printf("请重新输入姓名\n");scanf("%s",);printf("请重新输入年龄\n");scanf("%d",&x.age);printf("请重新输入电话号码\n");scanf("%s",x.telephone);friends[k]=x;}}}}if(y==0)printf("无此联系人\n");}void Delete_friend(struct friends_list friends[],char*name,int n) {int l,h=0,y=0,i,k;int j=1;int a[50],t,g=0;if(Count==0){printf("通讯录是空的!\n");return;}/*如果,n等于1,说明用户选择单个删除*/if(n==1){/*首先,判断在修改的人当中有没有相同名字的*/for(i=0;i<Count;i++){if(strcmp(name,friends[i].name)==0)y++;}/*如果,y等于1,说明你需要修改的人当中只有一个*/if(y==1){for(l=0;l<Count;l++){if(strcmp(name,friends[l].name)==0){do{friends[l]=friends[l+1];l++;}while(l<Count);h++;Count--;printf("删除成功!\n");}}}/*如果,y>1 说明你要修改的人当中有多个相同的名字*/if(y>1){/*用序号来显示所有需要修改的联系人*/printf("有%d个相同的联系人:\n",y);for(l=0;l<Count;l++){if(strcmp(name,friends[l].name)==0){a[l]=l;printf("%d:姓名:%-10s",j,friends[l].name);printf("年龄:%-5d",friends[l].age);printf("电话:%13s\n",friends[l].telephone);j++;h++;}}/*选择需要修改的联系人序号*/printf("请选择所要删除的联系人序号:\n");scanf("%d",&t);for(k=0;k<Count;k++)if(strcmp(name,friends[k].name)==0){g++;if(g==t){/*如果g等于选择的序号t,就开始删除*/do{friends[k]=friends[k+1];k++;}while(k<Count);}if(g==t){/*这里又使用一个g等于t,表面上看是多余的.其实当在选择的序号超出现有的序号时,起到限制作用*/printf("删除成功!\n");Count--;}}}if(h==0)printf("没有此联系人\n");}/*如果n等于2,说明用户选择了全部删除*/if(n==2){Count=0;/*把Count赋0,也就是清空所有联系人*/printf("已全部删除!\n");} }。

c++写的班级通讯录源代码

c++写的班级通讯录源代码

#include<fstream>#include<iostream>#include<string>using namespace std;void main();//头文件的声明struct Student//结构定义一个人,存放基本信息{ public://公有的struct Student(){n=0;}void add();//添加void show();//显示void search();//查询void delect();//删除void sort();//排序void load(); //读取文件void save(); //保存通讯录private://私有的int n;string name;//姓名int num;//学号int number;//电话号码char addr[30];//地址char eip[6];//邮编char email[30];//Email}Stu[500];//定义一个类peoplevoid Student::add()//添加函数{cout<<endl;cout<<endl;cout<<endl;system("color 4e");cout<<" ※※※※※※※※※欢迎进入班级通讯录管理系统※※※※※※※※"<<endl<<endl;cout<<" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = "<<endl;cout<<" ☆信管1班方绍晟☆"<<endl<<endl;cout<<"************************************************************************"<<endl;cout<<" ********** -------------- ※$$ 这是添加功能:$$※-------------*********"<<endl;cout<<"请输入姓名:";cin>>Stu[n].name;cout<<endl;cout<<"学号:";cin>>Stu[n].num;cout<<endl;cout<<"电话号码:";cin>>Stu[n].number;cout<<endl;cout<<"地址:";cin>>Stu[n].addr;cout<<endl;cout<<"邮编:";cin>>Stu[n].eip;cout<<endl;cout<<"Email:";cin>>Stu[n].email;cout<<endl;n++;char m;cout<<"是否继续添加?(y/n)"; //选择cin>>m;if (m=='y')add();}void Student::show()//显示函数{system("color 5e");//颜色调用char l;cout<<endl;cout<<endl;cout<<endl;cout<<" ※※※※※※※※※欢迎进入班级通讯录管理系统※※※※※※※※"<<endl<<endl;cout<<" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = "<<endl;cout<<" ☆信管1班方绍晟☆"<<endl<<endl;cout<<"************************************************************************"<<endl;cout<<" ****** ---------- ※$$ 这是本通讯录的全部联系人:$$※---------*****"<<endl;cout<<endl;cout<<"姓名学号电话号码地址邮编Email "<<endl;for(int i=0;i<n;i++){cout<<Stu[i].name<<" "<<Stu[i].num<<" "<<Stu[i].number<<""<<Stu[i].addr<<" "<<Stu[i].eip<<" "<<Stu[i].email<<endl;cout<<"----------------------------------------------------"<<endl;}//71cout<<endl;cout<<endl;cout<<"退出请按y/返回请按n"<<endl;cin>>l;if(l=='y')exit(0);//退出程序结构语}void Student::search()//查询函数{system("color 6e");//颜色调用cout<<endl;cout<<endl;cout<<endl;cout<<" ※※※※※※※※※欢迎进入班级通讯录管理系统※※※※※※※※"<<endl<<endl;cout<<" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = "<<endl;cout<<" ☆信管1班方绍晟☆"<<endl<<endl;cout<<"************************************************************************"<<endl; //80cout<<" ********** -------------- ※$$ 这是查询功能:$$※-------------*********"<<endl;cout<<"************ ------------------<1> 按姓名查询-----------------************"<<endl;cout<<"************ ------------------<2>按学号查询----------------************"<<endl;cout<<"************ ----------------- <3> 按电话号码查询-------------************"<<endl;cout<<"************ ----------------- <4>退出-------------************"<<endl;cout<<"请选择查询方式:";int select,i;cin>>select;switch(select){case 1://按姓名查询{cout<<"请输入想要查询的姓名:"<<endl;string name1;cin>>name1;//输入查询姓名loop:for( i=0;i<=n;i++)//{if(Stu[i].name==name1){cout<<"以下是你要查询的联系人:"<<endl;cout<<"姓名学号电话号码地址邮编Email "<<endl;//100cout<<Stu[i].name<<" "<<Stu[i].num<<" "<<Stu[i].number<<" "<<Stu[i].addr<<" "<<Stu[i].eip<<" "<<Stu[i].email<<endl;cout<<"----------------------------------------------------"<<endl;break;}if(Stu[i].name!=name1)//找不到该联系人{cout<<"该学生不存在,请重新输入。

C语言课程设计通讯录管理系统源程序文件

#include"stdio.h"#include <stdlib.h>#include"string.h"#define header1 "|--------------簿------------------|\n"#define header2 "| name | phonenum | adress | \n" #define header3 "|----------|----------------|----------|\n" #define end "|-----------------结束------------------|"typedef struct _CStudent{char szName[20]; /* 学生 */double number; /**/char adress[100]; /*地址*/}CStudent;void menu();int duqu(int *len);int zengjia(int *k,int *len);int chaxun(int *len);int xiugai(int *len);int shanchu(int *len);int input(CStudent* p); /* 从键盘输入 */int output(int *len); /* 向屏幕输出 */int search(CStudent p,int *j,CStudent c[3],int *len);int sname(CStudent p,int *len); /*查询*/int snumber(CStudent p,int *len); /*查询*/void xname(CStudent q[100],int i); /*修改*/void xnumber(CStudent q[100],int i); /*修改*/void xadress(CStudent q[100],int i); /*地址修改*/int sput(int *len,CStudent q[100]);/*删除的处理模块*/main( ){static int len=1;int i,j=0,k=0;while(j==0){menu();do{printf("请选择你需要的服务:\n");scanf("%d",&i);}while(i<0||i>5);//system("cls");switch(i){case 1:{j=zengjia(&k,&len);break;}/*增加*/case 2:{j=duqu(&len);break;} /*读取*/case 3:{j=chaxun(&len);break;} /*查找*/case 4:{j=xiugai(&len);break;} /*修改*/case 5:{j=shanchu(&len);break;}/*删除*/default:{printf(" |**欢迎下次使用薄管理系统!**|\n");j=1;break;}}}}int duqu(int *len){CStudent p[100];int i;FILE *fp;system("cls");printf("\n\t\t|* **** 欢迎进入读取联系人界面! **** *|\n\n");if((fp=fopen("e://file3","r"))==NULL){printf("error!\n");return -1;}printf("%s%s%s",header1,header2,header3);for(i=0;i<*len;i++){fscanf(fp,"%s%lf%s ",p[i].szName,&p[i].number,p[i].adress);printf("| %s | %.0lf | %s |\n",p[i].szName,p[i].number,p[i].adress);}printf("%s\n",end);system("pause");return 0;}void menu(){system("cls");system("color 1F");printf("\n\n\n"); /*输出主菜单*/printf("\t\t|* **** 欢迎进入通讯录管理系统! **** *|\n");printf("\t\t|********************menu********************|\n");printf("\t\t| |\n");printf("\t\t| 1 增加 2 读取 |\n");printf("\t\t| |\n");printf("\t\t| 3 查找 4 修改 |\n");printf("\t\t| |\n");printf("\t\t| 5 删除 0 退出 |\n");printf("\t\t| |\n");printf("\t\t|********************************************|\n");}int zengjia(int *k,int *len){CStudent p[100];int i,j;FILE *fp;system("cls");printf("\n\t\t|* **** 欢迎进入增加联系人界面! **** *|\n\n");printf("请输入增加的个数:\n");scanf("%d",&j);k=&j;(*len)+=j;//system("cls");if((fp=fopen("e://file3","a+"))==NULL){printf("error!\n");return -1;}for(i=0;i<j;i++){printf(":");scanf("%s",&p[i].szName);printf(":");scanf("%lf",&p[i].number);printf("地址:");scanf("%s",p[i].adress);}for(i=0;i<j;i++)fprintf(fp,"\n%s %lf %s ",p[i].szName,p[i].number,p[i].adress);fclose(fp);output(len);return 0;}int chaxun(int *len){int i;CStudent aa,cc;system("cls");printf("\n\t\t|* **** 欢迎进入查询联系人界面! **** *|\n\n");do{printf(" |-------查找功能------|\n");printf(" | |\n");printf(" | 1 按查找 |\n");printf(" | |\n");printf(" | 2 按查找 |\n");printf(" | |\n");printf(" | 0 退出 |\n");printf(" | |\n");printf("请输入:\n");scanf("%d",&i);}while(i>2||i<0);if(i==2){printf("请输入:\n");scanf("%s",&aa.szName);sname(aa,len);}else if(i==1){printf("请输入:\n");scanf("%lf",&cc.number);snumber(cc,len);}elseprintf("欢迎下次使用薄管理系统!\n");return 0;}int xiugai(int *len){CStudent p[100],q[100],a;int i,j,b;FILE *fp;system("cls");printf("\n\t\t|* **** 欢迎进入修改联系人界面! **** *|\n\n");printf("请输入修改人的:\n");scanf("%s",a.szName);if((fp=fopen("e://file3","r+"))==NULL){printf("error!\n");return -1;}for(i=0;i<*len;i++)fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);for(i=0;i<*len;i++){strcpy(q[i].szName,p[i].szName);strcpy(q[i].adress,p[i].adress);q[i].number=p[i].number;}for(i=0;i<*len;i++){if(strcmp(p[i].szName,a.szName)==0){j=1;break;}}if(j==1){printf(" |-------修改功能------|\n");printf(" | |\n");printf(" | 1 修改 |\n");printf(" | |\n");printf(" | 2 修改 |\n");printf(" | |\n");printf(" | 3 修改地址 |\n");printf(" | |\n");do{printf("请选择修改容:\n");scanf("%d",&b);if(b==1)xname(q,i);if(b==2)xnumber(q,i);if(b==3)xadress(q,i);}while(b>3||b<1);printf("修改的联系人重新保存!\n");sput(len,q);}else{printf(" |*****通讯录中没有该人的信息!******|\n");system("pause");}fclose(fp);output(len);return 0;}void xname(CStudent q[100],int i){printf("重置:");scanf("%s",q[i].szName);}void xnumber(CStudent q[100],int i) /*修改*/{printf("重置:");scanf("%lf",&q[i].number);}void xadress(CStudent q[100],int i) /*地址修改*/{printf("地址重置:");scanf("%s",q[i].adress);}int shanchu(int *len){CStudent p[100],q[100],a;int i,j;FILE *fp;system("cls");printf("\n\t\t|* **** 欢迎进入删除联系人界面! **** *|\n\n");printf("请输入删除人的:\n");scanf("%s",a.szName);if((fp=fopen("e://file3","r+"))==NULL){printf("error!\n");return -1;}for(i=0;i<*len;i++)fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);for(i=0;i<*len;i++){strcpy(q[i].szName,p[i].szName);strcpy(q[i].adress,p[i].adress);q[i].number=p[i].number;}for(i=0;i<*len;i++){if(strcmp(p[i].szName,a.szName)==0){j=1;break;}}if(j==1){for(;i<*len-1;i++){strcpy(q[i].szName,q[i+1].szName);strcpy(q[i].adress,p[i].adress);q[i].number=q[i+1].number;}printf("删除成功!\n");(*len)--;sput(len,q);for(i=0;i<*len;i++)fscanf(fp,"%s%lf%s",q[i].szName,&q[i].number,q[i].adress);output(len);}elseprintf(" |*****通讯录中没有该人的信息!******|\n");fclose(fp);return 0;}int sput(int *len,CStudent q[100]){int i;FILE *fp;if((fp=fopen("e://file3","w"))==NULL){printf("error!\n");return -1;}for(i=0;i<*len;i++)fprintf(fp,"%s %lf %s ",q[i].szName,q[i].number,q[i].adress);fclose(fp);return 0;}search(CStudent p,int *j,CStudent c[100],int *len) /*查询*/{FILE *fp;int i,flag=0;if((fp=fopen("e:\\file3","r"))==NULL){printf("cannot write file\n");return -1;}for(i=0;i<*len;i++){fscanf(fp,"%s%lf%s",c[i].szName,&c[i].number,c[i].adress);if(strcmp(c[i].szName,p.szName)==0){flag=1;break;}if(c[i].number==p.number){flag=2;break;}}*j=i;fclose(fp);return flag;}int sname(CStudent p,int *len){CStudent c[100];int i,flag;flag=search(p,&i,c,len);if (flag==1){printf("%s%s%s",header1,header2,header3);printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);printf("%s",end);printf("\n");}elseprintf("Not Found\n");system("pause");return 0;}int snumber(CStudent p,int *len){CStudent c[100];int i,flag;flag=search(p,&i,c,len);if (flag==2){printf("%s%s%s",header1,header2,header3);printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);printf("%s",end);printf("\n");}elseprintf("Not Found\n");system("pause");return 0;}int output(int *len) /*向屏幕输出*/{CStudent p[100];int i;FILE *fp;if((fp=fopen("e://file3","r"))==NULL){printf("error!\n");return -1;}printf("%s%s%s",header1,header2,header3);for(i=0;i<*len;i++){fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);printf("| %s | %.0lf | %s |\n",p[i].szName,p[i].number,p[i].adress);}printf("%s",end);printf("\n");system("pause");return 0;}。

C语言课程设计通讯录管理系统源程序文件


FILE *fp;
system("cls");
printf("\n\t\t|* ****
欢迎进入读取联系人界面 ! **** *|\n\n");
if((fp=fopen("e://file3","r"))==NULL)
{
printf("error!\n");
return -1;
}
printf("%s%s%s",header1,header2,header3);
修改地址 |\n"); |\n");
do
{
printf(" 请选择修改容: \n");
scanf("%d",&b);
if(b==1)
xname(q,i);
if(b==2)
xnumber(q,i);
if(b==3)
xadress(q,i);
}
while(b>3||b<1);
printf(" 修改的联系人重新保存! \n");
}
for(i=0;i<j;i++)
fprintf(fp,"\n%s %lf %s ",p[i].szName,p[i].number,p[i].adress);
fclose(fp);
output(len);
return 0;
}
int chaxun(int *len)
{
int i;
CStudent aa,cc;
printf("\t\t|
|\n");

通讯录系统C语言程序_附完整代码

通讯录系统 C 语言程序_完整代码
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<memory.h> struct student { char names[20]; int year; int month; int day; int sex; //sex=1 表示男生,2 表示女生 char tel[20]; char department[20]; }s[50]; //一共能够登记 50 个人 int cnt=0; void display(){ printf("| 请输入 0-4 |\n"); printf("| 1.注册(增加)|\n"); printf("| 2.删减用户 |\n"); printf("| 3.修改用户 |\n"); printf("| 4.查询功能 |\n"); printf("| 0.退出系统 |\n"); } void in(){ printf("请输入姓名:"); scanf("%s",&s[cnt].names); printf("\n"); printf("请输入出生年月日,中间用空格隔开:"); scanf("%d %d %d",&s[cnt].year,&s[cnt].month,&s[cnt].day); printf("\n"); printf("请输入性别,1 表示男生,2 表示女生:"); scanf("%d",&s[cnt].sex); printf("\n"); printf("请输入电话:"); scanf("%s",&s[cnt].tel); printf("\n"); printf("请输入职位:"); scanf("%s",&s[cnt].department); printf("\n 注册完毕\n"); cnt++; return ;

c语言通讯录程序(共5篇)

c语言通讯录程序(共5篇)第一篇:c语言通讯录程序C语言程序设计实践——通讯录管理系统六、程序源代码及注释#include #include #include #include #define SUM 100 #define STOP 1000typedef struct /*结构体,存放通讯录成员信息,重新定义成member型变量*/ { char name[10]; char tel[15]; char cla[5]; char mail[20]; char qq[15]; }member;member info[SUM]; //所有成员空间FILE *fp;//文件指针,用于打开或保存通讯录文件int count=0; //全局变量,用于计数已存入数量/*-----------------------*/int load(char filename[])//打开通讯录文件{ member *p; int i=0; if((fp=fopen(filename,"rb"))==NULL)return i; else{while(!feof(fp)){p=(member *)malloc(sizeof(member));if(fread(p,sizeof(member),1,fp)==1){strcpy(info[i].name,p->name);strcpy(info[i].tel,p->tel);strcpy(info[i].cla,p->cla);strcpy(info[i].mail,p->mail);strcpy(info[i].qq,p->qq);i++;}free(p);}return i;} } /*------------------*/void save(char filename[]) //保存通讯录文件 {int i;member *p;if((fp=fopen(filename,"wb"))==NULL){printf("无法保存!打开文件%s时出错\n",filename); exit(1);}elsefor(i=0;i{p=(member *)malloc(sizeof(member));strcpy(p->name,info[i].name);strcpy(p->tel,info[i].tel);strcpy(p->cla,info[i].cla);strcpy(p->mail,info[i].mail);strcpy(p->qq,info[i].qq);fwrite(p,sizeof(member),1,fp);free(p);}fclose(fp); } /*-----------------*/ void display(void) //分类查看功能 { system("cls");char dis;char way[5];int i,j=0;choice:printf("**********请选择查看分类***********\n");printf("**********1.亲友**********\n");printf("**********2.同学**********\n");printf("**********3.老师**********\n");printf("**********4.其他**********\n");printf("**********5.查看全部**********\n");printf("**********0.返回上一级菜单**********\n");printf("*****************************************\n"); printf("请选择(1~5或0):");dis=getchar();getchar();switch(dis){case '1':strcpy(way,"亲友");break;case '2':strcpy(way,"同学");break;case '3':strcpy(way,"老师");break;case '4':strcpy(way,"其他");break;case '5':printf("*******全部通讯成员*******\n"); for(i=0;iprintf("姓名:%s\n",info[i].name);printf("电话号码:%s\n",info[i].tel);printf("电子邮箱:%s\n",info[i].mail);printf("QQ号:%s\n",info[i].qq);printf("分类:%s\n",info[i].cla);printf("*****************************\n");j++;}if(j==0){printf("************************\n");printf("无任何通讯成员\n");}j=0;Sleep(STOP);goto choice; break;case '0':return; break;default:printf("*************************\n");printf("输入指令有误!\n");printf("*************************\n");Sleep(STOP);goto choice;}printf("********通讯成员之%s*******\n",way); for(i=0;iif(strcmp(info[i].cla,way)==0){printf("****姓名:%s\n",info[i].name);printf("****电话号码:%s\n",info[i].tel);printf("****电子邮箱:%s\n",info[i].mail);printf("****QQ号:%s\n",info[i].qq);printf("****分类:%s\n",info[i].cla);printf("**********************************\n"); j++;}}if(j==0){printf("该分类中无通讯成员\n");printf("******************\n");}j=0;Sleep(STOP);goto choice; }/*------*/ int add(void)//增加新的成员 {member temp;int i;reinput_name:printf("请输入新成员的姓名:");gets();for(i=0;iif(strcmp(info[i].name,)==0){ printf("该姓名已存在!\n");Sleep(STOP);goto reinput_name;}reinput_tel:printf("请输入新成员的电话号码:"); gets(temp.tel);for(i=0;iif(strcmp(info[i].tel,temp.tel)==0){ printf("该电话号码已存在!\n");Sleep(STOP);goto reinput_tel;}printf("请输入新成员的电子邮箱:"); gets(temp.mail);printf("请输入新成员的QQ号:");gets(temp.qq);printf("请输入新成员的分类:");gets(temp.cla);info[count]=temp;count++;return count; }/*-----*/ int search(char sname[]) //查找功能 { int flag=0,i;for(i=0;iif(strcmp(info[i].name,sname)==0){printf("*****************************\n"); printf("****姓名:%s\n",info[i].name);printf("****电话号码:%s\n",info[i].tel);printf("****电子邮箱:%s\n",info[i].mail);printf("****QQ号:%s\n",info[i].qq);printf("****分类:%s\n",info[i].cla);printf("******************************\n"); flag=1;}return flag; }/*---------*/ int rework(char rname[])//修改功能 {int flag=0,i;for(i=0;iif(strcmp(info[i].name,rname)==0){printf("*********************");printf("请输入新的姓名:");gets(info[i].name);printf("请输入新的电话号码:");gets(info[i].tel);printf("请输入新的电子邮箱:");gets(info[i].mail);printf("请输入新的QQ号:");gets(info[i].qq);printf("请输入新的分类:");gets(info[i].cla);printf("********************");flag=1;}return flag; }/*-----------------------------*/ int erase(char ename[]) //删除功能 {int flag=0,i,j;for(i=0;iif(strcmp(info[i].name,ename)==0){for(j=i;jinfo[j]=info[j+1];count--;flag=1;}return flag; } /*-----------------------------*/ int call(void)//拨号功能 {int i,j,flag=0;char cname[10];printf("**************************\n");for(i=0;iprintf("%s ",info[i].name);}putchar('\n');printf("请输入需要拨号的姓名:");gets(cname);for(i=0;iif(strcmp(info[i].name,cname)==0){printf("正在拨号:");for(j=0;info[i].tel[j]!='\0';j++){printf("%c",info[i].tel[j]);Sleep(300);}putchar('\n');flag=1;}return flag; } /*-----------------------*/ int main(void)//主函数{ char filename[40]; char c,save_j; int t; char s_r_e_name[10];printf("欢迎使用通讯录系统!请输入通讯录文件的有效路径(若文件不存在则自动创建新通讯录)\n"); gets(filename); count=load(filename); system("cls");printf("======================================\ n");printf("==========欢迎使用我的通讯录==========\n");printf("============ 制作:石贵清===========\n");begin:printf("★★★★★★★★★★★★★★★★★★★★★★★★★★\n");printf("※※\n");printf("※通迅录※\n");printf("※※\n");printf("※1. 添加新联系人.5. 分类显示查询.※\n");printf("※※\n");printf("※2. 删除联系人.6.拨出电话.※\n");printf("※※\n");printf("※3. 查询通讯成员.7.保存通讯文件.※\n");printf("※※\n");printf("※4. 修改信息.0. 关闭通迅录.※\n");printf("★★★★★★★★★★★★★★★★★★★★★★★★★★\n"); printf("友情提醒:请在退出本程序之前按7保存通讯文件! \n"); printf("请输入您选择的操作:");c=getchar();getchar(); switch(c) {case '1':if(count==SUM){printf("======= 通讯录空间已满,无法继续录入!===\n"); Sleep(STOP);goto begin; break;}t=add();printf("===== 信息已建立,请尽快保存!=====\n");if(t==SUM){printf("===== 通讯录空间已满,无法继续录入!=====\n"); }Sleep(STOP);goto begin;break; case '2': if(count==0){printf("========================\n");printf("=== 通讯录中无任何成员!====\n");printf("======================\n");Sleep(STOP);goto begin;break; }printf("请输入要删除成员的姓名:");gets(s_r_e_name);t=erase(s_r_e_name);if(!t) {printf("=================\n");printf("==== 查无此人====\n");printf("=================\n"); } else {printf("======================\n");printf("======已成功删除======\n");printf("======================\n"); } Sleep(STOP); goto begin;break; case '3':printf("请输入要查找的成员姓名:");gets(s_r_e_name);t=search(s_r_e_name);if(!t){printf("======================\n");printf("===== 查无此人 =======\n");printf("======================\n");}Sleep(STOP);goto begin;break;case '7':save(filename);printf("==============================\n");printf("======保存成功!=======\n");printf("==============================\n"); Sleep(STOP); goto begin;break;case '4':printf("请输入要修改的成员姓名:");gets(s_r_e_name);t=rework(s_r_e_name);if(!t) {printf("=======查无此人====\n"); }else{printf("=========================\n"); printf("====修改成功====\n");}Sleep(STOP);goto begin;break;case '5':display();Sleep(STOP);goto begin;break;case '6':t=call();if(!t){printf("=============================\n"); printf("====== 输入姓名错误! =======\n");printf("============================\n"); }else{printf("=========================\n");printf("======电话已经拨出=====\n");printf("=======================\n");}Sleep(STOP);goto begin;break;case '0':printf("是否保存数据文件?(Y:是/N:否)");save_j=getchar();if(save_j=='Y'||save_j=='y'){save(filename);printf("====== 保存成功!=======\n");printf("======= 感谢您的使用!再见! ======\n");}else{printf("========================\n");printf("=== 感谢您的使用!再见! ===\n");printf("========================\n");}exit(0); default:printf("=====Sleep(STOP);goto begin; } return 0; }输入指令无效!====");第二篇:C语言程序设计学生通讯录管理系统#include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" #include "stdlib.h" #define null 0 struct record { char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; struct LinkList { struct record US; struct LinkList *next; }a; struct LinkList *head=null; int num=0; FILE *fp; int menu_select(); int adduser(); int list(); int search(); int display(); int add(); int listbyname(); int dele(); int save(); int exit();void main() {system("cls"); for(;;) { switch(menu_select()) { case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:add();break; case 4:dele();break; case 5:save();break; case 6:exit(0); } } } menu_select() { char s[80]; int a; printf("*_* press any key enter menu! *_* \n"); getch(); system("cls"); printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\n"); printf("\t\t 1. 显示记录 \n"); printf("\t\t 2. 按姓名查找\n"); printf("\t\t 3. 插入记录 \n"); printf("\t\t 4. 删除记录\n"); printf("\t\t 5. 记录保存文件\n"); printf("\t\t 6. Quit\n"); printf("\t\t***********************************************\n");do{ printf("\n Enter you choice(0~11):"); scanf("%s",s); a=atoi(s); } while (a<0||a>11); return a; }adduser() { printf("\n\t\t**************** 请输入用户信息****************\n"); printf("\n\t\t输入姓名:"); scanf("%s",&student[num].name); printf("\n\t\t输入电话号码:"); scanf("%s",&student[num].phone); printf("\n\t\t输入地址:"); scanf("%s",&student[num].adress); printf("\n\t\t输入邮编:"); scanf("%s",&student[num].postcode); printf("\n\t\t输入e-mail:"); scanf("%s",&student[num].e_mail); num++; printf("\n\t\t是否继续添加?(Y/N):"); if (getch()=='y') adduser(); return(0); } list() { int i; system("cls"); if(num!=0) { printf("\n\t\t*************** 以下为通讯录所有信息************"); for (i=0;iprintf("\n\t\t姓名:%s",student[i].name); printf("\n\t\t电话:%s",student[i].phone); printf("\n\t\t地址:%s",student[i].adress); printf("\n\t\t邮编:%s",student[i].postcode); printf("\n\t\te-mail:%s",student[i].e_mail); printf("\t\t"); if (i+1add() { int i; if ((fp=fopen("student.bin","wb"))==NULL) { printf("\n\t\t文件打开失败"); } for (i=0;isave() { int j; FILE*fp; fp=fopen("student.txt","w"); if (fp==NULL) printf("can't open the file."); if(num!=0) { for(j=0;j fwrite(student,sizeof(student),1,fp); } } printf("保存成功!"); fclose(fp); return(0); }第三篇:C语言作业:学通讯录学生通讯录一、语言和环境1.实现语言:C语言。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档