C++通讯录程序设计.docx
《C++通讯录程序设计.docx》由会员分享,可在线阅读,更多相关《C++通讯录程序设计.docx(33页珍藏版)》请在冰点文库上搜索。
C++通讯录程序设计
C++通讯录程序设计
题目:
通讯录程序设计
课程:
C++程序设计
专业:
姓名:
班级:
学号:
指导教师:
信息科学与工程学院
2012-5-21
概要
本次课程设计是利用C++做了一个班级通讯录,本次课程设计主要使用类与对象、数组与指针等方法.通过本次通讯录的课程设计熟悉运用C++语言,主要包括数组与指针,类与对象,string,作用域等,通过数组和指针解决数据级对象之间的联系和协调,经过类与对象的定义,建立函数等方法输入,再进行运行,最后实现通讯录中的输入、排序输出、修改、删除的功能。
关键词:
C++,面向对象,数组,指针
目录
一、设计任务分析·····························································································································································1
二、模块设计·········································································································································································································1
三、主要数据结构········································································································································································5
四、流程图·························································································································································································6
五、源代码································································································································································································6
六、测试情况····················································································································································································21
七、小结··········································································································································································································23
八、参考文献··························································································································································································24
一、设计任务分析
实现以下功能:
1)通讯录编辑(添加、删除);
2)按不同的项进行查找;
3)对已存在的通讯录按不同的项排序;
4)将通讯录写入文件;
5)从文件读入通讯录。
二、模块设计
本次程序设计主要设计了六个模块(主要是:
a.add(),a.del(),a.correct(),a.find1(),a.list1(),a.read(),a.write())
a.add()函数用于通讯录中的信息进行添加,主要流程如下:
a.del()函数用于通讯录中的信息进行删除,主要流程如下:
a.correct()函数用于通讯录中的信息进行修改,主要流程如下:
a.find1()函数用于通讯录中的信息进行查找,主要流程如下:
a.list1()函数用于通讯录中的信息进行排序,主要流程如下:
a.read()函数用于从文本文件中读取信息,主要流程如下:
a.write()函数用于将信息写入文本文件,主要流程如下:
三、主要数据结构
结构数组:
structstudent//结构体
{
charno[13];//学号
charname[20];//姓名
charaddress[100];//地址
chartel_no[12];//电话
charpost_code[7];//邮编
chare_mail[40];//E-mail
}
classinter//派生类
{
private:
//派生类增加或替代的私有成员
studentst[35];
public:
//派生类增加或替代的公有成员
voidadd(charno[13],charname[20],charaddress[100],chartel_no[12],charpost_code[7],chare_mail[40]);
//成员函数,添加联系人
voiddel(charname[20]);
//成员函数,删除联系人
voidfind1(charno[13]);
//成员函数,按学号查找联系人
voidfind2(charname[20]);
//成员函数,按姓名查找联系人
voidlist1();
//成员函数,排序联系人
voidlist2();
//成员函数,排序联系人
intcorrect(charname[20]);
//成员函数,修改联系人
voidread();
//成员函数,读取文本文件
voidwrite();
//成员函数,写入文本文件
voidformat();
//成员函数,格式化内存保存的数据
intback()
//成员函数,返回首页
voidprint(inti)
//成员函数,输出显示
}
四、流程图
五、源代码
#include
#include
#include
structstudent//结构体
{
charno[13];
charname[20];
charaddress[100];
chartel_no[12];
charpost_code[7];
chare_mail[40];
};
classinter
{
private:
studentst[35];
public:
voidadd(charno[13],charname[20],charaddress[100],chartel_no[12],charpost_code[7],chare_mail[40]);
voiddel(charname[20]);
voidfind1(charno[13]);
voidfind2(charname[20]);
voidlist1();
voidlist2();
intcorrect(charname[20]);
voidread();
voidwrite();
voidformat();
intback()
{
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback;
cin>>back;
if(back!
='0')
return1;
else
return0;
}
voidprint(inti)
{
cout<<"学号:
"<cout<<"姓名:
"<cout<<"地址:
"<cout<<"电话号码:
"<cout<<"邮编:
"<cout<<"E_MAIL:
"<}
};
//主函数首页
intmain()
{
intera;
a.format();
charselect1;
cout<top:
cout<<"\t\t##################################################"<<<"\t\t##"<<<"\t\t#通迅录#"<<<"\t\t##"<<<"\t\t#1.通讯录编辑4.联系人排序#"<<<"\t\t##"<<<"\t\t#2.查询联系人5.打开通讯录#"<<<"\t\t##"<<<"\t\t#3.保存通讯录6.格式化数据#"<<<"\t\t##"<<<"\t\t##################################################"<<<"\t\t"<<<"\t\t\t输入你要使用的功能序号:
";
cin>>select1;
switch(select1)
{
case'1':
cout<<"
(1)添加联系人:
"<cout<<"
(2)删除联系人:
"<cout<<"(3)修改联系人:
"<charselect2;
cout<<"请选择:
";
cin>>select2;
switch(select2)
{
case'1':
cout<<"输入要添加的联系人资料:
"<charno[13];
charname[20];
charaddress[100];
chartel_no[12];
charpost_code[7];
chare_mail[40];
cout<<"输入学号:
";
cin>>no;
cout<<"输入姓名:
";
cin>>name;
cout<<"输入地址:
";
cin>>address;
cout<<"输入电话号码:
";
cin>>tel_no;
cout<<"输入邮编:
";
cin>>post_code;
cout<<"输入E_mail:
";
cin>>e_mail;
a.add(no,name,address,tel_no,post_code,e_mail);
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback_add;
cin>>back_add;
if(back_add!
='0')
gototop;
else
gotobottom;
break;
case'2':
cout<<"输入要删除的联系人姓名:
";
charname2[20];
cin>>name2;
a.del(name2);
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback_del;
cin>>back_del;
if(back_del!
='0')
gototop;
else
gotobottom;
break;
case'3':
cout<<"输入需要修改的联系人姓名:
";
charname3[20];
cin>>name3;
if(a.correct(name3))
gototop;
elsegotobottom;
break;
}
break;
case'2':
cout<<"
(1)根据姓名查找"<cout<<"
(2)根据学号查找"<charselect3;
cout<<"请选择:
";
cin>>select3;
switch(select3)
{
case'1':
charname4[20];
cout<<"输入姓名:
";
cin>>name4;
a.find2(name4);
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback_f1;
cin>>back_f1;
if(back_f1!
='0')
gototop;
else
gotobottom;
break;
case'2':
charno4[13];
cout<<"输入学号:
";
cin>>no4;
a.find1(no4);
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback_f2;
cin>>back_f2;
if(back_f2!
='0')
gototop;
else
gotobottom;
break;
}
break;
case'3':
a.write();
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback_w;
cin>>back_w;
if(back_w!
='0')
gototop;
else
gotobottom;
break;
case'4':
cout<<"
(1)按学号排序:
"<cout<<"
(2)按姓名排序:
"<cout<<"请选择:
";
charselect4;
cin>>select4;
switch(select4)
{
case'1':
a.list1();
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback;
cin>>back;
if(back!
='0')
gototop;
else
gotobottom;
break;
case'2':
a.list2();
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback1;
cin>>back1;
if(back1!
='0')
gototop;
else
gotobottom;
break;
}
break;
case'5':
a.read();
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback_r;
cin>>back_r;
if(back_r!
='0')
gototop;
else
gotobottom;
break;
case'6':
cout<<"请确认删除所有资料!
(Y/N)";
charselect5;
cin>>select5;
if(select5=='Y'||select5=='y')
a.format();
cout<<"按0键退出系统,按其他键返回主菜单:
";
charback_f;
cin>>back_f;
if(back_f!
='0')
gototop;
else
gotobottom;
break;
}
bottom:
cout<<"********成功退出系统,欢迎再次使用!
********"<return0;
}
//添加联系人
voidinter:
:
add(charno[13],charname[20],charaddress[100],chartel_no[12],charpost_code[7],chare_mail[40])
{
intx=1;
for(inti=0;i<35;i++)
{
if(!
strcmp(st[i].no,"0"))
{
strcpy(st[i].address,address);
strcpy(st[i].e_mail,e_mail);
strcpy(st[i].name,name);
strcpy(st[i].no,no);
strcpy(st[i].post_code,post_code);
strcpy(st[i].tel_no,tel_no);
x=0;
}
if(x==0)
break;
}
}
//删除联系人
voidinter:
:
del(charname[20])
{intx=1;
for(inti=0;i<35;i++)
{
if(!
strcmp(st[i].name,name))
{
strcpy(st[i].address,"0");
strcpy(st[i].e_mail,"0");
strcpy(st[i].name,"0");
strcpy(st[i].no,"0");
strcpy(st[i].post_code,"0");
strcpy(st[i].tel_no,"0");
x=0;
cout<<”删除此联系人成功!
”<}
}
if(x==1)
cout<<"输入有误,没有找到此联系人!
"<}
//修改联系人
intinter:
:
correct(charname[30])
{
intx;
for(inti=0;i<35;i++)
{
if(!
strcmp(st[i].name,name))
x=i;
}
charselect;
cout<<"
(1)修改姓名:
"<cout<<"
(2)修改学号:
"<cout<<"(3)修改地址:
"<cout<<"(4)修改邮编:
"<cout<<"(5)修改电话号码:
"<cout<<"(6)修改E_MAIL:
"<cout<<"请选择:
";
cin>>select;
switch(select)
{
case'1':
cout<<"输入姓名进行修改:
";
charname1[30];
cin>>name1;
strcpy(st[x].name,name1);
cout<<"修改成功!
"<returnback();
break;
case'2':
cout<<"输入学号进行修改:
";
charno1[13];
cin>>no1;
strcpy(st[i].no,no1);
cout<<"修改成功!
"<returnback();
break;
case'3':
cout<<"输入地址进行修改:
";
charaddress1[100];
cin>>address1;
strcpy(st[x].address,address1);
cout<<"修改成功!
"<returnback();
break;
case'4':
cout<<"输入邮编进行修改:
";
charpost_code1[7];
cin>>post_code1;
strcpy(st[x].post_code,post_code1);
cout<<"修改成功!
"<returnback();
break;
case'5':
cout<<"输入电话号码进行修改:
";
chartel_no1[12];
cin>>tel_no1;
strcpy(st[x].tel_no,tel_no1);
cout<<"修改成功!
"<returnback();
break;
case'6':
cout<<"输入E_MAIL进行修改:
";
chare_mail1[40];
cin>>e_mail1;
strcpy(st[x].e_mail,e_mail1);
cout<<"修改成功!
"<returnback();
break;
}
}
//按学号查询联系人
voidinter:
:
find1(charno[13])
{
intx,y=1,z=1;
for(inti=0;i<35;i++)
{
if(!
strcmp(st[i].no,no))
{
x=i;
z=0;
}
elsey=0;
if(z==0)
break;
}
if(y==0)
cout<<"没有查到此学号的相关记录!
"<print(x);
}
//按姓名查询联系人
voidinter:
:
find2(charname[20])
{
intx,y=1,z=1;
for(inti=0;i<35;i++)
{