c语言电话簿管理系统的
❶ 用c语言或C++做个通讯录管理系统
//简单的学生通讯录管理系统
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
structrecord
{
charname[20];//姓名
charphone[12];//电话
charadress[50];//地址
charpostcode[8];//邮政编码
chare_mail[20];//电子邮件。
}student[100];//假设最大数为100.
//定义全局变量num,表示已经输入的人数。
intnum;//这里使用数组解决通讯录的问题,实际上使用链表更好。
intmenu_select()
{
chars[80];
inta;/*定义整形变量*/
system("cls");
printf(" ***********欢迎进入通讯管理界面******** ");
printf(" 0.输入记录 ");
printf(" 1.显示记录 ");
printf(" 2.按姓名查找 ");
printf(" 3.按电话号码查找 ");
printf(" 4.插入记录 ");
printf(" 5.按姓名排序 ");
printf(" 6.删除记录 ");
printf(" 7.Quit ");
printf(" *********************************************** ");
do{
printf("Enteryouchoice(0~7):");
scanf("%s",s);
a=atoi(s);
}
while(a<0||a>7);
returna;
}
intadser()
{
printf(" ****************请输入用户信息**************** ");
printf(" 输入姓名: ");
scanf("%s",student[num].name);
printf(" 输入电话号码: ");
scanf("%s",student[num].phone);
printf(" 输入地址: ");
scanf("%s",student[num].adress);
printf(" 输入邮编: ");
scanf("%s",student[num].postcode);
printf(" 输入e-mail: ");
scanf("%s",student[num].e_mail);
num++;
printf(" 是否继续添加?(Y/N): ");
if(getch()=='y'||getch()=='Y')
adser();
return(0);
}
voidlist()
{
inti;
system("cls");
if(num!=0)
{
printf(" ***************以下为通讯录所有信息************ ");
for(i=0;i<num;i++)
{
printf(" 姓名:%s ",student[i].name);
printf(" 电话:%s ",student[i].phone);
printf(" 地址:%s ",student[i].adress);
printf(" 邮编:%s ",student[i].postcode);
printf(" e-mail:%s ",student[i].e_mail);
if(i+1<num)
{
system("pause");
}
}
printf(" ************************************************ ");
}
else
printf(" 通讯录中无任何纪录 ");
printf(" 按任意键返回主菜单: ");
getch();//这里是无回显的输入字符,你输入的字符不会显示在屏幕上。
return;
}
intsearchbyname()
{
intmark=0;
inti;
printf(" *****************按姓名查找******************* ");
charname[20];
printf(" 请输入姓名: ");
scanf("%s",name);
for(i=0;i<num;i++)
{
if(strcmp(student[i].name,name)==0)
{
printf(" *************以下是您查找的用户信息*********** ");
printf(" 姓名:%s",student[i].name);
printf(" 电话:%s",student[i].phone);
printf(" 地址:%s",student[i].adress);
printf(" e-mail:%s",student[i].e_mail);
printf(" ************************************************ ");
mark++;
if((i+1)<num)
{
printf(" 是否继续查找相同名字的用户信息:(y/n) ");
if(getch()=='y'||getch()=='Y')
{
continue;
}
else
return(0);
}
else
{
printf(" 按任意键返回主菜单");
getch();
return(0);
}
}
}
if(mark==0)
{
printf(" 没有相同姓名的用户纪录 ");
printf(" 按任意键返回主菜单 ");
getch();
return(0);
}
return0;
}
intsearchbyphone()
{
intmark=0;
inti;
printf(" ******************按电话查找****************** ");
charphone[10];
printf(" 请输入电话号码: ");
scanf("%s",phone);
for(i=0;i<num;i++)
{
if(strcmp(student[i].phone,phone)==0)
{
printf(" **************以下是您查找的用户信息********** ");
printf(" 姓名:%s",student[i].name);
printf(" 电话:%s",student[i].phone);
printf(" 地址:%s",student[i].adress);
printf(" e-mail:%s",student[i].e_mail);
printf(" ************************************************ ");
printf(" 按任意键返回主菜单 ");
mark++;
getch();
return(0);
}
}
if(mark==0)
{
printf(" 没有改用户的信息 ");
printf(" 按任意键返回主菜单 ");
getch();
return(0);
}
return(0);
}
voiddeletebyphone()
{
inti,j;
intdeletemark=0;
charphone[20];
printf(" 请输入要删除用户电话号码: ");
scanf("%s",phone);
if(num==0)
{
printf(" 对不起,文件中无任何纪录 ");
printf(" 按任意键返回主菜单 ");
getch();
return;
}
for(i=0;i<num;i++)
{
if(strcmp(student[i].phone,phone)==0)
{
printf(" 以下是您要删除的用户纪录: ");
printf(" 姓名:%s",student[i].name);
printf(" 电话:%s",student[i].phone);
printf(" 地址:%s",student[i].adress);
printf(" e-mail:%s",student[i].e_mail);
printf(" 是否删除?(y/n)");
if(getch()=='y'||getch()=='Y')
{
for(j=i;j<num-1;j++)
student[j]=student[j+1];
num--;
deletemark++;
printf(" 删除成功");
printf(" 是否继续删除?(y/n)");
if(getch()=='y'||getch()=='Y')
deletebyphone();
return;
}
else
return;
}
continue;
}
if(deletemark==0)
{
printf(" 没有该用户的纪录");
printf(" 是否继续删除?(y/n)");
if(getch()=='y'||getch()=='Y')
deletebyphone();
return;
}
return;
}
voiddeletebyname()
{
inta=0;
intfindmark=0;
intj;
intdeletemark=0;
inti;
charname[20];
printf(" 请输入要删除用户姓名: ");
scanf("%s",name);
for(i=a;i<num;i++)
{
if(strcmp(student[i].name,name)==0)
{
printf(" 以下是您要删除的用户纪录:");
findmark++;
printf(" ________________________________");
printf(" 姓名:%s",student[i].name);
printf(" 电话:%s",student[i].phone);
printf(" 地址:%s",student[i].adress);
printf(" e-mail:%s",student[i].e_mail);
printf(" ________________________________");
printf(" 是否删除?(y/n)");
if(getch()=='y'||getch()=='Y')
{
for(j=i;j<num-1;j++)
student[j]=student[j+1];
num--;
deletemark++;
printf(" 删除成功");
if((i+1)<num)
{
printf(" 是否继续删除相同姓名的用户信息?(y/n)");
if(getch()=='y')
{
a=i;
continue;
}
}
printf(" 是否继续删除?(y/n)");
if(getch()=='y')
deletebyname();
return;
}
if((i+1)<num)
{
printf(" 是否继续删除相同姓名的用户信息?(y/n)");
if(getch()=='y'||getch()=='Y')
{
a=i;
continue;
}
}
}
else
continue;
}
if((deletemark==0)&&(findmark==0))
{
printf(" 没有该用户的纪录");
printf(" 是否继续删除?(y/n)");
if(getch()=='y'||getch()=='Y')
deletebyphone();
return;
}
elseif(findmark!=0)
{
printf(" 没有重名信息");
printf(" 没有该用户的纪录");
printf(" 是否继续删除?(y/n)");
if(getch()=='y'||getch()=='Y')
deletebyphone();
return;
}
}
intdele()
{
charchoic;
printf(" 1-按电话号码删除2-按姓名删除");
printf(" 请选择:");
choic=getch();
switch(choic)
{
case'1':deletebyphone();break;
case'2':deletebyname();break;
}
return(0);
}
intsortbyname()//按姓名进行排序
{
inti,j;
structrecordtmp;
for(i=1;i<num;i++)
{
if(strcmp(student[i].name,student[i-1].name)<0)
{
tmp=student[i];
j=i-1;
do
{
student[j+1]=student[j];
j--;
}while((strcmp(tmp.name,student[j].name)<0&&j>=0));
student[j+1]=tmp;
}
}
printf(" 排序成功,是否显示?(y/n)");
if(getch()=='y')
list();
return(0);
}
intmain()
{
printf(" ************************************************ ");
printf(" ********welcometoTONGXUNLU******************* ");
printf(" ###########codebyXXXXX################### ");
printf(" ************************************************* ");
printf("按任意键进入主菜单 ");
getch();
intselectnum;
while(1)
{
selectnum=menu_select();
switch(selectnum)
{
case0:
{
adser();
break;
}
case1:
{
list();
break;
}
case2:
{
searchbyname();
break;
}
case3:
{
searchbyphone();
break;
}
case4:
{
adser();//这里插入,应该能指定位置,不过意义不大,所以和添加记录一样了。
break;
}
case5:
{
sortbyname();
break;
}
case6:
{
dele();
break;
}
case7:
{
printf("BYEBYE! ");
system("pause");
getchar();
exit(0);
}
}
}
getchar();
return0;
}
❷ 用c语言或c++做一个通讯录管理系统
#include<iostream.h>
#include<iomanip.h>
#include<string.h>
class pbook
{
int cellphone,phone;
char name[20],first,sex[10],workplace[30];
char date[15];
public:
void addin();
char* gname(){return name;}
char getf(){ return first;}
void print()
{
cout<<setw(12)<<name<<setw(12)<<sex;
cout<<setw(12)<<workplace<<setw(12)<<cellphone<<setw(12)<<phone<<setw(12)<<date<<endl;}
static int dele(pbook *book,int n);
static void edit(pbook *book,int n,char *name);
static void findn(pbook *book,int n,char *name);
static void findf(pbook *book,int n,char f);
static void rang(pbook *book,int n);
};
void pbook::addin()
{
cout<<"姓名:";
cin>>name;
cout<<endl<<"性别(男|女): ";
cin>>sex;
cout<<endl<<"工作单位:";
cin>>workplace;
cout<<endl<<"手机号码:";
cin>>cellphone;
cout<<endl<<"固定电话:";
cin>>phone;
cout<<endl<<"储存日期:";
cin>>date;
cout<<endl<<"姓名首字母(大写):";
cin>>first;
cout<<endl<<"电话簿添加成功!"<<endl;
}
int pbook::dele(pbook *book,int n){
int p=-2,c=n;
char name[20];cout<<"请输入姓名"<<endl;
cin>>name;
for(int i=0;i<n;i++)
{
if(strcmp(book[i].gname(),name)==0)
{
p=i;break;
}
}
if(p!=-2)
{
for(i=p;i<n;i++)
book[i]=book[i+1];
return --c;
}
else
return c;
}
void pbook::edit(pbook *book,int n,char *name)
{ int p;
for(int i=0;i<n;i++)
{if(strcmp(book[i].gname(),name)==0)
p=i;break;
}
book[p].addin();
cout<<"修改成功"<<endl;
}
void pbook::findn(pbook *book,int n,char *sname)
{
int i;
for(i=0;i<n;i++)
if(strcmp(book[i].gname(),sname)==0)
{
book[i].print();break;
}
if(i==n)
{
cout<<"查无此人"<<endl;
}
}
void pbook::findf(pbook *book,int n,char f)
{
int p=-1;
cout<<setw(15)<<"姓名"<<setw(15)<<"性别"<<setw(15)<<"工作单位"<<setw(15)<<"手机号码";
cout<<setw(15)<<"固定电话"<<setw(15)<<"存储日期"<<endl;
for(int i=0;i<n;i++)
{
if(book[i].getf()==f)
{
p=i;
book[p].print();
}
}
if(p==-1)cout<<"查无此人"<<endl;
}
void pbook::rang(pbook *book,int n)
{
pbook m;int i,j;
for(i=1;i<n;i++)
{
for(j=0;j<n-i;j++)
if(book[i].getf()>book[i+1].getf())
{
m=book[j];
book[j]=book[j+1];
book[j+1]=m;
}
}
cout<<setw(12)<<"姓名"<<setw(12)<<"性别"<<setw(12)<<"工作单位"<<setw(12)<<"手机号码";
cout<<setw(12)<<"固定电话"<<setw(12)<<"存储日期"<<endl;
for(i=0;i<n;i++)
book[i].print();
}
void display()
{
cout <<endl;
cout<<"********************电话簿********************"<<endl;
cout<<" ------- 1.添加联系人 ------- "<<endl;
cout<<" ------- 2.删除联系人 ------- "<<endl;
cout<<" ------- 3.显示所有联系人 ------- "<<endl;
cout<<" ------- 4.修改联系人信息 ------- "<<endl;
cout<<" ------- 5.按姓名查询 ------- "<<endl;
cout<<" ------- 6.按首字母查询 ------- "<<endl;
cout<<" ------- 7.退出系统请按 ------- "<<endl;
cout<<"**********************************************"<<endl;
}
void main()
{
pbook book[10];int n=0;char name[20];
int i;char j=1;char g;char a;
while(j!=0)
{
display();
cout<<"请选择菜单号(1---7):";
cin>>i;
while(!(i==1||i==2||i==3||i==4||i==5||i==6||i==7))
{
cout<<"\a\a选择错误! 请重新选择! 请选择菜单号(0---7):";
cin>>i;
}
while(i==1||i==2||i==3||i==4||i==5||i==6||i==7)
{
if(i==1)
{ n++;book[n-1].addin();}
else if(i==7)
{
cout<<"谢谢使用本系统!"<<endl;
j=0;
}
else
{
if(i==2)
n=pbook::dele(book,n);
else if(i==3)
pbook::rang(book,n);
else if(i==4)
{ cout<<"请输入姓名"<<endl;
cin>>name;
pbook::edit(book,n,name);
}
else if(i==5)
{
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<setw(12)<<"姓名"<<setw(12)<<"性别"<<setw(12)<<"工作单位"<<setw(12)<<"手机号码";
cout<<setw(12)<<"固定电话"<<setw(12)<<"存储日期"<<endl;
pbook::findn(book,n,name);
}
else
{
cout<<"请输入字符:";
cin>>g;
pbook::findf(book,n,g);
}
}
cout<<"继续请按y,否则请按n."<<endl;
cin>>a;
if(a=='y'){};
if(a=='n')break;
}
cout<<"继续菜单请按y,否则请按n."<<endl;
cin>>j;
}
}
❸ C语言,编写一个简单的通讯录管理系统
#include <string.h>
#include <stdio.h>
#include<stdlib.h>
int cntAddr=0,i,j;
char in[12];
const char * strFmt=" %d %s %s %s %s ";
typedef struct ADDRESSD {
int ID;
char name[12];
char workPlace[12];
char teleOff[12];
char teleHome[12];
}ADDRESS;
ADDRESS addrTmp[100],adTmp;
int load(ADDRESS adr[]){
FILE *fp;
if((fp=fopen("c:\txl.txt","r"))!=NULL){
cntAddr=0;
while(!feof(fp)){
fscanf(fp,"%d %s %s %s %s ",&(adr[cntAddr].ID),adr[cntAddr].name,adr[cntAddr].workPlace,adr[cntAddr].teleOff,adr[cntAddr].teleHome);
++cntAddr;
}
}
fclose(fp);
return cntAddr;
};
void list(ADDRESS addr[],int length){
for(i=0;i<length;++i)printf(strFmt,addr[i].ID,addr[i].name,addr[i].workPlace,addr[i].teleOff,addr[i].teleHome);
}
void display(ADDRESS addr[]){
for(i=0;i<cntAddr;++i)addrTmp[i]=addr[i];
for(i=0;i<cntAddr-1;++i)for(j=i+1;j<cntAddr;++j)if(addrTmp[i].ID>addrTmp[j].ID){adTmp=addrTmp[i];addrTmp[i]=addrTmp[j];addrTmp[j]=adTmp;}
for(i=0;i<cntAddr;++i)printf(strFmt,addrTmp[i].ID,addrTmp[i].name,addrTmp[i].workPlace,addrTmp[i].teleOff,addrTmp[i].teleHome);
}
void namesort(ADDRESS addr[],int length){
for(i=0;i<length;++i)addrTmp[i]=addr[i];
for(i=0;i<length-1;++i)for(j=i+1;j<length;++j)if(strcmp(addrTmp[i].name,addrTmp[j].name)>0){adTmp=addrTmp[i];addrTmp[i]=addrTmp[j];addrTmp[j]=adTmp;}
for(i=0;i<length;++i)printf(strFmt,addrTmp[i].ID,addrTmp[i].name,addrTmp[i].workPlace,addrTmp[i].teleOff,addrTmp[i].teleHome);
};
void save(ADDRESS adr[],int length){
FILE *fp;
fp=fopen("c:\txl.txt","w");
for(i=0;i<cntAddr;++i)fprintf(fp,"%d %s %s %s %s ",adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);
fclose(fp);
};
void unitssort(ADDRESS addr[],int length){
for(i=0;i<length;++i)addrTmp[i]=addr[i];
for(i=0;i<length-1;++i)for(j=i+1;j<length;++j)if(strcmp(addrTmp[i].workPlace,addrTmp[j].workPlace)>0){adTmp=addrTmp[i];addrTmp[i]=addrTmp[j];addrTmp[j]=adTmp;}
for(i=0;i<length;++i)printf(strFmt,addrTmp[i].ID,addrTmp[i].name,addrTmp[i].workPlace,addrTmp[i].teleOff,addrTmp[i].teleHome);
};
void namesearch(ADDRESS addr[],int length){
printf("请输入姓名: ");
scanf("%s",&in);
for(i=0;i<length;++i)if(strcmp(addr[i].name,in)==0)printf(strFmt,addr[i].ID,addr[i].name,addr[i].workPlace,addr[i].teleOff,addr[i].teleHome);
};
void unitssearch(ADDRESS adr[],int length){
printf("请输入工作单位: ");
scanf("%s",&in);
for(i=0;i<length;++i)if(strcmp(adr[i].workPlace,in)==0)printf(strFmt,adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);
};
void officenumbersearch(ADDRESS adr[],int length){
printf("请输入办公电话: ");
scanf("%s",&in);
for(i=0;i<length;++i)if(strcmp(adr[i].teleOff,in)==0)printf(strFmt,adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);
};
void homenumbersearch(ADDRESS adr[],int length){
printf("请输入家庭电话: ");
scanf("%s",&in);
for(i=0;i<length;++i)if(strcmp(adr[i].teleHome,in)==0)printf(strFmt,adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);
};
int delet(ADDRESS adr[],int length){
printf("要修改第几条记录: ");
scanf("%d",&j);
for(i=j;i<length-1;++i)adr[i]=adr[i+1];
return --length;
};
void rewrite(ADDRESS adr[],int length){
printf("要修改第几条记录: ");
scanf("%d",&j);
printf("请输入ID: ");
scanf("%d",&i);
adr[j].ID=i;
printf("请输入姓名: ");
scanf("%s",in);
strcpy(adr[j].name,in);
printf("请输入工作单位: ");
scanf("%s",in);
strcpy(adr[j].workPlace,in);
printf("请输入办公电话: ");
scanf("%s",in);
strcpy(adr[j].teleOff,in);
printf("请输入家庭电话: ");
scanf("%s",in);
strcpy(adr[j].teleHome,in);
};
int add(ADDRESS adr[],int length){
printf("请输入ID: ");
scanf("%d",&i);
adr[length].ID=i;
printf("请输入姓名: ");
scanf("%s",in);
strcpy(adr[length].name,in);
printf("请输入工作单位: ");
scanf("%s",in);
strcpy(adr[length].workPlace,in);
printf("请输入办公电话: ");
scanf("%s",in);
strcpy(adr[length].teleOff,in);
printf("请输入家庭电话: ");
scanf("%s",in);
strcpy(adr[length].teleHome,in);
return ++cntAddr;
};
void (){
FILE *fp,*fc;
printf("请输入新文件名(路径中的反斜杠用\表示) ");
scanf("%s",&in);
if((fp=fopen("c:\txl.txt","r"))!=NULL){
fc=fopen(in,"w");
while(!feof(fp)){
fscanf(fp,"%d %s %s %s %s ",&(adTmp.ID),adTmp.name,adTmp.workPlace,adTmp.teleOff,adTmp.teleHome);
fprintf(fc,"%d %s %s %s %s ",adTmp.ID,adTmp.name,adTmp.workPlace,adTmp.teleOff,adTmp.teleHome);
}
fclose(fc);
}
fclose(fp);
};
int enter(ADDRESS adr[]){
cntAddr=0;
printf("请按次序输入数据,结束按CTRL+z: ");
while(1){
printf("请输入ID: ");
if(scanf("%d",&i)==EOF)break;
adr[cntAddr].ID=i;
printf("请输入姓名: ");
if(scanf("%s",in)==EOF)break;
strcpy(adr[cntAddr].name,in);
printf("请输入工作单位: ");
if(scanf("%s",in)==EOF)break;
strcpy(adr[cntAddr].workPlace,in);
printf("请输入办公电话: ");
if(scanf("%s",in)==EOF)break;
strcpy(adr[cntAddr].teleOff,in);
printf("请输入家庭电话: ");
if(scanf("%s",in)==EOF)break;
strcpy(adr[cntAddr].teleHome,in);
++cntAddr;
}
return cntAddr;
};
void showpaixu(ADDRESS adr[],int length)
{
int choice;
menu1:
system("cls");
printf(" *************************通讯录信息管理系统************************* ");
printf(" 1. 全部显示通讯录信息 ");
printf(" 2. 按序号显示通讯录信息 ");
printf(" 3. 按姓名排序 ");
printf(" 4. 按工作单位排序 ");
printf(" 0. 返回上一级菜单 ");
printf(" ******************************************************************** ");
printf(" 请选择(0~4) ");
scanf("%d",&choice);
switch(choice)
{
case 1:
list(adr,length);
printf(" 请按任意键返回... ");
system("pause");
break; /*显示全部记录*/
case 2:
display(adr);
printf(" 请按任意键返回... ");
system("pause");break; /*按序号显示记录*/
case 3:
namesort(adr,length);
printf(" 请按任意键返回... ");
system("pause");
break; /*按姓名排序*/
case 4:
unitssort(adr,length);
printf(" 请按任意键返回... ");
system("pause");
break; /*按工作单位排序*/
case 0: return;
}
goto menu1;
}
/*通讯录信息查找功能*/
void chazhao(ADDRESS adr[],int length)
{
int choice;
menu2:
system("cls");
printf(" *************************通讯录信息管理系统************************* ");
printf(" 1. 通过姓名查找 ");
printf(" 2. 通过工作单位查找 ");
printf(" 3. 通过办公电话查找 ");
printf(" 4. 通过家庭电话查找 ");
printf(" 0. 返回上一级菜单 ");
printf(" ******************************************************************** ");
printf(" 请选择(0~4) ");
scanf("%d",&choice);
switch(choice)
{
case 1:
namesearch(adr,length);
printf(" 请按任意键返回... ");
system("pause");
break; /*按姓名查找记录*/
case 2:
unitssearch(adr,length);
printf(" 请按任意键返回... ");
system("pause");
break; /*按工作单位查找记录*/
case 3:
officenumbersearch(adr,length);
printf(" 请按任意键返回... ");
system("pause");
break; /*按办公电话查找记录*/
case 4:
homenumbersearch(adr,length);
printf(" 请按任意键返回... ");
system("pause");
break; /*按住宅电话查找记录*/
case 0: return;
}
goto menu2;
}
/*通讯录信息变更功能*/
void biangeng(ADDRESS adr[],int length)
{
int choice;
menu3:
system("cls");
printf(" *************************通讯录信息管理系统************************* ");
printf(" 1. 删除记录 ");
printf(" 2. 修改记录 ");
printf(" 3. 添加记录 ");
printf(" 0. 返回上一级菜单 ");
printf(" ******************************************************************** ");
printf(" 请选择(0~3) ");
scanf("%d",&choice);
switch(choice)
{
case 1:
length=delet(adr,length);
save(adr,length);
printf(" 请按任意键返回... ");
getchar();
break; /*删除记录*/
case 2:
rewrite(adr,length);
save(adr,length);
printf(" 请按任意键返回... ");
getchar();
break; /*修改记录*/
case 3:
length=add(adr,length);
save(adr,length);
printf(" 请按任意键返回... ");
getchar();
break; /*插入记录*/
case 0: return;
}
goto menu3;
}
int wenjian(ADDRESS adr[],int length)
{
int choice;
menu4:
system("cls");
printf(" *************************通讯录信息管理系统************************* ");
printf(" 1. 导入文件到通讯录 ");
printf(" 2. 把当前文件复制到新文件上 ");
printf(" 0. 返回上一级菜单 ");
printf(" ******************************************************************** ");
printf(" 请选择(0~2) ");
scanf("%d",&choice);
switch(choice)
{
case 1: length=load(adr);
printf("您已经成功的导入文件到通讯录! ");
printf(" 请按任意键返回... ");
system("pause");break;
case 2: ();
printf("复制成功! ");
printf(" 请按任意键返回... ");
system("pause");break;
case 0: return length;
}
goto menu4;
}
/*关于*/
void about()
{
system("color 87");
system("cls");
printf(" 《通讯录信息管理系统》 ");
printf(" ***************************************** ");
printf(" 版权所有(C) 2009-2010 DIY软件 ");
printf(" 制作人:西北民族大学计算机科学与信息09级计算机3班 王元波 ");
printf(" ***************************************** ");
printf(" 请按任意键返回主菜单...");
system("pause");
}
/******主函数开始*******/
void main()
{
int choice;
int length; /*保存记录长度*/
ADDRESS adr[100] ; /*定义结构体数组*/
menu:
system("color f9");
system("cls");
printf(" *************************通讯录信息管理系统************************* ");
printf(" 请选择以下通讯录管理功能: ");
printf(" 1. 通讯录信息输入 ");
printf(" 2. 通讯录信息浏览及排序 ");
printf(" 3. 通讯录信息查询 ");
printf(" 4. 通讯录信息更改 ");
printf(" 5. 通讯录及文件操作 ");
printf(" 6. 关于通讯录信息管理系统 ");
printf(" 0. 退出通讯录管理系统 ");
printf(" ******************************************************************** ");
printf(" 请选择(0~6) ");
scanf("%d",&choice);
switch(choice)
{
case 1: length=enter(adr);
save(adr,length);
printf(" 请按任意键返回... ");
system("pause");break;/*输入记录*/
case 2: showpaixu(adr,length);break;
case 3: chazhao(adr,length);break;
case 4: biangeng(adr,length);break;
case 5: length=wenjian(adr,length);break;
case 6: about();break;/*关于*/
case 0: return; /*如返回值为则程序结束*/
}
goto menu;
}
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
❹ c语言 电话簿管理系统
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <iostream>
//主函数
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(flag<1||flag>8)
{
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语言通讯录管理系统术语有哪些
c语言通讯录管理系统术语有:添加联系人、查找一个联系人、修改联系人、删除一个联系人、展示所有联系。
❻ C语言程序设计,通讯录管理系统
/*【用C语言编写具有数据插入、修改、删除、显示和查询功能的电话薄管理程序】
1、数据包括:人名、工作单位、电话号码和E-mail地址。
2、可对记录中的姓名和电话号码进行修改。
3、可增加或删除记录。
4、可显示所有保存的记录。
5、可按人名或电话号码进行查询。
另:采用结构体数组和文件系统实现。结构体包括人名、工作单位、电话号码和E-mail
绝对原创,2010年7月12日晚刚写完测试通过的,纯C语言! */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define szSTR 64
#define fileDB "c:\\contact.txt"
struct CONTACT {
char name[szSTR];/*姓名*/
char unit[szSTR];/*工作单位*/
char tele[szSTR];/*电话*/
char mail[szSTR];/*mail*/
};
typedef struct CONTACT CON;
#define BNAME 1
#define BUNIT 2
#define BTELE 4
#define BMAIL 8
#define BFULL 0xFF
int OPER[5] = {BFULL, BNAME, BUNIT, BTELE, BMAIL};
void input(CON * s, int mask)
{
if(mask & BNAME) { printf("请输入学生姓名:"); scanf("%s", s->name); }
if(mask & BUNIT) { printf("请输入工作单位:"); scanf("%s", s->unit); }
if(mask & BTELE) { printf("请输入联系电话:"); scanf("%s", s->tele); }
if(mask & BMAIL) { printf("请输入电子邮件:"); scanf("%s", s->mail); }
}/*end input*/
void show (int id, CON * s)
{
if(!s) return ;
if(id)
printf("%d\t%s\t%s\t%s\t%s\n",
id, s->name , s->unit , s->tele , s->mail );
else
printf("【姓名】%s【工作单位】%s【电话】%s【电邮】%s\n",
s->name , s->unit , s->tele , s->mail );
/*end if*/
}/*end show*/
void regist(void)
{
CON s; FILE * f = 0;
input(&s, BFULL);
f = fopen(fileDB, "ab");
fwrite(&s,sizeof(s),1,f);
fclose(f);
printf("资料已保存!\n");
}/*end regist*/
int browse(char * key, fpos_t * p, CON * s)
{
FILE * f =0; int i = 0, r = 0; CON t;
char * a = 0, * b = 0; fpos_t q;
if(!s) return 0;
f = fopen(fileDB, "rb");
if(!f) {
printf("数据库暂无记录\n");
return 0;
}/*end if*/
printf("编号\t姓名\t单位\t电话\t电邮\n");
printf("------------------------------------------------\n");
while(!feof(f)) {
fgetpos(f, &q);
r = fread(&t, sizeof(t), 1, f);
if(r<1)break;
if(t.name[0]==0) continue;
if(key) {
a = strstr(t.name , key);
b = strstr(t.tele , key);
if(a == 0 && b == 0) continue;
}/*end if*/
if(p) *p = q;
if(s) memcpy(s, &t, sizeof(t));
i++;
show(i, &t);
}/*end while*/
fclose(f);
printf("------------------------------------------------\n");
return i;
}/*end browse*/
fpos_t query(CON * s)
{
char key[szSTR]=""; fpos_t p = 0; int r = 0;
printf("请输入姓名或者电话号码:");
scanf("%s", key);
r = browse(key, &p, s);
return r?p:-1;
}/*end query*/
void clear(void)
{
FILE * f = 0; CON s;
fpos_t p = query(&s);
if(p<0) return;
f = fopen(fileDB, "rb+");
fsetpos(f, &p);
memset(&s, 0, sizeof(s));
fwrite(&s, sizeof(s),1, f);
fclose(f);
printf("记录已删除!\n");
}/*end clear*/
void modify(void)
{
FILE * f = 0; CON s; int cmd = 0;
fpos_t p = query(&s);
if(p<0) return;
f = fopen(fileDB, "rb+");
fsetpos(f, &p);
for(;;) {
show(0, &s);
printf("请选择:1-姓名;2-工作单位;3-电话;4-电邮;5-保存并退出;6-放弃修改并退出\n");
scanf("%d", &cmd);
switch(cmd) {
case 1:
case 2:
case 3:
case 4:
input(&s, OPER[cmd]);
break;
case 5:
fsetpos(f, &p);
fwrite(&s, sizeof(s), 1, f);
case 6:
fclose(f);
return;
default:
printf("错误的操作,请重新输入。\n");
}/*end case*/
}/*mext*/
}/*end clear*/
int main(void)
{
int cmd = 0; CON s;
for(;;) {
printf("欢迎使用通信簿!请选择:1-添加;2-查询;3-删除;4-修改;5-全部输出;0-退出\n");
scanf("%d", &cmd);
switch(cmd) {
case 0: return 0;
case 1: regist(); break;
case 2: query(&s); break;
case 3: clear(); break;
case 4: modify(); break;
case 5: browse(0, 0, &s); break;
}//end case
}
return 0;
}
❼ C语言,编写一个简单的通讯录管理系统
实现一个通讯录管理系统;
通讯录管理系统可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
**提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
7. 以名字排序所有联系人**
1、linkman.h(头文件)
3、程序运行结果部分示范: