C++通讯录管理系统课程设计Word文档下载推荐.docx
- 文档编号:19234027
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:17
- 大小:128.03KB
C++通讯录管理系统课程设计Word文档下载推荐.docx
《C++通讯录管理系统课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++通讯录管理系统课程设计Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。
通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。
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类对象,通过动态数组的遍历可以操作这些数据。
当人员同名是应该考虑其他的属性。
三程序编程阶段
1:
编程之前应该先画出该类的UML图。
第三章系统实现
//Address类的设计
#ifndefAddress_h
#defineAddress_h
#include<
string>
classAddress
{
private:
std:
:
stringprovince;
stringcity;
stringstreet;
public:
Address(){}
Address(std:
stringprovince,std:
stringcity,std:
stringstreet);
voidgetaddress(std:
Address(Address&
address1);
~Address();
};
#endif
//Cperson类的设计
#ifndefCperson_h
#defineCperson_h
classCperson//通信用户类
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&
stringpostnumber,doublebalance,doubletime);
voidshow()const;
voidselect(char*name);
voidalter(intphonenumber1,char*name1);
voidinsert(intphonenumber);
~Cperson();
intphonenumber;
//电话号码
intlastdate;
//充值日期
char*name;
//用户姓名
Addressaddress;
//用户地址
stringpostnumber;
//用户所在地的邮政编码
doublebalance;
//余额
doubletime;
//通话时间
staticdoubleprice;
//话费单价
staticunsignedintn;
//用户总人数
//Address类的实现
#include"
Address.h"
usingnamespacestd;
Address:
Address(stringprovince,stringcity,stringstreet)
province=province;
city=city;
street=street;
getaddress(stringprovince,stringcity,stringstreet)
address=province+city+street;
~Address()
Address(Address&
address1)
province=address1.province;
city=address1.city;
street=address1.street;
//Cperson类的实现
Cperson.h"
iostream>
cmath>
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#"
name<
iscreated"
endl;
n++;
voidCperson:
record(intdate,doubleaccount)
balance=balance+account;
date<
\t"
account<
balance<
inputmoney(intdate,doubleaccount)
cout<
你已经成功充值"
record(date,account);
settle(intdate,doubletime)
doubleaccount;
account=floor(time*price+0.5);
if(account>
getbalance())
你的话费不足,请及时缴费!
"
else
record(date,-account);
}
select(char*name1)
for(inti=0;
i<
n;
i++)
if(strcmp(name,name1)==0)
你查找的用户为"
else
cout<
你查找的用户不存在"
input(intphonenumber,char*name1,Address&
address1,stringpostnumber,doublebalance,doubletime)
//为name申请动态的内存空间strlen()是查出字符串长度的函数
//字符串的赋值
address=address1;
balance=balance;
time=time;
show()const
phonenumber="
phonenumber<
name="
address="
Address(province,city,street)<
postnumber="
postnumber<
balance="
time="
time<
alter(intphonenumber1,char*name1)
Cperson*person;
person=newCperson[n];
if(person->
phonenumber==phonenumber1)
chae"
;
//name=(*name1);
cout<
你要修改的用户不存在!
//person=newCperson[n];
insert(intphonenumber)
~Cperson()
delete[]name;
//释放动态内存空间
//Cperson类的测试
fstream>
iomanip>
doubleCperson:
price=0.8;
unsignedintCperson:
n=1;
intmain()
intdate;
intm;
intn=1;
charname[20];
stringprovince,city,street;
stringpostnumber;
AddressAdd;
Cperson*person=newCperson[n];
/*Cpersonp(12,23,"
韩波"
"
息县"
123"
);
date="
lastdate<
address<
*/
{
请输入第"
i+1<
个人的信息"
cin>
>
lastdate;
phonenumber;
name;
province="
province;
city="
city;
street="
street;
Address.getaddress(province,city,street);
postnumber;
balance;
time;
person[i].input(phonenumber,name,(province,city,street),postnumber,balance,time);
for(inti=0;
个用户的姓名,电话号码,地址,邮政编号"
person[i].name>
person[i].phonenumber>
person[i].address>
person[i].postnumber;
}
fstreamMyfile1,Myfile2;
Myfile1.open("
D:
\\用户信息.txt"
ios:
out);
Myfile1<
***********用户信息***********"
endl<
姓名"
电话号码"
地址"
邮政编码"
<
***************************************************************"
for(i=0;
i++)
Myfile1<
NO."
setw
(2)<
n+1<
setw(6)<
person[i].name<
person[i].phonenumber<
setw(8)<
person[i].address<
person[i].postnumber<
Myfile1.close();
你输入的数据为:
Add.getaddress(province,city,street)<
Cpersonperson1;
********************************************"
你要进行的操作是:
1:
显示"
2:
查询"
3:
修改"
4:
插入"
5:
缴费"
6:
计费"
请输入(1~6)之间m的值:
cin>
m;
switch(m)
case1:
person1.show();
case2:
请输入要查询的用户名:
person1.select(name);
case3:
请输入要修改的用户号码:
person1.alter(phonenumber,name);
case4:
请输入要插入的用户信息:
person1.insert(phonenumber);
case5:
请输入缴费时间和金额"
;
date;
account;
person1.inputmoney(date,account);
case6:
请输入通话日期和时间:
person1.settle(date,time);
default:
你的操作错误!
return0;
程序运行结果:
四实验总结
经过一个星期的面向对象课程设计,在老师的悉心指导下,我终于完成了一个小小的程序设计,虽然这个小程序的功能不是很强大,但是从开始分析问题、提出问题、结构设计、类的设计、到他是实现和调试整个过程都是我自己在老师的指导下亲手完成的,我的收获不小。
虽然一个星期的时间很短但我也体会到了写程序的过程,今后我要更加多做实验体会写程序的过程。
从中我体会到了程序设计的整个过程是怎样实现的,学到了一些面向对象程序设计的一些思想,算法和程序调试的一些方法。
在这里感谢老师们对我的悉心指导,教我解决了设计过程中的很多问题,让我学到了很多有用的东西。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 通讯录 管理 系统 课程设计