1、数据结构课程设计 2安徽省巢湖学院计算机与信息工程学院课程设计报告课程名称:数据结构课题名称:通讯录的制作专 业:计算机科学与技术班 级: 学 号: 姓 名: 联系方式:指导教师: 2011年11月21日目 录1、数据结构课程设计任务书 1.1、题目 1.2、要求 2、总体设计 2.1、功能模块设计 2.2、所有功能模块的流程图 3、详细设计 3.1、程序中所采用的数据结构及存储结构的说明 4、调试与测试: 5、源程序清单和执行结果 6、C程序设计总结 7、参考文献 1、数据结构课程设计任务书1.1、题目通讯录的制作1.2、要求【模块要求】第一个模块主函数main()的功能是:根据选单的选项调
2、用各函数,并完成相应的功能。 第二个模块Menu()的功能是:显示英文提示选单。 第三个模块Quit()的功能是:退出选单。 第四个模块Create()的功能是:创建新的通讯录。 第五个模块Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。 第六个模块Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。 第七个模块Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。 第八个模块Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人
3、的信息,并返回选单。 第九个模块List()的功能是:显示通讯录中的所有记录。;【设计要求】1) 每条信息至包含 :姓名(NAME )、性别(GENDER)、电话(TEL) 、城市(CITY)邮编(EIP)几项。2) 作为一个完整的系统,应具有友好的界面和较强的容错能力;2、总体设计2.1、功能模块设计根据课程设计题目的功能要求,各个功能模块的组成框图如下:2.2、所有功能模块的流程图3、详细设计模块功能说明:如函数功能、入口及出口参数说明,函数调用关系描述等;3.1、程序中所采用的数据结构及存储结构的说明class BASEDATApublic: HRESULT CreateData(voi
4、d); friend class ADDRESSBOOK;private: INT Code; /邮政编码 BOOL bGender; /性别 INT Tel; /电话号码 string sName; /姓名 string sCity; /城市;/BaseData子存储结构:class ADDRESSBOOKpublic: ADDRESSBOOK(VOID); /constructor VOID Menu(VOID); VOID Quit(VOID); HRESULT Create(VOID); HRESULT Add(VOID); vector:size_type Find(VOID); H
5、RESULT Alter(VOID); HRESULT Delete(VOID); VOID List(VOID);private: vector Data; /基本存储结构容器;/AddressBook3.2、算法的设计思想BASEDATA为基本的存储结构,包含最为基本的数据类型。子存储结构通过友元访问基本存储结构的私有成员,调用接口修改该和创建元素。4、调试与测试:F10启动调试,编译器开始编译源码,编译成功,排除语法错误,现逐块执行语句。显示 Data Base has been initialized! 表明数据结构已经创建完毕,自动窗口显示变量为:继续逐块执行,输出菜单选项;逐个功能
6、测试,查看是否有中断出现。4.2、测试结果的分析与讨论:追加功能:查找功能:修改功能:列表功能:删除功能:4.3、测试过程中遇到的主要问题及采取的解决措施:本人逻辑很好,已在写码前构思完整,基本没有测试问题(语法/逻辑)。对于本程序速度会较慢的问题,本人已经使用Release优化,并设置多线程(/MT)将需要的DLL编译至exe文件中,使得不含开发环境的计算机可以执行本程序。5、源程序清单和执行结果/-/项目(ITEM):通讯录 Address Book/时间(TIME):2011/11/21/作者(WIRTER):赵洋(Elan Chao), 方圆/环境(COMPILE ENVIRONMEN
7、T):Microsoft Visual Studio 2010,/ Windows 7 Professional Service Park 1 x64/-#include #include #include #include using namespace std;class BASEDATApublic: HRESULT CreateData(void) string tmp; cout Enter the data you want endl; cout Order: Name, Gender, Tel, City, Code; sName tmp Tel sCity Code; if(t
8、mp = man) bGender = 1; else bGender = 0; cout sName , tmp , Tel , sCity , Code ; endl; return S_OK; friend class ADDRESSBOOK;private: INT Code; BOOL bGender; INT Tel; string sName; string sCity;/BaseDataclass ADDRESSBOOKpublic: ADDRESSBOOK(VOID) /constructor cout Data Base has been initialized! endl
9、; VOID Menu(VOID); VOID Quit(VOID); HRESULT Create(VOID); HRESULT Add(VOID); vector:size_type Find(VOID); HRESULT Alter(VOID); HRESULT Delete(VOID); VOID List(VOID);private: vector Data;/AddressBookVOID ADDRESSBOOK:Menu(VOID) cout Enter the keys: endl; cout - endl; cout CREATE(2); endl; cout ADD(3);
10、 endl; cout FIND(4); endl; cout ALTER(5); endl; cout DELETE(6); endl; cout LIST(7); endl; cout QUIT(8); endl; cout - endl;VOID ADDRESSBOOK:Quit(VOID) exit(0);HRESULT ADDRESSBOOK:Create(VOID) cout Warning: Clear all the data! endl; Data.clear(); cout Information: Create new data(2)! endl; return S_OK
11、;HRESULT ADDRESSBOOK:Add(VOID) BASEDATA Tmp; if(SUCCEEDED(Tmp.CreateData() Data.push_back(Tmp); return S_OK; else return E_FAIL;vector:size_type ADDRESSBOOK:Find(VOID) string tmp; cout Please Enter the name: tmp; for(vector:size_type i = 0; i != Data.size(); +i) if(tmp = Datai.sName) cout Datai.sNam
12、e , Datai.Tel , Datai.Code , Datai.sCity ,; if(Datai.bGender = 1) cout man endl; else cout womam endl; return i; cout Warning: Dont exist! endl; return Data.size();HRESULT ADDRESSBOOK:Alter(VOID) vector:size_type iter = Find(); if(iter = Data.size() return E_FAIL; else BASEDATA tmp; tmp.CreateData()
13、; Dataiter = tmp; return S_OK; HRESULT ADDRESSBOOK:Delete(VOID) vector:size_type iter = Find(); if(iter = Data.size() return E_FAIL; else Dataiter.bGender = 1; Dataiter.Code = 0; Dataiter.sCity = default; Dataiter.sName = default; Dataiter.Tel = 0; cout Delete! endl; return S_OK;VOID ADDRESSBOOK:Lis
14、t(VOID) if(Data.size() = 0) cout No Data! endl; else for(vector:size_type i = 0; i != Data.size(); +i) cout i :; cout Datai.sName , Datai.Tel , Datai.Code , Datai.sCity ,; if(Datai.bGender = 1) cout man endl; else cout womam tmp; switch( tmp ) case 1: test.Menu(); break; /one case 2: test.Create();
15、break; /two case 3: test.Add(); break; /three case 4: test.Find(); break; /four case 5: test.Alter(); break; /five case 6: test.Delete(); break; /six case 7: test.List(); break; /seven case 8: test.Quit(); break; /eight VOID Operation(VOID) for(;) KeyDown(); cout - endl; cout Operation completed!n N
16、ow, go to the manu: endl; cout - endl; cout Enter the keys: endl; /-/DESC:Main/-INT main(INT argc, CHAR *argv) test.Menu(); Operation(); system(pause); return 0; 6、C程序设计总结时代的发展使得程序更加多用途化,而良好的编译代码习惯将有助于程序开发的进度。编写代码只是程序设计的一小部分,关键在于前期的思维。良好的数据结构使得程序效率极大提高和适应多种数据类型,缜密的思考方式有助于减少程序本身的bug,而熟悉debug调试和断点以及监视,将协助开发人员快速找到错误所在。对于程序在不同windows平台的运行,理解程序和各种DLL之间的关系至关重要。7、参考文献1 USKenneth A.Reek, Pointers on C, 北京:人民邮电出版社2 USStanley B.Lippman, Jose Lajoie,Barbara E.Moo, C+ Primer, 北京:人民邮电出版社3 GOOGLE SEARCH
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1