
急求C++课程设计答案!重金悬赏!!.... 30
4.1.通讯录管理系统(1)功能要求该系统运行在Windows环境下,人机界面为图形界面。基本信息包括编号、姓名、电话号码、手机号码、邮编、email地址和居住地址。实现...
4.1.通讯录管理系统
(1) 功能要求
该系统运行在Windows环境下,人机界面为图形界面。基本信息包括编号、姓名、电话号码、手机号码、邮编、email地址和居住地址。
实现的主要功能是:
添加:增加一个或多个人的通讯录信息。
删除:删除已输入的通讯录信息。
查询:根据输入的姓名查找通讯录信息。
修改:根据输入的姓名修改通讯录信息。
显示:输出所有通讯录信息。 展开
(1) 功能要求
该系统运行在Windows环境下,人机界面为图形界面。基本信息包括编号、姓名、电话号码、手机号码、邮编、email地址和居住地址。
实现的主要功能是:
添加:增加一个或多个人的通讯录信息。
删除:删除已输入的通讯录信息。
查询:根据输入的姓名查找通讯录信息。
修改:根据输入的姓名修改通讯录信息。
显示:输出所有通讯录信息。 展开
2个回答
展开全部
#include <iostream>
using namespace std;
#define null 0
struct notelist
{
char num[5]; // 编号
char name[9]; // 姓名
char sex[3]; // 性别
char phone[13]; // 电话
char addr[31]; // 地址
notelist *next;
};
int n;
bool find1(notelist *head,char num[]);
notelist *creat()//通讯录的建立
{char i;
notelist *head;
notelist*p1,*p2;
n=0;
p1=p2=new notelist;
p1->next=null;
head=null;
/*cout<<"请输入通讯录信息的条数:";
cin>>i;*/
/*cin.clear(); //清空状态和缓冲区 ,判断输入正确与否
cin.sync();
for(int j=1;j<100000;j++)
k=i-j;
if(k==0)
cout<<endl;
else
{cout<<"输入错误"<<endl;
cin>>i;}*/
do
{
cout<<"请输入第"<<n+1<<"条通讯信息:"<<endl;
cout<<"请输入编号:";
cin>>p1->num;
while(find1(head,p1->num))
{
cout<<"-----此编号已存在!请重新输入!-----"<<endl;
cout<<"请输入编号:";
cin>>p1->num;
}
cout<<"请输入姓名:";
cin>>p1->name;
cout<<"请输入性别:";
cin>>p1->sex;
cout<<"请输入电话号码:";
cin>>p1->phone;
cout<<"请输入地址:";
cin>>p1->addr;
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=new notelist;
p1->next=null;
cout<<"是否继续输入通讯录讯息:(是请按y---否请按其它任意键)";
cin>>i;
}
while(i=='y'||i=='Y');
p2->next=null;
return(head);
}
bool find1(notelist *head,char num[])//查询相同编号
{notelist *p1,*p2;
if(head==null)
{return 0;}
p1=head;
while((strcmp(num,p1->num)!=0)&&p1->next!=null)
{p2=p1;p1=p1->next;}
if(strcmp(num,p1->num)==0)
{
return 1;
}
else return 0;
}
void print(notelist*head)//通讯录信息的输出
{
notelist *p;
cout<<endl<<"通讯录里有"<<n<<"条记录如下:"<<endl;
cout<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"电话"<<" "<<"地址"<<endl;
p=head;
if(head!=null)
do
{
cout<<p->num<<" "<<p->name<<" "<<p->sex<<" "<<p->phone<<" "<<p->addr<<endl;
p=p->next;
}
while(p!=null);
}
void find(notelist *head,char num[])//查询
{notelist *p1,*p2;
if(head==null)
{cout<<"没记录"<<endl;}
p1=head;
while((strcmp(num,p1->num)!=0)&&p1->next!=null)
{p2=p1;p1=p1->next;}
if(strcmp(num,p1->num)==0)
{
cout<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"电话"<<" "<<"地址"<<endl;
cout<<p1->num<<" "<<p1->name<<" "<<p1->sex<<" "<<p1->phone<<" "<<p1->addr<<endl;
}
else cout<<"找不到该编号:";
}
notelist *del(notelist *head,char num[])//通讯录信息的删除
{notelist *p1,*p2;
if(head==null)
{cout<<"没记录"<<endl;return(head);}
p1=head;
while(strcmp(num,p1->num)!=0&&p1->next!=null)
{p2=p1;p1=p1->next;}
if(strcmp(num,p1->num)==0)
{if(p1==head)head=p1->next;
else p2->next=p1->next;
cout<<"编号为"<<num<<"的记录已删除!"<<endl;
n=n-1;
}
else cout<<"找不到该编号:";
return(head);
}
notelist *insert(notelist *head,notelist *stud)//通讯录信息的添加
{
notelist *p0,*p1,*p2;
p1=head;
p0=stud;
if(head==null)
{head=p0;p0->next=null;}
else
{
while(strcmp(p0->num,p1->num)>0&&(p1->next!=null))
{
p2=p1;
p1=p1->next;}
if(strcmp(p0->num,p1->num)<0)
{if(head==p1)head=p0;
else p2->next=p0;
p0->next=p1;}
else
{p1->next=p0;p0->next=null;}
}
n=n+1;
return(head);
}
int main()
{
int s,d, a,j=0;
notelist *head,*stu;
char c, i,k[5],del_num[5];
char y;
do
{
cout<<"*****************请选择:******************"<<endl;
cout<<"建立通讯录请按1--------查询通讯录请按2"<<endl;
cout<<"删除通讯录请按3--------插入通讯录请按4"<<endl;
cout<<"退出菜单请按5"<<endl;
cout<<"******************************************"<<endl;
cin>>c;
switch(c)
{case '1':
head=creat();
print(head);
break;
case '2':
cout<<endl<<"请输入要查询的编号:(结束请输入exit)";
cin>>k;
do
{
find(head,k);
cout<<endl<<"请输入要查询的编号:(结束请输入exit)";
cin>>k;
}
while(strcmp(k,"exit")!=0);
break;
case '3':
cout<<endl<<"请输入要删除的编号:(结束请输入exit)";
cin>>del_num;
while(strcmp(del_num,"exit")!=0)
{head=del(head,del_num);
print(head);
cout<<"请输入要删除的编号:(结束请输入exit)";
cin>>del_num;
}
break;
case '4':
/*cout<<endl<<"请输入需插入通讯录信息的条数:";
cin>>i;*/
do
{
cout<<endl<<"如下填写第"<<j+1<<"条插入通讯录的资料";
stu=new notelist;
cout<<"请输入编号:";
cin>>stu->num;
while(find1(head,stu->num))//判断编号是否存在
{
cout<<"-----此编号已存在!请重新输入!-----"<<endl;
cout<<"请输入编号:";
cin>>stu->num;
}
cout<<"请输入姓名:";
cin>>stu->name;
cout<<"请输入性别:";
cin>>stu->sex;
cout<<"请输入电话号码:";
cin>>stu->phone;
cout<<"请输入地址:";
cin>>stu->addr;
head=insert(head,stu);
print(head);
j=j+1;
cout<<"是否继续输入通讯录讯息:(是请按y---否请按其它任意键)";
cin>>i;
}
while(i=='y'||i=='Y');
break;
case '5':break;
default: cout<<"输入错误!"<<endl;break;
}
cout<<"是否继续操作:(是请按y---退出请按其它任意键)"<<endl;
cin>>y;
}
while(y=='y'||y=='Y');
return 0;
}
using namespace std;
#define null 0
struct notelist
{
char num[5]; // 编号
char name[9]; // 姓名
char sex[3]; // 性别
char phone[13]; // 电话
char addr[31]; // 地址
notelist *next;
};
int n;
bool find1(notelist *head,char num[]);
notelist *creat()//通讯录的建立
{char i;
notelist *head;
notelist*p1,*p2;
n=0;
p1=p2=new notelist;
p1->next=null;
head=null;
/*cout<<"请输入通讯录信息的条数:";
cin>>i;*/
/*cin.clear(); //清空状态和缓冲区 ,判断输入正确与否
cin.sync();
for(int j=1;j<100000;j++)
k=i-j;
if(k==0)
cout<<endl;
else
{cout<<"输入错误"<<endl;
cin>>i;}*/
do
{
cout<<"请输入第"<<n+1<<"条通讯信息:"<<endl;
cout<<"请输入编号:";
cin>>p1->num;
while(find1(head,p1->num))
{
cout<<"-----此编号已存在!请重新输入!-----"<<endl;
cout<<"请输入编号:";
cin>>p1->num;
}
cout<<"请输入姓名:";
cin>>p1->name;
cout<<"请输入性别:";
cin>>p1->sex;
cout<<"请输入电话号码:";
cin>>p1->phone;
cout<<"请输入地址:";
cin>>p1->addr;
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=new notelist;
p1->next=null;
cout<<"是否继续输入通讯录讯息:(是请按y---否请按其它任意键)";
cin>>i;
}
while(i=='y'||i=='Y');
p2->next=null;
return(head);
}
bool find1(notelist *head,char num[])//查询相同编号
{notelist *p1,*p2;
if(head==null)
{return 0;}
p1=head;
while((strcmp(num,p1->num)!=0)&&p1->next!=null)
{p2=p1;p1=p1->next;}
if(strcmp(num,p1->num)==0)
{
return 1;
}
else return 0;
}
void print(notelist*head)//通讯录信息的输出
{
notelist *p;
cout<<endl<<"通讯录里有"<<n<<"条记录如下:"<<endl;
cout<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"电话"<<" "<<"地址"<<endl;
p=head;
if(head!=null)
do
{
cout<<p->num<<" "<<p->name<<" "<<p->sex<<" "<<p->phone<<" "<<p->addr<<endl;
p=p->next;
}
while(p!=null);
}
void find(notelist *head,char num[])//查询
{notelist *p1,*p2;
if(head==null)
{cout<<"没记录"<<endl;}
p1=head;
while((strcmp(num,p1->num)!=0)&&p1->next!=null)
{p2=p1;p1=p1->next;}
if(strcmp(num,p1->num)==0)
{
cout<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"电话"<<" "<<"地址"<<endl;
cout<<p1->num<<" "<<p1->name<<" "<<p1->sex<<" "<<p1->phone<<" "<<p1->addr<<endl;
}
else cout<<"找不到该编号:";
}
notelist *del(notelist *head,char num[])//通讯录信息的删除
{notelist *p1,*p2;
if(head==null)
{cout<<"没记录"<<endl;return(head);}
p1=head;
while(strcmp(num,p1->num)!=0&&p1->next!=null)
{p2=p1;p1=p1->next;}
if(strcmp(num,p1->num)==0)
{if(p1==head)head=p1->next;
else p2->next=p1->next;
cout<<"编号为"<<num<<"的记录已删除!"<<endl;
n=n-1;
}
else cout<<"找不到该编号:";
return(head);
}
notelist *insert(notelist *head,notelist *stud)//通讯录信息的添加
{
notelist *p0,*p1,*p2;
p1=head;
p0=stud;
if(head==null)
{head=p0;p0->next=null;}
else
{
while(strcmp(p0->num,p1->num)>0&&(p1->next!=null))
{
p2=p1;
p1=p1->next;}
if(strcmp(p0->num,p1->num)<0)
{if(head==p1)head=p0;
else p2->next=p0;
p0->next=p1;}
else
{p1->next=p0;p0->next=null;}
}
n=n+1;
return(head);
}
int main()
{
int s,d, a,j=0;
notelist *head,*stu;
char c, i,k[5],del_num[5];
char y;
do
{
cout<<"*****************请选择:******************"<<endl;
cout<<"建立通讯录请按1--------查询通讯录请按2"<<endl;
cout<<"删除通讯录请按3--------插入通讯录请按4"<<endl;
cout<<"退出菜单请按5"<<endl;
cout<<"******************************************"<<endl;
cin>>c;
switch(c)
{case '1':
head=creat();
print(head);
break;
case '2':
cout<<endl<<"请输入要查询的编号:(结束请输入exit)";
cin>>k;
do
{
find(head,k);
cout<<endl<<"请输入要查询的编号:(结束请输入exit)";
cin>>k;
}
while(strcmp(k,"exit")!=0);
break;
case '3':
cout<<endl<<"请输入要删除的编号:(结束请输入exit)";
cin>>del_num;
while(strcmp(del_num,"exit")!=0)
{head=del(head,del_num);
print(head);
cout<<"请输入要删除的编号:(结束请输入exit)";
cin>>del_num;
}
break;
case '4':
/*cout<<endl<<"请输入需插入通讯录信息的条数:";
cin>>i;*/
do
{
cout<<endl<<"如下填写第"<<j+1<<"条插入通讯录的资料";
stu=new notelist;
cout<<"请输入编号:";
cin>>stu->num;
while(find1(head,stu->num))//判断编号是否存在
{
cout<<"-----此编号已存在!请重新输入!-----"<<endl;
cout<<"请输入编号:";
cin>>stu->num;
}
cout<<"请输入姓名:";
cin>>stu->name;
cout<<"请输入性别:";
cin>>stu->sex;
cout<<"请输入电话号码:";
cin>>stu->phone;
cout<<"请输入地址:";
cin>>stu->addr;
head=insert(head,stu);
print(head);
j=j+1;
cout<<"是否继续输入通讯录讯息:(是请按y---否请按其它任意键)";
cin>>i;
}
while(i=='y'||i=='Y');
break;
case '5':break;
default: cout<<"输入错误!"<<endl;break;
}
cout<<"是否继续操作:(是请按y---退出请按其它任意键)"<<endl;
cin>>y;
}
while(y=='y'||y=='Y');
return 0;
}
2010-06-12
展开全部
30分,也叫重金.
这点程序写个雏形也得写几个小时.
现在程序员同志们越来越便宜了.
这点程序写个雏形也得写几个小时.
现在程序员同志们越来越便宜了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询