《C++-编程通讯录管理系统代码》由会员分享,可在线阅读,更多相关《C++-编程通讯录管理系统代码(30页珍藏版)》请在金锄头文库上搜索。
1、河南城建学院河南城建学院 面向对象程序设计面向对象程序设计课程设计报告书课程设计报告书 设 计 题 目:通讯录管理系统 指 导 老 师:崔雪冰、景伟娜 学 生 学 号: 131409166 学 生 姓 名: 张庭多 同 组 人 员: 宋欠、李胜忠 何阳 时 间:2012 年 6 月 20 日 目 录 第第 1 1 章章 选选 题题1 1.1 题目背景.1 1.2 系统实现的具体分工1 1.2.1 标题1 1.3 开发环境1 第第 2 2 章章 设计设计内内容容1 2.1 实现功能1 2.2 概要设计(涉及的框图).2 第第 3 3 章章 系统实现系统实现2 3.1 涉及知识点.2 3.2 系统
2、运行(主要运行界面抓图).2 3.3 源程序清单(关键代码).6 第第 4 章章 结束语结束语28 第 页 共 28 页 第第 1 1 章章 选选 题题 1.1 题目背景 随着信息化时代的到来,社会中人与人之间的联系更加密切广泛,因此对 于联系人信息的高效管理越来越重要,正是在此背景下,我们选取通讯录管理系 统为课程设计题目,解决一些人们生活中的实际问题,使联系人信息的管理得 到高效管理。 1.2 系统实现的具体分工 对于本次课程设计,我们提前了近一周开始动手。在确定了设计题目之后, 我们在一起定下了系统的框架。其中我主要承担修改同学信息这个模块,其它 的模块添加、删除、查询、浏览由宋欠、李胜
3、忠、何阳各自完成,各模块完成 后我们在一起完成了主函数的编写及调试等工作。五大模块分别有其对应的函 数,并在主函数中被调用。主函数(main 函数)实现对整个系统框架的引导与 控制。 1.2.1 标题 通讯录管理系统 1.3 开发环境 Visual C+ 6.0 机 型 : Acer 4752G 处理器名称: Intel 酷睿 i5 2450M 硬盘驱动器: 750GB 5400 转,SATA 系统内存 : 金士顿内存 2GB 显示卡 : NVIDIA GeForce GT 630M 显示器 : 友达 AUO183C 操作系统 : Windows 7 旗舰版 64 位 SP1 ( Direct
4、X 11 ) 第 页 共 28 页 第第 2 2 章章 设计内容设计内容 2.1 实现功能 系统分为五大模块,分别是添加同学信息、删除同学信息、修改同学信息、 查询同学信息、浏览同学信息,依次实现对联系人信息的添加、删除、修改、 查询及浏览。 2.2 概要设计(涉及的框图) 主界面 添 加 通 讯 录 修 改 通 讯 录 删 除 通 讯 录 查 询 通 讯 录 浏 览 通 讯 录 完 成 完 成 完 成 完 成 完 成 第第 3 3 章章 系统实现系统实现 3.1 涉及知识点 结构体、文件操作、函数调用、循环语句、指针、系统的一些函数 3.2 系统运行(主要运行界面抓图) 系统运行良好,效果图
5、如下: 第 页 共 28 页 主界面 添加联系人信息 第 页 共 28 页 删除联系人信息 修改联系人信息 第 页 共 28 页 查询联系人信息 浏览联系人信息 第 页 共 28 页 退出时界面 第 页 共 28 页 3.3 源程序清单(关键代码) 我所承担的修改模块的代码和一些主要的代码: #include #include #include #include #include #include using namespace std; const char fileName=“tongxunlu.dat“; /定义结构体定义结构体 struct date int year; int mon
6、th; int day; ; struct addressList char xuehao10; char name10; char gender4; char minzu2; date birthday; char shoujihao14; char QQ11; char address40; ; /函数声明函数声明 int color(); int zhujiemian( ); void tianjia(fstream 第 页 共 28 页 void xiugai(fstream void shanchu(fstream void chazhao(fstream void liulan(f
7、stream int findRecord(fstream int getAmount(fstream /主函数主函数 int main( ) color(); bool Exit=false; fstream listFile; while(!Exit) switch(zhujiemian( ) case 1: tianjia(listFile); break; case 2: shanchu(listFile); break; case 3: xiugai(listFile); break; case 4: chazhao(listFile); break; case 5: liulan(
8、listFile); break; case 0: Exit=true; break; 第 页 共 28 页 return 0; /背景设置背景设置 int color() system(“color A4“); return 0; /主界面函数主界面函数 int zhujiemian( ) system(“cls“); int selection=0; coutselection; return(selection); 第 页 共 28 页 /修改联系人信息修改联系人信息 void xiugai(fstream coutmodifyName; listFile.open(“tongxunlu
9、.dat“,ios:out|ios:in|ios:binary); if(listFile.fail() coutselection; couttemp.name; cin.ignore( ); couttemp.gender; cin.ignore(); couttemp.minzu; cin.ignore(); couttemp.birthday.yeartemp.birthday.month temp.birthday.day; couttemp.shoujihao; cin.ignore(); couttemp.QQ; cin.ignore(); couttemp.address; c
10、in.ignore(); coutselection; return(selection); /添加联系人信息添加联系人信息 void tianjia(fstream couta.xuehao; couta.name; couta.gender; couta.minzu; couta.birthday.yeara.birthday.montha.birthday.day; couta.shoujihao; couta.QQ; couta.address; coutb; cin.ignore(); listFile.close(); while(toupper(b)=Y); coutc; if(
11、toupper(c)=Y) main(); else exit(0); /修改联系人信息修改联系人信息 void xiugai(fstream coutmodifyName; 第 页 共 28 页 listFile.open(“tongxunlu.dat“,ios:out|ios:in|ios:binary); if(listFile.fail() coutselection; couttemp.name; cin.ignore( ); couttemp.gender; cin.ignore(); couttemp.minzu; cin.ignore(); couttemp.birthday.
12、yeartemp.birthday.month temp.birthday.day; couttemp.shoujihao; cin.ignore(); couttemp.QQ; cin.ignore(); couttemp.address; cin.ignore(); coutdelName; int pos=findRecord(listFile, delName); if(-1=pos) coutc; if(toupper(c)=Y) main(); else exit(0); /查询联系人信息查询联系人信息 void chazhao(fstream coutfindName; int
13、pos=findRecord(listFile, findName); if(-1=pos) coutc; 第 页 共 28 页 if(toupper(c)=Y) main(); else exit(0); /浏览联系人信息浏览联系人信息 void liulan(fstream coutb; if(toupper(b)=Y) main(); else exit(0); /查找记录的记录号查找记录的记录号 int findRecord(fstream addressList Temp; listFile.seekg(0L,ios:beg); listFile.read(char*) while(
14、!listFile.eof( ) pos+; if(strcmp(Temp.name,pName)=0) return(pos); listFile.read(char*) listFile.clear( ); 第 页 共 28 页 return(-1); /返回文件中记录的个数返回文件中记录的个数 int getAmount(fstream addressList temp; listFile.seekg(0L,ios:beg); listFile.read(char*) while(!listFile.eof( ) amount+; listFile.read(char*) listFil
15、e.clear( ); return amount; 第 4 章 结束语 通过这周的课程设计我们对一些细节知识有了更深的了解,程序有时可能 需要进行很长时间的修改才能正常运行,这就需要我们有很深厚的修改程序的 功底,能够识别出来程序错误的地方。由于我们是提前开始编写的程序,修改 过程中可能一个函数错误的地方不是很明显,周围没有同学讨论,导致花的时 间很长,但这也有助于我们对这个程序有很深的了解。整个程序中主要运用了 文件操作的一些知识,这章内容我们学的不是很透彻,因此就需要我们把这章 的知识再认真看看才能够编写我们的这个通讯录管理系统。我们的这个程序里 有点小创新的就是修改了程序运行时的背景和
16、字体的颜色,同时我们的这个程 序还有记录的功能,不是把资料记载在电脑里,而是把资料从内存里搬到了文 件里,这样当再次打开时就可以浏览了,不用再输入内容,这也是现实中所要 求的。我们程序的缺点就是没有运用类来实现,而是用结构体代替了类,我们 本来对类了解的就不是很多,所以没有用类来实现。 通过这次团队合作体现出了很强大的团队精神,每个队员只做很小的一部 分,那么很快一个大的程序就出来了。虽然在整合每个小块的程序时有不少错 误,但是没有什么大的错误,不用花费很长时间就能运行出来。 最后,我们在此特别感谢崔老师这一个学期来在教学方面的辛劳付出以及 第 页 共 28 页 课程设计期间崔老师、景老师的热心辅导,我们相信两位老师的付出一定会收 到应有的回报。 参考文献参考