当前位置:首页 » 编程语言 » c语言通讯录源代码

c语言通讯录源代码

发布时间: 2022-12-30 04:26:27

㈠ 通讯录代码 c语言 跪求

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 100 void input();//添加新用户函数
void amend();//修改用户信息函数
void delete_client();//删除用户信息函数
void demand_client();//用户信息查询函数
void collect_telephone();//用户信息汇总函数
void save_client(struct telephone message);//保存函数
void demand_name();//按用户名查询
void demand_telephone();//按电话号码查询

struct telephone
{
char client_name[20];
char client_address[30];
char client_telephone[15];
}; //添加新用户函数
void input()
{
struct telephone message;
char reply='y';
char save='y';
while (reply=='y')
{ printf("用户姓名:");
scanf("%s",message.client_name);

printf("电话号码:");
scanf("%s",message.client_telephone); save_client(message);

printf("要继续吗?(y/n):");
scanf(" %c",&reply);
}
printf("按任意键返回主菜单……\n");
getchar();
getchar();
} //保存函数
void save_client(struct telephone message)
{
FILE *fp;
fp=fopen("message.dat","a+");
if (fp!=NULL)
{
fwrite(&message,sizeof(struct telephone),1,fp);
}
else
{
printf("\n打开文件时出现错误,按任意键返回……\n");
getchar();
return;
}
fclose(fp);
} //修改用户信息函数
void amend()
{
struct telephone message;
FILE *fp;
char amend_name[20];
char reply='y';
char found='y';
char save='y';
int size=sizeof(struct telephone);
while (reply=='y')
{
found='n';
fp=fopen("message.dat","r+w");
if (fp!=NULL)
{
system("cls");
printf("\n请输入要修改的姓名:");
scanf("%s",amend_name);
while ((fread(&message,size,1,fp))==1)
{
if ((strcmp(amend_name,message.client_name))==0)
{
found='y';
break;
}
}
if (found=='y')
{ printf("==========================================\n");
printf("\n用户姓名:%s\n",message.client_name);

printf("\n电话号码:%s\n",message.client_telephone);
printf("==========================================\n");
printf("修改用户信息:\n");
printf("\n用户姓名:");
scanf("%s",message.client_name); printf("\n电话号码:");
scanf("%s",message.client_telephone);
printf("\n要保存吗?(y/n):");
scanf(" %c",&save);
if (save=='y')
{
fseek(fp,-size,1);
fwrite(&message,sizeof(struct telephone),1,fp);
}
}
else
{
printf("无此人信息!\n");
}
}
else
{
printf("打开文件时出现错误,按任意键返回……\n");
getchar();
return;
}
fclose(fp);
printf("要继续吗?(y/n):");
scanf(" %c",&reply);
}
printf("按任意键返回主菜单……\n");
getchar();
getchar();
} //删除用户信息函数
void delete_client()
{
struct telephone message[N];
struct telephone temp_str;
struct telephone delete_str;
int i=0,j=0;
char reply='y';
char found='y';
char confirm='y';
char delete_name[20];
FILE *fp;
while (reply=='y')
{
system("cls");
fp=fopen("message.dat","r");
if (fp!=NULL)
{
i=0;
found='n';
printf("\n请输入姓名:");
scanf("%s",delete_name);
while ((fread(&temp_str,sizeof(struct telephone),1,fp))==1)
{
if ((strcmp(delete_name,temp_str.client_name))==0)
{
found='y';
delete_str=temp_str;
}//查找要删除的记录
else
{
message[i]=temp_str;
i++;
}//将其它无关记录保存起来
}
}
else
{
printf("打开文件时出现错误,按任意键返回……\n");
getchar();
return;
}
fclose(fp);
if (found=='y')
{
printf("==========================================\n");
printf("用户姓名:%s\n",delete_str.client_name);

printf("电话号码:%s\n",delete_str.client_telephone);
printf("==========================================\n");
}
else
{
printf("无此人信息,按任意键返回……\n");
getchar();
break;
}
printf("确定要删除吗?(y/n):");
scanf(" %c",&confirm);
if (confirm=='y')
{
fp=fopen("message.dat","w");
if (fp!=NULL)
{
for(j=0;j<i;j++)
{
fwrite(&message[j],sizeof(struct telephone),1,fp);
}
printf("记录已删除!!!\n");
}
else
{
printf("打开文件时出现错误,按任意键返回……\n");
getchar();
return;
}
fclose(fp);
}
printf("要继续吗?(y/n):");
scanf(" %c",&reply);
}
printf("按任意键返回主菜单……\n");
getchar();
}
//用户信息查询函数
void demand_client()
{
int choice=1;
while (choice!=3)
{
system("cls");
printf("电话查询菜单\n");
printf(" 1 按联系人姓名查询\n");
printf(" 2 按联系人电话号码查询\n");
printf(" 3 返回主菜单\n");
printf("请选择(1-3):");
scanf("%d%*c",&choice);
if (choice>3)
{
printf("请输入1-6之间的整数\n");
printf("按任意键返回菜单……\n");
getchar();
continue;
}
if (choice==1)
{
demand_name();
}
else if (choice==2)
{
demand_telephone();
}
}
} //按用户名查询
void demand_name()
{
struct telephone message;
FILE *fp;
char amend_name[20];
char reply='y';
char found='y';
while (reply=='y')
{
found='n';
fp=fopen("message.dat","r+w");
if (fp!=NULL)
{
system("cls");
printf("\n请输入姓名:");
scanf("%s",amend_name);
while ((fread(&message,sizeof(struct telephone),1,fp))==1)
{
if ((strcmp(amend_name,message.client_name))==0)
{
found='y';
break;
}
}
if (found=='y')
{ printf("==========================================\n");
printf("用户姓名:%s\n",message.client_name); printf("电话号码:%s\n",message.client_telephone);
printf("==========================================\n");
}
else
{
printf("无此人信息!\n");
}
}
else
{
printf("打开文件时出现错误,按任意键返回……\n");
getchar();
return;
}
fclose(fp);
printf("要继续吗?(y/n):");
scanf(" %c",&reply);
}
printf("按任意键返回主菜单……\n");
getchar();
getchar();
} //按电话号码查询
void demand_telephone()
{
struct telephone message;
FILE *fp;
char telephone[20];
char reply='y';
char found='y';
while (reply=='y')
{
found='n';
fp=fopen("message.dat","r+w");
if (fp!=NULL)
{
system("cls");
printf("\n请输入电话号码:");
scanf("%s",telephone);
while ((fread(&message,sizeof(struct telephone),1,fp))==1)
{
if ((strcmp(telephone,message.client_telephone))==0)
{
found='y';
break;
}
}
if (found=='y')
{ printf("==========================================\n");
printf("用户姓名:%s\n",message.client_name); printf("电话号码:%s\n",message.client_telephone);
printf("==========================================\n");
}
else
{
printf("无此电话号码的有关信息!\n");
}
}
else
{
printf("打开文件时出现错误,按任意键返回……\n");
getchar();
return;
}
fclose(fp);
printf("要继续吗?(y/n):");
scanf(" %c",&reply);
}
printf("按任意键返回主菜单……\n");
getchar();
getchar();
} //用户信息汇总函数
void collect_telephone()
{
struct telephone message;
FILE *fp;
fp=fopen("message.dat","r");
if (fp!=NULL)
{
system("cls");
printf("\n用户姓名\t\t电话号码\n");
while ((fread(&message,sizeof(struct telephone),1,fp))==1)
{
printf("\n%-24s",message.client_name); printf("%-12s\n",message.client_telephone);
}
}
else
{
printf("打开文件时出现错误,按任意键返回……\n");
getchar();
return;
}
fclose(fp);
printf("按任意键返回主菜单……\n");
getch();
} void main()
{
char choice[10]="";
int len=0;
while (choice[0]!='7')
{ printf("\t==========电话本号码查询系统=============\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 7、退出\n");
printf("\t=========================================\n");
printf("请选择(1-7):");
scanf("%s",choice);
len=strlen(choice);
if (len>1)
{
printf("请输入1-6之间的整数\n");
printf("按任意键返回主菜单……\n");
getchar();
getchar();
continue;
} switch (choice[0]) {
case '1':
input();
break;
case '2':
amend();
break;
case '3':
delete_client();
break;
case '4':
demand_client();
break;
case '5':
collect_telephone();
break; default:
break;

}
}
}

㈡ c语言通讯录

关于这道题的基本思路,我可以告诉你:
通讯录一般由如下几个信息组成:姓名、性别、通讯地址、电话号码、邮编等组成。
如果想编写一个20个人的通讯录程序,那么就可以定义一个大小为 20 的结构数组。C 语言详细代码如下:
#include <stdio.h>
#define ADDRESS_LEN 100 /* 通讯地址长度宏定义,可以根据需要进行修改 */
#define PHONENUM_LEN 20 /* 电话号码长度宏定义,可以自行修改 */
#define NUMBER 20 /* 20 个人的通讯录,可以自行修改 */
struct address /* 定义一个通讯录的结构数组 */

{
char name[20] ; /* 姓名 */

char sex[5] ; /* 性别 */

char address[ADDRESS_LEN] ; /* 通讯地址 */

char telepone_num[PHONENUM_LEN] ; /* 电话号码 */

char zip[10 ] ; /* 邮政编码 */

} ;
void main( )
{
int i = 0 ;

struct address my_address[NUMBER] ;

for( i = 0 ; i < NUMBER ; i ++ )
{

gets(my_address[i].name) ;

gets(my_address[i].sex) ;

gets(my_address[i].address);

gets(my_address[i].telephone_num);

gets(my_address[i].zip);

}

for( i = 0 ; i < NUMBER ; i ++ )
printf("%s\t%s\t%s\t%s\t%s\n", my_address[i].name,my_address[i].sex,my_address[i].address,my_address[i].telephone_num,my_address[i].zip);

}
你可以将该程序输入到电脑中,上机编译、链接、并运行试一试。

㈢ c语言通讯录代码

#include
#include
#include
#include
#define maxlen 15
struct persons
{
int num;
char name[20];
char e_addr[20];
char tel_no[15];
char sim_no;
char arch;
}persons[maxlen];

typedef struct lnode{
int num;
char name[20];
char e_addr[20];
char tel_no[15];
char sim_no;
char arch;
struct lnode *next;
}listnode,*linklist;

linklist head=NULL,r=NULL;
listnode *s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9;
int i;
char name1[10],ch;char tel_no1[15];char arch1;char sim_no1;char e_addr1[20];
char s1[20];
FILE *fp;

void creat()
{
int j;
long k;
fp=fopen("数据文件.txt","r t");
if(fp!=NULL)
{for(i=0;i<=maxlen;i++ )
{ j=fgetc(fp);
if(j==EOF)
return;
k=i;
fseek(fp,k*sizeof(struct persons),0);
fread(&persons[i],sizeof(struct persons),1,fp);

s=(linklist)malloc(sizeof(listnode));
s->num=persons[i].num;
strcpy(s->name,persons[i].name);
strcpy(s->e_addr,persons[i].e_addr);
strcpy(s->tel_no,persons[i].tel_no);
s->sim_no=persons[i].sim_no;
s->arch=persons[i].arch;
if(head==NULL)
{head=s;r=head;head->next=NULL;}
else
{r->next=s;
r=s;r->next=NULL;
}}fclose(fp);}
else
{ fp=fopen("数据文件.txt","w");
i=1;
}
}
void ShowA()
{p1=head;

while(p1!=NULL)
{if(p1->arch=='A')
{
cout<<endl;
cout<name<<endl;
cout<tel_no<<endl;
cout<sim_no<<endl;}
p1=p1->next;continue;}
}
void ShowB()
{p1=head;

while(p1!=NULL)
{if(p1->arch=='B')
{
cout<<endl;
cout<name<<endl;
cout<tel_no<<endl;
cout<sim_no<<endl;}
p1=p1->next;continue;}
}
void ShowC()
{p1=head;

while(p1!=NULL)
{if(p1->arch=='C')
{
cout<<endl;
cout<name<<endl;
cout<tel_no<<endl;
cout<sim_no<<endl;}
p1=p1->next;continue;}
}
void Show()
{char ch1;
printf(" Which arch do you want to show?\n");
cout<<" A:同学同事"<<"B:家人"<<"C:其他"<<endl;
cout<<"请选择:"<<endl;
cin>>ch1;
switch(ch1)
{case'A':ShowA();break;
case'B':ShowB();break;
case'C':ShowC();break;
default:cout<<"error"<<endl;
}
}

void Delete()
{ printf("\n\n\t 请输入要删除用户的姓名:");

cin>>name1;
p4=head;
if(strcmp(p4->name,name1)==0)
{ p4=p4->next;
head=p4;
}
else
{ while(strcmp(p4->next->name,name1)!=0)
p4=p4->next;
p5=p4->next;
p4->next=p5->next;
free(p5);
}
}
void Input()
{ s=(linklist)malloc(sizeof(listnode));

printf("\n\n\t 请输入该用户的信息:");

cout<<"name:";
cin>>s->name;
cout<<"tel_no:";
cin>>s->tel_no;
cout<<"sim_no:";
cin>>s->sim_no;
cout<<"e_addr:";
cin>>s->e_addr;
cout<<"arch:";
cin>>s->arch;

if(head==NULL)printf("\n\n");
else
{p8=head;
while(p8!=NULL&&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!=0)
p8=p8->next;
if(p8!=NULL)
{printf(" 您添加的用户已存在!");
free(s);}}

if(head==NULL)
{head=s;head->next=NULL;}
else
{r->next=s;
r=s;r->next=NULL;}
}

void Alter()
{

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

cin>>name1;
p3=head;
while(p3!=NULL&&strcmp(name1,p3->name)!=0)
p3=p3->next;
if(p3==NULL)
printf("\n\n\t 您选择的用户不存在!");
else
{ printf("\n\n\t 请输入该用户的新信息!");

cout<<"name:";
cin>>name1;
cout<<"tel_no:";
cin>>tel_no1;
cout<<"e_addr:";
cin>>e_addr1;
cout<<"sim_no:";
cin>>sim_no1;
cout<<"arch:";
cin>>arch1;
while(p9!=NULL&&strcmp(name1,p9->name)!=0&&strcmp(tel_no1,p9->tel_no)!=0)
p9=p9->next;
if(p9==NULL)
{strcpy(p3->name,name1);
strcpy(p3->tel_no,tel_no1);
strcpy(p3->e_addr,e_addr1);
p3->sim_no=sim_no1;
p3->arch=arch1;
}
else
printf(" 您添加的用户已存在!");

}
}
void Dial()
{int a;char b;
cout<<"1.拨叫用户:"<<endl;
cout<<"2.使用单键拨号:"<<endl;
cin>>a;
p0=head;
if(a==1)
{cout<<" 请输入拨叫用户的姓名:";
cin>>name1;
while(strcmp(name1,p0->name)!=0&&p0!=NULL)
p0=p0->next;
if(p0==NULL)
cout<<" 您选择的用户不存在!";
else
/*for(c=0;c<15;c++)
{cout<<endl;
cout<<(*p0).tel_no[c];}*/
{cout<<endl;
cout<tel_no;
cout<<endl;}
}
else
{cout<<"请输入单键号码:";
cin>>b;
while(p0!=NULL&&b!=p0->sim_no)
p0=p0->next;
if(p0==NULL)
cout<<" 您输入的单键号码不存在!";
else
{cout<<endl;
cout<name<<endl;
cout<tel_no;
cout<<endl;}
}
}

void Save()
{ int j;
fp=fopen("数据文件.txt","w");
for(p2=head,j=0;p2!=NULL;j++ ,p2=p2->next)
{
strcpy(persons[j].name,p2->name);
strcpy(persons[j].tel_no,p2->tel_no);
persons[j].sim_no=p2->sim_no;
strcpy(persons[j].e_addr,p2->e_addr);
persons[j].arch=p2->arch;
fwrite(&persons[j],sizeof(struct persons),1,fp);
}
}

void main()
{ creat();
do
{
printf(" **********************************************************");
printf("\n\n\n\n\t 欢迎来到通讯录!");
printf("\n\n\t\t 请选择操作:");
printf("\n\t\t1. 显示通讯录");
printf("\n\t\t2. 删除通讯录");

printf("\n\t\t3. 添加通讯录");
printf("\n\t\t4. 编辑通讯录");
printf("\n\t\t5. 拨号功能");
printf("\n\t\t6. 保存刚才的操作并退出\n");
printf(" **********************************************************");
printf("\n\n\n");
printf("\t 选择您想要的操作:");
cin>>ch;
switch(ch)
{ case '1': Show();
break;
case '2': Delete();
break;
case '3': Input();
break;
case '4': Alter();
break;
case '5': Dial();
break;
case '6': Save();
fclose(fp);
exit(0);
break;
default:
printf("\n\t*********************************\n");
printf("\n\t The num should 1-6!!! \n");
printf("\n\t**********************************");
break;
}
}while(1);
}

转的.......woyuyuchao

㈣ 通讯录的C语言代码

分析:
跟据楼主的意思!我们可以得出,这个程序只要求我们写查询通迅录的内容
而通迅录的内容,可以通过初始化得出!
简而言之:写一个查询函数
呵呵···把问题相通了,我们就开始写算法吧let's go!!!
----------------------------------------------------------------
算法:
1.获得用户的输入 (就是要查询的对象的名字)
2.查询 (在这我用穷举通迅录的方式查询了,^_^&&^_^)
3.输出查询结果

算法就这样被我们征服了!!!呵呵~~好有成就感哇!!
但我们现在还不能开始编码,我得们先想好怎么编,要做到胸有成竹!!!
那我现在来想一下该怎么编码吧!let's go!!!
----------------------------------------------------------------
要保存通迅的信息,那么我们得用一个结构体吧:
struct friends
{
char name[20]; /* 名字不能写得太长哦 */
char province[20]; /* 省份 */
char city[20]; /* 所在城市 */
char nation[20]; /* 民族 */
char sex[2]; /* 性别 M/F */
int age; /* 年龄 */
};

要获得用户输入,要用个 char search_name[20];
查询结果反回一个数,记录对象在通迅录中的位置:int index;
查询中有用要循环,用一个记数器: int i;
----------------------------------------------------------------
OK,该用的变量我们都想好了!算法我们也想好了。还等什么呢,开始编码吧
呵呵~~是不是等这个时候都等得急了~~~~~
-------------------------------------------------------------------
*******************************************************************
******* 程序实现:
*******************************************************************
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/* 定义保存通迅录的信息 */
struct friends
{
char name[20]; /* 名字 */
char province[20]; /* 省份 */
char city[20]; /* 所在城市 */
char nation[20]; /* 民族 */
char sex[2]; /* 性别 M/F */
int age; /* 年龄 */
};

void getname (char search_name[]);
int search (struct friends friend_list[], char search_name[]);
void print_result(struct friends friend_list[], int index);

int main (void)
{
int index;
char search_name[20];
struct friends friend_list[4] = {
,
,
,
,
};

(void) getname (search_name); /* 获得用户输入 */
index = search (friend_list, search_name); /* 查询 */
(void) print_result (friend_list,index); /* 打印结果 */

return 0;
}

/****************************************
*** 函数名:getname
*** 功能:获得用户要查询的对象的名字
****************************************/
void getname (char search_name[])
{
printf ("Pleace enter the name of your friends you want to search>>");
scanf ("%s", search_name);
}

/****************************************
*** 函数名:search
*** 功能:查询对象
****************************************/
int search (struct friends friend_list[], char search_name[])
{
int i;

/* 穷举通迅录 */
for (i = 0; i < 4; ++i)
{
if (strcmp(friend_list[i].name, search_name) == 0)
{
return (i);
}
}

if (i == 4)
{
printf ("I am sorry! there is nobody by the name you enter!\n");
fflush(stdin);
getchar();
exit (0);
}
}

/****************************************
*** 函数名:print_result
*** 功能:打印结果
****************************************/
void print_result(struct friends friend_list[], int index)
{
printf ("the imformation of %s:\n", friend_list[index].name);
printf ("------------------------------------------------\n");
printf (" NAME: %-s\n", friend_list[index].name);
printf ("PROVINCE: %-s\n", friend_list[index].province);
printf (" CITY: %-s\n", friend_list[index].city);
printf (" NATION: %-s\n", friend_list[index].nation);
printf (" SEX: %-s\n", friend_list[index].sex);
printf (" AGE: %-d\n", friend_list[index].age);
printf ("-------------------------------------------------\n");

fflush(stdin);
getchar();

}

*****************************************************************************
*****************************************************************************
呵呵~~一口气把它写出来了!!!前期写算法是很重要的!!
现在还没结束!!我们要先来测试一下!!
--------------------------------------
Pleace enter the name of your friends you want to search>>lihan
the imformation of lihan:
------------------------------------------------
NAME: lihan
PROVINCE: liaoning
CITY: huluo
NATION: han
SEX: M
AGE: 19
-------------------------------------------------
--------------------------------------
Pleace enter the name of your friends you want to search>>lbmzwyy
I am sorry! there is nobody by the name you enter!

说明成功了~~~呵呵~~太高兴了~~
--------------------------------------
请记注一点:克制编码的诱惑
无论多么小的问题都要先分析好问题,想好算法,才能开始编码!!!我相信这样做一定对你有好处的!

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

㈤ 用C语言做通讯录

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
struct Telephone
{
char number[200];
char name[20];
char off[20];
char addrass[20];
char mail[20];
char telephone[20];
struct Telephone *next;
};
typedef struct Telephone TEL;
TEL *head=NULL;
void Menu(); /*菜单*/
void Crease(); /*添加条目*/
void print(); /*输出条目*/
void Search(); /*查找条目( 按姓名 )*/
void Delate(); /*删除信息*/
void Save(); /*保存到文件*/
void Open(); /*打开文件*/
void Change(); /*修改信息*/
void Arrange(); /*排序*/
void main()
{
char ch;
Open(); /*打开文件*/
while(1)
{
Menu(); /*显示菜单*/
scanf(" %c",&ch);
switch(ch)
{
case '1':Crease(); /*添加条目*/
break;

case '2':Search(); /*查找条目1.按姓名*/
break;
case '3':Change(); /*修改信息*/
print();
break;
case '4': Delate(); /*删除信息*/
print(); /*输出删除后的结果*/
break;
case '5':print(); /*输出条目*/
break;
case '0':Save(); /*保存并释放内存*/
exit(0); /*退出*/
break;
default:
printf("选择错误!");
break;
}
}
}

/*菜单*/
void Menu()
{
printf("\n*****************通讯录系统*****************\n");
printf("\t1.录入。\n");
printf("\t2.按姓名查询\n");
printf("\t3.修改信息\n");
printf("\t4.删除\n");
printf("\t5.输出\n");
printf("\t0.保存并退出!\n");
printf("*************************************************\n");
printf("\t请选择:");
}

/*添加条目*/
void Crease()
{
TEL *p1=NULL,*p2=NULL;
p1=(TEL *)malloc(sizeof(TEL)); /*申请结点*/
printf("输入编号:");
scanf("%s",p1->number);
printf("输入姓名:"); /*添加信息*/
scanf("%s",p1->name);
printf("输入单位:");
scanf("%s",p1->off);
printf("输入地址:");
scanf("%s",p1->addrass);
printf("输入邮箱:");
scanf("%s",p1->mail);
printf("输入电话:");
scanf("%s",p1->telephone);
p1->next=NULL; /*保存到链表*/

if(head==NULL)
{
head=(TEL *)malloc(sizeof(TEL)); /*申请空间*/
head->next=p1;
}
else
{
for(p2=head;p2->next!=NULL;p2=p2->next); /*找到结点尾*/
p2->next=p1;
}
printf("此信息已添加!");
}

/*输出学生信息*/
void print()
{
TEL *p=NULL;
if(head==NULL)
{
printf("此通讯录中无记录,请输入记录后在使用本功能!\n");
return;
}
printf("**************通讯录系统*********************\n"); /*输出信息*/
printf("编号\t姓名\t单位\t地址\t邮箱\t电话\n");
for(p=head->next;p!=NULL;p=p->next)
printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->number,p->name,p->off,p->addrass,p->mail,p->telephone);
}

/*查找信息1.按姓名*/
void Search()
{
TEL *p;
char findname[20];
printf("请输入要查找的姓名:");
scanf("%s",findname);
printf("**************通讯录系统*********************\n");
printf("编号\t姓名\t单位\t地址\t邮箱\t电话\n");
for(p=head;p!=NULL;p=p->next)
{
if(strcmp(p->name,findname)==0)
printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->number,p->name,p->off,p->addrass,p->mail,p->telephone);

}
}

/*删除信息*/
void Delate()
{
char findname[20]; /*先查找 后删除*/
TEL *p = head, *pr ;
printf("输入要删除的姓名:");
scanf(" %s",findname);
if (head->next == NULL)
{
printf("空链表!\n");
return;
}
while ((strcmp(p->name,findname)!=0 )&& p->next != NULL)
{
pr =p;
p =p->next;
}
if (strcmp(findname, p->name)==0) /*输出删除信息*/
{
printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->number,p->name,p->off,p->addrass,p->mail,p->telephone);
if (p == head->next)
head->next = p->next;
else
pr->next = p->next;
free(p);
printf("此信息已删除!");
}
else printf("无此信息!\n");

}
void Save() /*保存链表信息到文件并释放内存空间*/
{
TEL *p=NULL;
FILE *fp;
char *Book="books.txt";
if(head==NULL)
{
printf("\n记录为空!\n");
return;
}
else
p=head->next;
if((fp=fopen(Book,"wb+"))==NULL)
{
printf("\n打不开文件!\n");
return;
}
while(p!=NULL) /*保存信息*/
{
fwrite(p,sizeof(TEL),1,fp);
p=p->next;
}
printf("保存完毕!\n");
fclose(fp);
/*****释放链表空间*****/
for(;head->next!=NULL;)
{
p=head->next;
head->next=head->next->next;
free(p);
}
free(head);
}
/*文件信息输出到链表*/
void Open()
{
FILE *fp;
TEL *p1=NULL,*p2=NULL,*temp=NULL;
if((fp=fopen("books.txt","rb+"))==NULL)
{
printf("\n****************通讯录******************\n");
return;
}
head=(TEL *)malloc(sizeof(TEL));
head->next=NULL;
temp=p2=head;
while(! feof(fp)) /*循环读取*/
{
p1=(TEL *)malloc(sizeof(TEL));
temp=p2;
p2->next=p1;
p2=p1;
fread(p1,sizeof(TEL),1,fp);
}
temp->next=NULL;
fclose(fp); /*关闭文件*/
}
void Change()
{
TEL *p;
char name[20];
printf("输入要修改人的姓名:");
scanf("%s",name);

for(p=head->next;p!=NULL;p=p->next)
{
if(strcmp(p->name,name)==0)
{printf("**************通讯录系统*********************\n");
printf("编号\t姓名\t单位\t地址\t邮箱\t电话\n");
printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->number,p->name,p->off,p->addrass,p->mail,p->telephone);
printf("输入要修改的内容:\n");
printf("输入编号:");
scanf("%s",p->number);
printf("输入姓名:");
scanf("%s",p->name);
printf("输入单位:");
scanf("%s",p->off);
printf("输入地址:");
scanf("%s",p->addrass);
printf("输入邮箱:");
scanf("%s",p->mail);
printf("输入电话:");
scanf("%s",p->telephone);
}
else printf("无此信息!\n");
}
}

自己对比一下

㈥ 用C语言编写手机通讯录程序

以前写了一个简单的:
#include <stdio.h>
#include <stdlib.h> /*与malloc.h差不多*/
#include <string.h>
#include <iostream>
using namespace std;
#define maxlen 15
struct persons
{int num; /*定义结构体数组用于缓存数据*/
char name[20];
char e_addr[20];
char tel_no[15];
char sim_no;
char arch;
}persons[maxlen];

typedef struct lnode
{ /*通讯录结构中结点的定义*/
int num;
char name[20];
char e_addr[20];
char tel_no[15];
char sim_no;
char arch;
struct lnode *next;
}listnode,*linklist;

linklist head=NULL,r=NULL; /*定义头指针和尾指针*/
listnode *s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9;
int i;
char name1[10],ch;
char tel_no1[15];
char arch1;
char sim_no1;
char e_addr1[20];
char s1[20];
FILE *fp; /*定义文件指针*/

void creat() /*将文件的信息读入结构体数组在转存入链表中*/
{ int j;
long k;
fp=fopen("数据文件.txt","r t"); /*打开文件*/
if(fp!=NULL)
{for(i=0;i<=maxlen;i++ )
{ j=fgetc(fp);
if(j==EOF)
return;
k=i;
fseek(fp,k*sizeof(struct persons),0); /*读取一个人的信息*/
fread(&persons[i],sizeof(struct persons),1,fp);

s=(linklist)malloc(sizeof(listnode)); /*装存入链表中*/
s->num=persons[i].num;
strcpy(s->name,persons[i].name);
strcpy(s->e_addr,persons[i].e_addr);
strcpy(s->tel_no,persons[i].tel_no);
s->sim_no=persons[i].sim_no;
s->arch=persons[i].arch;
if(head==NULL) /*用尾插法将其插入链表中*/

else
{r->next=s;
r=s;r->next=NULL;
}
}fclose(fp);
}
else
{ fp=fopen("数据文件.txt","w"); /*不能打开另开辟一个文件*/
i=1;
}
}

void Show()

void Delete()

void Input() /*向.通讯录中输入一个人的信息*/
{ s=(linklist)malloc(sizeof(listnode));
printf("\n\n\t请输入该用户的信息:");
printf("姓名:");
scanf("%s",&s->name);
printf("电话号码:");
scanf("%s",&s->tel_no);
printf("单键拨号:");
scanf("%s",&s->sim_no);
printf("E-mail地址:");
scanf("%s",&s->e_addr);
printf("类别:");
scanf("%s",&s->arch);

if(head==NULL)printf("\n\n");
else
{p8=head;
while(p8!=NULL&&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!=0)
p8=p8->next;
if(p8!=NULL)
{printf("您添加的用户已存在!");
free(s);}}
if(head==NULL)
{
s->next = 0;
head=s;
r = s;
}
else
{
s->next = 0;
r->next = s;
r = s;

}
}
void Alter()

int main()
{
system("color a");
creat();
do
{
printf("\n\n\t\t请选择操作:");
printf("\n\t\t1.显示通讯录");
printf("\n\t\t2.删除通讯录");
printf("\n\t\t3.添加通讯录");
printf("\n\t\t4.编辑通讯录");
printf("\n\n\n");
printf("\t请选择:");
cin>>ch;
switch(ch)
{ case '1': Show(); /*用单条件多选择语句实现调用与循环*/
break;
case '2': Delete();
break;
case '3': Input();
break;
case '4': Alter();
break;
fclose(fp);
exit(0);
break;
default:
printf("\n\t The num should 1-6!!! \n");
break;
}
}
while(1);
}

㈦ 跪求注释C语言通讯录代码 谢谢 QAQ代码太长 急需 详细一点 感谢

发我帮你注释下

㈧ C语言的通讯录代码是什么

#include x0dx0a#include x0dx0a#include x0dx0a#include x0dx0a#define N 100 void input();//添加新用户函数 x0dx0avoid amend();//修改用户信息函数 x0dx0avoid delete_client();//删除用户信息函数 x0dx0avoid demand_client();//用户信息查询函数 x0dx0avoid collect_telephone();//用户信息汇总函数 x0dx0avoid save_client(struct telephone message);//保存函数 x0dx0avoid demand_name();//按用户名查询 x0dx0avoid demand_telephone();//按电话号码查询 x0dx0a x0dx0astruct telephone x0dx0a{ x0dx0achar client_name[20]; x0dx0achar client_address[30]; x0dx0achar client_telephone[15]; x0dx0a}; //添加新用户函数 x0dx0avoid input() x0dx0a{ x0dx0astruct telephone message; x0dx0achar reply='y' x0dx0achar save='y' x0dx0awhile (reply=='y') x0dx0a{ printf("用户姓名:"); x0dx0ascanf("%s",message.client_name); x0dx0a x0dx0aprintf("电话号码:"); x0dx0ascanf("%s",message.client_telephone); save_client(message); x0dx0a x0dx0aprintf("要继续吗?(y/n):"); x0dx0ascanf(" %c",&reply); x0dx0a} x0dx0aprintf("按任意键返回主菜单??\n"); x0dx0agetchar(); x0dx0agetchar(); x0dx0a} //保存函数 x0dx0avoid save_client(struct telephone message) x0dx0a{ x0dx0aFILE *fp; x0dx0afp=fopen("message.dat","a+"); x0dx0aif (fp!=NULL) x0dx0a{ x0dx0afwrite(&message,sizeof(struct telephone),1,fp); x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("\n打开文件时出现错误,按任意键返回??\n"); x0dx0agetchar(); x0dx0areturn; x0dx0a} x0dx0afclose(fp); x0dx0a} //修改用户信息函数 x0dx0avoid amend() x0dx0a{ x0dx0astruct telephone message; x0dx0aFILE *fp; x0dx0achar amend_name[20]; x0dx0achar reply='y' x0dx0achar found='y' x0dx0achar save='y' x0dx0aint size=sizeof(struct telephone); x0dx0awhile (reply=='y') x0dx0a{ x0dx0afound='n' x0dx0afp=fopen("message.dat","r+w"); x0dx0aif (fp!=NULL) x0dx0a{ x0dx0asystem("cls"); x0dx0aprintf("\n请输入要修改的姓名:"); x0dx0ascanf("%s",amend_name); x0dx0awhile ((fread(&message,size,1,fp))==1) x0dx0a{ x0dx0aif ((strcmp(amend_name,message.client_name))==0) x0dx0a{ x0dx0afound='y' x0dx0abreak; x0dx0a} x0dx0a} x0dx0aif (found=='y') x0dx0a{ printf("==========================================\n"); x0dx0aprintf("\n用户姓名:%s\n",message.client_name); x0dx0a x0dx0aprintf("\n电话号码:%s\n",message.client_telephone); x0dx0aprintf("==========================================\n"); x0dx0aprintf("修改用户信息:\n"); x0dx0aprintf("\n用户姓名:"); x0dx0ascanf("%s",message.client_name); printf("\n电话号码:"); x0dx0ascanf("%s",message.client_telephone); x0dx0aprintf("\n要保存吗?(y/n):"); x0dx0ascanf(" %c",&save); x0dx0aif (save=='y') x0dx0a{ x0dx0afseek(fp,-size,1); x0dx0afwrite(&message,sizeof(struct telephone),1,fp); x0dx0a} x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("无此人信息!\n"); x0dx0a} x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("打开文件时出现错误,按任意键返回??\n"); x0dx0agetchar(); x0dx0areturn; x0dx0a} x0dx0afclose(fp); x0dx0aprintf("要继续吗?(y/n):"); x0dx0ascanf(" %c",&reply); x0dx0a} x0dx0aprintf("按任意键返回主菜单??\n"); x0dx0agetchar(); x0dx0agetchar(); x0dx0a} //删除用户信息函数 x0dx0avoid delete_client() x0dx0a{ x0dx0astruct telephone message[N]; x0dx0astruct telephone temp_str; x0dx0astruct telephone delete_str; x0dx0aint i=0,j=0; x0dx0achar reply='y' x0dx0achar found='y' x0dx0achar confirm='y' x0dx0achar delete_name[20]; x0dx0aFILE *fp; x0dx0awhile (reply=='y') x0dx0a{ x0dx0asystem("cls"); x0dx0afp=fopen("message.dat","r"); x0dx0aif (fp!=NULL) x0dx0a{ x0dx0ai=0; x0dx0afound='n' x0dx0aprintf("\n请输入姓名:"); x0dx0ascanf("%s",delete_name); x0dx0awhile ((fread(&temp_str,sizeof(struct telephone),1,fp))==1) x0dx0a{ x0dx0aif ((strcmp(delete_name,temp_str.client_name))==0) x0dx0a{ x0dx0afound='y' x0dx0adelete_str=temp_str; x0dx0a}//查找要删除的记录 x0dx0aelse x0dx0a{ x0dx0amessage[i]=temp_str; x0dx0ai++; x0dx0a}//将其它无关记录保存起来 x0dx0a} x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("打开文件时出现错误,按任意键返回??\n"); x0dx0agetchar(); x0dx0areturn; x0dx0a} x0dx0afclose(fp); x0dx0aif (found=='y') x0dx0a{ x0dx0aprintf("==========================================\n"); x0dx0aprintf("用户姓名:%s\n",delete_str.client_name); x0dx0a x0dx0aprintf("电话号码:%s\n",delete_str.client_telephone); x0dx0aprintf("==========================================\n"); x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("无此人信息,按任意键返回??\n"); x0dx0agetchar(); x0dx0abreak; x0dx0a} x0dx0aprintf("确定要删除吗?(y/n):"); x0dx0ascanf(" %c",&confirm); x0dx0aif (confirm=='y') x0dx0a{ x0dx0afp=fopen("message.dat","w"); x0dx0aif (fp!=NULL) x0dx0a{ x0dx0afor(j=0;j3) x0dx0a{ x0dx0aprintf("请输入1-6之间的整数\n"); x0dx0aprintf("按任意键返回菜单??\n"); x0dx0a getchar(); x0dx0acontinue; x0dx0a} x0dx0aif (choice==1) x0dx0a{ x0dx0ademand_name(); x0dx0a} x0dx0aelse if (choice==2) x0dx0a{ x0dx0ademand_telephone(); x0dx0a} x0dx0a} x0dx0a} //按用户名查询 x0dx0avoid demand_name() x0dx0a{ x0dx0astruct telephone message; x0dx0aFILE *fp; x0dx0achar amend_name[20]; x0dx0achar reply='y' x0dx0achar found='y' x0dx0awhile (reply=='y') x0dx0a{ x0dx0afound='n' x0dx0afp=fopen("message.dat","r+w"); x0dx0aif (fp!=NULL) x0dx0a{ x0dx0asystem("cls"); x0dx0aprintf("\n请输入姓名:"); x0dx0ascanf("%s",amend_name); x0dx0awhile ((fread(&message,sizeof(struct telephone),1,fp))==1) x0dx0a{ x0dx0aif ((strcmp(amend_name,message.client_name))==0) x0dx0a{ x0dx0afound='y' x0dx0abreak; x0dx0a} x0dx0a} x0dx0aif (found=='y') x0dx0a{ printf("==========================================\n"); x0dx0aprintf("用户姓名:%s\n",message.client_name); printf("电话号码:%s\n",message.client_telephone); x0dx0aprintf("==========================================\n"); x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("无此人信息!\n"); x0dx0a} x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("打开文件时出现错误,按任意键返回??\n"); x0dx0agetchar(); x0dx0areturn; x0dx0a} x0dx0afclose(fp); x0dx0aprintf("要继续吗?(y/n):"); x0dx0ascanf(" %c",&reply); x0dx0a} x0dx0aprintf("按任意键返回主菜单??\n"); x0dx0agetchar(); x0dx0agetchar(); x0dx0a} //按电话号码查询 x0dx0avoid demand_telephone() x0dx0a{ x0dx0astruct telephone message; x0dx0aFILE *fp; x0dx0achar telephone[20]; x0dx0achar reply='y' x0dx0achar found='y' x0dx0awhile (reply=='y') x0dx0a{ x0dx0afound='n' x0dx0afp=fopen("message.dat","r+w"); x0dx0aif (fp!=NULL) x0dx0a{ x0dx0asystem("cls"); x0dx0aprintf("\n请输入电话号码:"); x0dx0ascanf("%s",telephone); x0dx0awhile ((fread(&message,sizeof(struct telephone),1,fp))==1) x0dx0a{ x0dx0aif ((strcmp(telephone,message.client_telephone))==0) x0dx0a{ x0dx0afound='y' x0dx0abreak; x0dx0a} x0dx0a} x0dx0aif (found=='y') x0dx0a{ printf("==========================================\n"); x0dx0aprintf("用户姓名:%s\n",message.client_name); printf("电话号码:%s\n",message.client_telephone); x0dx0aprintf("==========================================\n"); x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("无此电话号码的有关信息!\n"); x0dx0a} x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("打开文件时出现错误,按任意键返回??\n"); x0dx0agetchar(); x0dx0areturn; x0dx0a} x0dx0afclose(fp); x0dx0aprintf("要继续吗?(y/n):"); x0dx0ascanf(" %c",&reply); x0dx0a} x0dx0aprintf("按任意键返回主菜单??\n"); x0dx0agetchar(); x0dx0agetchar(); x0dx0a} //用户信息汇总函数 x0dx0avoid collect_telephone() x0dx0a{ x0dx0astruct telephone message; x0dx0aFILE *fp; x0dx0afp=fopen("message.dat","r"); x0dx0aif (fp!=NULL) x0dx0a{ x0dx0asystem("cls"); x0dx0aprintf("\n用户姓名\t\t电话号码\n"); x0dx0awhile ((fread(&message,sizeof(struct telephone),1,fp))==1) x0dx0a{ x0dx0aprintf("\n%-24s",message.client_name); printf("%-12s\n",message.client_telephone); x0dx0a} x0dx0a} x0dx0aelse x0dx0a{ x0dx0aprintf("打开文件时出现错误,按任意键返回??\n"); x0dx0agetchar(); x0dx0areturn; x0dx0a} x0dx0afclose(fp); x0dx0aprintf("按任意键返回主菜单??\n"); x0dx0agetch(); x0dx0a} void main() x0dx0a{ x0dx0achar choice[10]=""; x0dx0aint len=0; x0dx0awhile (choice[0]!=ƍ') x0dx0a{ printf("\t==========电话本号码查询系统=============\n"); printf("\t\t 1、添加新联系人\n"); x0dx0aprintf("\t\t 2、修改联系人信息\n"); x0dx0aprintf("\t\t 3、删除联系人信息\n"); x0dx0aprintf("\t\t 4、联系人信息查询\n"); x0dx0aprintf("\t\t 5、联系人信息汇总\n"); x0dx0a x0dx0aprintf("\t\t 7、退出\n"); x0dx0aprintf("\t=========================================\n"); x0dx0aprintf("请选择(1-7):"); x0dx0ascanf("%s",choice); x0dx0alen=strlen(choice); x0dx0aif (len>1) x0dx0a{ x0dx0aprintf("请输入1-6之间的整数\n"); x0dx0aprintf("按任意键返回主菜单??\n"); x0dx0agetchar(); x0dx0agetchar(); x0dx0acontinue; x0dx0a} switch (choice[0]) { x0dx0acase Ƈ': x0dx0ainput(); x0dx0abreak; x0dx0acase ƈ': x0dx0aamend(); x0dx0abreak; x0dx0acase Ɖ': x0dx0adelete_client(); x0dx0abreak; x0d

㈨ C语言 通讯录源代码 无链表 无指针

#include<stdio.h> /*引用库函数*/
#include<stdlib.h>
#include<ctype.h>
#include<string.h>typedef struct /*定义结构体数组*/
{
char num[10]; /*学号*/
char name[20]; /*姓名*/
char sushe[20];/*宿舍*/
char tel[20];/*电话*/
char qq[20];/*QQ号码*/
char email[20];/*电子邮箱*/
}Student;
Student stu[80]; /*结构体数组变量*/ int menu_select() /*菜单函数*/
{
char c;
do{
system("cls"); /*运行前清屏*/
printf("\t\t |☆☆☆☆☆☆通讯录信息管理系统☆☆☆☆☆\n"); /*菜单选择*/

printf("\t\t |****************************************|\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. 按姓名检索信息 *************|\n");
printf("\t\t |******** 7. 读取文件 *******************|\n");
printf("\t\t |******** 8. 保存文件 *******************|\n");
printf("\t\t |******** 0. 退出系统 *******************|\n");

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

printf("\t\t |***制作人:QIANG *****|\n");

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

printf("\t\t (*^__^*) 您好,请选择(*^__^*)→→→(0-8):");
c=getchar(); /*读入选择*/
}while(c<'0'||c>'9');
return(c-'0'); /*返回选择*/
}
int Input(Student stud[],int n) /*输入若干条记录*/
{
int i=0,p=0;
char sign,f,x[10]; /*x[10]为清除多余的数据所用*/
while(sign!='n'&&sign!='N') /*判断*/
{
printf("\t\t\t请输入学号:"); /*交互输入*/
scanf("\t\t\t%s",stud[n+i].num);
for(p=0;p=n;p++)
{
if(strcmp(stud[p].num,stud[n+i].num)==0)
{
printf("\t\t\t学号已经存在!\n");
system("pause");
return(n);
}
}
printf("\t\t\t请输入姓名:");
scanf("\t\t\t%s",stud[n+i].name);
printf("\t\t\t请输入住址:");
scanf("\t\t\t%s",stud[n+i].sushe);
printf("\t\t\t请输入电话号码:");
scanf("\t\t\t%s",stud[n+i].tel);
printf("\t\t\t请输入QQ:");
scanf("\t\t\t%s",stud[n+i].qq);
printf("\t\t\t请输入电子邮箱:");
scanf("\t\t\t%s",&stud[n+i].email);
gets(x); /*清除多余的输入*/
printf("\t\t\tany more records?(Y/N)");
scanf("\t\t\t%c",&sign); /*输入判断*/
i++;
}
return(n+i);
} void Display(Student stud[],int n) /*显示所有记录*/
{
int i;
printf("--------------------------------------------------------------------------------\n"); /*格式头*/
printf("学号 名字 住址 电话号码 QQ号码 电子邮箱\n");
printf("--------------------------------------------------------------------------------\n");

for(i=1;i<n+1;i++) /*循环输入*/
{
printf("%-16s%-15s%-15s%-15s%-15s%-15s\n",stud[i-1].num,stud[i-1].name,stud[i-1].sushe,stud[i-1].tel,stud[i-1].qq,stud[i-

1].email);
if(i>1&&i%10==0) /*每十个暂停*/
{printf("--------------------------------------------------------------------------------\n"); /*格式*/ <br> printf("\t\t\t"); <br> system("pause"); <br> printf("--------------------------------------------------------------------------------\n"); <br> }
}
printf("\t\t\t");
system("pause");
} void Sort_by_num(Student stud[],int n) /*按学号排序*/
{ int i,j;
char t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(strcmp(stud[j].num,stud[j+1].num)>0)
{
strcpy(t,stud[j+1].num);
strcpy(stud[j+1].num,stud[j].num);
strcpy(stud[j].num,t);
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
strcpy(t,stud[j+1].sushe);
strcpy(stud[j+1].sushe,stud[j].sushe);
strcpy(stud[j].sushe,t);
strcpy(t,stud[j+1].tel);
strcpy(stud[j+1].tel,stud[j].tel);
strcpy(stud[j].tel,t);
strcpy(t,stud[j+1].qq);
strcpy(stud[j+1].qq,stud[j].qq);
strcpy(stud[j].qq,t);
strcpy(t,stud[j+1].email);
strcpy(stud[j+1].email,stud[j].email);
strcpy(stud[j].email,t);
}
} void Query_a_record(Student stud[],int n) /*查找并显示一个记录*/
{
char s[20];
int i=0;
printf("\t\t\t请输入要查找的人的名字:"); /*交互式输入*/
scanf("\t\t\t%s",s);
while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
printf("\t\t\t对不起,查无此人!\n"); /*输入失败信息*/
return;

}
printf("\t\t\t学号:%s\n",stud[i].num); /*输出该学生信息*/
printf("\t\t\t住址:%s\n",stud[i].sushe);
printf("\t\t\t电话号码:%s\n",stud[i].tel);
printf("\t\t\tQQ号码:%s\n",stud[i].qq);
printf("\t\t\t电子邮箱:%s\n",stud[i].email);
}
int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/
{
char s[20];
int i=0,j;
printf("\t\t\t请输入要删除的人的名字:"); /*交互式问寻*/
scanf("%s",s);
while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
printf("\t\t\t对不起,查无此人!\n"); /*返回失败信息*/
return(n);
}
for(j=i;j<n-1;j++) /*删除操作*/
{
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j].sushe,stud[j+1].sushe);
strcpy(stud[j].tel,stud[j+1].tel);
strcpy(stud[j].qq,stud[j+1].qq);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j].email,stud[j+1].email);

}
printf("\t\t\t删除成功!\n"); /*返回成功信息*/
return(n-1);
}
int AddfromText(Student stud[],int n) /*从文件中读入数据*/
{
int i=0,num;
FILE *fp; /*定义文件指针*/
char filename[20]; /*定义文件名*/
printf("\t\t\t请您输入要读取的文件名:");
scanf("\t\t\t%s",filename); /*输入文件名*/
if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/
{
printf("\t\t\t打开文件失败!\n"); /*打开失败信息*/
printf("\t\t\t");

system("pause");
return(n);
}
fscanf(fp,"%d",&num); /*读入总记录量*/
while(i<num) /*循环读入数据*/
{
fscanf(fp,"%s%s%s%s%s%s",stud[n+i].num,stud[n+i].name,stud[n+i].sushe,stud[n+i].tel,stud[n+i].qq,stud[n+i].email);
i++;
}
n+=num;
fclose(fp); /*关闭文件*/
printf("\t\t\t读取成功!\n");
printf("\t\t\t");
system("pause");
return(n);
} void WritetoText(Student stud[],int n) /*将所有记录写入文件*/
{
int i=0;
FILE *fp; /*定义文件指针*/
char filename[20]; /*定义文件名*/
printf("\t\t\t保存文件\n"); /*输入文件名*/
printf("\t\t\t请您为文件取个名字:");
scanf("\t\t\t%s",filename);
if((fp=fopen(filename,"w"))==NULL) /*打开文件*/
{
printf("\t\t\t成功!\n");
system("pause");
return;
}
fprintf(fp,"%d\n",n); /*循环写入数据*/
while(i<n)
{
fprintf(fp,"%s %s %s %s %s %s \n",stud[i].num,stud[i].name,stud[i].sushe,stud[i].tel,stud[i].qq,stud[i].email);
i++;
}
fclose(fp); /*关闭文件*/
printf("成功!\n"); /*返回成功信息*/
} int Modify_a_record(Student stud[],int n) /*按姓名查找,修改一条记录*/
{
char s[20];
char newname[20];
char newnum[20];
char newsushe[20];
char newtel[20];
char newqq[20];
char newemail[20];
int i=0;
printf("\t\t\t输入要修改人的名字:"); /*交互式问寻*/
scanf("%s",s);
while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
printf("\t\t\t找不到这个信息!\n"); /*返回失败信息*/
return(n+1);
}
printf("请输入新姓名:");
scanf("%s",newname);
strncpy(stud[i].name,newname,sizeof(stud[i].name));
stud[i].name[sizeof(stud[i].name)-1]='\0'; printf("请输入新学号:");
scanf("%s",newnum);
strncpy(stud[i].num,newnum,sizeof(stud[i].num));
stud[i].num[sizeof(stud[i].num)-1]='\0'; printf("请输入新地址:");
scanf("%s",newsushe);
strncpy(stud[i].sushe,newsushe,sizeof(stud[i].sushe));
stud[i].sushe[sizeof(stud[i].sushe)-1]='\0'; printf("请输入新电话号码:");
scanf("%s",newtel);
strncpy(stud[i].tel,newtel,sizeof(stud[i].tel));
stud[i].tel[sizeof(stud[i].tel)-1]='\0'; printf("请输入新qq号码:");
scanf("%s",newname);
strncpy(stud[i].qq,newqq,sizeof(stud[i].qq));
stud[i].qq[sizeof(stud[i].qq)-1]='\0'; printf("请输入新电子邮箱:");
scanf("%s",newemail);
strncpy(stud[i].email,newemail,sizeof(stud[i].email));
stud[i].email[sizeof(stud[i].email)-1]='\0'; printf("\t\t\t修改信息成功咯\n"); /*返回成功信息*/
return (n);
}
void main() /*主函数*/
{
int n=0;
system("color 1A"); //调用dos改背景与前景色
for(;;)
{
switch(menu_select()) /*选择判断*/
{
case 1:
printf("\t\t\t输入信息\n"); /*输入若干条记录*/
n=Input(stu,n);
break;
case 2:
printf("\t\t\t显示信息\n"); /*显示所有记录*/
Display(stu,n);
break;
case 3:
printf("\t\t\t按学号排序\n");
Sort_by_num(stu,n); /*按学号排序*/
printf("\t\t\t排列成功咯!\n");
printf("\t\t\t");
system("pause");
break;
case 4:
printf("\t\t\t修改学生信息\n");
n=Modify_a_record(stu,n); /*按姓名查找,修改一条记录*/
printf("\t\t\t");
system("pause");
break;
case 5:
printf("\t\t\t删除学生信息\n");
n=Delete_a_record(stu,n); /*按姓名查找,删除一条记录*/
printf("\t\t\t");
system("pause");
break;
case 6:
printf("\t\t\t查找一个信息\n");
Query_a_record(stu,n); /*查找并显示一个记录*/
printf("\t\t\t");
system("pause");
break;
case 7:
printf("\t\t\t打开保存过的文件\n");
n=AddfromText(stu,n); /*新增功能,输出统计信息*/
break;
case 8:
printf("\t\t\t保存数据到文件\n");
WritetoText(stu,n); /*循环写入数据*/
printf("\t\t\t");
system("pause");
break;
case 0:
printf("\t\t\t感谢使用,祝你好运哦!\n"); /*结束程序*/
printf("\t\t\t");
system("pause");
exit(0);
}
}
}

㈩ 求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);

int main(void)
{
int choice;
char name[10];
struct friends_list friends[50];

do
{
printf("通讯录功能选项:1:新建2:查询0:退出\n");
printf("请选择功能:\n");
scanf("%d",&choice);
switch(choice)
{
case 1:new_friend(friends);
break;
case 2:printf("请输入要查找的联系人姓名:");
scanf("%s",name);
search_friend(friends,name);
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",f.name);
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)
{
flag=1;
break;
}
if(flag)
{
printf("姓名:%s\t",friends[i].name);
printf("年龄:%d\t",friends[i].age);
printf("电话:%s\n",friends[i].telephone);
}
else
printf("无此联系人!");
}

热点内容
日本溥仪访问 发布:2025-07-03 04:24:27 浏览:672
java文件遍历 发布:2025-07-03 04:22:22 浏览:139
android画虚线 发布:2025-07-03 04:11:04 浏览:384
系统启动密码怎么取消 发布:2025-07-03 04:08:06 浏览:746
python程序设计第三版课后答案 发布:2025-07-03 03:58:08 浏览:213
socket上传文件 发布:2025-07-03 03:57:24 浏览:895
安卓cleo脚本 发布:2025-07-03 03:41:26 浏览:245
编程器解读 发布:2025-07-03 03:22:49 浏览:24
中国电信加密通信业务 发布:2025-07-03 03:06:00 浏览:521
脚本家的台词 发布:2025-07-03 03:05:50 浏览:709