电话簿管理程序设C++.docx
- 文档编号:7167755
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:13
- 大小:39.44KB
电话簿管理程序设C++.docx
《电话簿管理程序设C++.docx》由会员分享,可在线阅读,更多相关《电话簿管理程序设C++.docx(13页珍藏版)》请在冰豆网上搜索。
电话簿管理程序设C++
综合实验电话簿管理程序设
一、实验目的
综合运用面向对象程序设计的基础知识,设计一个小型的应用程序,提高解决问题的能力。
二、实验内容
设计一个电话簿管理程序,要求:
1、具有添加、删除、显示、修改和查询联系人电话号码的功能。
2、联系人的信息保存到文件中。
3、可以实现为控制台程序或图形界面程序。
4、按学院实验报告要求格式书写实验报告。
三、实验原理:
实验中涉及了类的构造,用类book实现对数据的封装,函数的调用,用成员函数voidadd_person(),voiddel_person(),voidshow_all(),voidalter(),voidselect(),实现文件的添加、删除、显示、修改和查询功能。
四、实现环境:
vc++6.0环境下运行
六、实现程序如下:
#include
#include
#include
#include
#include
usingnamespacestd;
classbook
{
public:
book();//默认构造函数
charinter_face();//首页
voidadd_person();//添加联系人
voiddel_person();//删除联系人
voidshow_all();//显示所有联系人
voidalter();//修改信息
voidselect();//查询联系人
voidselect();//保存新增加的联系人
private:
stringname;//姓名
stringnumber;//电话号码
};
Book:
:
book()
{Name="\0";
number="\0";
}//首页
charbook:
:
inter_face()
{system("cls");
cout< cout<<"\t\t通迅录"< <<"\t\t1.添加新联系人.4.修改信息."< <<"\t\t"< <<"\t\t2.删除联系人.5.查询联系人."< <<"\t\t"< <<"\t\t3.显示所有联系人.6.关闭通迅录."< <<"\t\t"< <<"\t\t\t选择: "; charchoose; cin>>choose; fflush(stdin); returnchoose; } //添加联系人 voidbook: : add_person() { cout< <<"姓名: "; cin>>name; fflush(stdin); cout<<"电话: "; cin>>number; fflush(stdin); save_new(); cout< "< system("pause"); }//删除联系人 voidbook: : del_person() { ofstreamoutData("temp.txt",ios: : out); ifstreaminData("pbook.txt",ios: : in);// if(! outData||! inData) { cout< 找不到文件! "< system("pause"); return; } stringsign; cout< "; cin>>sign; stringstr1; boolflag=true; stringstr; while(inData>>name>>number) { getline(inData,str); if((sign==name)||(sign==number)) { cout< "< cout< cout< : left)< <<""< flag=false; break; } outData< : left)< <<""< } if(flag) { cout< 联系人中没你找的人! "< } else { while(getline(inData,str)) { outData< } outData.close(); inData.close(); ofstreamout("pbook.txt",ios: : out); ifstreamin("temp.txt",ios: : in); if(! out||! in) {cout< ! ! "< system("pause"); return; } while(getline(in,str)) {out< } out.close();// in.close(); cout< ! ! "< } system("pause"); } //显示所有联系人 voidbook: : show_all() { ifstreaminData("pbook.txt",ios: : in); if(! inData) { cout< ! ! ! 没有找到文件! ! ! ! ! "< system("pause"); return; } boolflag=true; stringrecord; while(getline(inData,record)) { if(flag) { cout< "< } cout< flag=false; } if(flag) { cout< "< } else { cout< "< } system("pause"); } //修改信息 voidbook: : alter() { ofstreamoutData("temp.txt",ios: : out); ifstreaminData("pbook.txt",ios: : in);// if(! outData||! inData) { cout< 找不到文件! "< system("pause"); return; } stringsign; cout< "; cin>>sign; stringstr1; boolflag=true; stringstr; while(inData>>name>>number) { getline(inData,str); if((sign==name)||(sign==number)) { cout< "< cout< cout< : left)< <<""< cout< "< cout<<"姓名: "; cin>>name; fflush(stdin); cout<<"电话号: "; cin>>number; fflush(stdin); save_new(); flag=false; break; } outData< : left)< <<""< } if(flag) { cout< 联系人中没你找的人! "< } else { while(getline(inData,str)) { outData< } outData.close(); inData.close(); ofstreamout("pbook.txt",ios: : out); ifstreamin("temp.txt",ios: : in); if(! out||! in) { cout< "< system("pause"); return; } while(getline(in,str)) { out< } out.close(); in.close(); cout< "< } system("pause"); } //查询联系人 voidbook: : select() {ifstreaminData("pbook.txt",ios: : in); if(! inData) { cout< 文件找不到! "< system("pause"); return; } stringsign; cout< "; cin>>sign; fflush(stdin); stringstr1; boolflag=true; stringstr; while(inData>>name>>number) {getline(inData,str); if((name==sign)||(number==sign)) { cout< "< cout< cout< : left)< < flag=false; system("pause"); break;} } } voidbook: : save_new() { ofstreamoutData("pbook.txt",ios: : app); if(! outData) { cout< 打开文件失败! "< system("pause"); return;} outData< : left)< <<""< < outData.close();} enumpower{ADD='1',DEL='2',SHOW='3',Alter='4',Select='5',END='6'}; intmain() { charchoose; bookabj; while(choose=abj.inter_face()) {switch(choose) { caseADD: abj.add_person();////添加联系人 break; caseDEL: abj.del_person();////删除联系人 break; caseSHOW: abj.show_all();////显示所有联系人 break; caseAlter: abj.alter();////修改信息 break; caseSelect: abj.select();////查询联系人 break; caseEND: cout< "< exit(0); break; default: break;}} return0;} 五、流程图: 八、实验中遇到的问题及解决方法: 局部变量不能没有初始化就使用了,例如Name="\0";需要初始化。 成员函数前没有加类名导致程序出错,书中提到必须在成员函数名前面加上类名,并且在类名与成员函数之间用: : 间隔。 还有在类声明结束时后面一定要加;在程序中忘了加,使程序运行时出错了。 【实验总结】 第一次上机时对在c++6.0下环境还不是很熟悉,通过几次上机后,掌握了一些基本知识。 比如怎样建一个工程,怎样调试程序,怎样添加函数等的一些小问题。 不过在一些地方还是有些不懂。 通过这次实验,我也学会了一些东西,通过自己的努力和别人的帮忙和讲解,终于把程序弄出来了,程序中的插入、删除、添加、查询等问题在c语言和数据结构中也已经运用很多次了,但这次需要运用在c++在类中实现这个问题,这就需要对它有熟练的掌握了。 平时在课上学的不是很好,通过这次练习,我发现自己还有许多欠缺的地方,为了以后的学习其它本专业的知识打好基础,我还要多学一些东西来武装自己了。 【指导教师评语及成绩】 成绩: 指导教师(签字): 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电话簿 管理程序 C+