湖南人文科技学院计算机科学技术系
课程设计说明书
课 程 名 称:
C++面向对象程序设计
课 程 代 码:
420103
题
目:
通信录的设计
年级/专业/班:
2010 级网络工程专业一班
开 题 时 间:
2011 年 6 月 13 日
完 成 时 间:
2011 年 6 月 24 日
目 录
摘 要...................................................................1
一、引 言..............................................................2
湖南人文科技学院课程设计
二、设计目的与任务......................................................2
三、设计方案............................................................3
1、总体设计..........................................................3
2、详细设计..........................................................5
3、程序清单..........................................................9
4、程序调试与体会...................................................18
5、运行结果.........................................................19
四、结 论..............................................................21
五、致 谢..............................................................21
六、参考文献............................................................21
湖南人文科技学院课程设计
摘要
C++作为大学生学习程序设计的入门语言,不仅详细介绍了语言本身,而且介绍了常用
的数据结构和算法。通过学习 C++语言的数组、指针、类与对象等。本次课程设计主要使
用类与对象、数组与指针等方法.
通过本次通讯录的课程设计熟悉运用 C++语言,主要包括数组与指针,类与对象,string,
作用域等,通过数组和指针解决数据级对象之间的联系和协调,经过类与对象的定义,建
立函数等方法输入,再进行运行,最后实现通讯录中的输入、排序输出、修改、删除的功
能。
关键词:类;数组;指针;C++。
Abstract
C++ as college students learning program design is the beginning of the
language, not only introduces the language itself, and also introduces the common
data structure and algorithms. Through the study of the C++ language array
pointer, class, and objects, etc. This course design main use class and object, with an
array and Pointers method.
Through this address book of course design familiar with using C++ language,
mainly including array pointer, with classes and objects, scope and moves, through
the array pointer and solve the connection between the data object level and
coordination, after class and objects, such as the definition of a function method,
and then to input, and realize the operation of the input and output address book
sorting, modification and deletion function.
Keywords: class; arrays; pointer; C++.
第 1 页
湖南人文科技学院课程设计
一、引言
随着我国进一步的开放,我们需要扩大国际交流,加强学习国外的先进经验。掌握国
际的领先技术是我们的首要任务。计算机技术发展异常迅速,内容更新很快,我们对计算
机的了解程度也直接影响了我国的现代化和信息化的程度。《C++程序设计》是计算机程序
设计的重要技术基础,由于 C++已经广泛的应用于计算机编程,它不仅已成为是计算机学
科的核心课程,而且是其他理工专业的热门选修课。它不仅是计算机科学与技术相关专业
十分重要的核心课程,也是应用数学、管理科学、环境规划等很多专业的一门重要基础课。
因此,对于所有想更好地运用计算机来解决实际问题得人们而言,学习《C++程序设计》确
实是条捷径,要想有效地使用计算机、充分发挥计算机的性能,打好《C++程序设计》这门
课程的扎实基础,对于学习计算机专业的其他课程,如操作系统、编译原理、数据库管理
系统、软件工程、人工智能等都是十分有益的。
本次课程设计的课题是通讯录的设计。在表达式中我们必须考虑的模块,模块是的运
用能是的类库集合和函数集合更安全,可以让程序对任何其他数据类型进行同样方式的处
理。
在课程设计之前我们还是做了很多准备的。例如,在网上和一些资料上查找模块的应
用。由此我们觉得本次程序的设计过程也是一个学习过程,更是对复杂
程序的一个学习过程,还能培养我们的数抽象能力。因此,我们觉得这次课程设计是
非常有意义的,能为我们今后学习程序设计作一些铺垫。
二、 设计目的与任务
1. 课程设计目的
本次课程设计教学所要求达到的目的:进一步巩固《C++程序设计》所学的知识,特别
是加强数组,指针,类等的应用。熟悉面向过程的结构化和面向对象可视化程序设计方法。
练习程序设计的能力,加深对高级语言基本语言要素和控制结构的理解。把平常所学的运
用到课程设计实践中,要求熟悉运用一些编辑软件(VC6.0)对我们所学的理论知识进一步
深化。
2. 课程设计的任务
用 C++语言设计一个通讯录的程序,具有输入、排序输出、修改、删除功能,其中至
少包括姓名、性别、电话、地址、邮政编码、邮箱、QQ 号和类别(例如:同学、朋友等)。
第 2 页
湖南人文科技学院课程设计
实现下面的功能 :
1)设计菜单实现功能选择;
2)输入功能:输入人员信息,并保存到文件中;
3)查询功能:
(1)能够根据姓名、电话精确查询人员信息;
(2)能够根据地址进行模糊查询人员信息;
(3)根据人员类别查询人员信息
4)根据姓名对人员信息排序输出
5)能根据姓名、电话修改人员信息
6)能根据姓名、电话删除人员信息
三、设计方案
1、总体设计
首先定义一个 person 类,通过类的对象调用各个成员函数。
function()函数,是用来实现用户功能选择的函数,在 main()中通过对象调用。
输入函数 set(),在 function()中调用,主要功能是输入人员信息,并且把信息写入
文件。
查询函数 show(),也是在 function()函数中调用,主要功能是显示查询界面以及调用
各个功能的查询子函数。
子查询函数 search1(),search2(),search3(),分别是按姓名、电话号码查询,按地址
查询,按类别查询,在 show()中调用。
排序函数 PaiXu(),主要功能按姓名对人员信息进行排序输出,在 function()中调用。
修改和删除函数 alter(),del(),主要功能是根据姓名或号码对人员信息进行修改或
者删除,在 function()中调用。
流程图 1 所示:
第 3 页
湖南人文科技学院课程设计
n=5
删除 del()
n=4
修改
显示信息
开始
输入 n
判断 n?
执行 set()
n=1
n=2
show()
search1()
search2()
search3()
i=1
i=2
i=3
n=6
n=3
退出
排序
function(
结束
图 1
第 4 页
湖南人文科技学院课程设计
2、详细设计
在这次课程设计中,我们用到了对象指针、静态变量、string 类等。在功能的实现方
面,我们运用的事自定义公有函数,把程序模块化,把各部分的功能分配给小组的各个成
员,完成后再由主函数链接起来。各部分重要代码如下:
(1)类的定义
为了方便操作,所以把成员变量都定义为 string 类,这样就可以不必为数组下标溢
出而担心了,还有在后面的查询功能中,也可直接比较,不必调用 strcmp 函数,此外
还定义了静态变量 f,用来记录输入人员个数,方便了后面的功能实现,节省了空间。
(2)功能菜单
void person::function()
{
cout<<"*********************************
*$欢迎使用$***********************************"<>c;
switch(c)
{
case '1':set();break;
case '2':show();break;
case '3':PaiXu();break;
case '4':alter();break;
case '5':del();break;
case '6':exit(1);
}
function();
}
第 5 页
湖南人文科技学院课程设计
主要采用 switch 进行选择,分别进入相应的功能菜单
(3)输入功能
通过 while 循环,实现多组数据输入
char c='y';
while(c=='y'||c=='Y')
cout<<"继续输入下一个,确认?(y/n)";
cin>>c;
(4)精确查询
void person::search1()
{
int i,flag=0;
cout<<"请输入姓名或电话号码:";
string temp;
cin>>temp;
for(i=f;i>0;i--)
{
p2=p-i;
if(temp==p2->name||temp==p2->tel)
{
flag=1;
cout<
name<<","<sex<<","<tel<<","<ads
<<","<code<<","<mail<<","<QQ
<<","<sort<