C++课程设计通讯录.docx
《C++课程设计通讯录.docx》由会员分享,可在线阅读,更多相关《C++课程设计通讯录.docx(20页珍藏版)》请在冰豆网上搜索。
C++课程设计通讯录
目录
第一章课程设计目的和要求………………………………………………………………………1
1.1课程设计的目的…………………………………………………………………………1
1.2课程设计的要求…………………………………………………………………………1
1.3C++程序设计软件及工具…………………………………………………………………2
第二章课程设计任务内容……………………………………………………………………………3
2.1设计的背景……………………………………………………………………………………3
2.2系统的功能……………………………………………………………………………………3
2.3系统运行环境分析……………………………………………………………………………3
第三章详细设计说明…………………………………………………………………………………4
3.1模块…………………………………………………………………………………………4
3.1.1函数功能模块图……………………………………………………………………4
3.1.2模块描述……………………………………………………………………………4
3.2流程图………………………………………………………………………………………6
3.3测试计划……………………………………………………………………………………7
第四章软件测试结果…………………………………………………………………………………8
第五章心得体会………………………………………………………………………………………13
附录Ⅰ:
参考文献……………………………………………………………………………………14
附录Ⅱ:
程序代码……………………………………………………………………………………15
第一章课程设计目的和要求
随着社会的发展,科学技术的进步,以及人际关系的交往日益密切,普通的、采用纸质记录联系人电话等信息已经不能满足人们的需求。
手工记录繁琐,容易出错,不方便查找,受个人情绪等影响严重,同时不方便传播,这就需要有一个能专门管理客户信息的电话信息管理系统能代替人们来管理客户电话等信息。
与此同时,21世纪是科技高度发展的世纪,计算机以及信息化已经深入人心,这就更加需要一个信息的电话信息管理系统来代替落后的手工记录等来适应新时代的发展。
客户电话信息管理系统,能满足人们的需要,人们可以通过它方便的记录客户电话等信息,同时能实现很方便的查找修改等。
1.1课程设计的目的
使学生能够更好地掌握C++程序设计语言,更深地理解面向对象程序设计的基本概念与方法,加深对讲授内容的理解,累积经验、学会独立上机调试程序,并且逐步达到综合运用封装、继承和多态等C++难点知识,从而学会利用C++语言解决一般应用问题,并为后续专业课程的学习奠定程序设计基础。
1.2课程设计的要求
1、明确题目要求,进行具体分析;
2、进行功能设计,编写设计说明;
3、进行程序设计与调试;
4、完成设计报告
1.3C++程序设计软件及工具
操作系统:
windows7
程序编译系统:
visual6.0
制图工具:
office2007
第二章课程设计任务内容
2.1设计的背景
随着社会的发展,人与人的关系更加紧密,联系也越来越频繁,从而造成了电话号码的繁多,为了解决之一难题用C++实现客户通讯录管理系统,通过对客户信息的输入、删除等,使之便于统计客户信息,大大减轻了对电话号码的繁琐记忆。
2.2系统的功能
一)通讯录管理程序(学号MOD3=1的同学做该设计)
功能要求:
1)能建立、修改和增删(含清空)学生通讯录2)能够按多种方式进行查询。
例如:
输入姓名可以查询其本人的电话号码等内容。
要求:
通讯信息至少要包括:
学生姓名、通讯地址、邮政编码、电话号码、QQ号码(可以根据自己爱好增加其他通讯信息)。
2.3系统运行环境分析
硬件配置:
586以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于64MB,硬盘自由空间不少于200MB。
推荐配置为内存128MB或256MB(或以上),硬盘自由空间500MB以上。
操作系统:
Windows2007/win7、VisualC++集成开发环境。
第三章详细设计说明
3.1模块
3.1.1函数功能模块图
删除联系人
显示所有信息
清空通讯录
修改联系人
增添联系人
查询联系人
图3.1函数功能模块图
3.1.2模块描述
1)查询联系人模块:
查询联系人模块是用遍历查找要查询的联系人的姓名,然后再显示该数组的信息。
2)增添联系人模块:
增添联系人模块是让用户按提示输入联系人信息,然后用数组来读取联系人信息进行存储,存储完后让数组加1,为下次读取做准备,这个模块之中加入了输入输出流,让联系人的信息保存到电脑的D盘。
3)删除联系人模块:
先让用户输入要删除联系人的姓名,然后用遍历查找存储该联系人的数组,然后将该数组的下一数组的信息保存到该数组中,重复此操作,最终效果是存储该联系人的数组被覆盖了,从而达到删除的效果。
4)修改联系人模块:
一样是先让用户输入要修改联系人的姓名,用遍历查找该联系人的数组,然后对该数组内的信息进行重新输入,即达到修改的效果。
5)显示所有联系人信息模块:
用一个for循环将所有数组的信息进行显示。
6)清空通讯录模块:
用delete函数加for循环将所有数组删除。
3.2流程图
3.3测试计划
先选择添加联系人功能添加三个联系人信息,然后再查询其中一个联系人,检测查询模块。
再修改该联系人信息,检测修改模块。
再删除该联系人,再查询该联系人看是否删除,检测删除模块。
然后再显示所有联系人信息,检测显示所有联系人信息的模块。
最后清空通讯录,再查询联系人信息,看是否清空。
第四章软件检测结果
1、登陆界面:
2、增添联系人
3、查询联系人:
4、删除联系人
5、再查询该删除的联系人:
6、显示所有联系人信息:
7、清空通讯录:
第5章心得体会
做这个程序用了两天,这是我学C++以来做的第一个程序。
刚开始的时候根本找不到思路,然后就上网看别人是怎么设计的,看着别人的设计思路,我才慢慢地了解到如何去设计一个程序,这些都是课上所没有的知识。
所以我始终觉得做课题、做项目或参加比赛是最快提高自己的方法,通过这些锻炼,我们会变得更强。
在这个程序设计中我学到的最宝贵的东西就是我开始懂得如何从零开始设计一个软件,这是个很好的开头,证明对于程序设计,我已经开始入门了,我相信在接下来的日子里,我会进步的更快,同时也非常感谢老师的支持与教导,我会加倍的努力的。
附录Ⅰ
程序代码
#include
#include
#include
classlist
{
charname[50];//学生姓名
charadress[50];//通讯地址
intcode;//邮政编码
intnum;//电话号码
intQnum;//QQ号码
public:
list(){}
list(charch[50],charsh[50],intc,intn,intQ)//获取信息的函数
{
strcpy(name,ch);strcpy(adress,sh);code=c;num=n;Qnum=Q;
}
friendvoidmain();
};
voidmain()
{
cout<<"--------------------------------------------"<<<"★通讯录★"<<<"★1、查询联系人2、增添联系人★"<<<"★3、修改联系人信息4、删除联系人★"<<<"★5、显示所有联系人信息6、清空通讯录★"<<<"★请选择相应的数字选择功能★"<list*list1[100];//定义一个对象数组存放名单
ofstreamcard("d:
\\card.txt");
inti=0;
intj=0;
boolflag2=0;/作为循环结束的判断charp;
for(;;)//大循环
{
do//判断输入的指令是否正确
{
cin>>p;
if(p>='1'&&p<='6')
flag2=1;
else
cout<<"指令错误,请重新输入:
"<}while(flag2=0);
switch(p)
{
case'1':
//查询联系人
{
charname[50];
charc;
boolflag2=0;
cout<<"请输入联系人姓名:
";
cin>>name;
do
{
for(inth=0;h
{
if(strcmp(name,list1[h]->name)==0)
{
flag2=1;
cout<<"电话号码:
";
cout<num;
cout<cout<<"通讯地址:
";
cout<adress;
cout<cout<<"邮政编码:
";
cout<code;
cout<cout<<"QQ号码:
";
cout<Qnum;
cout<flag2=1;
}
}
if(flag2==0)
cout<<"无此联系人信息!
"<flag2=1;
}while(flag2==0);
break;
}
case'2':
//增添联系人
{
charname[50];
charadress[50];
charc;
intcode;
intnum;
intQnum;
do
{
cout<<"请输入联系人姓名:
";
cin>>name;
cout<cout<<"电话号码:
";
cin>>num;
cout<cout<<"通讯地址:
";
cin>>adress;
cout<cout<<"邮政编码:
";
cin>>code;
cout<cout<<"QQ号码:
";
cin>>Qnum;
j++;
list1[i]=newlist(name,adress,code,num,Qnum);
card<i++;
cout<<"创建成功!
想继续录入吗?
(y/n)"<cin>>c;
flag2=0;
do
{
if(c!
='y'&&c!
='n')
{
cout<<"指令错误,请重新输入:
"<cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case'4':
//删除联系人
{
charname[50];
boolflag2=0;
charc;
do
{
cout<<"请输入要删除的联系人的姓名:
"<cin>>name;
for(inth=0;h
{
if(strcmp(name,list1[h]->name)==0)
{
flag2=1;
i--;
do
{
list1[h]=list1[h+1];
h++;
}while(h<=i);
}
}
if(flag2==0)
cout<<"您要删除的联系人不存在!
";
cout<<"要继续删除联系人吗?
(y/n)"<cin>>c;
if(c!
='y'&&c!
='n')
{
cout<<"指令错误,请重新输入:
"<cin>>c;
}
}while(c=='y');
break;
}
case'3':
//修改联系人
{
charname[50];
charadres[50];
charc;
intcod;
intnu;
intQnu;
boolflag2=0;
do
{
cout<<"请输入你要修改的联系人的姓名:
"<cin>>name;
for(inth=0;h
{
if(strcmp(name,list1[h]->name)==0)
{
flag2=1;
cout<<"请输入电话号码:
";
cin>>nu;
cout<<"通讯地址:
";
cin>>adres;
cout<<"邮政编码:
";
cin>>cod;
cout<<"QQ号码:
";
cin>>Qnu;
list1[h]->num=nu;
strcpy(list1[h]->adress,adres);
list1[h]->code=cod;
list1[h]->Qnum=Qnu;
cout<<"联系人修改成功!
";
}
}
if(flag2==0)
{
cout<<"想继续修改吗?
(y/n)"<cin>>c;
if(c!
='y'&&c!
='n')
{
cout<<"指令错误!
请重新输入!
"<}
}
}while(c=='y');
break;
}
case'5':
//显示所有联系人
{
cout<<"所有联系人资料显示如下:
"<if(i==0)
{
cout<<"通讯录中暂无建立联系人!
"<}
else
for(intk=0;k
{
cout<<"姓名:
"<name<<<"电话号码:
"<num<<<"通讯地址:
"<adress<<<"邮政编码:
"<code<<<"QQ号码:
"<Qnum<}
break;
}
case'6':
//清空通讯录
{
for(intx=0;x
{
deletelist1[x];
cout<<"已删除所有联系人!
"<}
i=0;
break;
}
default:
{
break;
}
}
cout<<"您想继续其他操作吗?
(y/n)"<boolflag3=0;
do
{
cin>>p;
if(p!
='y'&&p!
='n')
cout<<"指令错误!
请重新输入!
"<else
flag3=1;
}while(flag3==0);
if(p=='y')
{
cout<<"--------------------------------------------"<<<"★通讯录★"<<<"★1、查询联系人2、增添联系人★"<<<"★3、修改联系人信息4、删除联系人★"<<<"★5、显示所有联系人信息6、清空通讯录★"<<<"★7、退出★"<<<"★请选择相应的数字选择功能★"<continue;
}
else
for(intx=0;x
{
deletelist1[x];
}
cout<<"删除所有成员!
"<break;
}
}