电话簿管理程序设(C++).doc_第1页
电话簿管理程序设(C++).doc_第2页
电话簿管理程序设(C++).doc_第3页
电话簿管理程序设(C++).doc_第4页
电话簿管理程序设(C++).doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

综合实验 电话簿管理程序设一、实验目的 综合运用面向对象程序设计的基础知识,设计一个小型的应用程序,提高解决问题的能力。二、实验内容设计一个电话簿管理程序,要求:1、 具有添加、删除、显示、修改和查询联系人电话号码的功能。2、 联系人的信息保存到文件中。3、 可以实现为控制台程序或图形界面程序。4、 按学院实验报告要求格式书写实验报告。三、实验原理:实验中涉及了类的构造,用类book实现对数据的封装,函数的调用,用成员函数void add_person(),void del_person(),void show_all(),void alter(),void select(),实现文件的添加、删除、显示、修改和查询功能。四、实现环境:vc+6.0环境下运行六、实现程序如下:#include #include #include #include #include using namespace std;class bookpublic: book();/默认构造函数 char inter_face();/首页 void add_person();/添加联系人 void del_person();/删除联系人 void show_all();/显示所有联系人 void alter();/修改信息 void select();/查询联系人 void select();/保存新增加的联系人private: string name;/姓名 string number;/电话号码 ;Book : book() Name = 0; number = 0; /首页char book :inter_face() system( cls ); cout e n d l; couttt 通 迅 录 endl tt endl tt 1. 添加新联系人. 4. 修改信息. endl tt endl tt 2. 删除联系人. 5. 查询联系人. endl tt endl tt 3. 显示所有联系人. 6. 关闭通迅录. endl tt endl choose; fflush(stdin); return choose; /添加联系人void book :add_person() cout endl 根据下面提示输入新联系人信息 endl endl name; fflush(stdin); cout number; fflush(stdin); save_new(); cout endl endl 新联系人信息已经保存好! endl endl; system(pause);/删除联系人void book:del_person() ofstream outData(temp.txt, ios:out); ifstream inData(pbook.txt, ios:in); /if (!outData | !inData) cout endl 对不起!找不到文件! endl; system(pause); return; string sign; cout endl sign; string str1; bool flag = true; string str; while (inData name number) getline(inData, str); if (sign=name) | (sign=number) cout endl 你想删除的联系人: endl endl; cout str1 endl; cout setiosflags(ios:left) setw(17) name number str endl; flag = false; break; outData setiosflags(ios:left) setw(17) name number str endl; if (flag) cout endl 对不起!联系人中没你找的人! endl endl; else while (getline(inData, str) outData str endl; outData.close(); inData.close(); ofstream out(pbook.txt, ios:out); ifstream in(temp.txt, ios:in); if (!out | !in) cout endl 对不起不能打开文件! endl endl; system(pause); return; while (getline(in, str) out str endl; out.close();/ in.close(); cout endl 这个人的信息已经从你的通迅录中删除! endl endl; system(pause); /显示所有联系人void book:show_all() ifstream inData(pbook.txt,ios:in); if (!inData) cout endl 对不起!没有找到文件! endl; system(pause); return; bool flag = true; string record; while (getline(inData, record) if (flag) cout endl 所有联系人信息如下: endl; cout record endl; flag = false; if (flag) cout endl 你的通迅录中没有联系人! endl endl; else cout endl 所有联系人已经全部显示出来! endl endl; system(pause);/修改信息void book:alter() ofstream outData(temp.txt, ios:out); ifstream inData(pbook.txt, ios:in); /if (!outData | !inData) cout endl 对不起!找不到文件! endl; system(pause); return; string sign; cout endl sign; string str1; bool flag = true; string str; while (inData name number) getline(inData, str); if (sign=name) | (sign=number) cout endl 你想修改的联系人: endl endl; cout str1 endl; cout setiosflags(ios:left) setw(17) name number str endl; cout endl 请根据下面提示修改信息 : endl; cout name ; fflush(stdin); cout number; fflush(stdin); save_new(); flag = false; break; outDatasetiosflags(ios:left)setw(17) name number str endl; if (flag) cout endl 对不起!联系人中没你找的人! endl endl; else while (getline(inData, str) outData str endl; outData.close(); inData.close(); ofstream out(pbook.txt, ios:out); ifstream in(temp.txt, ios:in); if (!out | !in) cout endl 对不起不能打开文件! endl endl; system(pause); return; while (getline(in, str) out str endl; out.close(); in.close(); cout endl 这个人的信息已经在你的通迅录中修改! endl endl; system(pause); /查询联系人void book:select() ifstream inData(pbook.txt,ios:in); if (!inData) cout endl 对不起!文件找不到! endl; system(pause); return; string sign; cout endl sign; fflush(stdin); string str1; bool flag = true; string str; while (inData name number) getline(inData, str); if (name=sign) | (number=sign) cout endl 你要查找的联系人是: endl endl; cout str1 endl; cout setiosflags(ios:left) setw(17) name number str endl; flag = false; system(pause); break; void book:save_new() ofstream outData(pbook.txt, ios:app); if (!outData) cout endl 对不起!打开文件失败! endl endl; system(pause); return; outData setiosflags(ios:left) setw(17) name setw(16) number endl; outData.close();enum powerADD = 1, DEL = 2, SHOW = 3, Alter = 4, Select = 5, END = 6;int main() char choose; book abj; while (choose = er_face() switch (choose) case ADD: abj.add_person();/添加联系人 break; case DEL: abj.del_person();/删除联系人 break; case SHOW: abj.show_all();/显示所有联系人 break; case Alter: abj.alter();/修改信息 break; case Select: abj.select();/查询联系人 break; case END: cout endl 谢谢使用! endl endl; exit(0); break; default : break ; return 0;五、流程图: 开始根据输入要选择的功能号码进行选择Choose=1添加Choose=4删除Choose=2显示所有Choose=3修改Choose=5查找 退出 结束 八、实验中遇到的问题及解决方法: 局部变量不能没有初始化就使用了,例如Name = 0;需要初始化。成员函数前没有加类名导致程序出错,书中提到必须在成员函数名前面加上类名,并且在类名与成员函数之间用:间隔。还有在类声明结束时后面一定要加;在程序中忘了加,使程序运行时出错了。 【实验总结】 第一次上机时对在c+6.0下环境还不是很熟悉,通过几次上机后,掌握了一些基本知识。比如怎样建一个工程,怎样调试程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论