C通讯录程序设计_第1页
C通讯录程序设计_第2页
C通讯录程序设计_第3页
C通讯录程序设计_第4页
C通讯录程序设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

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

2、83;·················································

3、83;·················································

4、83;·················································

5、83;··1二、模块设计··············································&#

6、183;·················································&#

7、183;·················································&#

8、183;·················································&#

9、183;····1三、主要数据结构············································

10、;··················································

11、;··················································

12、;························5四、流程图·························

13、;··················································

14、;··················································

15、;··················································

16、;··········6五、源代码·······································

17、;··················································

18、;··················································

19、;··················································

20、;···6六、测试情况·············································

21、3;·················································

22、3;·················································

23、3;··································21七、小结··············

24、3;·················································

25、3;·················································

26、3;·················································

27、3;·····································23八、参考文献···········&#

28、183;·················································&#

29、183;·················································&#

30、183;·················································&#

31、183;························24一、 设计任务分析实现以下功能: 1) 通讯录编辑(添加、删除); 2) 按不同的项进行查找; 3) 对已存在的通讯录按不同的项排序; 4) 将通讯录写入文件; 5) 从文件读入通讯录。 二、 模块设计本次程序设计主要设计了六个模块(主要是:a.add(),a.del(),a.correct(),a

32、.find1(),a.list1(),a.read(),a.write())a.add()函数用于通讯录中的信息进行添加,主要流程如下:a.del()函数用于通讯录中的信息进行删除,主要流程如下:a.correct()函数用于通讯录中的信息进行修改,主要流程如下:a.find1()函数用于通讯录中的信息进行查找,主要流程如下:a.list1()函数用于通讯录中的信息进行排序,主要流程如下:a.read()函数用于从文本文件中读取信息,主要流程如下:a.write()函数用于将信息写入文本文件,主要流程如下:三、 主要数据结构结构数组:struct student /结构体char no13;

33、/学号char name20; /姓名char address100; /地址char tel_no12; /电话char post_code7; /邮编char e_mail40; /e-mailclass inter /派生类private: /派生类增加或替代的私有成员student st35;public: /派生类增加或替代的公有成员void add(char no13,char name20,char address100,char tel_no12,char post_code7,char e_mail40); /成员函数,添加联系人void del(char name20);

34、/成员函数,删除联系人void find1(char no13); /成员函数,按学号查找联系人void find2(char name20); /成员函数,按姓名查找联系人void list1(); /成员函数,排序联系人void list2(); /成员函数,排序联系人int correct(char name20); /成员函数,修改联系人void read(); /成员函数,读取文本文件void write(); /成员函数,写入文本文件void format(); /成员函数,格式化内存保存的数据int back() /成员函数,返回首页void print(int i) /成员函数

35、,输出显示四、 流程图五、 源代码#include<iostream.h>#include<fstream.h>#include<string.h>struct student /结构体char no13;char name20;char address100;char tel_no12;char post_code7;char e_mail40;class interprivate:student st35;public:void add(char no13,char name20,char address100,char tel_no12,char po

36、st_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 format();int back()cout<<" 按0键退出系统,按其他键返回主菜单:"char back;cin>>back;if(back!='0')return 1;elseretur

37、n 0;void print(int i)cout<<"学号:"<<sti.no<<endl;cout<<"姓名:"<<<<endl;cout<<"地址:"<<sti.address<<endl;cout<<"电话号码:"<<sti.tel_no<<endl;cout<<"邮编:"<<sti.post_code&l

38、t;<endl;cout<<"e_mail:"<<sti.e_mail<<endl;/主函数 首页int main()inter a;a.format();char select1;cout<<endl;top:cout<<"tt#" <<endl<<"tt# #" <<endl<<"tt# 通 迅 录 #" <<endl <<"tt# #" <<

39、endl<<"tt# 1. 通讯录编辑 4. 联系人排序 #" <<endl <<"tt# #" <<endl<<"tt# 2. 查询联系人 5. 打开通讯录 #" <<endl<<"tt# #" <<endl<<"tt# 3. 保存通讯录 6. 格式化数据 #" <<endl <<"tt# #" <<endl<<&quo

40、t;tt#" <<endl<<"tt "<<endl<<endl <<"ttt输入你要使用的功能序号 :" ;cin>>select1;switch(select1)case '1':cout<<" (1)添加联系人:"<<endl;cout<<" (2)删除联系人:"<<endl;cout<<" (3)修改联系人:"<<end

41、l;char select2;cout<<" 请选择:"cin>>select2;switch(select2)case '1':cout<<" 输入要添加的联系人资料:"<<endl;char no13; char name20; char address100; char tel_no12; char post_code7; char e_mail40;cout<<" 输入学号:"cin>>no;cout<<" 输入姓名:

42、"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键退出系统,按

43、其他键返回主菜单:"char back_add;cin>>back_add;if(back_add!='0')goto top;elsegoto bottom;break;case '2':cout<<" 输入要删除的联系人姓名:"char name220;cin>>name2;a.del(name2);cout<<" 按0键退出系统,按其他键返回主菜单:"char back_del;cin>>back_del;if(back_del!='0&#

44、39;)goto top;elsegoto bottom;break;case '3':cout<<" 输入需要修改的联系人姓名:"char name320;cin>>name3;if(a.correct(name3)goto top;else goto bottom;break;break;case '2':cout<<" (1)根据姓名查找"<<endl;cout<<" (2)根据学号查找"<<endl;char select3

45、;cout<<" 请选择: "cin>>select3;switch(select3)case '1':char name420;cout<<" 输入姓名: "cin>>name4;a.find2(name4);cout<<" 按0键退出系统,按其他键返回主菜单:"char back_f1;cin>>back_f1;if(back_f1!='0')goto top;elsegoto bottom;break;case '2&

46、#39;:char no413;cout<<" 输入学号: "cin>>no4;a.find1(no4);cout<<" 按0键退出系统,按其他键返回主菜单:"char back_f2;cin>>back_f2;if(back_f2!='0')goto top;elsegoto bottom;break;break;case '3':a.write();cout<<" 按0键退出系统,按其他键返回主菜单:"char back_w;cin>

47、>back_w;if(back_w!='0')goto top;elsegoto bottom;break;case '4':cout<<" (1)按学号排序:"<<endl;cout<<" (2)按姓名排序:"<<endl;cout<<" 请选择:"char select4;cin>>select4;switch(select4)case '1':a.list1();cout<<" 按0

48、键退出系统,按其他键返回主菜单:"char back;cin>>back;if(back!='0')goto top;elsegoto bottom;break;case '2':a.list2();cout<<" 按0键退出系统,按其他键返回主菜单:"char back1;cin>>back1;if(back1!='0')goto top;elsegoto bottom;break;break;case '5':a.read();cout<<"

49、; 按0键退出系统,按其他键返回主菜单:"char back_r;cin>>back_r;if(back_r!='0')goto top;elsegoto bottom;break;case '6':cout<<" 请确认删除所有资料!(y/n) "char select5;cin>>select5;if(select5='y'|select5='y')a.format();cout<<" 按0键退出系统,按其他键返回主菜单:"cha

50、r back_f;cin>>back_f;if(back_f!='0')goto top;elsegoto bottom;break;bottom:cout<<" *成功退出系统,欢迎再次使用!*"<<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;i<35;i+)if(!strcmp(sti.

51、no,"0")strcpy(sti.address,address);strcpy(sti.e_mail,e_mail);strcpy(,name);strcpy(sti.no,no);strcpy(sti.post_code,post_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;i<35;i+)if(!strcmp(,name) strcpy(sti.address,"

52、;0");strcpy(sti.e_mail,"0");strcpy(,"0");strcpy(sti.no,"0");strcpy(sti.post_code,"0");strcpy(sti.tel_no,"0"); x=0; cout<<” 删除此联系人成功!”<<endl;if(x=1)cout<<" 输入有误,没有找到此联系人!"<<endl;/修改联系人int inter:correct(ch

53、ar name30)int x;for(int i=0;i<35;i+)if(!strcmp(,name)x=i;char select;cout<<" (1)修改姓名:"<<endl;cout<<" (2)修改学号:"<<endl;cout<<" (3)修改地址:"<<endl;cout<<" (4)修改邮编:"<<endl;cout<<" (5)修改电话号码:"&

54、lt;<endl;cout<<" (6)修改e_mail:"<<endl;cout<<" 请选择:"cin>>select;switch(select)case '1':cout<<" 输入姓名进行修改:"char name130;cin>>name1;strcpy(,name1);cout<<" 修改成功!"<<endl;return back();break;case '

55、2':cout<<" 输入学号进行修改:"char no113;cin>>no1;strcpy(sti.no,no1);cout<<" 修改成功!"<<endl;return back();break;case '3':cout<<" 输入地址进行修改:"char address1100;cin>>address1;strcpy(stx.address,address1);cout<<" 修改成功!"<

56、<endl;return back();break;case '4':cout<<" 输入邮编进行修改:"char post_code17;cin>>post_code1;strcpy(stx.post_code,post_code1);cout<<" 修改成功!"<<endl;return back();break;case '5':cout<<" 输入电话号码进行修改:"char tel_no112;cin>>tel_no

57、1;strcpy(stx.tel_no,tel_no1);cout<<" 修改成功!"<<endl;return back();break;case '6':cout<<" 输入e_mail进行修改:"char e_mail140;cin>>e_mail1;strcpy(stx.e_mail,e_mail1);cout<<" 修改成功!"<<endl;return back();break;/按学号查询联系人void inter:find1(cha

58、r no13)int x,y=1,z=1;for(int i=0;i<35;i+)if(!strcmp(sti.no,no)x=i;z=0;else y=0;if(z=0)break;if(y=0)cout<<" 没有查到此学号的相关记录!"<<endl; print(x);/按姓名查询联系人void inter:find2(char name20)int x,y=1,z=1;for(int i=0;i<35;i+)if(!strcmp(,name)x=i;z=0;else y=0;if(z=0)break;if(y=0)

59、cout<<" 没有查到此人相关记录!"<<endl;print(x);/读取文件void inter:read()char name120;cout<<" 输入你要打开的文件名: "cin>>name1;strcat(name1,".txt");ifstream file(name1);char line120;char no120;char name120;char address120;char post_code120;char tel_no120;char e_mail120;

60、int time=0;file.getline(line,120);while(!file.eof()for(int k=0;k<35;k+)if(time=0)strcpy(no,line);time=1;for(int i=0;i<120;i+)if(noi=':')i+;for(int j=0;j<13;j+)stk.noj=noi;i+;file.getline(line,120,'n');if(time=1)strcpy(name,line);time=2;for(int i=0;i<120;i+)if(namei=':

61、')i+;for(int j=0;j<20;j+)j=namei;i+;file.getline(line,120,'n');if(time= 2)strcpy(address,line);time=3;for(int i=0;i<120;i+)if(addressi=':')i+;for(int j=0;j<100;j+)stk.addressj=addressi;i+;file.getline(line,120,'n');if(time=3)strcpy(tel_no,line);time=4;for

62、(int i=0;i<120;i+)if(tel_noi=':')i+;for(int j=0;j<12;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;i<120;i+)if(post_codei=':')i+;for(int j=0;j<7;j+)stk.post_codej=post_codei;i+;file.getline(line,120,'n

63、');if(time=5)strcpy(e_mail,line);time=0;for(int i=0;i<120;i+)if(e_maili=':')i+;for(int j=0;j<40;j+)stk.e_mailj=e_maili;i+;file.getline(line,120,'n');file.close();/写入文件void inter:write()char name20;cout<<" 输入要保存的文件名 "cin>>name;strcat(name,".txt&quo

64、t;);ofstream savefile(name);for(int i=0;i<35;i+)savefile << "学号:"<<sti.no<<” ”; savefile << "姓名:"<<<<” ”; savefile << "地址:"<<sti.address<<” ”; savefile << "电话号码:"<<sti.tel_no<<”

65、 ”; savefile << "邮编:"<<sti.post_code<<” ”; savefile << "e_mail:"<<sti.e_mail<<endl;savefile.close(); cout<<” 保存成功!”<<endl;/按学号排序void inter:list1()for(int i=0;i<34;i+)for(int j=0;j<35-i;j+)if(strcmp(stj.no,stj+1.no)>0)char n

66、o13; 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,);strcpy(,stj+1.name);strcpy(stj+1.name,name); strcpy(address,stj.address);strcpy(stj.address,stj+1.address);strcpy(stj+1.address

67、,address);strcpy(tel_no,stj.tel_no);strcpy(stj.tel_no,stj+1.tel_no);strcpy(stj+1.tel_no,tel_no);strcpy(post_code,stj.post_code);strcpy(stj.post_code,stj+1.post_code);strcpy(stj+1.post_code,post_code);strcpy(e_mail,stj.e_mail);strcpy(stj.e_mail,stj+1.e_mail);strcpy(stj+1.e_mail,e_mail);for(int k=0;k<35;k+)int x=0;if(strcmp(stk.no,"0")print(k);x=1;if(x=1)cout<<endl;cout<<"-"<<endl;/按姓名排序v

温馨提示

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

评论

0/150

提交评论