通讯录程序设计.docx
- 文档编号:25620883
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:37
- 大小:405.38KB
通讯录程序设计.docx
《通讯录程序设计.docx》由会员分享,可在线阅读,更多相关《通讯录程序设计.docx(37页珍藏版)》请在冰豆网上搜索。
通讯录程序设计
概要
本次课程设计是利用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++) { if(! strcmp(st[i].name,name)) { x=i; z=0; } elsey=0; if(z==0) break; } i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 程序设计