Ⅰ 用c++编写一个通讯录,要简单点的.很急!

#include <iostream>
#include <string>
using namespace std;
const int nu=100;
enum Sex{Man,Woman,mid};
class Stuinf{
private:
string Name;
string Num;
enum Sex sex;
int Age;
string Address;
string Phone;
Stuinf *next;
public:
Stuinf(){Name="no name";Num="no num";sex=mid;Age=0;Address="no address";Phone="no phone";next=NULL;}
void setname(){cout<<"输入姓名"<<endl;cin>>Name;}
string getname(){return Name;}
void setnum(){cout<<"输入学号"<<endl;cin>>Num;}
string getnum(){return Num;}
void setsex(){int x;cout<<"输入0或1,0代表男性,1代表女性"<<endl;cin>>x;sex=(x==0)?Man:Woman;}
string getsex(){return (sex==Man)?"Man":"Woman";}
void setage(){cout<<"输入年龄"<<endl;cin>>Age;while(!(0<Age&&Age<100)){cout<<"输入错误,请重输"<<endl;cin>>Age;}}
int getage(){return Age;}
void setaddress(){cout<<"输入地址"<<endl;cin>>Address;}
string getaddress(){return Address;}
void setphone(){cout<<"输入电话号码"<<endl;cin>>Phone;}
string getphone(){return Phone;}
void setnext(Stuinf *stu){next=stu;}
Stuinf* getnext(){return next;}
~Stuinf(){};
};
int main(){
Stuinf *head=new Stuinf();Stuinf *st[nu];int i;
int n;
cout<<"请输入指令 0,1,2,3,4,5"<<endl;
cout<<"0、退出通讯录系统"<<endl;
cout<<"1、 录入功能:用于增加通信录的内容,即首次录入同学的相关信息。";
cout<<"性别的输入应是男或"<<" 女,如果输入错误,请重新输入;";
cout<<"输入的年龄应在0~100之间,否则重新输入。"<<endl;
cout<<"2、 插入功能:用于随时增加一个同学的相关信息。"<<endl;
cout<<"3、 删除功能:用于随时删除一个同学的相关信息。"<<endl;
cout<<"4、 查找功能:可以分别通过姓名、性别、年龄、地址、邮编和联系电话查找某个同学的信息。"<<endl;
cout<<"5、 修改功能:通过姓名查找,然后写成完成姓名、性别、年龄、地址、邮编、联系电话等信息的修改。"<<endl;
cout<<"请输入:"<<endl;
cin>>n;
while(!(0<=n&&n<6)){
cin>>n;
}
while(n){
switch (n){
case 1:{
int num;
cout<<"请输入需要录入的学生人数"<<endl;
cin>>num;

for(i=0;i<num;i++){
st[i]=new Stuinf();
st[i]->setname();
st[i]->setage();
st[i]->setnum();
st[i]->setphone();
st[i]->setaddress();
st[i]->setsex();
st[i]->setnext(head->getnext());
head->setnext(st[i]);
}
break;
}
case 2:{
Stuinf* p;
p=new Stuinf();
p->setname();
p->setage();
p->setnum();
p->setphone();
p->setaddress();
p->setsex();
p->setnext(head->getnext());
head->setnext(p);
break;
}
case 3:{
string number;
cout<<"输入要删除的学生学号"<<endl;
cin>>number;
Stuinf* p;Stuinf* q;
p=head;
if(head->getnext()==NULL) cout<<"通讯录为空"<<endl;
while(p->getnum()!=number){
q=p;
p=p->getnext();
}
if(p->getnext()==NULL)
cout<<"该学生不存在"<<endl;
else{
q->setnext(p->getnext());
p->~Stuinf();
cout<<"学号为"<<number<<"的学生已经删除"<<endl;
}
break;
}
case 4:{
string na;
cout<<"请输入姓名"<<endl;
cin>>na;
Stuinf * p=head->getnext();
while(p){
if(p->getname()==na) break;
p=p->getnext();
}
if(p==NULL) cout<<"该学生不存在"<<endl;
else{
cout<<"学生信息:"<<endl;
cout<<"姓名:"<<p->getname()<<endl;
cout<<"学号:"<<p->getnum()<<endl;
cout<<"年龄:"<<p->getage()<<endl;
cout<<"地址:"<<p->getaddress()<<endl;
cout<<"性别:"<<p->getsex()<<endl;
cout<<"电话号码:"<<p->getphone()<<endl;
}
break;
}
case 5:{
string na;
cout<<"请输入姓名"<<endl;
cin>>na;
Stuinf * p=head->getnext();
while(p){
if(p->getname()==na) break;
p=p->getnext();
}
if(p==NULL) cout<<"该学生不存在"<<endl;
else{
cout<<"修改姓名"<<endl;
p->setname();
cout<<"修改学号"<<endl;
p->setnum();
cout<<"修改年龄"<<endl;
p->setage();
cout<<"修改地址"<<endl;
p->setaddress();
cout<<"修改性别"<<endl;
p->setsex();
cout<<"修改电话号码"<<endl;
p->setphone();
cout<<"修改完毕"<<endl;
}
break;
}
}
cout<<"请输入指令 0,1,2,3,4,5"<<endl;
cout<<"0、退出通讯录系统"<<endl;
cout<<"1、 录入功能:用于增加通信录的内容,即首次录入同学的相关信息。";
cout<<"性别的输入应是男或女,如果输入错误,请重新输入;";
cout<<"输入的年龄应在0~100之间,否则重新输入。"<<endl;
cout<<"2、 插入功能:用于随时增加一个同学的相关信息。"<<endl;
cout<<"3、 删除功能:用于随时删除一个同学的相关信息。"<<endl;
cout<<"4、 查找功能:可以分别通过姓名、性别、年龄、地址、邮编和联系电话查找某个同学的信息。"<<endl;
cout<<"5、 修改功能:通过姓名查找,然后写成完成姓名、性别、年龄、地址、邮编、联系电话等信息的修改。"<<endl;
cout<<"请输入:"<<endl;
cin>>n;
}
}

Ⅱ 设计一个通讯录管理系统。要求:通讯录一般包括通讯者的编号、姓名、性别、电话、地址及邮编等信息还有

刚好作了一个。给邮箱我。分值有点低阿…

我这个事原版,但差别不大,修改几个地方就可以了,我就不修改了!

我的网络知道ID ldyhrln 请记得点赞!!!!!!!!!
#include<stdio.h>
#include<string.h>
#define M 100
static int N=0,I=0;
struct student
{
char name[20];
char num[20];
char qq[20];
char type[10];
}stu[M];
void menu();
void add();
void find();
void alter();
void Delete();
void list();
void input();
void output();
int quit();
int Find(char []);
int Find_num(char []);
int Find_qq(char []);
int Find_type(char []);
void main()
{
int op;
menu();
while(1)
{
printf("\t\n\t\t 请选择功能(1-8):");
scanf("%d",&op);
getchar();
switch(op)
{
case 1:
printf("\n\t1.***********新增记录****************\n");
add();
break;
case 2:
printf("\n\t2.**********查找通讯录***************\n");
find();
break;
case 3:
printf("\n\t3.**********修改通讯录***************\n");
alter();
break;
case 4:
printf("\n\t4.**********删除通讯录***************\n");
Delete();
break;
case 5:
printf("\n\t5.**********显示通讯录***************\n");
list();
break;
case 6:
printf("\n\t6.*******从内存导出文件中************\n");
output();
break;
case 7:
printf("\n\t7.*******从文件导入内存中************\n");
input();
break;
break;
case 8:
printf("\n\t8.*************退出******************\n");
op=quit();
break;
default:
printf("\tNot have the function!\n");
break;
}
if(op==8)
{
printf("\n\t感谢您的使用,已退出程序!\n\t");
break;
}
else
continue;
}
}
void menu()
{
printf("\n");
printf("\t************通讯录管理菜单***********\n");
printf("\t\t1.增加新的记录\n");
printf("\t\t2.查找通讯录\n");
printf("\t\t3.修改通讯录\n");
printf("\t\t4.删除通讯录\n");
printf("\t\t5.显示全部通讯录\n");
printf("\t\t6.把通讯录导出到文件\n");
printf("\t\t7.从文件导入通讯录\n");
printf("\t\t8.退出\n");
printf("\t*************************************\n");
}
//1实现新增
void add()
{
struct student stud;
while(1)
{
printf("\n\t当前共存在%d条记录,请输入下一条:",N);
if(N==0)
{
printf("\n\t请输入姓名:");
scanf("%s",stu[N].name);
printf("\t请输入电话号码:");
scanf("%s",stu[N].num);
printf("\t请输入QQ号:");
scanf("%s",stu[N].qq);
printf("\t请输入类别(小学、初中、高中、大学):");
scanf("%s",stu[N].type);
N++;
printf("\n\t是否输入下一条(Y)?按任意键返回主菜单:");
if(getchar()=='Y'||getchar()=='y')
continue;
break;
}
printf("\n\t请输入姓名:");
scanf("%s",&stud.name);
printf("\t请输入电话号码:");
scanf("%s",&stud.num);
printf("\t请输入QQ号:");
scanf("%s",&stud.qq);
printf("\t请输入类别(小学、初中、高中、大学):");
scanf("%s",&stud.type);
if(!Find(stud.name))
{
printf("\n\t发现通讯录中存在该记录,确认新增吗(Y)?其它任意键将覆盖:");
if(getchar()=='Y'||getchar()=='y')
{
stu[N]=stud;
N++;
}
else
stu[I]=stud;
printf("\n\t操作成功!\n");
}
else
{
stu[N]=stud;
N++;
}
printf("\n\t是否输入下一条(Y)?按任意键返回主菜单:");
if(getchar()=='Y'||getchar()=='y')
continue;
break;
}
menu();
}
//2 实现查找
void find()
{
char s[20],ch,ch1;
while(1)
{
printf("\n\t****选择查找方式****");
printf("\n\t1.按姓名查找:");
printf("\n\t2.按电话号码查找:");
printf("\n\t3.按QQ查找:");
printf("\n\t4.按类别查找:");
printf("\n\t*******************\n");
printf("\n\t请输入查找方式(1-4):");
ch=getchar();
getchar();
switch(ch)
{
case '1':
printf("\n\t请输入姓名:");
gets(s);
if(Find(s))
printf("\n\t查找失败,请确认是否输入有误或不存在该记录!\n");
break;
case '2':
printf("\n\t请输入电话号码:");
gets(s);
if(Find_num(s))
printf("\n\t查找失败,请确认是否输入有误或不存在该记录!\n");
break;
case '3':
printf("\n\t请输入QQ号码:");
gets(s);
if(Find_qq(s))
printf("\n\t查找失败,请确认是否输入有误或不存在该记录!\n");
break;
case '4':
printf("\n\t请输入类别:");
gets(s);
if(Find_type(s))
printf("\n\t查找失败,请确认是否输入有误或不存在该记录!\n");
break;
default:
printf("\tHave not the function!");
printf("\t\n");
break;
}
printf("\n\t继续查找吗(Y)?,按任意键返回主菜单:");
ch1=getchar();
getchar();
if(ch1=='Y'||ch1=='y')
continue;
break;
}
menu();
}
//3 实现修改
void alter()
{
char ch,ch1,ch2,s[20];
printf("\n\t请输入要修改的姓名:");
gets(s);
if(Find(s))
printf("\n\t查找失败,请确认是否输入有误或不存在该记录!");
else
{
printf("\n\t*****请选择修改方式*****:");
printf("\n\t1.覆盖修改(重新输入全部信息)");
printf("\n\t2.部分修改");
printf("\n\t************************\n");
printf("\n\t请选择修改的方式(1-2):");
ch=getchar();
getchar();
switch(ch)
{
case '1':
printf("\n\t请输入姓名:");
scanf("%s",stu[I].name);
printf("\t请输入电话号码:");
scanf("%s",stu[I].num);
printf("\t请输入QQ:");
scanf("%s",stu[I].qq);
printf("\t请输入类别(小学、初中、高中、大学):");
scanf("%s",stu[I].type);
printf("\n\t修改成功! 修改后记录为:\n");
printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n\t姓名\t电话号码\tQQ\t\t类别");
printf("\n\t%-8s%-16s%-16s%-8s",stu[I].name,stu[I].num,stu[I].qq,stu[I].type);
break;
case '2':
while(1)
{
printf("\n\t**请选择要修改的项目:***");
printf("\n\t1.姓名");
printf("\n\t2.电话号码:");
printf("\n\t3.QQ:");
printf("\n\t4.类别:");
printf("\n\t************************\n");
printf("\n\t请输入要修改的项目(1-4):");
ch1=getchar();
getchar();
switch(ch1)
{
case '1':
printf("\n\t请输入修改后的姓名:");
scanf("%s",s);
break;
case '2':
printf("\n\t请输入修改后的电话号码:");
scanf("%s",stu[I].num);
break;
case '3':
printf("\n\t请输入修改后的QQ:");
scanf("%s",stu[I].qq);
break;
case '4':
printf("\n\t请输入修改后的类别(小学、初中、高中、大学):");
scanf("%s",stu[I].type);
break;
}
getchar();
printf("\n\t修改成功! 修改后记录为:\n");
printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n\t姓名\t电话号码\tQQ\t\t类别");
printf("\n\t%-8s%-16s%-16s%-8s",stu[I].name,stu[I].num,stu[I].qq,stu[I].type);
printf("\n\t继续修改(Y)?按任意键返回主菜单:");
ch2=getchar();
getchar();
if(ch2=='Y'||ch2=='y')
continue;
break;
}
break;
}
}
menu();
}
//4 实现删除
void Delete()
{
char s[20],ch;
while(1)
{
printf("\n\t请输入要删除的姓名:");
scanf("%s",s);
getchar();
if(Find(s))
{
printf("\n\t不存在该条记录,请确认是否输入有误或不存在该记录!\n");
break;
}
else
{
printf("\n\t确认删除该条记录吗(Y)?按任意键保留原纪录并返回主菜单:");
ch=getchar();
if(ch=='Y'||ch=='y')
{
for(I;I<N-1;I++)
stu[I]=stu[I+1];
printf("\n\t删除成功!\n");
N-=1;
break;
}
printf("\n\t已保留原纪录!\n");
break;
}
}
menu();
}
//5 实现全部显示
void list()
{
int c=0;
for(int i=0;i<N;i++)
{
if(c==0)
{
printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n\t姓名\t电话号码\tQQ\t\t类别");
}
printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type);
c++;
}
printf("\n\t\t\t\t当前记录共有%d条!",i);
menu();
}
//6实现导出
void output()
{
FILE *fp;
if((fp=fopen("tongxunlu.txt","w"))==NULL)
printf("\n\tcan not open the file!");
for(int i=0;i<N;i++)
{
fwrite(&stu[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf("\n\t导出成功!\n");
menu();
}
//7实现导入
void input()
{
FILE *fp;
struct student stud1;
if((fp=fopen("tongxunlu.txt","r"))==NULL)
printf("\n\tcan not open the file!");
printf("\t姓名\t电话号码\tQQ\t\t类别\n");
for(int i=0;i<N;i++)
{
fread(&stud1,sizeof(struct student),1,fp);
printf("\n\t%-8s%-16s%-16s%-8s",stud1.name,stud1.num,stud1.qq,stud1.type);
}
fclose(fp);
printf("\n\t导入成功!\n");
menu();
}
//8实现程序退出
int quit()
{
char ch;
printf("\n\t确定退出吗(Y)?按任意键返回主菜单:");
ch=getchar();
if(ch=='Y'||ch=='y')
return(8);
else
return(1);
}
//用于名字查找
int Find(char s[])
{
int i,c,c1=0;
for(i=0;i<N;i++)
{
while(1)
{
if((strcmp(stu[i].name,s))==0)
{
I=i,c=0;
if(c1==0)
{
printf("\n\t查找成功:");
printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n\t姓名\t电话号码\tQQ\t\t类别");
}
printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type);
c1++;
break;
}
else
break;
}
}
if(c==0)
return(c);
else
return(1);
}
int Find_num(char s[])
{
int i,c,c1=0;
for(i=0;i<N;i++)
{
while(1)
{
if((strcmp(stu[i].num,s))==0)
{
I=i,c=0;
if(c1==0)
{
printf("\n\t查找成功:");
printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n\t姓名\t电话号码\tQQ\t\t类别");
}
printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type);
c1++;
break;
}
break;
}
}
if(c==0)
return(c);
else
return(1);
}
int Find_qq(char s[])
{
int i,c,c1=0;
for(i=0;i<N;i++)
{
while(1)
{
if((strcmp(stu[i].qq,s))==0)
{
I=i,c=0;
if(c1==0)
{
printf("\n\t查找成功:");
printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n\t姓名\t电话号码\tQQ\t\t类别");
}
printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type);
c1++;
break;
}
break;
}
}
if(c==0)
return(c);
else
return(1);
}
int Find_type(char s[])
{
int i,c,c1=0;
for(i=0;i<N;i++)
{
while(1)
{
if((strcmp(stu[i].type,s))==0)
{
I=i,c=0;
if(c1==0)
{
printf("\n\t查找成功:");
printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n\t姓名\t电话号码\tQQ\t\t类别");
}
printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type);
c1++;
break;
}
break;
}
}
if(c==0)
return(c);
else
return(1);
}

Ⅲ 用c语言对以下通讯录用顺序表来实现储存

#include<stdio.h>
typedefstruct
{
intxh;
charxm[10];
chartel[12];
}STU;
typedefSTUElemType;
typedefstruct
{
ElemTypedata[10];
intlength;
}SqList;
intmain()
{
SqListl={{{178101,"杨文","13788041567"},{178102,"张江","13478920019"},{178103,"李华","15077402345"},{178104,"黄丽","15867748903"},{178105,"刘宁","18977410656"}},5};
inti;
printf("学号 姓名 手机号码 ");
for(i=0;i<l.length;i++)
{
printf("%d %s %s ",l.data[i].xh,l.data[i].xm,l.data[i].tel);
}
return0;
}

Ⅳ C语言编写通讯录怎么按姓名查找联系人

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineN50
structfriend_list{
charname[16];
chartel[16];
charemail[20];
}fri[N];

/*voidinitstu(structfriend_list*p);*/
voidadd_friend(structfriend_list*p);
voidsearch_friend(structfriend_list*p);
voiddel_friend(structfriend_list*p,char*name);
voidrenew_friend(structfriend_list*p,char*name);

intn=0;//全局变量,用来记录现有人数

voidmain(void){
intfriendnumber=0;
intchose=0;
while(1){
printf("1:新增联系人 ");
printf("2:按姓名查找联系人 ");
printf("3:按姓名删除联系人 ");
printf("4:按姓名修改联系人 ");
printf("0:退出 ");

printf(" 请选择输入(0-4):");
scanf("%d",&chose);
switch(chose){
case1:add_friend(fri);break;
case2:
case3:
case4:
case0:
default:return;
}
}
}

voidadd_friend(structfriend_list*p){
if(n>=N){
printf("已经满员,不能添加了。 ");
return;
}
printf("请输入新增联系人的姓名,联系电话,电子邮箱: ");
scanf("%s%s%s",p[n].name,p[n].tel,p[n].email);
++n;
}

voidsearch_friend(structfriend_list*p){
inti,flag=1;
charname[16];
printf("请输入要查找的联系人的名字: ");
scanf("%s",name);
for(i=0;i<n&&flag;i++){
if(strcmp(p[i].name,name)==0){
printf("%s%s%s ",name,p[i].tel,p[i].email);
flag=0;
}
}
if(flag)printf("没有找到名字叫:%s的人! ",name);
}