C++通讯录管理系统课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

通讯录管理问题描述编写一个简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。基本要求程序应提供的基本管理功能有:1)添加:即增加一个人的记录到通信录中2)显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。3)存储:即将通讯录信息保存在一个文件中。4)装入:即将文件中的信息读入程序。5)查询:可根据姓名查找某人的相关信息,若找到显示其姓名、地址、电话号码和邮政编码。6)修改:可修改一个人的除姓名外其它信息。测试数据程序应输入不少于10个人员的通讯录信息,应考虑到人员可以同名的情况。实现提示程序可用一个动态数组来管理人员信息,每个人员的姓名,地址,电话号码和邮政编码用一个类Cperson来实现,作为动态数组的值指针指向这些Cperson类对象,通过动态数组的遍历可以操作这些数据。目录【摘要】第1章概述1.1系统实现的目标1.2系统实现方案1.3系统实现环境1.4具体的开发方法第2章系统设计2.1总体设计2.2类设计2.3数据结构2.4界面设计第3章系统实现【摘要】日益繁多的人际交往使得我们很难记住与每个人之间的联系方式,通讯录能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机或者手机中的电话簿程序来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。1.1系统实现的目标(1)录入:通讯录信息包括:姓名,电话,地址,E-mail,邮编等信息。(2)更新:能插入、删除通讯录信息。.(3)浏览:能够查看所有的通讯录信息。(4)查询:能实现指定姓名信息查询或指定编号查询功能。(5)系统以菜单方式工作,界面友好,易于操作。1.2系统实现方案为实现系统功能,本程序主要分为五个模块。它们分别为:输入一个信息、删除一个信息、查询一个信息、插入一个信息、列出所有的信息、退出该程序。这五个函数再通过主函数调用分别得以实现。主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用通讯录的哪种功能。然后,通过执行多分支选择语句——switch语句,分别实现其它各个函数的调用功能。1.3系统实现环境通过VC++6.0用C++语言对程序进行编写设计在windows界面下用DOS访问1.4具体的开发方法用面向对象的程序设计方法,运用C++语言编写程序进行该学生考勤管理系统的详细设计,使之能提供录入、显示、查找、删除、修改的功能。最后在VC++6.0环境下编写和调试程序,进而完成系统的实现。第2章系统设计2.1总体设计功能:1.输入联系人的信息2.显示联系人的信息3.查找联系人的信息4.删除联系人的信息5.编辑人的信息一程序分析阶段该程序有六项功能,即添加、显示、存储、装入、查询、修改,要完成此六项功能必须有六项实现该功能的函数,和类的构造相联系知此六项功能即为类的行为,此为行为抽象。该程序又有四项属性,即姓名、地址、电话号码、邮政编码,又因为地址有三项成员,即省、市、街道,由此可知可将数据成员分为两个类,即Cperson类和Address类,此为类的数据成员。此为数据抽象。至此类的数据成员和行为成员形成。二程序设计阶段由于人员信息较多,可考虑使用对象数组来管理人员信息,作为动态数组的值指针指向这些Cperson类对象,通过动态数组的遍历可以操作这些数据。程序应输入不少于10个人员的通讯录信息,应考虑到人员可以同名的情况。当人员同名是应该考虑其他的属性。三程序编程阶段1:编程之前应该先画出该类的UML图。Cperson—phonenumber:int—lastdate:int—name:string—address:Address—postnumber:string—balance:double—time:double—constprice:double—staticn:int+Cperson():void+getbalance():void+gettime():void+record(date:int,account:double):double+show():void+select(name:string):void+alter(phonenumber:int):void+insert(phonenumber:int):voidAddress—province:string—city:string—street:string+Address()+getAddress()+Address(Address&add)第三章系统实现//Address类的设计#ifndefAddress_h#defineAddress_h#includestringclassAddress{private:std::stringprovince;std::stringcity;std::stringstreet;public:Address(){}Address(std::stringprovince,std::stringcity,std::stringstreet);voidgetaddress(std::stringprovince,std::stringcity,std::stringstreet);Address(Address&address1);~Address();};#endif//Cperson类的设计#ifndefCperson_h#defineCperson_h#includestringclassCperson//通信用户类{public:Cperson();Cperson(intphonenumber,intdate,char*name1,Address&address,std::stringpostnumber);doublegetbalance()const{returnbalance;}doublegettime()const{returntime;}voidinputmoney(intdate,doubleaccount);voidrecord(intdate,doubleaccount);voidsettle(intdate,doubletime);staticunsignedintgettotal(){returnn;}voidinput(intphonenumber,char*name1,Address&address,std::stringpostnumber,doublebalance,doubletime);voidshow()const;voidselect(char*name);voidalter(intphonenumber1,char*name1);voidinsert(intphonenumber);~Cperson();private:intphonenumber;//电话号码intlastdate;//充值日期char*name;//用户姓名Addressaddress;//用户地址std::stringpostnumber;//用户所在地的邮政编码doublebalance;//余额doubletime;//通话时间staticdoubleprice;//话费单价staticunsignedintn;//用户总人数};#endif//Address类的实现#includeAddress.h#includestringusingnamespacestd;Address::Address(stringprovince,stringcity,stringstreet){province=province;city=city;street=street;}Address::getaddress(stringprovince,stringcity,stringstreet){address=province+city+street;}Address::~Address(){}Address::Address(Address&address1){province=address1.province;city=address1.city;street=address1.street;}//Cperson类的实现#includeAddress.h#includeCperson.h#includeiostream#includestring#includecmathusingnamespacestd;Cperson::Cperson(){}Cperson::Cperson(intdate,intphonenumber,char*name1,Address&address1,stringpostnumber){lastdate=date;phonenumber=phonenumber;name=newchar[strlen(name1)+1];//申请动态内存空间strcpy(name,name1);//字符串的赋值Address=address1;postnumber=postnumber;balance=0;time=0;price=price;cout\t#nameiscreatedendl;n++;}voidCperson::record(intdate,doubleaccount){lastdate=date;balance=balance+account;coutdate\t#name\taccount\tbalanceendl;}voidCperson::inputmoney(intdate,doubleaccount){cout你已经成功充值accountendl;record(date,account);}voidCperson::settle(intdate,doubletime){doubleaccount;account=floor(time*price+0.5);if(accountgetbalance())cout你的话费不足,请及时缴费!endl;elserecord(date,-account);}voidCperson::select(char*name1){for(inti=0;in;i++)if(strcmp(name,name1)==0)cout你查找的用户为nameendl;elsecout你查找的用户不存在endl;}voidCperson::input(intphonenumber,char*name1,Address&address1,stringpostnumber,doublebalance,doubletime){phonenumber=phonenumber;name=newchar[strlen(name1)+1];//为name申请动态的内存空间strlen()是查出字符串长度的函数strcpy(name,name1);//字符串的赋值address=address1;postnumber=postnumber;balance=balance;time=time;}voidCperson::show()const{coutphonenumber=phonenumberendl;coutname=nameendl;coutaddress=Address(province,city,street)endl;coutpostnumber=postnumber

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功