C实验通讯录.docx
《C实验通讯录.docx》由会员分享,可在线阅读,更多相关《C实验通讯录.docx(11页珍藏版)》请在冰豆网上搜索。
C实验通讯录
面向对象技术与C++课程设计任务书
课程
面向对象技术与C++
班级
2009级1-4、9-11班
指导教师
耿军雪
题目
通信录管理系统
完成时间
2010年08月23日至2010年08月27日
主要内容
设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。
(一)功能要求
(1)查看功能:
选择此功能时,列出下列三类选择。
(A办公类B个人类C商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码)
(2)增加功能:
能录入新数据(一个结点包括:
姓名、电话号码、分类(可选项有:
A办公类B个人类C商务类)、电子邮件)。
例如
杨春商务类
当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;录入的新数据能按递增的顺序自动进行条目编号。
当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
(3)修改功能:
选中某个人的姓名时,可对此人的相应数据进行修改
(4)删除功能:
选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
设计报告要求
1.封面:
(格式附后)
2.课程设计任务书
3.课程设计报告:
⑴系统总体方案
⑵设计思路和主要步骤
⑶各功能模块和流程图
⑷设计代码
⑸心得体会和参考资料
说明:
学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000字,并装订成册。
版面要求
1.题目用黑体三号,段后距18磅(或1行),居中对齐;
2.标题用黑体四号,段前、段后距6磅(或行);
3.正文用小四号宋体,行距为倍行距;
4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。
上机时间安排
星期
周次
一
二
三
四
五
六
日
第1周
1-8
1-8
1-8
1-8
1-8
指导时间地点
上机时间,E520、E502
面向对象技术与C++课程设计报告
(通讯录管理系统)
一、系统总体方案:
通过用C++语言来进行该通讯录的编程,使得通讯录可以进行简单的操作。
首先明确通讯录中的信息,它包括姓名、电话号码、类别和电子邮件,接下来进行简单的操作,例如:
输入信息、查询、增加、修改、删除等。
接下来进行逐步分析,设计它的运行方式及采用的结构。
它必须用到类的定义来定义私有成员和公有成员以实现信息的管理,其中通过成员函数和链表来实现对通讯录的信息的操作,包括输入、查询、添加、修改、删除、显示。
最后进行程序的调试,检查程序的正确性与严密性。
二、设计思路和主要步骤:
第一步:
采用C++语言来编程通讯录管理系统,明确C++的定义,采用类的定义和链表进行编程。
第二步:
建立对象,定义它的私有及公有成员,列出私有成员和成员函数,成员函数里包括通讯录的各个操作,其中有输入、查询、添加、修改、删除和显示。
第三步:
对各个成员函数的编程。
1)信息输入:
将要存储的人员的姓名、电话号码、类别、电子邮件进行输入。
当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;录入的新数据能按递增的顺序自动进行条目编号。
当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
2)信息查询:
如果按类别查找时,列出下列三类选择(A办公类B个人类C商务类),当选中某类时,显示出此类所有数据中的姓名、电话号码和电子邮件。
如果按姓名查找时,当输入所要查询的姓名时,就会显示出该人员的电话号码、类别和电子邮件。
或者当输入的类别或是姓名错误的话,就会显示“类别错误,请重输!
”或“对不起!
您查询的人不存在!
”。
3)信息修改:
选中某个人的姓名时,可对此人的相应数据进行修改。
4)信息删除:
选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
5)信息的显示:
显示出通讯录中所有人员的信息。
6)操作:
对以上信息的整理,并对其进行编号。
第四步:
对通讯录进行操作,使之能显示出所要的信息。
第五步:
对程序进行调试,使之运行成功。
三、各功能模块和流程图
(一)信息查询:
图1
(二)信息修改:
图2
(三)信息删除:
图3
图1
图2
图3
四、心得体会
通过这次的实验我深刻地了解到了面向对象技术与C++这门课程的重要性。
只有充分地了解和掌握这门课程才能够运用自如,才能够独立编程。
坚实的基础知识,才能让自己更加充分地认识这门课程,也能够编出正确、严密的程序。
在编译通讯录管理系统的过程中,我学习到了很多的东西,也认识到了很多。
在编译过程中,我不仅要全面了解面向对象技术与C++程序设计上的运用,也需要对运行环境作充分的了解,更加熟练地运用MicrosoftVisualC++,让程序达到更加完美的状态,也在上机实践和对程序调试的同时提高了自己解决问题的能力。
我还深刻的体会到了面向对象程序设计在工程中应用的重要作用,及其对工程方面程序设计的深远影响。
在编程过程中,我发现C++与我们的生活息息相关,比如,我们的电话薄、书籍目录的检索、车票的管理等。
它时时刻刻与我们在一起,并且给我们带来了极大的方便。
我还深刻的体会到了面向对象程序设计在工程中应用的重要作用,及其对工程方面程序设计的深远影响。
总之,在这次的实验中我获益匪浅。
在掌握面向对象程序设计的基础上更使我对c++语言产生了浓厚的兴趣。
在我的眼中,它不再是一门课程,而是我生活中的一种乐趣。
我会利用课余时间进行小型程序的编程让自己更加熟练地掌握这门技术,为以后的学习打下坚实的基础。
五、参考资料
《面向对象程序设计》
六、程序代码
#include
#include<>
usingnamespacestd;
classInformation
{private:
charname[20];
chartel[12];
charkind;
charemail[50];
public:
Information(charn[],chart[],chark,chare[])
{
strcpy(name,n);
strcpy(tel,t);
kind=k;
strcpy(email,e);
}
voidadd();
voidsearchB();
voidsearchQ();
voidalter();
Delete();
voidlist();
};
Information*s[50];
charn[],chart[],chark,chare[];
inti=0;
intj=0;
voidInformation:
:
add()
{
Information*p1,*p2,*head;
cout<<"请输入姓名:
"<cin>>name;
cout<<"请输入电话号码:
"<cin>>tel;
cout<<"请输入类别(A办公类B个人类C商务类):
"<cin>>kind;
cout<<"请输入电子邮箱:
"<cin>>email;
j++;
cout<<"新信息已经保存好!
"<s[i]=newInformation(name,tel,kind,email);
i++;
for(intj=0;j
{
if(strcmp(s[j]->tel,tel)==0)
{cout<<"输入重复电话号码,请重输!
"<}
for(intu=0;u
{
if(strcmp(s[u]->name,name)==0)
{cout<<"输入重名,请重输!
"<}
i++;
if(i==15)
{
cout<<"内存已满,无法录入!
"<}
}
voidInformation:
:
searchB()
{if(i==0)
cout<<"系统中没有该信息或信息已删除!
"<cout<<"请输入你要查询的姓名:
"<cin>>name;
for(intj=0;j
{
if(strcmp(name,s[j]->name)==0)
{
cout<<"您要查询的姓名是:
"<name<>name;
cout<<"电话号码:
"<tel<<""<<"类别:
"<kind<<""<<"电子邮件:
"<email<}
else
cout<<"对不起!
您要查询的人不存在!
"<}
}
voidInformation:
:
searchQ()
{
intk;
if(i==0)
cout<<"系统中没有该信息或信息已删除!
"<cout<<"请输入类别(A办公类B个人类C商务类):
"<cin>>kind;
cout<<"姓名:
"<name<<""<<"电话号码:
"<tel<<""<<"电子邮件:
"<email<for(intj=0;j
{
cout<<"请输入类别(A办公类B个人类C商务类):
"<cin>>kind;
if(kind!
='A'&&kind!
='B'&&kind!
='C')
{cout<<"类别错误,请重输"<elsecout<<"对不起!
您要查询的人不存在!
"<}
}
voidInformation:
:
alter()
{
cout<<"请输入您要修改的姓名:
"<cin>>name;
for(inth=0;h
{
if(strcmp(name,s[h]->name)==0)
{
chartel;charkind,email;
cout<<"请输入电话号码:
"<cin>>tel;
cout<<"请输入类别:
"<cin>>kind;
cout<<"电子邮件:
"<cin>>email;
s[h]->tel;
s[h]->kind=kind;
s[h]->email;
cout<<"数据修改成功!
";
}
elsecout<<"您要修改的信息不存在!
"<}
}
Information:
:
Delete()
{
cout<<"请输入您要删除的姓名:
"<cin>>name;
for(inth=0;h
{
if(strcmp(name,s[h]->name)==0)
{
i--;
s[h]=s[h+1];
h++;
}
elsecout<<"您要求删除的对象本来就不存在!
";
}
}
voidInformation: