题目通讯录管理系统

合集下载

通讯录管理系统c语言课程设计报告课题简介

通讯录管理系统c语言课程设计报告课题简介

通讯录管理系统C语言课程设计报告
一、课题简介
通讯录管理系统是一种常见的应用程序,旨在帮助用户组织和管理他们的联系人信息。

本课程设计将利用C语言来实现一个基本的通讯录管理系统,旨在帮助学生掌握C语言编程的基本知识和技能。

二、设计目的
1.帮助学生熟悉C语言的基本语法和编程逻辑;
2.提高学生对数据结构的理解和运用能力;
3.培养学生的编程能力和软件开发思维;
4.提高学生的团队合作和项目管理能力。

三、设计内容
本课程设计将围绕以下几个方面展开:
1.用户界面设计:设计一个简洁直观的用户界面,包括菜单选项、输
入输出界面等;
2.数据结构设计:设计通讯录数据结构,包括联系人姓名、电话号码
等信息的存储方式;
3.功能实现:实现通讯录管理系统的基本功能,包括添加联系人、删
除联系人、查找联系人等操作;
4.文件操作:实现通讯录数据的读写操作,将联系人信息保存到文件
中,以便下次运行时读取;
5.错误处理:处理用户输入错误等异常情况,保证程序的稳定性和可
靠性。

四、预期效果
通过本课程设计,学生将能够掌握以下技能:
1.掌握C语言基本语法和编程逻辑;
2.熟悉数据结构的设计和运用;
3.提高编程能力和软件开发思维;
4.培养团队合作和项目管理能力。

五、总结
通过设计一个通讯录管理系统的C语言课程项目,学生将在实践中加深对C语言的理解和应用,提高编程技能和解决问题的能力。

希望本课程设计能够为学生的编程学习提供一定的帮助和指导。

以上为《通讯录管理系统C语言课程设计报告》的简要介绋,希望能够为课程设计的顺利进行提供一定的参考和指引。

(简易手机通讯录管理系统)

(简易手机通讯录管理系统)

(简易手机通讯录管理系统)一、课题名称简易手机通讯录管理系统(线性表、查找、排序)二、主要内容简易手机通讯录管理系统的设计主要是实现对手机通讯录的管理和相关操作。

基本功能如下:三、课题设计的基本思想,原理和算法描述(1)本次课程设计题目为简易手机通讯录管理系统,主要运用到线性表中顺序表的相关知识,以及顺序查找的思想和冒泡排序算法。

(2)界面设计//菜单函数intmenu(){intc;printf(\☆☆☆☆☆☆☆手机通讯录信息管理系统☆☆☆☆☆☆☆☆\\n\\n\printf(\某某某\\n\printf(\printf(\printf(\printf(\printf(\printf(\printf(\ printf(\某某某\\n\\n\printf(\★请输入您的选择(0-6):\while(1){}returnc;}//主函数voidmain(){SqLit某L;InitLit(L);ytem(\while(1){witch(menu()){cae1:ytem(\信息的增加\\n\cae2:ytem(\信息的查询\\n\canf(\if(c<0||c>6)printf(\▲输入错误!请重新选择:\ elebreak;cae3:ytem(\对信息进行排序\\n\cae4:ytem(\信息的修改\\n\cae5:ytem(\信息的删除\\n\6:ytem(\统计联系人个数cae\\n\}}(3)功能模块的实现初始化顺序表voidInitLit(SqLit某&L)cae0:printf(\再见!\\n\default:printf(\▲输入错误!请重新选择:\}{L=(SqLit某)malloc(izeof(SqLit));L->length=0;}增加信息函数。

定义变量a起标记作用,用于判断输入信息是否与已有信息重复voidLitAdd(SqLit某&L)//增加函数{inta=0;//标记printf(\号码(五位数字!):\printf(\姓名:\printf(\性别:\printf(\家庭住址:\for(inti=0;ilength;i++)//判断是否重号{}if(a==0)L->length++;}查找符合条件的信息的下标并返回到需要调用的函数体中intFindNum(SqLit某&L){printf(\★输入需要进行操作的号码:\charnum[10];canf(\inti=0;while(ilength&&trcmp(L->data[i].num,num)!=0)i++;if(i>=L->length){}returni;if(trcmp(L->data[i].num,L->data[L->length].num)==0){}printf(\该号码已经存在\\n\a=1;break;}④查询信息函数分两种情况:按号码查找与按姓名查找。

java课程设计(通讯录管理系统)

java课程设计(通讯录管理系统)

掌握Java语言基础
理解面向对象编程思 想
掌握数据库操作技术
提高团队协作和沟通 能力
完成一个实用的通讯 录管理系统
联系人管理:添加、删除、修改、查询联系人信息 联系人分组:创建、删除、修改、查询联系人分组 联系人搜索:根据姓名、电话、邮箱等信息进行搜索 联系人导出:将联系人信息导出为Excel、CSV等格式的文件 联系人导入:从Excel、CSV等格式的文件中导入联系人信息 系统设置:修改系统语言、主题、字体等设置
数据库类型:MySQL
数据库表结构:用户表、 联系人表、分组表等
主键和外键:用户ID、联 系人ID、分组ID等
数据库操作:增删改查等 基本操作
数据库优化:索引、缓存、 分表等优化措施
数据库安全:用户权限管 理、数据加密等安全措施
界面布局:简洁 明了,易于操作
色彩搭配:协调 统一,易于阅读
功能模块:联系 人管理、分组管 理、搜索功能等
汇报人:
添加标题
添加标题
查询方式:支持模糊查询和精确查 询
查询优化:使用索引提高查询效率
功能描述:删除指定联系人信 息
实现方法:调用数据库删除接 口
操作步骤:选择联系人,点击 删除按钮,确认删除
注意事项:确保删除操作不会 影响其他数据完整性
添加联系人:输入姓名、电话、邮箱等信 息
修改联系人:修改姓名、电话、邮箱等信 息
删除联系人:删除指定联系人
查询联系人:根据姓名、电话、邮箱等信 息进行查询
导出联系人:将联系人信息导出为Excel 或CSV文件
导入联系人:将Excel或CSV文件中的联系 人信息导入到系统中
修改模块界面:提供用户友 好的界面,方便用户操作

数据结构课程设计 通讯录 管理系统

数据结构课程设计 通讯录 管理系统

《数据结构》课程设计题目:学生通讯录管理系统设计与实现院、系:计算机信息与技术系学科专业:计算机科学与技术学号: ********* 学生姓名:**指导教师:目录第一章设计要求 (3)1.1 问题描述 (3)1.2 需求分析 (3)第二章概要设计 (4)2.1 主界面设计 (4)2.2 存储结构设计 (4)2.3 系统功能设计 (4)第三章模块设计 (6)3.1 系统子程序及功能设计 (6)3.2 系统功能图 (7)第四章详细设计 (8)4.1 数据类型定义 (8)4.2 系统主要子程序详细设计 (8)第五章测试分析 (13)第六章源程序清单 (17)第七章工作总结 (18)第八章参考文献 (19)第九章附录—源代码 (20)第一章设计要求1.1 问题描述纸质通讯录已经不能满足大家的要求,容易丢失、查找困难等问题是纸质通讯录所有能克服的缺点。

“学生通讯录管理系统”是为了帮助老师、同学等管理和分析的一种应用程序。

1.2 需求分析1.建立一个新的通讯录2.查询通讯录中满足要求的信息3.插入新的通讯录信息4.删除不需要的通讯录信息5.查看所有通讯录信息6.能将所有的通讯录数据(*.x后缀)保存到磁盘上7.能将磁盘上的通讯录文件(*.x后缀)读到内存中进行操作8.能删除磁盘上已有的通讯录文件9.能释放一个现有通讯录所占的所有内存10.显示当前目录下的所有通讯录文件第二章概要设计2.1 主界面设计主界面的设计关乎到用户的使用体验以及使用效率。

所以一个好的主界面是征服用户的关键因素。

主界面的命令输入方式采用了类似DOS的命令行界面。

下图是输入了help后的界面:2.2 存储结构设计在内存中,通讯录中所有的节点均用单链表将其组织起来。

并在插入的时候按学号有序的排列,便于查找以及其它的操作。

2.3 系统功能设计1.初始化一个新的通讯簿。

2.向通讯簿中增加一条新的记录。

3.输出某个节点的信息。

4.显示通讯簿的所有信息。

mfc界面的通讯录管理系统

mfc界面的通讯录管理系统

课程设计(论文)题目:通讯录管理系统院(系):__________________ 专业班级:姓名:学号:指导教师:年月日设计总说明我的题目是“通讯录管理系统”,具有对联系人进行增删改查等功能,只有一个窗口,窗口左边是联系人的详细信息,右边是联系人姓名列表。

窗口上列出所有的“通讯录管理系统”的操作。

例如:增加联系人,删除联系人,插入联系人,按姓名查找联系人,按电话查找联系人等,界面简洁方便,功能齐全。

本程序利用MFC界面编程,运用对话框,控件等资源实现界面化的通讯录,使其不但具有美观的界面,同时方便了用户的操作。

关键字:通讯录,信息管理系统方便效率目录设计总说明 (2)1.设计目的 (3)2.问题描述 (4)3.需求分析 (4)3.1 数据需求 (4)3.2 基本功能需求 (4)3.3 非功能性需求 (4)4.概要设计 (5)4.1 数据结构 (5)4.2 系统包含的函数 (5)4.3 函数间的关系 (6)4.4 系统功能模块图 (7)5.详细设计 (8)5.1 结构体的详细定义 (8)5.2 系统函数详细介绍 (8)5.3 系统功能模块介绍 (10)5.4 具体模块设计 (10)5.4.1增加联系人: (11)5.4.2:插入联系人 (12)5.4.3:删除联系人 (13)5.4.4:保存联系人 (14)5.4.5:查找联系人 (15)5.4.6:其它辅助功能 (15)6.调试分析 (16)7.使用说明 (17)8.设计总结 (20)9.参考文献 (21)《数据结构》课程设计通讯录管理系统1.设计目的“数据结构”是计算机科学与技术专业一门十分重要的专业技术基础课,计算机科学各领域及有关的应用软件都要使用到各种数据结构。

对于从事计算机科学及其应用的科技工作者来说,数据结构与算法是必须透彻地掌握的重要基础。

学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题。

课程设计是加强学生实践能力的一个强有力手段。

题目通讯录管理系统

题目通讯录管理系统

题目 2 通讯录管理系统一.设计要求1、问题描述设有一通讯录,记录联系人的联系信息,包括联系人姓名、联系人多个联系电话、邮箱、联系地址以及所属群组。

联系人按姓氏序列升序排列并按顺序编号。

使用者能根据姓名或编号对联系人信息进行增删改查。

请编制一程序模拟该通讯录的管理。

2、设计要求1)基本要求(1) 新建联系人。

输入联系人的姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。

(2) 编辑联系人。

可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。

(3) 删除联系人。

可按姓名或序号删除联系人的信息。

(4) 查询联系人。

可按姓名或序号查询联系人的信息并输出。

(5) 群组管理。

可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。

(6) 输出通讯录。

按顺序输出通讯录的全部信息。

2)以下为选做:(7) 按姓名查询联系人时可进行模糊查询。

(8) 通过文件读写实现通讯录信息的读取和记录。

二.概要设计1.主界面设计为了实现通讯录管理系统,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。

本系统主菜单运行界面如下图所示。

2.存储结构设计本系统主要采用链表结构类型存储联系人信息。

3.系统功能设计本系统分为以下7个功能模块。

(1)添加联系人:添加联系人子模块可完成添加联系人姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。

(2) 编辑联系人。

可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。

(3) 删除联系人。

可按姓名或序号删除联系人的信息。

(4) 查询联系人。

可按姓名或序号查询联系人的信息并输出。

(5) 群组管理。

可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。

(6) 输出通讯录。

按顺序输出通讯录的全部信息。

软件工程课程设计--通讯录管理系统

2.4.2
根据该系统的目标来衡量的技术是否具备,一般可从硬件的性能要求、环境条件、操作人员水平和数量等方面去考虑和分析。考虑到系统实施的可行性,在软件方面选择了如今较流行的Myeclipes6.0.1来进行开发管理平台的设计,使用SQL Server2000数据库存储数据。
在硬件方面,则选择空间较大,只要是Pentium Ⅳ系列及以上的计算机,内存在512MB以上,硬盘在20GB,都可以满足系统的开发需要。当然,硬件的配置越高,系统的开发与运行会更流畅,考虑到如今的家用电脑硬件的整体配置水平,系统在硬件方面是可行的。在软件方面,由于Myeclipes6.0.1和SQL Server2000都是两个非常成熟的开发工具,无论在安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的。
本说明书是整个软件开发的依据,它对以后阶段的工作起指导作用。本文也是项目完成后系统验收的依据。
3.1.2
本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统,要求应用程序功能完备,易使用等特点。
3
3.1
以工程的方法来设计项目中的各个功能模块,解决遇到的问题。软件工程设计原则:①选取合适的开发模型②选取合适的设计方法③选取高质量的工程支持④重视软件工程的管理。
3.1.1
在完成了针对通讯录管理系统的前期调查,同时与多位软件使用者进行了全面深入地探讨和分析的基础上,提出了这份软件需求规格说明书。
使用权限:用户;
6.3)名称:用户类别信息文件。

数据结构课程设计通讯录管理系统

数据结构课程设计通讯录管理系统
数据结构课程设计中的通讯录管理系统可以涉及到以下几个方面的知识点:
1. 数据结构:通讯录管理系统中需要使用到的数据结构包括数组、链表、哈希表等。

其中,数组用于存储通讯录中的人员信息,链表用于存储联系人信息,哈希表用于实现快速查找功能。

2. 算法:通讯录管理系统中需要使用到的算法包括查找算法、排序算法、动态规划算法等。

其中,查找算法用于实现快速查找联系人功能,排序算法用于实现通讯录的排序功能,动态规划算法用于实现最长公共子序列问题等。

3. 数据库:通讯录管理系统需要使用到数据库来存储通讯录中的数据。

需要掌握关系型数据库的设计和操作,包括数据表的设计、SQL 语句的编写等。

4. 界面设计:通讯录管理系统需要有友好的用户界面,需要进行界面设计和开发,包括前端技术的使用,如HTML、CSS和JavaScript等。

5. 系统测试:通讯录管理系统需要进行系统测试,包括功能测试、性
能测试等,确保系统能够正常运行并满足用户需求。

通过设计和实现通讯录管理系统,可以锻炼学生对数据结构和算法的理解和应用能力,同时还能提高学生的编程能力和团队合作能力。

数据结构课程设计通讯录管理系统

数据结构课程设计通讯录管理系统一、系统需求分析通讯录管理系统的主要目标是提供一个方便、高效的方式来管理联系人信息。

具体需求包括:1、能够添加联系人,包括姓名、电话号码、电子邮件、地址等基本信息。

2、可以对联系人信息进行修改和删除操作。

3、支持按照姓名、电话号码等关键字进行快速查找。

4、能够以列表形式展示所有联系人的信息。

二、数据结构选择为了实现上述功能,我们需要选择合适的数据结构来存储联系人信息。

考虑到联系人信息的多样性和动态性,链表是一个不错的选择。

链表可以方便地进行插入、删除和修改操作,并且能够灵活地调整存储空间。

另外,为了提高查找效率,我们可以结合使用哈希表。

通过将联系人的关键信息(如姓名或电话号码)进行哈希运算,快速定位到对应的联系人节点。

三、系统功能实现1、添加联系人功能当用户选择添加联系人时,系统会提示用户输入联系人的各项信息。

这些信息被封装成一个结构体,并通过链表的插入操作添加到链表中。

同时,将关键信息映射到哈希表中,以便后续快速查找。

2、修改联系人功能用户输入要修改的联系人的关键字,系统通过哈希表快速找到对应的联系人节点。

然后,提示用户输入修改后的信息,并更新链表和哈希表中的数据。

3、删除联系人功能与修改功能类似,通过关键字找到联系人节点,从链表和哈希表中删除相应的节点和信息。

4、查找联系人功能用户输入查找关键字,系统通过哈希表进行快速定位,如果找到匹配的联系人,则显示其详细信息。

5、展示所有联系人功能遍历链表,将所有联系人的信息以列表形式输出到屏幕上。

四、系统界面设计为了提高用户体验,系统设计了简洁直观的界面。

主界面提供了添加、修改、删除、查找和展示所有联系人等功能选项。

用户通过选择相应的选项,进入对应的操作流程。

五、代码实现示例以下是部分关键代码的示例:```c//联系人结构体typedef struct Contact {char name50;char phoneNumber20;char email50;char address100;struct Contact next;} Contact;//哈希表节点结构体typedef struct HashNode {char key50;Contact contact;struct HashNode next;} HashNode;//链表插入联系人void insertContact(Contact head, Contact newContact) {newContact>next = head;head = newContact;}//哈希函数unsigned int hashFunction(const char key) {unsigned int hash = 0;while (key) {hash =(hash << 5) + key++;}return hash % HASH_TABLE_SIZE;}//查找联系人Contact findContact(Contact head, const char key, HashNode hashTable) {unsigned int hashValue = hashFunction(key);HashNode node = hashTablehashValue;while (node) {if (strcmp(node>key, key) == 0) {return node>contact;}node = node>next;}Contact current = head;while (current) {if (strcmp(current>name, key) == 0 ||strcmp(current>phoneNumber, key) == 0) {//更新哈希表HashNode newNode =(HashNode )malloc(sizeof(HashNode));strcpy(newNode>key, key);newNode>contact = current;newNode>next = hashTablehashValue;hashTablehashValue = newNode;return current;}current = current>next;}return NULL;}```六、系统测试在完成系统的开发后,需要进行全面的测试以确保系统的稳定性和可靠性。

毕业设计论文(通讯录管理系统)

毕业设计(论文)题目通讯录管理系统的设计与实现姓名车维学号 0810311313所在学院计算机学院专业班级 08计算三班指导教师谢芳日期 2012年 5 月 30 日毕业设计(论文)任务书院(系) 计算机学院指导教师谢芳职称讲师学生姓名车维专业(班级)08计算3班学号0810311313 设计题目通讯录管理系统设计内容、目标和要求通讯录管理系统在如今信息繁乱的社会是一款不可或缺的软件,为了能及时找到自己所需联系的人,为了储存以后可能对自己有帮助的人脉等等。

为了以后能更方便人们之间的联系,所以我的选题就是通讯录管理系统。

本次设计的目标在于研究通讯录管理系统方案的设计,实现一个简洁的界面模式系统。

本系统包含以下几个功能模块:系统管理、信息管理、查询系统。

进度要求:1)收集相关材料阶段:2012.3.10—2012.3.202)需求分析与构造原型阶段:2012.3.21—2012.3.263)系统设计阶段:2012.3.27—2012.4.24)数据库设计阶段:2012.4.3—2012.4.105)系统实现阶段:2012.4.11—2012.5.136)毕业论文初稿书写:2012.5.14—2012.5.207)系统与毕业论文完善:2012.5.21—2012.5.31指导教师签名:年月日基层教学单位审核院(系)审核毕业设计(论文)学生开题报告课题名称通讯录管理系统课题来源相关资料课题类型D指导教师谢芳学生姓名车维学号0810311313专业班级08计算3班本课题的研究现状、研究目的及意义随着网络及现代通信技术的发展,人们之间的联系越来越便捷,这也使得同时与许多人保持联系成为可能,而单纯依靠人脑已经很难记住所有人的联系方式,使用传统的纸面的方式记录联系人信息时,在联系人比较多时查找将非常困难。

因此,本软件形式实现的通讯录成为了许多人保持联系方式的首选。

当前在许多软件中都附带了通讯录功能,部分手机及一些PDA类的产品也提供了功能不尽一致的通讯录功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目 2 通讯录管理系统一.设计要求1、问题描述设有一通讯录,记录联系人的联系信息,包括联系人姓名、联系人多个联系电话、邮箱、联系地址以及所属群组。

联系人按姓氏序列升序排列并按顺序编号。

使用者能根据姓名或编号对联系人信息进行增删改查。

请编制一程序模拟该通讯录的管理。

2、设计要求1)基本要求(1) 新建联系人。

输入联系人的姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。

(2) 编辑联系人。

可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。

(3) 删除联系人。

可按姓名或序号删除联系人的信息。

(4) 查询联系人。

可按姓名或序号查询联系人的信息并输出。

(5) 群组管理。

可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。

(6) 输出通讯录。

按顺序输出通讯录的全部信息。

2)以下为选做:(7) 按姓名查询联系人时可进行模糊查询。

(8) 通过文件读写实现通讯录信息的读取和记录。

二.概要设计1.主界面设计为了实现通讯录管理系统,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。

本系统主菜单运行界面如下图所示。

2.存储结构设计本系统主要采用链表结构类型存储联系人信息。

3.系统功能设计本系统分为以下7个功能模块。

(1)添加联系人:添加联系人子模块可完成添加联系人姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。

(2) 编辑联系人。

可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。

(3) 删除联系人。

可按姓名或序号删除联系人的信息。

(4) 查询联系人。

可按姓名或序号查询联系人的信息并输出。

(5) 群组管理。

可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。

(6) 输出通讯录。

按顺序输出通讯录的全部信息。

(7)可选择是否保存并退出系统。

三.模块设计1.模块设计本程序包含主程序模块,菜单选择模块和链表操作模块。

调用关系如图所示:主程序模块菜单选择块链表操作模块2.系统子程序及功能设计本系统共设置8个函数,其中包含主函数,各函数名及功能说明如下:void addman();//添加联系人void deleteman();//删除联系人void updateman();//修改联系人void searchman();//查找联系人void printcontact();//输出全部联系人void group();//分组void save();//保存联系人Int main();//主函数四.详细设计1.数据类型定义class Node{public:Node *next;string name; 姓名string num; 电话string email; 邮箱string address; 地址string group; 分组};class contact{public :Node *head;contact(){head=new Node;head->next=NULL;};void addman();//添加联系人void deleteman();//删除联系人void updateman();//修改联系人void searchman();//查找联系人void printcontact();//输出全部联系人void group();//分组void save();//保存联系人};2.系统主要子程序详细设计(1)主程序模块设计主函数:设定用户操作界面以及界面颜色和大小,调用菜单子模块函数int main(){system("color 0D");contact c;cout<<" ★*******★★★★★★*******★"<<endl;cout<<"**************★欢迎来到通讯录管理系统★**************"<<endl;cout<<" ★*******★★★★★★*******★"<<endl;int j;while(1){cout<<"*********************************************************"<<e ndl;cout<<"----☆★------| 1.添加联系人 | ----★☆------"<<endl;cout<<"----☆★------| 2.查询联系人 | ----★☆------"<< endl;cout<<"----☆★------| 3.删除联系人 | ----★☆------"<< endl;cout<<"----☆★----- | 4.修改联系人 | ----★☆------"<< endl;cout<<"----☆★----- | 5.查看分组 | ----★☆------"<< endl;cout<<"----☆★------| 6.输出全部联系人 | ----★☆------"<< endl;cout<<"----☆★------| 0.退出系统 | ----★☆------"<< endl;cout<<"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"<<e ndl;cout<<" ★★★★★★请**选**择★★★★★★:" <<endl;cin>>j;switch(j){case 1:{c.addman();}continue;case 2:{c.searchman();}continue;case 3:{c.deleteman();}continue;case 4:{c.updateman();}continue;case 5:{c.group();}continue;case 6:{c.printcontact();}continue;case 0:{char s;cout<<"\n★是否要保存您的所有操作(Y/N): "<<endl; cin>>s;if(s=='Y')c.save();exit(0);}continue;default :{cout<<"请输入正确的选择!!"<<endl;} break;}}return 0;}(2)添加联系人模块设计void contact::addman()//添加联系人{bool a=true;int i;Node *p;//新建结点,用来存放联系人信息while (a){p=new Node;//每循环一次,就新建结点存放联系人信息cout<<"*********请输入联系人信息:*********"<<endl ; cout<<"姓名:";cin>>p->name;cout<<"手机号码:";cin>>p->num;cout<<"email:";cin>>p->email;cout<<"地址:";cin >>p->address;cout<< "分组:";cin>>p->group;p->next=head->next;//头插法建立链表head->next=p;cout<<"*********添加成功*********!!!"<<endl;cout<<endl;cout<<"*********是否继续添加(是请输入1,否输入2)*********"<<endl;cin>>i;cout<<endl;if(i==1) {a=true;}else a=false;}}(3)删除联系人模块设计void contact::deleteman()//删除联系人{Node *p,*q;//定义两个结点指针p=q=head; //让指针都指向头结点string name,j;cout<<"*********请输入要删除的联系人姓名:*********"<<endl;cin >>name;while(p){if(p->name==name){break;} else{ q=p;p=p->next;} //让p为要删除的结点,q为前一个结点 }if (p){if (p==head)//如果要找到要删除联系人是头结点{head=p->next;delete p;}else{//要删除联系人不在头结点q->next=p->next;delete p;}cout<<"*********删除成功-!*********"<<endl;}else if(!p||p->next==NULL){cout<<"*********你要删除的联系人不存在!!*********"<<endl;cout<<"*********是否继续删除(是请输入1,否输入2):*********";cin>>j;if(j=="1") deleteman();exit(0);}cout<<endl;}(4)查询联系人模块设计void contact::searchman()//查询联系人{int x=0;//用来标记是否查询过int i;Node *p=new Node;string name;cout<<"*********请输入要查询的联系人名字:*********"<<endl;cin>>name;while(p){for(p=head->next;p!=NULL;p=p->next){if((p->name)==name){x=1;//查到后,与要查询的联系人名字一致后,标为1,否则为0cout<<" "<<"姓名:"<<p->name <<" "<<"手机号码:"<<p->num <<" "<<"email:"<<p->email <<" "<<"地址:"<<p->address <<" "<<"分组:"<<p->group <<" "<<endl;}}if(x==0){cout<<"*********你要查询的联系人不存在!!!!*********"<<endl;}cout<<"*********是否继续查询(是请输入1,否输入2):*********";cin>>i;if(i==1) searchman();}cout<<endl;}(5)修改联系人模块设计void contact::updateman()//修改联系人{int n,x=0;//用来标记是否查询过string i;Node *p=new Node;string name,num,email,address,group,t;cout<<"*********请输入要修改信息的联系人名字:*********"<<endl;cin>>name;while(p){for(p=head->next;p!=NULL;p=p->next){if((p->name)==name){x=1;//查到后,与要查询的联系人名字一致后,标为1,否则为0cout<<"*********请输入想要修改的信息:1.姓名 2.电话号码 3.email 4.地址 5.分组*********"<<endl;cin>>n;switch (n){case 1:{cout<<"*********请输入新的名字:*********"<<endl;cin>>name;p->name=name;cout<<"修改成功!!"<<endl;}break;case 2:{cout<<"*********请输入新的的电话号码:*********"<<endl;cin>>num;p->num=num;cout<<"修改成功!!"<<endl;}break;case 3:{cout<<"*********请输入新的email:*********"<<endl;cin>>email;p->email=email;cout<<"修改成功!!"<<endl;}break;case 4:{cout<<"*********请输入新的地址:*********"<<endl;cin>>address ;p->address=address;cout<<"修改成功!!"<<endl;}break;case 5:{cout<<"*********请输入新的分组:*********"<<endl;cin>>group ;p->group=group;cout<<"修改成功!!"<<endl;}break;}}}if(x==0){cout<<"*********你要修改的联系人不存在!!!!*********"<<endl;}}}(6)分组模块设计void contact::group()//分组{Node *p;p=head->next;string n;cout<<"请输入需要查看的分组:"<<endl;cin>>n;while(p!=NULL){if((p->group)==n){cout<<" "<<"姓名:"<<p->name <<" "<<"手机号码:"<<p->num <<" "<<"email:"<<p->email <<" "<<"地址:"<<p->address <<" "<<"分组:"<<p->group <<" "<<endl;p=p->next;continue;}break;}}(7)保存联系人模块设计void contact::save()//保存联系人{ofstream outfile("contacts.txt",ios::out);Node *p=head;while(p->next!=NULL){p=p->next;outfile<<p->name<<" "<<p->num<<" "<<p->email<<" "<<p->address<<" "<<p->group<<" "<<endl;}}(8)输出联系人模块设计void contact ::printcontact()//全部输出{ifstream intfile("contacts.txt",ios::in);Node *p;for(p=head->next;p!=NULL;p=p->next){cout<<" "<<"姓名:"<<p->name <<" "<<"手机号码:"<<p->num <<" "<<"email:"<<p->email <<" "<<"地址:"<<p->address <<" "<<"分组:"<<p->group <<" "<<endl;}cout<<endl;}五.测试分析系统运行主界面如下所示1.添加联系人菜单在主菜单下,用户输入1并回车运行按照要求输入信息结果如图所示2.查询联系人菜单在主菜单下,用户输入2并回车运行按照要求输入信息结果如图所示3.删除联系人菜单在主菜单下,用户输入3并回车运行按照要求输入信息结果如图所示4.修改联系人菜单在主菜单下,用户输入4并回车运行按照要求输入信息结果如图所示5.查看分组菜单在主菜单下,用户输入5并回车运行按照要求输入信息结果如图所示6.全部输出菜单在主菜单下,用户输入6并回车运行按照要求输入信息结果如图所示7.保存联系人菜单在主菜单下,用户输入0并回车运行按照要求输入信息结果如图所示六.源程序代码#include <iostream>#include <string>#include <fstream>#include <iomanip>using namespace std;class Node{public:Node *next;string name;string num;string email;string address;string group;};class contact{public :Node *head;contact(){head=new Node;head->next=NULL;};void addman();//添加联系人void deleteman();//删除联系人void updateman();//修改联系人void searchman();//查找联系人void printcontact();//输出全部联系人void group();//分组void save();//保存联系人};void contact::save()//保存联系人{ofstream outfile("contacts.txt",ios::out);Node *p=head;while(p->next!=NULL){p=p->next;outfile<<p->name<<" "<<p->num<<" "<<p->email<<" "<<p->address<<" "<<p->group<<" "<<endl;}}void contact::addman()//添加联系人{bool a=true;int i;Node *p;//新建结点,用来存放联系人信息while (a){p=new Node;//每循环一次,就新建结点存放联系人信息cout<<"*********请输入联系人信息:*********"<<endl ;cout<<"姓名:";cin>>p->name;cout<<"手机号码:";cin>>p->num;cout<<"email:";cin>>p->email;cout<<"地址:";cin >>p->address;cout<< "分组:";cin>>p->group;p->next=head->next;//头插法建立链表head->next=p;cout<<"*********添加成功*********!!!"<<endl;cout<<endl;cout<<"*********是否继续添加(是请输入1,否输入2)*********"<<endl;cin>>i;cout<<endl;if(i==1) {a=true;}else a=false;}}void contact::deleteman()//删除联系人{Node *p,*q;//定义两个结点指针p=q=head; //让指针都指向头结点string name,j;cout<<"*********请输入要删除的联系人姓名:*********"<<endl; cin >>name;while(p){if(p->name==name){break;} else{ q=p;p=p->next;} //让p为要删除的结点,q为前一个结点}if (p){if (p==head)//如果要找到要删除联系人是头结点{head=p->next;delete p;}else{//要删除联系人不在头结点q->next=p->next;delete p;}cout<<"*********删除成功-!*********"<<endl;}else if(!p||p->next==NULL){cout<<"*********你要删除的联系人不存在!!*********"<<endl;cout<<"*********是否继续删除(是请输入1,否输入2):*********";cin>>j;if(j=="1") deleteman();exit(0);}cout<<endl;}void contact::searchman()//查询联系人{int x=0;//用来标记是否查询过int i;Node *p=new Node;string name;cout<<"*********请输入要查询的联系人名字:*********"<<endl;cin>>name;while(p){for(p=head->next;p!=NULL;p=p->next){if((p->name)==name){x=1;//查到后,与要查询的联系人名字一致后,标为1,否则为0cout<<" "<<"姓名:"<<p->name <<" "<<"手机号码:"<<p->num <<" "<<"email:"<<p->email <<" "<<"地址:"<<p->address <<" "<<"分组:"<<p->group <<" "<<endl;}}if(x==0){cout<<"*********你要查询的联系人不存在!!!!*********"<<endl;}cout<<"*********是否继续查询(是请输入1,否输入2):*********";cin>>i;if(i==1) searchman();}cout<<endl;}void contact::updateman()//修改联系人{int n,x=0;//用来标记是否查询过string i;Node *p=new Node;string name,num,email,address,group,t;cout<<"*********请输入要修改信息的联系人名字:*********"<<endl;cin>>name;while(p){for(p=head->next;p!=NULL;p=p->next){if((p->name)==name){x=1;//查到后,与要查询的联系人名字一致后,标为1,否则为0cout<<"*********请输入想要修改的信息:1.姓名 2.电话号码 3.email 4.地址 5.分组*********"<<endl;cin>>n;switch (n){case 1:{cout<<"*********请输入新的名字:*********"<<endl;cin>>name;p->name=name;cout<<"修改成功!!"<<endl;}break;case 2:{cout<<"*********请输入新的的电话号码:*********"<<endl;cin>>num;p->num=num;cout<<"修改成功!!"<<endl;}break;case 3:{cout<<"*********请输入新的email:*********"<<endl;cin>>email;p->email=email;cout<<"修改成功!!"<<endl;}break;case 4:{cout<<"*********请输入新的地址:*********"<<endl;cin>>address ;p->address=address;cout<<"修改成功!!"<<endl;}break;case 5:{cout<<"*********请输入新的分组:*********"<<endl;cin>>group ;p->group=group;cout<<"修改成功!!"<<endl;}break;}}}if(x==0){cout<<"*********你要修改的联系人不存在!!!!*********"<<endl;}}}void contact::group()//分组{Node *p;p=head->next;string n;cout<<"请输入需要查看的分组:"<<endl;cin>>n;while(p!=NULL){if((p->group)==n){cout<<" "<<"姓名:"<<p->name <<" "<<"手机号码:"<<p->num <<" "<<"email:"<<p->email <<" "<<"地址:"<<p->address <<" "<<"分组:"<<p->group <<" "<<endl;p=p->next;continue;}break;}}void contact ::printcontact()//全部输出{ifstream intfile("contacts.txt",ios::in);Node *p;for(p=head->next;p!=NULL;p=p->next){cout<<" "<<"姓名:"<<p->name <<" "<<"手机号码:"<<p->num <<" "<<"email:"<<p->email <<" "<<"地址:"<<p->address <<" "<<"分组:"<<p->group <<" "<<endl;}cout<<endl;}主函数代码#include <iostream>#include <string>#include <string.h>#include <iomanip>#include <fstream>#include<windows.h>#include"Contact.h"using namespace std;int main(){system("color 0D");contact c;cout<<" ★*******★★★★★★*******★"<<endl;cout<<"**************★欢迎来到通讯录管理系统★**************"<<endl;cout<<" ★*******★★★★★★*******★"<<endl;int j;while(1){cout<<"*********************************************************"<<e ndl;cout<<"----☆★------| 1.添加联系人 | ----★☆------"<<endl;cout<<"----☆★------| 2.查询联系人 | ----★☆------"<< endl;cout<<"----☆★------| 3.删除联系人 | ----★☆------"<< endl;cout<<"----☆★----- | 4.修改联系人 | ----★☆------"<< endl;cout<<"----☆★----- | 5.查看分组 | ----★☆------"<< endl;cout<<"----☆★------| 6.输出全部联系人 | ----★☆------"<< endl;cout<<"----☆★------| 0.退出系统 | ----★☆------"<< endl;cout<<"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"<<e ndl;cout<<" ★★★★★★请**选**择★★★★★★:" <<endl;cin>>j;switch(j){case 1:{c.addman();}continue;case 2:{c.searchman();}continue;case 3:{c.deleteman();}continue;case 4:{c.updateman();}continue;case 5:{c.group();}continue;case 6:{c.printcontact();}continue;case 0:{char s;cout<<"\n★是否要保存您的所有操作(Y/N): "<<endl; cin>>s;if(s=='Y')c.save();exit(0);}continue;default :{cout<<"请输入正确的选择!!"<<endl;} break;}}return 0;}七.用户手册1.本程序执行文件为“通讯录管理系统.exe”。

相关文档
最新文档