C++通讯录程序设计.doc

上传人:文库蛋蛋多 文档编号:2384611 上传时间:2023-02-17 格式:DOC 页数:27 大小:466.50KB
返回 下载 相关 举报
C++通讯录程序设计.doc_第1页
第1页 / 共27页
C++通讯录程序设计.doc_第2页
第2页 / 共27页
C++通讯录程序设计.doc_第3页
第3页 / 共27页
C++通讯录程序设计.doc_第4页
第4页 / 共27页
C++通讯录程序设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《C++通讯录程序设计.doc》由会员分享,可在线阅读,更多相关《C++通讯录程序设计.doc(27页珍藏版)》请在三一办公上搜索。

1、C+通讯录程序设计题目: 通讯录程序设计 课程: C+程序设计 专业: 姓名: 班级: 学号: 指导教师: 信息科学与工程学院 2012-5-21概要本次课程设计是利用C+做了一个班级通讯录,本次课程设计主要使 用类与对象、数组与指针等方法. 通过本次通讯录的课程设计熟悉运用C+语言,主要包括数组与指针,类与对象,string, 作用域等,通过数组和指针解决数据级对象之间的联系和协调,经过类与对象的定义,建立函数等方法输入,再进行运行,最后实现通讯录中的输入、排序输出、修改、删除的功能。关键词:C+,面向对象,数组,指针目录一、设计任务分析1二、模块设计1三、主要数据结构5四、流程图6五、源代

2、码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()函数用于通讯录中的信息进行修改,主

3、要流程如下:a.find1()函数用于通讯录中的信息进行查找,主要流程如下:a.list1()函数用于通讯录中的信息进行排序,主要流程如下:a.read()函数用于从文本文件中读取信息,主要流程如下:a.write()函数用于将信息写入文本文件,主要流程如下:三、 主要数据结构结构数组:struct student /结构体char no13; /学号char name20; /姓名char address100; /地址char tel_no12; /电话char post_code7; /邮编char e_mail40; /E-mailclass inter /派生类private: /派

4、生类增加或替代的私有成员student st35;public: /派生类增加或替代的公有成员void add(char no13,char name20,char address100,char tel_no12,char post_code7,char e_mail40); /成员函数,添加联系人void del(char name20); /成员函数,删除联系人void find1(char no13); /成员函数,按学号查找联系人void find2(char name20); /成员函数,按姓名查找联系人void list1(); /成员函数,排序联系人void list2();

5、/成员函数,排序联系人int correct(char name20); /成员函数,修改联系人void read(); /成员函数,读取文本文件void write(); /成员函数,写入文本文件void format(); /成员函数,格式化内存保存的数据int back() /成员函数,返回首页void print(int i) /成员函数,输出显示四、 流程图五、 源代码#include#include#includestruct student /结构体char no13;char name20;char address100;char tel_no12;char post_code

6、7;char e_mail40;class interprivate:student st35;public:void add(char no13,char name20,char address100,char tel_no12,char post_code7,char e_mail40);void del(char name20);void find1(char no13);void find2(char name20);void list1();void list2();int correct(char name20);void read();void write();void form

7、at();int back()coutback;if(back!=0)return 1;elsereturn 0;void print(int i)cout学号:sti.noendl;cout姓名:sti.nameendl;cout地址:sti.addressendl;cout电话号码:sti.tel_noendl;cout邮编:sti.post_codeendl;coutE_MAIL:sti.e_mailendl;/主函数 首页int main()inter a;a.format();char select1;coutendl;top:couttt# endltt# # endltt# 通

8、迅 录 # endl tt# # endltt# 1. 通讯录编辑 4. 联系人排序 # endl tt# # endltt# 2. 查询联系人 5. 打开通讯录 # endltt# # endltt# 3. 保存通讯录 6. 格式化数据 # endl tt# # endltt# endltt endlendl select1;switch(select1)case 1:cout (1)添加联系人:endl;cout (2)删除联系人:endl;cout (3)修改联系人:endl;char select2;coutselect2;switch(select2)case 1:cout 输入要添

9、加的联系人资料:endl;char no13; char name20; char address100; char tel_no12; char post_code7; char e_mail40;coutno;coutname;coutaddress;couttel_no;coutpost_code; coute_mail;a.add(no,name,address,tel_no,post_code,e_mail);coutback_add;if(back_add!=0)goto top;elsegoto bottom;break;case 2:coutname2;a.del(name2)

10、;coutback_del;if(back_del!=0)goto top;elsegoto bottom;break;case 3:coutname3;if(a.correct(name3)goto top;else goto bottom;break;break;case 2:cout (1)根据姓名查找endl;cout (2)根据学号查找endl;char select3;coutselect3;switch(select3)case 1:char name420;coutname4;a.find2(name4);coutback_f1;if(back_f1!=0)goto top;e

11、lsegoto bottom;break;case 2:char no413;coutno4;a.find1(no4);coutback_f2;if(back_f2!=0)goto top;elsegoto bottom;break;break;case 3:a.write();coutback_w;if(back_w!=0)goto top;elsegoto bottom;break;case 4:cout (1)按学号排序:endl;cout (2)按姓名排序:endl;coutselect4;switch(select4)case 1:a.list1();coutback;if(back

12、!=0)goto top;elsegoto bottom;break;case 2:a.list2();coutback1;if(back1!=0)goto top;elsegoto bottom;break;break;case 5:a.read();coutback_r;if(back_r!=0)goto top;elsegoto bottom;break;case 6:coutselect5;if(select5=Y|select5=y)a.format();coutback_f;if(back_f!=0)goto top;elsegoto bottom;break;bottom:cou

13、t *成功退出系统,欢迎再次使用!*endl;return 0;/添加联系人void inter:add(char no13,char name20,char address100,char tel_no12,char post_code7,char e_mail40)int x=1;for(int i=0;i35;i+)if(!strcmp(sti.no,0)strcpy(sti.address,address);strcpy(sti.e_mail,e_mail);strcpy(sti.name,name);strcpy(sti.no,no);strcpy(sti.post_code,pos

14、t_code);strcpy(sti.tel_no,tel_no);x=0;if(x=0)break;/删除联系人void inter:del(char name20)int x=1;for(int i=0;i35;i+)if(!strcmp(sti.name,name) strcpy(sti.address,0);strcpy(sti.e_mail,0);strcpy(sti.name,0);strcpy(sti.no,0);strcpy(sti.post_code,0);strcpy(sti.tel_no,0); x=0; cout” 删除此联系人成功!”endl;if(x=1)cout

15、输入有误,没有找到此联系人!endl;/修改联系人int inter:correct(char name30)int x;for(int i=0;i35;i+)if(!strcmp(sti.name,name)x=i;char select;cout (1)修改姓名:endl;cout (2)修改学号:endl;cout (3)修改地址:endl;cout (4)修改邮编:endl;cout (5)修改电话号码:endl;cout (6)修改E_MAIL:endl;coutselect;switch(select)case 1:coutname1;strcpy(stx.name,name1);

16、cout 修改成功!endl;return back();break;case 2:coutno1;strcpy(sti.no,no1);cout 修改成功!endl;return back();break;case 3:coutaddress1;strcpy(stx.address,address1);cout 修改成功!endl;return back();break;case 4:coutpost_code1;strcpy(stx.post_code,post_code1);cout 修改成功!endl;return back();break;case 5:couttel_no1;str

17、cpy(stx.tel_no,tel_no1);cout 修改成功!endl;return back();break;case 6:coute_mail1;strcpy(stx.e_mail,e_mail1);cout 修改成功!endl;return back();break;/按学号查询联系人void inter:find1(char no13)int x,y=1,z=1;for(int i=0;i35;i+)if(!strcmp(sti.no,no)x=i;z=0;else y=0;if(z=0)break;if(y=0)cout 没有查到此学号的相关记录!endl; print(x);

18、/按姓名查询联系人void inter:find2(char name20)int x,y=1,z=1;for(int i=0;i35;i+)if(!strcmp(sti.name,name)x=i;z=0;else y=0;if(z=0)break;if(y=0)cout 没有查到此人相关记录!endl;print(x);/读取文件void inter:read()char name120;coutname1;strcat(name1,.txt);ifstream file(name1);char line120;char no120;char name120;char address120

19、;char post_code120;char tel_no120;char e_mail120;int time=0;file.getline(line,120);while(!file.eof()for(int k=0;k35;k+)if(time=0)strcpy(no,line);time=1;for(int i=0;i120;i+)if(noi=:)i+;for(int j=0;j13;j+)stk.noj=noi;i+;file.getline(line,120,n);if(time=1)strcpy(name,line);time=2;for(int i=0;i120;i+)if

20、(namei=:)i+;for(int j=0;j20;j+)stk.namej=namei;i+;file.getline(line,120,n);if(time= 2)strcpy(address,line);time=3;for(int i=0;i120;i+)if(addressi=:)i+;for(int j=0;j100;j+)stk.addressj=addressi;i+;file.getline(line,120,n);if(time=3)strcpy(tel_no,line);time=4;for(int i=0;i120;i+)if(tel_noi=:)i+;for(in

21、t j=0;j12;j+)stk.tel_noj=tel_noi;i+;file.getline(line,120,n);if(time=4)strcpy(post_code,line);time=5;for(int i=0;i120;i+)if(post_codei=:)i+;for(int j=0;j7;j+)stk.post_codej=post_codei;i+;file.getline(line,120,n);if(time=5)strcpy(e_mail,line);time=0;for(int i=0;i120;i+)if(e_maili=:)i+;for(int j=0;j40

22、;j+)stk.e_mailj=e_maili;i+;file.getline(line,120,n);file.close();/写入文件void inter:write()char name20;coutname;strcat(name,.txt);ofstream savefile(name);for(int i=0;i35;i+)savefile 学号:sti.no” ”; savefile 姓名:sti.name” ”; savefile 地址:sti.address” ”; savefile 电话号码:sti.tel_no” ”; savefile 邮编:sti.post_code

23、” ”; savefile E_MAIL:sti.e_mailendl;savefile.close(); cout” 保存成功!”endl;/按学号排序void inter:list1()for(int i=0;i34;i+)for(int j=0;j0)char no13; char name20; char address100; char tel_no12; char post_code7; char e_mail40;strcpy(no,stj.no);strcpy(stj.no,stj+1.no);strcpy(stj+1.no,no);strcpy(name,stj.name);strcpy(stj.name,stj+1.name);strcpy(stj+1.name,name); strcpy(address,stj.address);strcpy(stj.address,stj+1.address);strcpy(stj+1.address,address);strcpy(tel_no,stj.tel_no);strcpy(stj.tel_no

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号