数据结构课程设计 2.docx

上传人:b****7 文档编号:9538752 上传时间:2023-02-05 格式:DOCX 页数:16 大小:234.70KB
下载 相关 举报
数据结构课程设计 2.docx_第1页
第1页 / 共16页
数据结构课程设计 2.docx_第2页
第2页 / 共16页
数据结构课程设计 2.docx_第3页
第3页 / 共16页
数据结构课程设计 2.docx_第4页
第4页 / 共16页
数据结构课程设计 2.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据结构课程设计 2.docx

《数据结构课程设计 2.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计 2.docx(16页珍藏版)》请在冰豆网上搜索。

数据结构课程设计 2.docx

数据结构课程设计2

安徽省巢湖学院计算机与信息工程学院

课程设计报告

课程名称:

《数据结构》

课题名称:

通讯录的制作

专业:

计算机科学与技术

班级:

学号:

姓名:

联系方式:

指导教师:

2011年11月21日

目录

1、数据结构课程设计任务书1

1.1、题目1

1.2、要求1

2、总体设计1

2.1、功能模块设计1

2.2、所有功能模块的流程图1

3、详细设计1

3.1、程序中所采用的数据结构及存储结构的说明1

4、调试与测试:

5、源程序清单和执行结果4

6、C程序设计总结8

7、参考文献8

1、数据结构课程设计任务书

1.1、题目

通讯录的制作

1.2、要求

【模块要求】

第一个模块——主函数main()的功能是:

根据选单的选项调用各函数,并完成相应的功能。

第二个模块——Menu()的功能是:

显示英文提示选单。

第三个模块——Quit()的功能是:

退出选单。

第四个模块——Create()的功能是:

创建新的通讯录。

第五个模块——Add()的功能是:

在通讯录的末尾,写入新的信息,并返回选单。

第六个模块——Find()的功能是:

查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。

第七个模块——Alter()的功能是:

修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。

第八个模块——Delete()的功能是:

删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。

第九个模块——List()的功能是:

显示通讯录中的所有记录。

;

【设计要求】

1)每条信息至包含:

姓名(NAME)、性别(GENDER)、电话(TEL)、城市(CITY)邮编(EIP)几项。

2)作为一个完整的系统,应具有友好的界面和较强的容错能力; 

2、总体设计

2.1、功能模块设计

根据课程设计题目的功能要求,各个功能模块的组成框图如下:

2.2、所有功能模块的流程图

3、详细设计

模块功能说明:

如函数功能、入口及出口参数说明,函数调用关系描述等;

3.1、程序中所采用的数据结构及存储结构的说明

classBASEDATA

{

public:

HRESULTCreateData(void);

friendclassADDRESSBOOK;

private:

INTCode;//邮政编码

BOOLbGender;//性别

INTTel;//电话号码

stringsName;//姓名

stringsCity;//城市

};//BaseData

子存储结构:

classADDRESSBOOK

{

public:

ADDRESSBOOK(VOID);//constructor

VOIDMenu(VOID);

VOIDQuit(VOID);

HRESULTCreate(VOID);

HRESULTAdd(VOID);

vector:

:

size_typeFind(VOID);

HRESULTAlter(VOID);

HRESULTDelete(VOID);

VOIDList(VOID);

private:

vectorData;//基本存储结构容器

};//AddressBook

3.2、算法的设计思想

BASEDATA为基本的存储结构,包含最为基本的数据类型。

子存储结构通过友元访问基本存储结构的私有成员,调用接口修改该和创建元素。

4、调试与测试:

F10启动调试,编译器开始编译源码,编译成功,排除语法错误,现逐块执行语句。

显示<>DataBasehasbeeninitialized!

表明数据结构已经创建完毕,自动窗口显示变量为:

继续逐块执行,输出菜单选项;

逐个功能测试,查看是否有中断出现。

4.2、测试结果的分析与讨论:

追加功能:

查找功能:

修改功能:

列表功能:

删除功能:

4.3、测试过程中遇到的主要问题及采取的解决措施:

本人逻辑很好,已在写码前构思完整,基本没有测试问题(语法/逻辑)。

对于本程序速度会较慢的问题,本人已经使用Release优化,并设置多线程(/MT)将需要的DLL编译至exe文件中,使得不含开发环境的计算机可以执行本程序。

5、源程序清单和执行结果

//--------------------------------------------------------

//项目(ITEM):

通讯录AddressBook

//时间(TIME):

2011/11/21

//作者(WIRTER):

赵洋(ElanChao),方圆

//环境(COMPILEENVIRONMENT):

MicrosoftVisualStudio2010,

//Windows7ProfessionalServicePark1x64

//--------------------------------------------------------

#include

#include

#include

#include

usingnamespacestd;

classBASEDATA

{

public:

HRESULTCreateData(void)

{

stringtmp;

cout<<"<>Enterthedatayouwant"<

cout<<"<>Order:

Name,Gender,Tel,City,Code;"<

cin>>sName>>tmp>>Tel>>sCity>>Code;

if(tmp=="man")

bGender=1;

else

bGender=0;

cout<

<

returnS_OK;

}

friendclassADDRESSBOOK;

private:

INTCode;

BOOLbGender;

INTTel;

stringsName;

stringsCity;

};//BaseData

classADDRESSBOOK

{

public:

ADDRESSBOOK(VOID)//constructor

{cout<<"<>DataBasehasbeeninitialized!

"<

VOIDMenu(VOID);

VOIDQuit(VOID);

HRESULTCreate(VOID);

HRESULTAdd(VOID);

vector:

:

size_typeFind(VOID);

HRESULTAlter(VOID);

HRESULTDelete(VOID);

VOIDList(VOID);

private:

vectorData;

};//AddressBook

VOIDADDRESSBOOK:

:

Menu(VOID)

{

cout<<"<>Enterthekeys:

"<

cout<<"-------------------------------------------"<

cout<<"->CREATE

(2);"<

cout<<"->ADD(3);"<

cout<<"->FIND(4);"<

cout<<"->ALTER(5);"<

cout<<"->DELETE(6);"<

cout<<"->LIST(7);"<

cout<<"->QUIT(8);"<

cout<<"-------------------------------------------"<

}

VOIDADDRESSBOOK:

:

Quit(VOID)

{

exit(0);

}

HRESULTADDRESSBOOK:

:

Create(VOID)

{

cout<<"->Warning:

Clearallthedata!

"<

Data.clear();

cout<<"->Information:

Createnewdata

(2)!

"<

returnS_OK;

}

HRESULTADDRESSBOOK:

:

Add(VOID)

{

BASEDATATmp;

if(SUCCEEDED(Tmp.CreateData()))

{

Data.push_back(Tmp);

returnS_OK;

}

else

returnE_FAIL;

}

vector:

:

size_typeADDRESSBOOK:

:

Find(VOID)

{

stringtmp;

cout<<"->PleaseEnterthename:

"<

cin>>tmp;

for(vector:

:

size_typei=0;

i!

=Data.size();++i)

{

if(tmp==Data[i].sName)

{

cout<

<<","<

if(Data[i].bGender==1)

cout<<"man"<

else

cout<<"womam"<

returni;

}

}

cout<<"->Warning:

Don'texist!

"<

returnData.size();

}

HRESULTADDRESSBOOK:

:

Alter(VOID)

{

vector:

:

size_typeiter=Find();

if(iter==Data.size())

returnE_FAIL;

else

{

BASEDATAtmp;

tmp.CreateData();

Data[iter]=tmp;

returnS_OK;

}

}

HRESULTADDRESSBOOK:

:

Delete(VOID)

{

vector:

:

size_typeiter=Find();

if(iter==Data.size())

returnE_FAIL;

else

{

Data[iter].bGender=1;

Data[iter].Code=0;

Data[iter].sCity="default";

Data[iter].sName="default";

Data[iter].Tel=0;

}

cout<<"->Delete!

"<

returnS_OK;

}

VOIDADDRESSBOOK:

:

List(VOID)

{

if(Data.size()==0)

{

cout<<"Warning->NoData!

"<

}

else

for(vector:

:

size_typei=0;i!

=Data.size();++i)

{

cout<

";

cout<

<<","<

if(Data[i].bGender==1)

cout<<"man"<

else

cout<<"womam"<

}

}

//--------------------------------------------------------

//DESC:

GlobalVariable

//--------------------------------------------------------

ADDRESSBOOKtest;

VOIDKeyDown(VOID)

{

INTtmp;

cin>>tmp;

switch(tmp)

{

case1:

test.Menu();break;//one

case2:

test.Create();break;//two

case3:

test.Add();break;//three

case4:

test.Find();break;//four

case5:

test.Alter();break;//five

case6:

test.Delete();break;//six

case7:

test.List();break;//seven

case8:

test.Quit();break;//eight

}

}

VOIDOperation(VOID)

{

for(;;)

{

KeyDown();

cout<<"-------------------------------------------"<

cout<<"<>Operationcompleted!

\n<>Now,gotothemanu:

"<

cout<<"-------------------------------------------"<

cout<<"<>Enterthekeys:

"<

}

}

//---------------------------------------------------------

//DESC:

Main

//---------------------------------------------------------

INTmain(INTargc,CHAR**argv)

{

test.Menu();

Operation();

system("pause");

return0;

}

6、C程序设计总结

时代的发展使得程序更加多用途化,而良好的编译代码习惯将有助于程序开发的进度。

编写代码只是程序设计的一小部分,关键在于前期的思维。

良好的数据结构使得程序效率极大提高和适应多种数据类型,缜密的思考方式有助于减少程序本身的bug,而熟悉debug调试和断点以及监视,将协助开发人员快速找到错误所在。

对于程序在不同windows平台的运行,理解程序和各种DLL之间的关系至关重要。

7、参考文献

[1][US]KennethA.Reek,PointersonC,北京:

人民邮电出版社

[2][US]StanleyB.Lippman,JoséeLajoie,BarbaraE.Moo,C++Primer,北京:

人民邮电出版社

[3]GOOGLESEARCH

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1