1、同济大学 二○一一~二○一二 学年第 二 学期 交通运输工程学院 课程设计报告书 课程名称: C/C++语言课程设计 班 级: 4班 学 号: 1151220 姓 名: 王琎晨 指导教师: 孙丽君 二○一二 年 六 月 一. 需求分析 程序名称:通讯录管理程序。
2、 程序功能概括: 1) 添加:即增加一个人的记录到通信录中 2) 显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。 3) 查询:可根据姓名查找某人的相关信息,若找到显示其姓名、地址、电话号码和邮政编码。 4) 修改:可修改一个人的除姓名外其它信息。 5) 分类并显示:可将人员进行分组,例如分为家人,朋友,同事等,选择分组后,只显示该分组内的信息 6) 装入:即将文件中的信息读入程序。 7) 存储:即将通讯录信息保存在一个文件中。 8) 删除:删除通讯录中的联系人。 程序意义:通讯录管理系统针对手机中对联系人的添加,删除等操作,方便用户使用通讯录,起到便利作用
3、 二. 概要设计 系统核心功能: Ø 添加联系人 Ø 显示所有联系人信息 Ø 查询联系人并显示 Ø 删除联系人 Ø 分组并显示 Ø 修改联系人信息 功能框图: 通讯录管理 载入数据 分组并显示 查询联系人 删除联系人 显示联系人 插入联系人 保存数据 分组显示 组内添加联系人 创建新组 功能描述: Ø 插入联系人:通过键盘输入联系人的姓名,电话号码,地址,邮政编码等信息,存入通讯录中。 Ø 显示联系人:在屏幕上分行显示所有联系人的信息。
4、 Ø 删除联系人:通过输入需要删除的联系人的姓名删除该联系人。 Ø 查询联系人:通过输入需要查询的联系人的姓名查询该联系人。 Ø 载入数据:从文件读出数据。 Ø 保存数据:将数据保存入文件。 Ø 分组并显示:1.创建新组:创建新的分类。 2.组内添加联系人:将联系人添加入该组。 3:。分组显示:在屏幕上分组显示联系人。 三. 详细设计 本程序用了如下课本中没有的函数,使界面简洁明了。 getch()//键盘任意输入 system(“CLS”)//清屏 如下为完整程序: #include"iostream.h"
5、 #include"string.h" #include"iomanip" #include"stdlib.h" #include"stdio.h" #include"conio.h" #include"iomanip.h" struct ben//定义结构 { char name[20]; char address[80]; char num[20]; char you[10]; char fen[10]; struct ben *next; }; struct ben *head=NULL;//定义全局变量 char *lei[20];
6、 int i(0); void csh() { for(int i=0;i<20;i++) lei[i]=NULL; } void menu(); void duru()//读入数据 { system("CLS"); FILE *fp; if((fp=fopen("txl.txt","r+"))==NULL) { cout<<"can't open file"; exit(1); } head=new ben; struct ben *newben; struct ben *tail; tail=head; w
7、hile(!feof(fp))
{
newben=new ben;
fread(newben,sizeof(ben),1,fp);
tail->next=newben;
tail=newben;
}
tail->next=NULL;
cout<<"读取文件成功"< 8、t","r+"))==NULL)
{
cout<<"can't open file";
exit(1);
}
if(head==NULL)
cout<<"内容空,无需保存"< 9、id tianjia()//添加联系人
{
char n;
do
{
system("CLS");
struct ben *newben;
newben=new ben;
strcpy(newben->fen,"wu");
cout<<"请输入姓名"< 10、n->you;
if(head==NULL)
{
head=new ben;
head->next=newben;
newben->next=NULL;
}
else
{
newben->next=head->next;
head->next=newben;
}
cout<<"添加完成,若想继续添加请按1,返回主菜单请按任意键"< 11、tem("CLS");
struct ben *p=head;
if(head==NULL)
{
cout<<"联系人为空,回到主页请按任意键"< 12、< 13、dl;
char name1[20];
cin>>name1;
while(p!=NULL&&strcmp(name1,p->name))
p=p->next;
if(p!=NULL)
{
cout<<"进行修改"< 14、
cout<<"修改成功"< 15、menu();
}
else
{
cout<<"请输入您要创建的新组"< 16、"地址"< 17、0)
p=p->next;
if(p!=NULL)
{
strcpy(p->fen,s);
cout<<"已成功将"< 18、
{
system("CLS");
int x(0);
for(x=0;x<20;x++)
{
if(lei[x]==NULL)break;
}
if(x==0)
{
cout<<"木有类,返回添加类请按任意键"< 19、>k;
cout<<"您要添加的组为"< 20、endl;
p=p->next;
}
p=head->next;
char name2[20];
cin>>name2;
while(p!=NULL&&strcmp(name2,p->name)!=0)
p=p->next;
if(p!=NULL)
{
strcpy(p->fen,lei[k-1]);
cout<<"已成功将"< 21、dl;
cin>>d;
}while(d=='1');
menu();
}
void lx()//分类显示
{
system("CLS");
if(head==NULL)
{cout<<"通讯录为空,返回主菜单请按任意键"< 22、
else
{
for(int m=0;m 23、0)< 24、 (c)
{
case '1':csh();cz();
break;
case '2':zt();
break;
case '3':lx();
break;
case '4':menu();
default:cout<<"wrong";
}
}
void shanchu()//删除联系人
{
if(head==NULL)cout<<"通讯录为空"< 25、ndl;
struct ben *p=head->next,*q;
q=head;
cout<<"姓名"< 26、
cin>>name2;
while(strcmp(p->name,name2)!=0&&p!=NULL)
{
p=p->next;
q=p;
}
if(p!=NULL)
{
q->next=p->next;
delete(p);
}
else
cout<<"木有这个人"< 27、/查询联系人
{
char n;
do
{
system("CLS");
cout<<"请输入查询人的姓名"< 28、xt;
}
if(p!=NULL)
{
cout<<"姓名"< 29、m("CLS");
menu();
}
void menu()//主菜单
{
system("CLS");
cout<<" 欢迎使用通讯录系统"< 30、<<"9.退出"< 31、8':shanchu();
break;
case '9':exit(1);
break;
default:cout<<"请输入正确数字"<>j;
}while(j=='1');
if(j=='2')cz();
else
{
menu();
}
}
}
void zt()//在类中添加联系人
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818