电话薄C语言子函数,C语言电话簿

c语言程序设计 电话簿管理系统

int main()

在华蓥等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站制作 网站设计制作按需定制开发,公司网站建设,企业网站建设,品牌网站设计,网络营销推广,外贸网站制作,华蓥网站建设费用合理。

{

LinkQueue Q;

initAddressBook(Q);

int flag=0;

while(flag!=8)

{

printf("※※※※※主※※※※※菜※※※※※单※※※※※\n");

printf("※1、增加联系人          2、删除联系人      ※\n");

printf("※3、修改联系人          4、清空通讯录      ※\n");

printf("※5、查找联系人          6、按组显示        ※\n");

printf("※7、显示全部联系人      8、退出            ※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("请输入编号(1-8):\n");

scanf("%d",flag);

if(flag1||flag8)

{

printf("输入错误请重新输入!\n");

continue;

}

else

{

switch(flag){

case 1:

if(enAddressBook(Q))

printf("增加联系人成功!\n");

else

printf("增加联系人失败!\n");

break;

case 2:

if(delPerson(Q))

printf("删除联系人成功!\n");

else

printf("联系人删除失败!\n");

break;

case 3:

if(update(Q))

printf("修改联系人成功!\n");

else

printf("修改联系人失败!\n");

break;

case 4:

if(clearAddressBook(Q))

printf("通讯录已清空!\n");

else

printf("通讯录清空失败!\n");

break;

case 5:

findByName(Q);

break;

case 6:

findByGroup(Q);

break;

case 7:

disAll(Q);

break;

case 8:

system("cls");

break;

}

}

}

printf("※※※※※感谢您使用本系统!※※※※※※\n");

return 0;

}

//初始化通讯录

void initAddressBook(LinkQueue Q)

{

Q.front=Q.rear=(QNode *)malloc(sizeof(QNode));

if(!Q.front)

exit(1);

else

Q.front-next=NULL;

}

//清空通讯录

bool clearAddressBook(LinkQueue Q)

{

system("cls");

while(addressBookLength(Q)!=0)

{

QNode *p;

p=Q.front-next;

Q.front-next=p-next;

if(p==Q.rear)

Q.rear=Q.front;

free(p);

}

return true;

}

//通讯录当前人数

int addressBookLength(LinkQueue Q)

{

int i=0;

QNode *p;

p=Q.front;

if(Q.front==Q.rear)

i=0;

else

{

while(p!=Q.rear)

{

p=p-next;

i++;

}

}

return i;

}

//删除联系人

bool delPerson(LinkQueue Q)

{

char _name[20];

system("cls");

printf("请输入要删除的联系人的姓名:\n");

scanf("%s",_name);

QNode *p,*q;

if(Q.front==Q.rear)

{

printf("通讯录为空!\n");

return false;

}

else

{

p=Q.front;

q=Q.front-next;

while(q!=Q.rear){

if(strcmp(q-name,_name)==0)

{

p-next=q-next;

free(q);//删除节点

return true;

}

else

{

p=p-next;

q=q-next;

}

}

if((strcmp(q-name,_name)==0))

{

free(q);

Q.front=Q.rear;

return true;

}

else

{

printf("无此联系人!\n");

return false;

}

}

}

//查找联系人

bool findByName(LinkQueue Q)

{

system("cls");

if(Q.front==Q.rear) 

{

printf("手机中无联系人!\n");

return false;

}

else

{

char _name[20];

printf("请输入要查询的联系人姓名:\n");

scanf("%s",_name);

QNode *p;

p=Q.front-next;

while(p-next!=NULL)

{

if(strcmp(p-name,_name)==0)

{

printf("姓名:%s        号码:%s       分组:%s\n",p-name,p-tel,p-group);

return true;

}

p=p-next;

}

if(strcmp(p-name,_name)==0){

printf("姓名:%s        号码:%s       分组:%s\n",p-name,p-tel,p-group);

return true;

}

else

{

printf("查无此人!\n");

return false;

}

}

}

//按组显示联系人

bool findByGroup(LinkQueue Q)

{

system("cls");

if(Q.front==Q.rear) 

{

printf("手机中无联系人!\n");

return false;

}

else

{

char _group[20];

printf("请输入要查询的分组:\n");

scanf("%s",_group);

QNode *p;

p=Q.front-next;

while(p-next!=NULL)

{

if(strcmp(p-group,_group)==0)

{

printf("姓名:%s        号码:%s       \n",p-name,p-tel);

}

p=p-next;

}

if(strcmp(p-group,_group)==0){

printf("姓名:%s        号码:%s        \n",p-name,p-tel);

return true;

}

else

{

printf("无此分组!\n");

return false;

}

}

}

//增加联系人

bool enAddressBook(LinkQueue Q)

{

system("cls");

QNode *p;

p=(QNode *)malloc(sizeof(QNode));

if(!p) 

return false;

else

{

printf("请输入联系人姓名:\n");

scanf("%s",p-name);

printf("请输入联系人号码:\n");

scanf("%s",p-tel);

printf("请输入联系人分组:\n");

scanf("%s",p-group);

if(Q.front-next==NULL)

{

   Q.front-next=p;

   Q.rear=p;

   Q.rear-next=NULL;

}

else

{

p-next=NULL;

Q.rear-next=p;

Q.rear=p;

}

return true;

}

}

//修改联系人

bool update(LinkQueue Q)

{

system("cls");

if(Q.front==Q.rear) 

{

printf("手机中无联系人!\n");

return false;

}

else

{

char _name[20];

printf("请输入要修改的联系人姓名:\n");

scanf("%s",_name);

QNode *p;

p=Q.front-next;

while(p-next!=NULL)

{

if(strcmp(p-name,_name)==0)

{

printf("请输入新联系人姓名:\n");

scanf("%s",p-name);

printf("请输入新联系人号码:\n");

scanf("%s",p-tel);

printf("请输入新联系人分组:\n");

scanf("%s",p-group);

return true;

}

p=p-next;

}

if(strcmp(p-name,_name)==0){

printf("请输入新联系人姓名:\n");

scanf("%s",p-name);

printf("请输入新联系人号码:\n");

scanf("%s",p-tel);

printf("请输入新联系人分组:\n");

scanf("%s",p-group);

return true;

}

else

{

printf("查无此人!\n");

return false;

}

}

}

//显示所有联系人

void disAll(LinkQueue Q)

{

system("cls");

int i=0;

QNode *p;

p=Q.front-next;

if(Q.front==Q.rear)

printf("无联系人!\n");

else

{

printf("           姓名             号码             分组\n");

while(p!=NULL){

printf("%15s  %15s  %15s\n",p-name,p-tel,p-group);

p=p-next;

}

}

}

c语言电话薄设计:

以完成,成功。图如下,包括添加、查找、修改、删除、退出等 ,可以通过生成的txt文件查看结果

#includestdio.h

#includestring.h

#include stdlib.h

struct person

{

char name[8];

char tel[15];

char addr[50];

};

char filename[20]="txl.txt";

FILE *fp;

void output();

void search();

void append();

void modify();

void del();

void main( )

{

int m;

fp=fopen(filename,"w");

fprintf(fp,"%-10s%-20s%-50s\n","姓名","电话号码","住址");

fclose(fp);

while(1)

{

printf("\n\t\t*********欢迎使用通讯录信息管理系统*********\n\n");

printf("\n\t\t添加,请按1");

printf("\n\t\t查找,请按2");

printf("\n\t\t修改,请按3");

printf("\n\t\t删除,请按4");

printf("\n\t\t输出,请按5");

printf("\n\t\t退出,请按0\n");

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

printf("Please select(0--5):");

scanf("%d",m);

if(m=0m=5)

{

switch(m)

{

case 1: append();

break;

case 2: search();

break;

case 3: modify();

break;

case 4: del();

break;

case 5: output();

break;

case 0: exit(0);

}

printf("\n\n操作完毕,请再次选择!");

}

else

printf("\n\n选择错误,请再次选择!");

}

}

/*输出模块output( ):输出通讯录中联系人通讯信息的子函数*/

void output()

{

struct person one;

if((fp=fopen(filename,"r"))==NULL)

{

printf("\n不能打开通讯录!");

exit(0);

}

printf("\n\n%20s\n","通 讯 录");

while(!feof(fp))

{

fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);

printf("%-10s%-20s%-50s",one.name,one.tel,one.addr);

}

fclose(fp);

}

/*添加模块append( ):向通讯录中添加某人通讯信息的子函数*/

void append()

{

struct person one;

if((fp=fopen(filename,"a"))==NULL)

{

printf("\n不能打开通讯录!");

exit(0);

}

printf("\n请输入添加的姓名、电话号码及住址\n");

scanf("%s%s%s",one.name,one.tel,one.addr);

fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);

fclose(fp);

}

/*查找模块search( ):在通讯录中查找某人通讯信息的子函数*/

void search()

{

int k=0;

char namekey[8];

struct person one;

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

scanf("%s",namekey);

if((fp=fopen(filename,"rb"))==NULL)

{

printf("\n不能打开通讯录!");

exit(0);

}

while(!feof(fp))

{

fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);

if(!strcmp(namekey,one.name))

{

printf("\n\n已查到,记录为:");

printf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);

k=1;

}

}

if(!k)

printf("\n\n对不起,通讯簿中没有此人的记录。");

fclose(fp);

}

/*修改模块modify( ):在通讯录中修改某人通讯信息的子函数*/

void modify()

{

int k=0;

long offset;

char namekey[8];

struct person one;

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

scanf("%s",namekey);

if((fp=fopen(filename,"r+"))==NULL)

{

printf("\n不能打开通讯录!");

exit(0);

}

while(!feof(fp))

{

offset=ftell(fp);

fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);

if(!strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf("\n已查到,记录为:");

printf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);

printf("\n请输入新姓名、电话号码及住址:");

scanf("%s%s%s",one.name,one.tel,one.addr);

fseek(fp,offset,SEEK_SET);

/*printf("%ld",ftell(fp));*/

fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);

}

else

printf("\n对不起,通讯录中没有此人的记录。");

fclose(fp);

}

/*删除模块delete( ):在通讯录中删除某人通讯信息的子函数*/

void del()

{

int m,k=0;

long offset1;

char namekey[8];

struct person one;

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

scanf("%s",namekey);

if((fp=fopen(filename,"r+"))==NULL)

{

printf("\n不能打开通讯录!");

exit(0);

}

while(!feof(fp))

{

offset1=ftell(fp);

fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);

if(!strcmp(namekey,one.name))

{

k=1;

if(k)

{

printf("\n已查到,记录为");

printf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);

printf("\n确实要删除,按1;不删除,按0:");

scanf("%d",m);

if(m)

{

fseek(fp,offset1,SEEK_SET);//fseek函数用来改变文件指针位置,SEEK_SET为0,表示文件开头;为1,表示当前位置;为2表示文件结尾;

fprintf(fp,"%-10s%-20s%-50s\n","","","");

}

else

printf("\n您已取消对该通讯人信息的修改。\n");

fclose(fp);

}

   return;

}

}

if(!k)printf("对不起,通讯录中没有此人\n");

}

C语言电话簿程序

#include#include#include#defineM500structMan//定义结构体{charName[8];//名字charDepart[20];//工作单位charQQ[10];//QQ号码charEmail[30];//邮箱};voidtext();//相当于主函数voidtext1();//菜单输出chartext2();//开始的版权信息输出intDelete(ManMan[],intSize);//删除信息voidDisplay(Manman[]);//显示所有记录voidgetch();intInsert(ManMan[],intSize);//插入模块voidModify(ManMan[],intSize);//修改模块intS_asname(ManMan[],intSize,intn);//查找信息voidS_asqq(ManMan[],intSize);//按QQ查找模块intSave(ManMan[],intSize);//把数据写入文件intScan(ManMan[]);//从文本中读取数据voidmain()//主函数{text();//(这边纯属蛋疼,最多加长系统运行时间)}voidtext()//相当于主函数{Manman[M];//500人的结构体数组charcontrol=0;//菜单选择控制变量intsize=0;//保存当前已有的记录if(text2())//这边可不要if,直接调用text2,显示版权信息。{size=Scan(man);//判断文件是否存在while(1)//菜单生成{text1();//菜单显示scanf(


当前标题:电话薄C语言子函数,C语言电话簿
文章URL:http://myzitong.com/article/heohhs.html