题目通讯录管理系统

合集下载

通讯录管理系统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.调研资料的准备首先是购买有关ASP和ACCESS开发动态网站的书籍,并对开发技术进行学习研究。

需要对用户如何使用通讯录等需要做一些了解。

2.设计目的如今人们的联系越来越普遍,接触的人也越来越多,用人脑去记忆所有人的联系方式是不太现实的,所以我们需要建立一个通讯录管理系统,如果只运行在一台机器上那就失去了它的意义,我们总不能每天都带着自己的电脑到处乱跑吧?我们可以建立一个运行于WEB上的系统,随时随地为用户提供查询服务,同时,需要保护用户的隐私,也要根据用户的需求有一定的开放性,可以实现数据共享。

总之,本系统的设计目的是为用户管理通信信息带来方便。

3.功能要求4.思路与预期成果我的思路是用ASP开发一个WEB系统,系统通过操作数据库,可以添加通讯录信息,修改通讯录信息,删除通讯录信息,查询通讯录信息,新建系统用户,修改系统用户,删除系统用户,对用户联系方式的自定义字段进行设置等,如果是超级管理员admin登录,可以看到并使用所有的功能,也可以看到所有的联系人资料,如果是普通用户登录系统则只能使用通讯录查询模块和通讯录管理模块,并且只能看到本人私有的联系人资料和所有用户共享的联系人资料。

我的预期成果就是建立一个WEB系统,使用户可以方便的使用这个系统管理自己的联系人资料。

5.任务完成的阶段内容及时间安排4月10日至4月18日系统需求搜集,整理及需求分析4月19日至5月8日系统设计5月9日至5月18日编码及测试,系统集成测试。

5月19日至5月20日发布系统5月21日至5月26日撰写论文6.完成设计所具备的条件因素完成设计所具备的条件因素包括:需要一台计算机并有开发环境、运行环境等软件环境,比如操作系统,IIS及IE,支持ACCESS数据库等;同时我们需要具备分析设计系统的能力,具备ASP编程能力,ACCESS数据库设计与应用能力,软件文档、论文等文档写作能力;也要熟悉通讯录系统的基本的功能需求和界面易用性的设计。

软件工程 ——通讯录管理系统

软件工程 ——通讯录管理系统

软件工程——通讯录管理系统软件工程——通讯录管理系统1、引言1.1 编写目的本文档旨在详细描述通讯录管理系统的设计和实现过程,为软件工程师提供指导和参考,以确保软件系统的正确性、可靠性和可维护性。

1.2 范围本通讯录管理系统旨在实现对个人和组织通讯录信息的存储、查询、添加和删除等功能。

系统将提供用户界面用于管理通讯录,同时与外部系统进行数据交互。

1.3 定义- 通讯录:包含个人和组织联系人信息的数据库。

- 查询:根据指定条件搜索通讯录中的联系人信息。

- 添加:向通讯录中添加新的联系人信息。

- 删除:从通讯录中删除指定的联系人信息。

2、需求规定2.1 功能性需求2.1.1 用户登录- 用户可以通过用户名和密码登录系统。

- 用户登录成功后,可以进入通讯录管理界面。

2.1.2 通讯录管理- 用户可以浏览通讯录中的联系人列表。

- 用户可以根据指定条件查询特定的联系人信息。

- 用户可以按照指定的字段对联系人列表进行排序。

- 用户可以添加新的联系人信息到通讯录中。

- 用户可以删除通讯录中的联系人信息。

2.1.3 数据导入导出- 用户可以将通讯录中的联系人信息导出为文件。

- 用户可以将外部文件中的联系人信息导入到通讯录中。

2.1.4 系统设置- 用户可以修改系统的配置参数,如数据库连接信息等。

2.2 非功能性需求2.2.1 安全性- 系统要求用户登录后才能访问通讯录管理功能。

- 用户密码需要进行加密存储。

2.2.2 可靠性- 系统需要有备份和恢复功能,以防止数据丢失或损坏。

2.2.3 易用性- 系统的用户界面应该直观、简单,用户易于操作。

3、总体设计3.1 系统架构3.1.1 前端设计- 采用Web界面实现系统的用户界面,使用、CSS和JavaScript等技术。

- 前端界面负责与用户交互,接收用户输入并向后端发送请求。

3.1.2 后端设计- 采用Java语言,使用Spring框架实现后端逻辑。

- 后端负责处理用户请求,调用业务逻辑层处理数据操作,并向前端返回响应。

通讯录管理系统 毕业论文1

通讯录管理系统  毕业论文1

摘要本系统全称为通讯录管理系统。

根据开发要求,它主要应用于管理系统,完成用户的注册、登陆、好友信息管理、密码管理、类别管理的计算机化的管理。

开发通讯录管理系统可方便同学们的联系和毕业后的沟通,比较系统地对注册、登陆的各项服务和好友信息以及密码进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,使各项管理更加规范化。

目前,还没有一套完整的、统一的同学录系统。

因此,开发一套适和大众的、兼容性好的系统是很有必要的。

本系统管理内容简易,涉及了好友联系上的各项服务,包括用户注册,用户登录和好友信息管理、密码修改、类别管理等等。

在开发过程中,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统更加完善。

在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。

在开发工具的选择上,主要利用Microsoft Visual Studio编程语言进行开发,使用Microsoft SQL Server 2005数据库。

本论文主要从系统分析、系统设计、系统实施与使用等几个方面进行介绍。

关键词:好友信息管理、密码修改、上传照片、维护管理AbstractThis system is all called the directories management system. According to the development requirements, it mainly applies to the management system, completing the user registration,login, buddy information management, password management, management category computerized management. Developing directories management system can be convenient to students after graduation contact and communication, more systematically to register, login services and good friends information and password management, meanwhile, can reduce the labor force the use, accelerate query speed, strengthens the management, make each management standardized. At present, it is still not a complete and unified system of alumni. Therefore, develop a set of suitable and the populace, compatibility good system is very necessary.This system management content involves a simple, contact friends services, including user registration, user login and good friends information management, and password changing, classification management, etc. During development, attention to its accord with operation of business process, and makes every effort to system comprehensive, universal, makes this system to be more perfect. In the development of the choice of methods, chose life cycle method and prototypes with the method of analytic research, follow the system, system analysis, system design and system implementation, four main stage design, and in specific design, taken of evolutionary prototype method, with the use of user and the deepening of systematic understanding of a part or a few parts to analysis, design, implementation. On the choice of the development tools, mainly using Microsoft Visual Studio programming language used in development, 2005 Microsoft SQL Server database. This thesis mainly from system analysis, system design and system implementation and use aspects is introduced.Keywords: buddy information management, password changing, upload photos, maintenance management.目录第一章引言 (5)1.1 背景 (5)1.2 目标 (5)第二章需求分析 (6)2.1 系统需求 (6)2.2 功能需求 (6)第三章总体设计 (6)3.1基本设计概念和处理流程 (6)3.2总体结构设计 (7)3.3总体管理流程设计 (8)3.4功能模块设计 (9)第四章数据库设计 (10)4.1数据库的配置 (10)4.1.1打开Microsoft SQL Server 2005 (10)4.1.2建数据库 (11)4.1.3建数据表 (12)4.1.4填写数据表 (15)4.2数据库的逻辑设计 (17)4.2.1数据库 (17)4.2.2数据库中的表 (18)第五章系统的详细设计 (22)5.1用户注册模块的设计与实现 (22)5.2 用户登录模块的设计与实现 (24)5.3 作者个人资料模块的设计与实现 (25)5.4好友信息管理模块的设计与实现 (26)5.4.1添加好友信息模块的设计与实现 (26)5.4.2修改好友信息模块的设计与实现 (27)5.4.3查看好友信息模块的设计与实现 (28)5.4.4删除好友模块的设计与实现 (30)5.4.5 更新好友照片模块的设计与实现 (31)5.5密码修改模块的设计与实现 (33)5.6类别管理模块的设计与实现 (34)5.7我的偶像模块的设计与实现 (37)5.8返回模块的设计与实现 (38)第六章系统的维修与改进 (40)6.1 运行维护 (40)6.2 系统的改进与提高 (40)结论 (41)致谢 (42)参考文献 (43)通讯录管理系统第一章引言1.1 背景当今时代是飞速发展的信息时代。

学生手机通信录管理系统

学生手机通信录管理系统

学生手机通信录管理系统〔 2021 / 2021 学年第一学期〕题目:通讯录治理系统专业学生姓名班级学号指导教师指导单位日期通讯录治理系统一、课题内容和要求该课题要求设计一个简单、有用的通信录治理程序,要紧功能包括通信录数据的录入、查找、修改、删除、排序、显示等。

所有通信录数据都要利用文件系统储存,以备系统下次运行时使用。

通过此课题,全面熟悉、把握C语言差不多知识,把握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言差不多图形编程等方法,把编程和实际结合起来,熟练把握文件、数组、指针的各种操作,以及一些差不多算法思想的应用。

增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,把握分析结果的假设干有效方法,进一步提高上机动手能力,培养使用运算机解决实际问题的能力,养成提供文档资料的适应和规范编程的思想,为以后在专业课程中应用运算机系统解决运算、分析、实验和设计等学习环节打下较扎实的基础。

二、需求分析系统功能模块图:添加:能够添加通讯录记录,依次输入序号,姓名,简拼,性别,工作单位,地址,,手机,电子邮件,备注后,会提示是否连续添加。

查询:能够选择用序号、姓名、简拼、方式查询修改:先查找,再修改。

假设查找出多条记录,那么进一步提示用户选择记录的序号,再修改删除:输入欲删除的那个人的名字后,删除他〔她〕的记录内容排序:可按姓名、简拼等排序。

要求排序后,记录的序号也要重新编排显示:能够以表格形式输出所有通讯录里的记录储存:,输入文件名〔带后缀名〕后,即可将通讯录信息储存到文件读入:从文件中读入通信录数据。

界面功能要求:(1)采纳友好的字符界面,实现一个功能操纵菜单。

(2)每次操作都从该菜单项选择择,利用循环结构使得一次运行程序可进行多次操作。

三、概要设计〔1〕要紧结构体:typedef struct{char score; /*序号*/char name[10]; /*姓名*/char jianpin[50]; /*简拼*/char sex[3]; /*性别*/char company[20]; /*工作单位*/char adds[20]; /*地址*/char tel[15]; /* */char num[15]; /*手机*/char email[20]; /*电子邮件*/char remark[30]; /*备注*/}Person;(2).工作流程图:1.添加:添加通讯录记录先选择查询方式,以姓名查询方式为例3.修改:修改通讯录记录4.删除:删除通讯录记录5.显示:显示通讯录记录四、源程序代码#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h>typedef struct { char score; /*序号*/ char name[10]; /*姓名*/ char jianpin[50]; /*简拼*/ char sex[3]; /*性别*/ char company[20]; /*工作单位*/ char adds[20]; /*地址*/ char tel[15]; /* */ char num[15]; /*手机*/char email[20]; /*电子邮件*/char remark[30]; /*备注*/ }Person;Person pe[80];int menu_select(){char c;do{system("cls");printf("\t\t *欢迎使用通讯录* \n");printf("\t\t┌───────┐\n");printf("\t\t│1. 添加记录│\n");printf("\t\t│2. 显示记录│\n");printf("\t\t│3. 删除记录│\n");printf("\t\t│4. 查询记录│\n");printf("\t\t│5. 排列顺序│\n");printf("\t\t│6. 修改记录│\n");printf("\t\t│7. 储存记录│\n");printf("\t\t│8. 文件读入│\n");printf("\t\t│0. 退出程序│\n");printf("\t\t└───────┘\n");printf("\t\t请您选择(0-8):");c=getchar();}while(c<'0'||c>'8');return(c-'0');}int Input(Person per[],int n){int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){printf("\t序号:");scanf("\t%d",&per[n+i].score);printf("\t姓名:");scanf("\t%s",per[n+i].name);printf("\t简拼:");scanf("\t%s",per[n+i].jianpin);printf("\t性别:");scanf("\t%s",per[n+i].sex);printf("\t工作单位:");scanf("\t%s",per[n+i] pany);printf("\t地址:");scanf("\t%s",per[n+i].adds);printf("\t :");scanf("\t%s",per[n+i].tel);printf("\t手机:");scanf("\t%s",per[n+i].num);printf("\t电子邮件:");scanf("\t%s",per[n+i].email);printf("\t备注:");scanf("\t%s",per[n+i].remark);gets(x);printf("\n\t是否连续添加?(Y/N)");scanf("\t%c",&sign);i++;}return(n+i);}void Display(Person per[],int n){int i;printf("------------------------------------------------------------------------------------------------\n"); /*格式*/printf("序号姓名简拼性别工作单位地址手机电子邮件备注\n");printf("------------------------------------------------------------------------------------------------\n");for(i=1;i<n+1;i++){printf("%-3d%-10s%-10s%-5s%-10s%-10s%-13s%-13s%-10s%-10s\n",per[i-1].score,per[i-1 ].name,per[i-1].jianpin,per[i-1].sex,per[i-1]pany,per[i-1].adds,per[i-1].tel,per[i-1].num,per[i-1].email, per[i-1].remark);if(i>1&&i%10==0){printf("\t-----------------------------------\n");printf("\t");system("pause");printf("\t-----------------------------------\n");}}printf("----------------------------------------------------------------------\n");system("pause");}int Delete_a_record(Person per[],int n){char s[20];int i=0,j;printf("\t请输入想删除记录中的名字:");scanf("%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return(n);}for(j=i;j<n-1;j++){strcpy(per[j].name,per[j+1].name);strcpy(per[j].jianpin,per[j+1].jianpin);strcpy(per[j].sex,per[j+1].sex);strcpy(per[j] pany,per[j+1] pany);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].num,per[j+1].num);strcpy(per[j].tel,per[j+1].tel);strcpy(per[j].email,per[j+1].email);strcpy(per[j].remark,per[j+1].remark);per[j].score=per[j+1].score;}printf("\t\t\t删除成功\n");return(n-1);}void Query_a_record(Person per[],int n){int m;printf("\t\n请选择查询方式:\n");printf("\t┌──────┐\n");printf("\t│1------姓名│\n");printf("\t│2------简拼│\n");printf("\t│3------ │\n");printf("\t│4------返回│\n");printf("\t└──────┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1){char s[20];int i=0;printf("\t请输入想查询的姓名:");scanf("\t%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t序号: %d\n",per[i].score);printf("\t简拼: %s\n",per[i].jianpin);printf("\t性别: %s\n",per[i].sex);printf("\t工作单位: %s\n",per[i] pany);printf("\t通讯地址: %s\n",per[i].adds);printf("\t 号码: %s\n",per[i].num);printf("\t电子邮箱: %s\n",per[i].email);printf("\t备注: %s\n",per[i].remark);} ;if(m==2){char s[20];int i=0;printf("\t请输入想查询的简拼:");scanf("\t%s",s);while(strcmp(per[i].jianpin,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t序号: %d\n",per[i].score);printf("\t姓名: %s\n",per[i].name);printf("\t性别: %s\n",per[i].sex);printf("\t工作单位: %s\n",per[i] pany);printf("\t通讯地址: %s\n",per[i].adds);printf("\t 号码: %s\n",per[i].num);printf("\t电子邮箱: %s\n",per[i].email);printf("\t备注: %s\n",per[i].remark);} ;if(m==3){char s[20];int i=0;printf("\t请输入想查询的:");scanf("\t%s",s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t序号: %d\n",per[i].score);printf("\t姓名: %s\n",per[i].name);printf("\t简拼: %s\n",per[i].jianpin);printf("\t性别: %s\n",per[i].sex);printf("\t工作单位: %s\n",per[i] pany);printf("\t通讯地址: %s\n",per[i].adds);printf("\t电子邮箱: %s\n",per[i].email);printf("\t备注: %s\n",per[i].remark);} ;}void SelectSort(Person per[],int n){int i,j,flag;Person temp; /*临时变量做交换数据用*/int m;printf("\t\n请选择排序方式:\n");printf("\t┌────────┐\n");printf("\t│1------姓名│\n");printf("\t│2------简拼│\n");printf("\t│3------ │\n");printf("\t│4------返回│\n");printf("\t└────────┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1){for(i=0;i<n;i++){flag=0; /*设标志判定是否发生过交换*/for(j=0;j<n-1;j++)if((strcmp(per[j].name,per[j+1].name))>0) /*比较大小*/{flag=1;strcpy(,per[j].name); /*交换记录*/strcpy(temp. abbreviation,per[j].jianoin);strcpy(temp.sex,per[j].sex);strcpy(temp pany,per[j] pany);strcpy(temp.adds,per[j].adds);strcpy(temp.tel,per[j].tel);strcpy(temp.num,per[j].num);strcpy(temp.email,per[j].email);strcpy(temp.remarks,per[j].remark);strcpy(per[j].name,per[j+1].name);strcpy(per[j]. abbreviation,per[j+1]. jianpin);strcpy(per[j].sex,per[j+1].sex);strcpy(per[j] pany,per[j+1] pany);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].tel,per[j+1].tel);strcpy(per[j].num,per[j+1].num);strcpy(per[j].email,per[j+1].email);strcpy(per[j].remarks,per[j+1].remark);strcpy(per[j+1].name,);strcpy(per[j+1]. abbreviation,temp. jianpin);strcpy(per[j+1].sex,temp.sex);strcpy(per[j+1] pany,temp pany);strcpy(per[j+1].adds,temp.adds);strcpy(per[j+1].tel,temp.tel);strcpy(per[j+1].num,temp.num);strcpy(per[j+1].email,temp.email);strcpy(per[j+1].remarks,temp.remark);}if(flag==0)break; /*假如标志为0,说明没有发生过交换循环终止*/}}if(m==2){for(i=0;i<n;i++){flag=0; /*设标志判定是否发生过交换*/for(j=0;j<n-1;j++)if((strcmp(per[j]. jianpin,per[j+1]. jianpin))>0) /*比较大小*/{flag=1;strcpy(,per[j].name); /*交换记录*/strcpy(temp. jianpin,per[j]. jianpin);strcpy(temp.sex,per[j].sex);strcpy(temp pany,per[j] pany);strcpy(temp.adds,per[j].adds);strcpy(temp.tel,per[j].tel);strcpy(temp.num,per[j].num);strcpy(temp.email,per[j].email);strcpy(temp.remarks,per[j].remark);strcpy(per[j].name,per[j+1].name);strcpy(per[j]. abbreviation,per[j+1].jianpin);strcpy(per[j].sex,per[j+1].sex);strcpy(per[j] pany,per[j+1] pany);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].tel,per[j+1].tel);strcpy(per[j].num,per[j+1].num);strcpy(per[j].email,per[j+1].email);strcpy(per[j].remarks,per[j+1].remark);strcpy(per[j+1].name,);strcpy(per[j+1]. abbreviation,temp. jianpin);strcpy(per[j+1].sex,temp.sex);strcpy(per[j+1].adds,temp.adds);strcpy(per[j+1].tel,temp.tel);strcpy(per[j+1].num,temp.num);strcpy(per[j+1].email,temp.email);strcpy(per[j+1].remarks,temp.remark);}if(flag==0)break; /*假如标志为0,说明没有发生过交换循环终止*/}}if(m==3){for(i=0;i<n;i++){flag=0; /*设标志判定是否发生过交换*/for(j=0;j<n-1;j++)if((strcmp(per[j].tel,per[j+1].tel))>0) /*比较大小*/{flag=1;strcpy(,per[j].name); /*交换记录*/strcpy(temp. abbreviation,per[j]. jianpin);strcpy(temp.sex,per[j].sex);strcpy(temp pany,per[j] pany);strcpy(temp.adds,per[j].adds);strcpy(temp.tel,per[j].tel);strcpy(temp.num,per[j].num);strcpy(temp.email,per[j].email);strcpy(temp.remarks,per[j].remark);strcpy(per[j].name,per[j+1].name);strcpy(per[j]. abbreviation,per[j+1]. jianpin);strcpy(per[j].sex,per[j+1].sex);strcpy(per[j] pany,per[j+1] pany);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].tel,per[j+1].tel);strcpy(per[j].num,per[j+1].num);strcpy(per[j].email,per[j+1].email);strcpy(per[j].remarks,per[j+1].remark);strcpy(per[j+1].name,);strcpy(per[j+1]. abbreviation,temp. jianpin);strcpy(per[j+1].sex,temp.sex);strcpy(per[j+1].adds,temp.adds);strcpy(per[j+1].tel,temp.tel);strcpy(per[j+1].num,temp.num);strcpy(per[j+1].email,temp.email);strcpy(per[j+1].remarks,temp.remark);}if(flag==0)break; /*假如标志为0,说明没有发生过交换循环终止*/}}printf("排序成功\n"); /*显示排序成功*/}void Change(Person per[],int n){char s[20];int i=0;int m;printf("\t\n请选择修改内容:\n");printf("\t┌──────┐\n");printf("\t│1------姓名│\n");printf("\t│2------简拼│\n");printf("\t│3------ │\n");printf("\t│4------返回│\n");printf("\t└──────┘\n");printf("请选择编号:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("输入错误,请重新选择:");scanf("%d",&m);}int count = 0;if(m==1){int i=0;printf("\t请输入想修改的记录中的姓名:");scanf("%s",s);printf("---------------------------------------------------------------------------------\n");/*格式*/printf("序号姓名简拼性别工作单位地址手机电子邮件备注\n");printf("---------------------------------------------------------------------------------\n");for (int t = 0; t < n; t++) {if (strcmp(per[t].name,s)==0) {count ++;printf("%-6d%-6s%-6s%-6s%-10s%-10s%-8s%-8s%-12s%-10s%\n",per[t].score,per[t].name ,per[t].jianpin,per[t].sex,per[t]pany,per[t].adds,per[t].tel,per[t].num,per[t].email,per[t].remark);}}printf("---------------------------------------------------------------------------------\n");if (count > 1){printf("查到多条数据,请输入序号:");m = 5;}else{while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}//printf("\t序号:");//scanf("\t%d",&per[i].score);printf("\t姓名:");scanf("\t%s",per[i].name);printf("\t简拼:");scanf("\t%s",per[i]. jianpin);printf("\t性别:");scanf("\t%s",per[i].sex);printf("\t工作单位:");scanf("\t%s",per[i] pany);printf("\t地址:");scanf("\t%s",per[i].adds);printf("\t :");scanf("\t%s",per[i].tel);printf("\t手机:");scanf("\t%s",per[i].num);printf("\t电子邮件:");scanf("\t%s",per[i].email);printf("\t备注:");scanf("\t%s",per[i].remark);printf("\t修改成功!");}}if(m==2){int i=0;printf("\t请输入想修改的记录中的姓名:");scanf("%s",s);printf("---------------------------------------------------------------------------------\n");/*格式*/printf("序号姓名简拼性别工作单位地址手机电子邮件备注\n");printf("---------------------------------------------------------------------------------\n");for (int t = 0; t < n; t++) {if (strcmp(per[t]. jianpin,s)==0) {count ++;printf("%-6d%-6s%-6s%-6s%-10s%-10s%-8s%-8s%-12s%-10s%\n",per[t].score,per[t].name ,per[t].jianpin,per[t].sex,per[t]pany,per[t].adds,per[t].tel,per[t].num,per[t].email,per[t].remark);}}printf("---------------------------------------------------------------------------------\n");if (count > 1) {printf("查到多条数据,请输入序号:");m = 5;} else {while(strcmp(per[i]. jianpin,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}//printf("\t序号:");//scanf("\t%d",&per[i].score);printf("\t姓名:");scanf("\t%s",per[i].name);printf("\t简拼:");scanf("\t%s",per[i]. jianpin);printf("\t性别:");scanf("\t%s",per[i].sex);printf("\t工作单位:");scanf("\t%s",per[i] pany);printf("\t地址:");scanf("\t%s",per[i].adds);printf("\t :");scanf("\t%s",per[i].tel);printf("\t手机:");scanf("\t%s",per[i].num);printf("\t电子邮件:");scanf("\t%s",per[i].email);printf("\t备注:");scanf("\t%s",per[i].remark);printf("\t修改成功!");}}if(m==3){int i=0;printf("\t请输入想修改的记录中的姓名:");scanf("%s",s);printf("---------------------------------------------------------------------------------\n");/*格式*/printf("序号姓名简拼性别工作单位地址手机电子邮件备注\n");printf("---------------------------------------------------------------------------------\n");for (int t = 0; t < n; t++) {if (strcmp(per[t].tel,s)==0) {count ++;printf("%-6d%-6s%-6s%-6s%-10s%-10s%-8s%-8s%-12s%-10s%\n",per[t].score,per[t].name ,per[t].jianpin,per[t].sex,per[t]pany,per[t].adds,per[t].tel,per[t].num,per[t].email,per[t].remark);}}printf("---------------------------------------------------------------------------------\n");if (count > 1) {printf("查到多条数据,请输入序号:");m = 5;} else {while(strcmp(per[i].tel,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}//printf("\t序号:");//scanf("\t%d",&per[i].score);printf("\t姓名:");scanf("\t%s",per[i].name);printf("\t简拼:");scanf("\t%s",per[i]. jianpin);printf("\t性别:");scanf("\t%s",per[i].sex);printf("\t工作单位:");scanf("\t%s",per[i] pany);printf("\t地址:");scanf("\t%s",per[i].adds);printf("\t :");scanf("\t%s",per[i].tel);printf("\t手机:");scanf("\t%s",per[i].num);printf("\t电子邮件:");scanf("\t%s",per[i].email);printf("\t备注:");scanf("\t%s",per[i].remark);printf("\t修改成功!");}}if(m==5){int i=0;scanf("%s",s);while(per[i].score != atoi(s)&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}//printf("\t序号:");//scanf("\t%d",&per[i].score);printf("\t姓名:");scanf("\t%s",per[i].name);printf("\t简拼:");scanf("\t%s",per[i]. jianpin);printf("\t性别:");scanf("\t%s",per[i].sex);printf("\t工作单位:");scanf("\t%s",per[i] pany);printf("\t地址:");scanf("\t%s",per[i].adds);printf("\t :");scanf("\t%s",per[i].tel);printf("\t手机:");scanf("\t%s",per[i].num);printf("\t电子邮件:");scanf("\t%s",per[i].email);printf("\t备注:");scanf("\t%s",per[i].remark);printf("\t修改成功!");}}void WritetoText(Person per[],int n){int i=0;FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/printf("\t储存到文件\n"); /*输入文件名*/printf("\t请输入所储存的文件名:");scanf("\t%s",filename);if((fp=fopen(filename,"w"))==NULL){printf("\t无法打开文件\n");system("pause");return;}fprintf(fp,"******************************************通讯录******************************************\n");fprintf(fp,"序号姓名简拼性别工作单位地址手机电子邮件备注\n");fprintf(fp,"------------------------------------------------------------------------------------------\n");while(i<n){fprintf(fp,"%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\t%-20s\t%-20s\t%-20s\t%20s\n",per[i].s core,per[i].name, per[i-1].jianpin,per[i-1].sex,per[i-1] pany,per[i-1].adds,per[i-1].tel,per[i-1].num,per[i-1].email, per[i-1].remark);i++;}fprintf(fp,"------------------------------------------------------------------------------------------\n");fprintf(fp,"***************************************共有%d条记录****************************************\n",n);fclose(fp); /*关闭文件*/printf("储存成功\n");}int Load(Person per[],int n){int i;FILE *fp; /*指向文件的指针*/if((fp=fopen("record.txt","rb"))==NULL)/*打开文件*/{printf("无法打开文件\n"); /*不能打开*/exit(1); /*退出*/}fscanf(fp,"%d",&n); /*读入记录数*/for(i=0;i<n;i++)fscanf(fp,"%20s%30s%10s",per[i].name,per[i] pany,per[i].tel); /*按格式读入记录*/ fclose(fp); /*关闭文件*/printf("你差不多成功地从文件中读取数据\n"); /*显示储存成功*/return n; /*返回记录数*/}void main() /*主函数*/{int n=0;for(;;){switch(menu_select()){case 1:printf("\n\t添加记录到通讯录\n"); /*添加记录*/n=Input(pe,n);break;case 2:printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/Display(pe,n);break;case 3:printf("\n\t从通讯录中删除记录\n");n=Delete_a_record(pe,n); /*删除记录*/printf("\t");system("pause");break;case 4:printf("\n\t在通讯录中查找记录\n");Query_a_record(pe,n); /*查找记录*/printf("\t");system("pause");break;case 5:printf("\n\t排序通讯录中的记录\n");SelectSort (pe,n); /*排序记录*/printf("\t");system("pause");break;case 6:printf("\n\t修改通讯录中的记录\n");Change(pe,n); /*修改数据*/printf("\t");system("pause");break;case 7:printf("\n\t储存通讯录功能\n");WritetoText(pe,n); /*储存数据*/printf("\t");system("pause");break;case 8:printf("\n\t读入通讯录记录\n");Load (pe,n); /*读入记录*/printf("\t");system("pause");break;case 0:printf("\n\t\t感谢使用,再见!\n"); /*终止程序*/printf("\n\t\t");system("pause");exit(0);}}}五、测试数据及其结果分析界面:添加:依次输入序号,姓名,简拼,性别,工作单位,地址,,手机,电子邮件,备注,提示是否连续添加。

通讯录管理系统-实例

通讯录管理系统-实例

*******************实践教学*******************兰州理工大学计算机与通信学院2016年春季学期C程序设计课程设计题目:通讯录管理系统专业班级:信息与计算科学15级1班姓名:学号:指导教师:成绩:通讯录管理系统摘要通讯录管理系统主要包括五大模块:信息录入模块;信息查询模块;信息查看模块;信息修改模块;信息统计模块。

采取模块化结构方案,通过链表与文件的方式,是实用性与美观性并存的系统。

该系统适应现代高科技信息管理尺度的要求,推动通讯录联系人管理走向科学化、规范化。

设计的指导思想是一切为用户着想,界面美观大方,操作简单明了,而且作为一个实用的应用程序要有良好的容错性,在用户出现误操作时能及时地给出警告,以便用户及时改正。

关键词:通讯录,查询,链表,文件,管理目录1题目要求 (1)2需求分析 (2)2.1 产品需求概述 (2)2.1.1 功能简介 (2)2.1.2 运行环境 (2)2.2 功能需求 (2)2.2.1信息录入功能 (2)2.2.2 信息查询功能 (2)2.2.3 信息查看功能 (2)2.2.4 信息修改功能 (2)2.2.5 信息统计功能 (3)2.2.6 不支持的功能 (3)3概要设计 (7)3.1 系统体系结构图 (7)3.2 模块描述 (8)4详细设计 (11)4.1 系统主要函数 (11)4.2函数详细说明 (11)4.2.1 ShowMenu函数(主界面函数) (11)4.2.2 HeadShow函数(界面顶端显示函数) (11)4.2.3 FileLoading函数(文件判断函数) (12)4.2.4 add函数(添加使用者信息函数) (12)4.2.5 SaveChange函数(保存修改函数) (13)4.2.6 AllShow函数(综合显示信息函数) (14)4.2.7 AllNum函数(显示记录性条数函数) (15)4.2.8 CheckFace函数(显示信息查询界面函数) (16)4.2.9 Selelctname函数(通过姓名查询信息函数) (17)4.2.10 Selelctphone函数(通过电话号码查询信息函数) (18)4.2.11 Selelctall函数(通过任意信息查询信息函数) (19)4.2.12 Change函数(修改使用者信息函数) (20)4.2.13 ExirShow函数(显示退出界面函数) (21)4.2.14 ErrorShow函数(显示发生错误时界面) (21)4.2.15 main函数(主函数) (21)5系统测试 (23)5.1系统欢迎界面 (23)5.2信息录入界面 (23)5.3信息查询界面 (24)5.3.1信息按姓名查询界面 (24)5.3.2信息按电话号码查询界面 (25)5.3.3信息综合查询界面 (25)5.4信息查看界面 (26)5.5信息修改界面 (26)5.6信息修改界面 (27)5.7系统退出界面 (27)6总结 (28)参考文献 (29)致谢 (30)附录:源程序 (31)1题目要求(1)以通讯录管理系统为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型,系统以菜单方式工作。

通讯录管理系统

通讯录管理系统

中国地质大学C课程设计报告姓名学号专业地质学所在院系地学院教师姓名朱莉日期: 2014 年 12 月 25 日目录一、程序分析与设计..................................................................................... 错误!未定义书签。

二、流程图..................................................................................................... 错误!未定义书签。

三、源程序清单............................................................................................. 错误!未定义书签。

四、调试过程 (15)五、程序有待改进的地方 (18)六、本次实习的收获和建议 (18)附录 ................................................................................................................ 错误!未定义书签。

一、课程设计题目及要求题目通讯录管理系统任务:自学C语言中相关知识,设计出通讯录管理系统。

要求如下所述:◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;;◆能够提供添加、删除和修改通讯录信息的功能;◆能够提供按姓名或电话等查询;◆将通讯录保存在文件中;◆能够按表格方式输出通讯录信息。

二、系统设计方案(一)总体框架图:通讯录管理系统:1、增加联系人信息2、查询联系人信息3、修改联系人信息4、删除联系人信息5、显示联系人信息增加联系人信息:能录入新数据(一个结点包括:序号、姓名、电话号码、工作单位、E-mail)对于通讯录中已有的联系人姓名限制输入。

手机通讯录管理系统

手机通讯录管理系统

《面向对象技术大作业》报告书题目:手机通讯录管理系统姓名:韩劲松学号:090505110日期:2010年11月8日管理科学与工程学院2010-2011学年第1学期目录摘要 (I)第1章绪论 (2)第2章需求分析 (3)2.1编写目的 (3)2.2需求概述 (3)2.3需求说明 (3)第3章总体设计 (4)3.1编写目的 (4)3.2总体结构 (4)3.3数据结构 (4)第4章流程图 (5)第5章详细设计 (6)5.1编写目的 (6)5.2详细设计 (6)5.3程序运行 (12)参考文献 (14)结束语 (15)摘要本次C程序设计课程设计我选择手机通讯录管理系统,在菜单上显示各功能的选项。

在增加功能中可按照编号、姓名、电话号码和类型等输入每个人的通讯信息。

在查看时,可按三种类型如办公类、个人类和商务类等查询,并把各类型的通讯人信息列出。

修改功能中,可以先选中某个人的姓名在进行数据修改,删除功能同上。

在查询功能中可通过姓名和电话号码查询此人信息。

而且在此次设计过程中,我特别地增加了一项拨号功能,在拨号时,在屏幕上显示所拨的号码。

关键词:手机通讯录管理系统菜单输入功能修改功能删除功能查询查看1.设计的原始资料及依据通过课程设计使学生进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握C++编程的技巧,提高学生用程序的思想来解决实际问题的能力。

2.设计的主要内容及要求a设计题目:通讯录管理系统b需要完成的功能:⑴查看功能;⑵增加功能;⑶拨号功能;⑷修改功能;⑸删除功能;⑹菜单功能;⑺查询功能。

必须用到链表,能将生成的文件存储与外部存储器上,并且从外部存储器上可以编写该文件的功能。

第1章绪论在本次C++大作业中,我设计手机通讯录管理系统,在主函数中,主要用到了多分支语句(switch)。

在无限循环时也能用到了语句for,当每一个功能使用完毕或输入错误时就会返回,再次调用菜单函数进入菜单界面。

c语言课程设计学生通讯录管理系统

c语言课程设计学生通讯录管理系统

c语言课程设计学生通讯录管理系统题目:学生通讯录管理系统任务描述:主要利用C语言的文件操作能力设计和开发一个小型通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。

②显示所有人员的信息。

③通过输入姓名查找人员信息。

④ 通过输入姓名找到要删除的人的信息,然后将其删除。

⑤ 通过输入姓名找到要修改的人员信息,然后进行修改。

⑥ 添加人员信息。

系统功能描述:本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。

每个按钮的功能如下:查找记录:以姓名为关键字,查找并显示该记录。

若查找不到,则显示“好象没有”;添加记录:按姓名顺序将当前记录添加到通讯录中,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。

姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动到第一个节点。

如果第一个节点已被移动,它将不会被移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;最后一条记录:将当前记录指针向后移动一个节点。

如果是尾部节点,则不会移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中删除保存的通讯簿数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,电话记录数据以文本文件的形式存储在文件中,因此需要提供文件输入、输出等操作;您还需要保存记录,以便进行修改、删除、搜索等操作;此外,还应提供键盘类型选择菜单,以实现功能选择。

通讯录管理系统数据输入数据添加数据修改查找删除浏览图1系统功能模块图软件中使用的结构体和结构体数组,如:structcallmember{charname[20];charaddress[20];字符码[20];charcallnumber[20];};对用户的信息进行保存,他们都以二进制的形式读写。

相关主题
  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”。

相关文档
最新文档