c++课程设计总结报告 通讯录管理系统.docx
- 文档编号:10357353
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:19
- 大小:18.91KB
c++课程设计总结报告 通讯录管理系统.docx
《c++课程设计总结报告 通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《c++课程设计总结报告 通讯录管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
c++课程设计总结报告通讯录管理系统
C++(或C)语言课程设计总结报告
学号:
姓名:
专业:
计算机科学与技术
班级:
所属学期
一、项目介绍与设计目的
1.项目介绍:
名称:
通讯录管理系统
总体要求:
有一存在的通讯录文件,数据内容为各联系人的信息。
每个联系人信息的组成:
姓名、电话号码、QQ、邮编和地址等个人基本信息。
用户界面:
(1)输入:
程序正常运行后,屏幕上显示一个文字菜单(根据序号选定相应的操作项目),当用户选定操作项目所对应的序号时,根据应用程序的提示信息,从键盘上输入相应的数据。
(2)输出:
1)应用程序正常运行后,在屏幕上显示一个文字菜单
2)用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
功能:
(1)添加联系人:
输入新的联系人信息,并保存其内容。
(2)删除联系人:
从文件中删除相应联系人的信息。
(3)显示联系人:
从文件中输出所有联系人的信息。
(4)修改联系人:
可以修改该联系人的任何一个信息,并保存修改后联系人的信息。
(5)查询联系人:
输入联系人的姓名或电话号码,输出相应联系人的全部信息。
(6)关闭通讯录:
操作结束后,退出操作。
2.设计目的:
(1)通过这次课程设计,巩固c++的知识,尤其对类和文件保存等重要内容进行深入的理解,做到温故而知新。
(2)运用新学的数据结构中链表的知识,加深对新内容的了解,努力做到学以致用。
(3)通过这次编程,增强动手能力,养成良好的编程习惯,做到理论和实践相结合。
二、项目设计思路
首先,定义一个类book,类中包括成员函数,以及私有数据。
成员函数有:
默认的构造函数,用户界面函数,添加、删除、显示、修改、查询,以及关闭通讯录等函数。
私有数据有:
通讯录中联系人的姓名、电话号码、QQ、邮编,以及地址等基本信息。
其次,定义一个结构体record,结构体中的变量,一个指向前驱,一个指向后继。
然后,定义一个主函数main(),调用其他相应功能的函数,来完成通讯录的各个操作。
最后,分别定义添加、删除、显示、修改和查询等函数,完成相应的功能模块。
三、项目环境要求
在VC的环境下即可运行。
四、项目功能模块
本程序主要有以下七个函数:
(1)charbook:
:
inter_face()//用户界面函数
程序正常运行后,在屏幕上显示菜单,用户根据需要,按相应的功能键,进行操作。
(2)voidbook:
:
add_person()//添加联系人的函数
用户按数字键“1”,添加新的联系人,把新添加的内容保存到相应的文件中。
(3)voidbook:
:
del_person()//删除联系人的函数
用户按数字键“2”,输入你要删除的联系人的姓名或电话号码,如果该联系人存在,则输出该联系人的信息,并删除此人。
如果通讯录中没有此人,就输出
“对不起,联系人中没你要找的人”。
(4)voidbook:
:
show_all()//输出所有联系人的函数
用户按数字键“3”,输出文件“pbook.txt”中全部联系人的信息,否则的话,输出“通讯录中没有联系人”。
(5)voidbook:
:
alter()//修改联系人的函数
用户按数字键“4”,打开文件,输入你要修改的联系人的姓名或电话号码,找到该联系人后,从新输入要修改联系人新的信息,并保存到“pbook.txt”文件中;否则的话,输出“通讯录中无此人”。
(6)voidbook:
:
select()//查找联系人的函数
用户按数字键“5”,打开文件,输入要查找的联系人的姓名或者电话号码,找到此人,输出该联系人的全部信息,否则的话输出“对不起,通讯录中没有此人”。
(7)voidbook:
:
save_new()//关闭通讯录的函数
用户操作完成后,按数字键“6”,关闭通讯录的内容。
(8)intmain()//主函数
运用switch()语句,选择相应的功能键,调用相应的函数,进行该功能的操作。
五、程序关键源代码(注:
关键或者比较有特色的代码段,无需完整的源代码)
1、structrecord
{
bookobject;
record*prior;
record*next;
};
2、voidbook:
:
save_new(){
ofstreamoutData("pbook.txt",ios:
:
app);
if(!
outData)
{
cout<<"对不起!
!
!
打开文件失败!
!
!
!
"< system("pause"); return; } outData< : left)< < outData.close(); } 六、程序用户名及密码 本程序无用户名和密码。 七、参考文献 刘加海等,C++程序设计,清华大学出版社 王红梅等,数据结构(C++版),清华大学出版社 刘振安等,C++程序设计课程设计,机械工业出版社 八、体会与感想(总结) 通过这次编程实践,巩固了c++的知识,对c++的内容有了深入的理解,尤其 对文件的知识加深理解。 并运用数据结构中链表的知识,对新知识有进一步的理解。 增强了动手能力,感受到了c++的奥妙,找到了学习编程的乐趣。 同时在编程过 程中,也发现了自身学习态度的问题。 由于上课没认真听讲,课后又没及时花 时间去复习,造成了许多知识的缺漏,很多知识不能很好的运用,编写过程面临困 难,幸好通过这次编程及时把缺漏的知识补过来。 事实告诫了我: 今后上课一定要认真听讲,及时复习,多动手去编程,养成良好的编程习惯,增强实践能力。 九、指导教师意见 指导教师(签名): 年月日 源代码: #include #include #include #include #include #include usingnamespacestd; classbook { public: book(); charinter_face(); voidadd_person(); voiddel_person(); voidshow_all(); voidalter(); voidselect(); voidsave_new(); private: stringname; stringaddress; stringnumber; stringpost; stringqq; }; structrecord { bookobject; record*prior; record*next; }; book: : book() { name="\0"; address="\0"; number="\0"; post="\0"; qq="\0"; } charbook: : inter_face() { system("cls"); 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选择: "; intchoose; cin>>choose; fflush(stdin); returnchoose; } voidbook: : add_person() { cout<<"根据下面提示输入新联系人信息"< "; cin>>name; fflush(stdin); cout<<"电话: "; cin>>number; fflush(stdin); cout<<"qq: "; cin>>qq; fflush(stdin); cout<<"邮编: "; cin>>post; fflush(stdin); cout<<"地址: "; cin>>address; 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; stringrecor; while(getline(inData,recor)) { if(flag) { cout<<"所有联系人信息如下: "< } cout< flag=false; } if(flag) { cout<<"你的通迅录中没有联系人"< } else { cout<<"所有联系人已经全部显示出来"< } system("pause"); } voidbook: : alter() { ifstreaminData("pbook.txt",ios: : in); if(! inData) { cout<<"对不起不能打开文件"< system("pause"); return; } stringsign; cout<<"请输入你想要修改的联系人的姓名或电话号码: "; cin>>sign; fflush(stdin); stringstr1; record*H=newrecord; record*p=H; record*q=H; boolflag=true; while(inData>>p->object.name>>p->object.number>>p->object.qq>>p->object.post>>p->object.address) { p->next=newrecord; p=p->next; p->prior=q; q->next=p; q=p; } p->next=NULL; inData.close(); p=H; while(p) { if((p->object.name==sign)||(p->object.number==sign)) { if(flag) { cout<<"你想修改你联系人的信息如下: "< cout< : left)< <<""< flag=false; } cout<<"请根据下面提示修改信息: "< cout<<"姓名: "; cin>>p->object.name; fflush(stdin); cout<<"电话号: "; cin>>p->object.number; fflush(stdin); cout<<"qq: "; cin>>p->object.qq; fflush(stdin); cout<<"邮编: "; cin>>p->object.post; fflush(stdin); cout<<"地址: "; cin>>p->object.address; fflush(stdin); break; } p=p->next; } if(flag) { cout<<"你的通迅录中没有你找的联系人"< system("pause"); return; } else { ofstreamout("pbook.txt",ios: : out); if(! out) { cout<<"对不起不能打开文件"< system("pause"); return; } p=H; while(p) { out< : left)< <<""< p=p->next; } out.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)< getch(); flag=false; break; } } if(flag) { cout<<"对不起联系人中没你找的人"< } getch(); } voidbook: : save_new() { ofstreamoutData("pbook.txt",ios: : app); if(! outData) { cout<<"对不起打开文件失败"< system("pause"); return; } outData< : left)< < outData.close(); } intmain() { intchoose; bookabj; while(choose=abj.inter_face()) { switch(choose) { case1: abj.add_person(); break; case2: abj.del_person(); break; case3: abj.show_all(); break; case4: abj.alter(); break; case5: abj.select(); break; case6: cout<<"谢谢使用"< exit(0); break; default: break; } } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+课程设计总结报告 通讯录管理系统 c+ 课程设计 总结报告 通讯录 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)