题目 通讯录管理系统

合集下载

通讯录管理系统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. 使学生了解数据库的基本概念,学会使用简单的数据库操作语句;3. 培养学生运用编程语言(如Python)实现通讯录管理系统的基本功能。

技能目标:1. 培养学生运用所学知识,设计并实现一个简单的通讯录管理系统;2. 提高学生的问题分析能力,使他们能够根据需求分析,提出合理的系统设计方案;3. 培养学生的团队协作能力,学会与他人共同完成项目任务。

情感态度价值观目标:1. 激发学生对计算机编程和数据库技术的兴趣,培养他们的探究精神;2. 引导学生关注信息技术在实际生活中的应用,认识到学习计算机知识的重要性;3. 培养学生认真负责的工作态度,养成及时总结和反思的好习惯。

课程性质:本课程为信息技术课程,旨在让学生结合实际需求,运用所学知识设计和开发一个实用的通讯录管理系统。

学生特点:六年级学生已具备一定的计算机操作能力和编程基础,对新鲜事物充满好奇,但需进一步培养他们的实际操作能力和团队协作能力。

教学要求:结合课本内容,注重理论与实践相结合,注重培养学生的实际操作能力和创新精神。

在教学过程中,关注学生的个体差异,因材施教,确保每个学生都能达到课程目标。

通过课程学习,使学生能够独立或协作完成通讯录管理系统的设计与实现,提高他们的信息技术素养。

二、教学内容1. 通讯录管理系统概述- 了解通讯录管理系统的基本概念、功能和应用场景;- 分析通讯录管理系统的模块划分和基本工作流程。

2. 数据库基础知识- 学习数据库的基本概念,如表、字段、记录等;- 掌握简单的数据库操作语句,如SQL语句的基本用法。

3. 编程语言基础- 复习Python编程语言的基本语法和常用数据结构;- 学习使用Python进行文件操作和异常处理。

4. 通讯录管理系统设计与实现- 分析需求,明确系统功能模块;- 设计数据库表结构,编写数据库操作代码;- 使用Python实现通讯录管理系统的核心功能,如添加、删除、修改和查询联系人等。

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.显示通讯簿的所有信息。

题目通讯录管理系统

题目通讯录管理系统

题目 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) 输出通讯录。

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

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

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

数据结构课程设计通讯录管理系统
数据结构课程设计中的通讯录管理系统可以涉及到以下几个方面的知识点:
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;}```六、系统测试在完成系统的开发后,需要进行全面的测试以确保系统的稳定性和可靠性。

通讯录管理系统毕业设计(两篇)2024

通讯录管理系统毕业设计(两篇)2024

引言概述:通讯录管理系统是一种用于管理联系人信息的软件,它能够为用户提供便捷的联系人管理和信息查询功能。

本文将继续介绍通讯录管理系统的设计和实现,重点关注系统的用户界面设计、数据存储与管理、通讯录的分类与搜索功能、用户权限管理以及通讯录系统的扩展与升级。

正文内容:1.用户界面设计1.1设计原则:用户友好性、易用性和美观性原则1.2主界面设计:主界面布局、功能模块展示、导航设计1.3交互设计:交互方式、操作流程、反馈机制1.4响应式设计:适配多种设备和屏幕分辨率2.数据存储与管理2.1数据库设计:确定实体和属性、建立表结构、定义关系2.2数据库连接:连接数据库、读写操作、异常处理2.3数据备份与恢复:数据备份策略、备份文件管理、数据恢复机制2.4数据安全性:权限控制、数据加密、数据完整性3.通讯录的分类与搜索功能3.1通讯录分类:基本分类和用户自定义分类3.2联系人添加与编辑:输入验证、字段定义、数据关联3.3联系人查询:关键字查询、条件过滤、多条件组合查询3.4联系人导入导出:支持多种数据格式、数据匹配与转换、导入导出策略3.5通讯录分享与同步:用户权限设置、跨设备同步、冲突解决4.用户权限管理4.1用户注册与登录:用户信息获取、身份验证、登录状态管理4.2用户权限分配:管理员与普通用户权限区分、权限控制细化4.3用户信息管理:个人信息修改、密码重置、账号注销4.4安全性保护:登录失败锁定、密码加密、会话管理5.通讯录系统的扩展与升级5.1模块化设计:可插拔式功能模块、模块间接口定义5.2扩展性设计:支持插件开发、动态加载与卸载5.3性能优化:数据索引优化、查询优化、缓存机制5.4系统升级:版本管理、更新提示、升级策略总结:通过上述的详细阐述,我们可以看到,通讯录管理系统涵盖了用户界面设计、数据存储与管理、通讯录的分类与搜索功能、用户权限管理以及通讯录系统的扩展与升级等多个关键领域。

在该系统的设计过程中,我们需要重点关注用户友好性、数据安全性和系统的可扩展性。

通讯录管理系统课程设计报告

通讯录管理系统课程设计报告

通讯录管理系统课程设计报告一、引言通讯录管理系统是一种用于存储和管理联系人信息的应用程序,它可以帮助用户方便地记录和查找各种联系人信息。

在本课程设计报告中,我们将讨论通讯录管理系统的设计和实现过程,以及系统的功能特点和操作流程。

二、需求分析通讯录管理系统需要具备以下基本功能: 1. 添加联系人信息:用户可以输入姓名、电话号码、电子邮件地址等信息来添加新的联系人。

2. 查找联系人信息:用户可以通过姓名或电话号码等关键词来查找已添加的联系人信息。

3. 修改联系人信息:用户可以对已有联系人信息进行修改和更新。

4. 删除联系人信息:用户可以选择删除不需要的联系人信息。

5. 显示所有联系人信息:系统可以按照一定的格式将所有联系人信息展示给用户。

三、系统设计1. 数据结构为了存储联系人信息,我们可以使用一个包含姓名、电话号码、电子邮件地址等字段的结构体来表示每个联系人。

可以使用链表或数组来组织所有联系人信息。

2. 模块设计通讯录管理系统可以划分为以下几个模块: - 添加联系人模块:实现添加新联系人信息的功能。

- 查找联系人模块:实现根据关键词查找联系人信息的功能。

- 修改联系人模块:实现对已有联系人信息进行修改和更新的功能。

- 删除联系人模块:实现删除不需要的联系人信息的功能。

- 显示联系人模块:实现将所有联系人信息按照一定格式展示给用户的功能。

3. 用户界面设计用户界面应该简洁明了,包括各个功能的按钮或选项,以及输入框和显示信息的区域。

用户应该能够方便地进行各种操作和查看联系人信息。

四、系统实现1. 数据存储可以使用文件来存储联系人信息,也可以使用数据库来进行数据持久化。

2. 界面实现可以使用图形界面或命令行界面来实现用户交互功能,不同的界面设计会影响用户体验。

3. 功能实现根据需求分析中的功能,实现各个模块的功能代码,确保系统可以正确地完成相关操作。

五、功能测试在系统实现完毕后,需要进行功能测试,确保系统的各个功能都能正常运行,并且符合需求。

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

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

毕业设计(论文)题目通讯录管理系统的设计与实现姓名车维学号 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数据库设计与应用能力,软件文档、论文等文档写作能力;也要熟悉通讯录系统的基本的功能需求和界面易用性的设计。

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

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

学生课程设计题目:通讯录管理系统学生姓名:赵旺学号:124090102042 所在院(系):计算机与信息科学学院专业:2012级计算机科学与技术班级:(二)指导教师:冯韵2014年9月24日1 概述本次课程设计题目是通讯录管理系统,通讯录管理是一个比较实用的小型管理系统。

该设计采用菜单作文应用程序的主要界面,用控制语句来改变程序执行顺序,控制语句是实现结构化程序设计的基础。

贯穿始终的是程序各项功能的实现。

分为程序开始的主菜单和各实现部分几大部分。

主菜单部分主要解决的问题是程序开始选择问题,以及循环选择问题,其余各部分根据其实现功能完成代码设计。

2 需求分析2.1开发目的数据结构是计算机专业的主干课程之一,它旨在使读者学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据逻辑结构和存储结构,以及相应的运算,把现实世界中的问题转化为计算机内部的表示和处理。

2.2设计目的本课程设计的主要目的是使学生一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力;掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。

提供一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力,从而进一步提高了实际运用的能力。

2.3设计要求实现通讯录的建立和输出、通讯者的插入、删除和查询等几种操作功能。

用单链表作存储结构;用菜单作为应用程序的主要界面,主界面的主控菜单请按下形式给出:********************************************************************** 通讯录管理系统 ** 1.通讯录链表的建立 ** 2.通讯者结点的插入 ** 3.通讯者结点的查询 ** 4.通讯者结点的删除 ** 5.通讯录链表的输出 ** 0.退出通讯录管理系统 **********************************************************************请选择 0—5:使用数字0~5来选择菜单项,其他输入则不起作用,并给出错误提示。

个人通讯录管理系统课程设计

个人通讯录管理系统课程设计

个人通讯录管理系统课程设计1. 课题背景随着科技的快速发展,手机、互联网成为人们生活中不可或缺的一部分。

而个人通讯录作为常用的联系人管理工具,也随之变得越来越重要。

然而,传统的通讯录管理方式已经无法满足现代人的需求,需要一种更加高效、智能且便捷的个人通讯录管理系统。

2. 课题意义个人通讯录管理系统具有以下意义:•提高联系人管理效率:通过系统化的管理方式,能够快速、准确地查找和更新联系人信息,极大提高管理效率。

•便捷备份和恢复:个人通讯录管理系统能够自动备份联系人信息,避免意外丢失,在需要时可以方便地进行数据恢复。

•数据共享与同步:通过云服务等技术手段,实现联系人信息的共享和同步,方便在不同终端之间的使用。

•智能化管理:个人通讯录管理系统可以根据用户的使用习惯和需求,提供智能的搜索、分类和推荐功能,提升用户体验。

3. 系统设计要求个人通讯录管理系统应满足以下要求:1.用户管理:支持用户注册、登录、注销等功能,确保用户信息的安全和隐私。

2.联系人管理:–添加联系人:用户可以添加新的联系人,并填写详细的联系人信息。

–编辑联系人:用户可以对已有联系人进行编辑和更新操作。

–删除联系人:用户可以删除不需要的联系人记录。

–查找联系人:系统应提供便捷的查找功能,能够根据关键字、首字母等条件进行快速查找。

–排序联系人:用户可以按照姓名、公司、职位等字段对联系人进行排序。

–分类管理:用户可以为联系人进行分类管理,方便筛选和组织联系人。

3.通信功能:–拨打电话:用户可以直接在系统内拨打电话,省去手动输入号码的麻烦。

–发送短信:用户可以通过系统快速发送短信给联系人。

–发送邮件:用户可以通过系统发送邮件给联系人。

4.数据备份与恢复:系统应具备数据备份和恢复功能,保证联系人信息的安全性和可靠性。

5.数据同步:系统应支持数据同步,使得联系人信息可以在不同设备之间同步更新,并实现实时更新。

6.智能化管理:系统应提供智能的搜索、分类和推荐功能,使得用户能够更加高效地管理联系人。

通讯录管理系统 毕业论文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);}}}五、测试数据及其结果分析界面:添加:依次输入序号,姓名,简拼,性别,工作单位,地址,,手机,电子邮件,备注,提示是否连续添加。

通讯录管理系统课程设计

通讯录管理系统课程设计

课程设计设计(论文)题目:通讯录管理系统所在院:信息工程学院专业班级:计算机科学与技术2班学生姓名:全学号:201075指导教师:林目录摘要 (1)一、设计目的 (2)二、需求分析 (2)2.1设计题目 (2)2.2设计构思 (3)2.3运行界面需求 (3)2.4开发及运行环境 (3)三、模块分析及设计 (4)3.1系统功能结构图 (4)3.2系统数据流程图 (5)3.2.1 登陆模块设计 (5)3.2.2 联系人管理模块设计 (6)四、数据库设计 (7)4.1数据库需求分析 (7)4.2 数据表设计 (7)4.2.1、用户表(Users) (7)4.2.2、通讯录联系人表(Person) (8)五、系统实现 (8)5.1 ClassesManage类 (8)5.2 登录模块的实现 (12)5.3验证完成后进入主界面如下图 (15)5.4、添加模块的实现 (18)5.5、联系人信息管理模块实现 (20)六、设计总结 (25)致谢 (26)参考文献 (27)摘要通讯录管理系统是一个非常通用的管理系统。

很多地方都需要拥有自己的通讯录管理系统,以便对自己的同学、同事、朋友等信息资料的管理及使用。

本毕业设计以通用的通讯录管理系统为实例,运用SQL Server 2005和Microsoft Visual Studio 2008进行程序设计,讲述如何开发通讯录管理系统。

此设计具有很强的实用性,使用者只要根据具体情况稍加修改,就可以把它应用到实际需要中。

本设计主要包括系统用户管理模块、用户基本资料模块。

我们根据这些功能,设计出系统的功能模块,每一个功能模块都需要针对不同的表完成相同的数据库操作,具体实现了用户和人员信息的查看和预览;更新(添加、修改、删除)模块,具体实现了用户和(新)人员信息的登记,修改和删除;生成预览报表,具体实现了人员信息的总的查看和浏览。

设计利用Microsoft Visual Studio 2008 、SQL Server 2005数据库技术的基本特点,提高了编成效率和可靠性.关键词:通讯录管理系统、数据库、SQL、VS一、设计目的日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。

通讯录管理系统-实例

通讯录管理系统-实例

*******************实践教学*******************兰州理工大学计算机与通信学院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,当每一个功能使用完毕或输入错误时就会返回,再次调用菜单函数进入菜单界面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}break;
case 5:{
cout<<"*********请输入新的分组:*********"<<endl;
cin>>group ;
p->group=group;
cout<<"修改成功!!"<<endl;
}break;
}
}
}
if(x==0){cout<<"*********你要修改的联系人不存在!!!!*********"<<endl;}
}break;
case 5:{
cout<<"*********请输入新的分组:*********"<<endl;
cin>>group ;
p->group=group;
cout<<"修改成功!!"<<endl;
}break;
}
}
}
if(x==0){cout<<"*********你要修改的联系人不存在!!!!*********"<<endl;}
void addman();名 2.电话号码 4.地址 5.分组*********"<<endl;
cin>>n;
switch (n)
{
case 1:{
cout<<"*********请输入新的名字:*********"<<endl;
cin>>name;
p->name=name;
cout<<"修改成功!!"<<endl;
cin>>j;
switch(j){
case 1:{
();
}continue;
case 2:{
();
}continue;
case 3:{
();
}continue;
case 4:{
();
}continue;
case 5:{
();
}continue;
case 6:{
();
}continue;
case 0:{
}break;
case 2:{
cout<<"*********请输入新的的电话号码:*********"<<endl;
cin>>num;
p->num=num;
cout<<"修改成功!!"<<endl;
}break;
case 3:{
cout<<"*********请输入新的email:*********"<<endl;
本程序包含主程序模块,菜单选择模块和链表操作模块。调用关系如图所示:
主程序模块
菜单选择块
链表操作模块
2.系统子程序及功能设计
本系统共设置8个函数,其中 包含主函数,各函数名及功能说明如下:
void addman();加联系人 | ----★ ☆------"<<endl;
cout<<"----☆ ★------| 2.查询联系人 | ----★ ☆------"<< endl;
(3)删除联系人。可按姓名或序号删除联系人的信息。
(4)查询联系人。可按姓名或序号查询联系人的信息并输出。
(5)群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。
(6)输出通讯录。按顺序输出通讯录的全部信息。
(7)可选择是否保存并退出系统。
3.模块设计
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;};
cout<<"----☆ ★------| 0.退出系统 | ----★ ☆------"<< endl;
cout<<"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"<<endl;
cout<<" ★★★★★★请**选**择★★★★★★:" <<endl;
cout<<"----☆ ★----- | 4.修改联系人 | ----★ ☆------"<< endl;
cout<<"----☆ ★----- | 5.查看分组 | ----★ ☆------"<< endl;
cout<<"----☆ ★------| 6.输出全部联系人 | ----★ ☆------"<< endl;
}
}
return 0;
}
(2)添加联系人模块设计
void contact::addman()名 2.电话号码 4.地址 5.分组*********"<<endl;
cin>>n;
switch (n)
{
case 1:{
cout<<"*********请输入新的名字:*********"<<endl;
cin>>name;
}
}
void contact::group()加联系人 | ----★ ☆------"<<endl;
cout<<"----☆ ★------| 2.查询联系人 | ----★ ☆------"<< endl;
cout<<"----☆ ★------| 3.删除联系人 | ----★ ☆------"<< endl;
(2)编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。
(3)删除联系人。可按姓名或序号删除联系人的信息。
(4)查询联系人。可按姓名或序号查询联系人的信息并输出。
(5)群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。
char s;
cout<<"\n★是否要保存您的所有操作(Y/N): "<<endl;
cin>>s;
if(s=='Y')
();
exit(0);
}continue;
default :{cout<<"请输入正确的选择!!"<<endl;}
break;
}
}
return 0;
}
7.用户手册
1.本程序执行文件为“通讯录管理系统.exe”。
2.进入本系统之后,随即显示系统主菜单界面。用户可在该界面下输入各子菜单前对应的数字并按回车,执行相应子菜单命令。
题目2通讯录管理系统
一.设计要求
1、问题描述
设有一通讯录,记录联系人的联系信息,包括联系人姓名、联系人多个联系电话、邮箱、联系地址以及所属群组。联系人按姓氏序列升序排列并按顺序编号。使用者能根据姓名或编号对联系人信息进行增删改查。请编制一程序模拟该通讯录的管理。
2、设计要求
1)基本要求
(1)新建联系人。输入联系人的姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。
case 6:{
();
}continue;
case 0:{
char s;
cout<<"\n★是否要保存您的所有操作(Y/N): "<<endl;
cin>>s;
if(s=='Y')
();
exit(0);
}continue;
default :{cout<<"请输入正确的选择!!"<<endl;}
break;
2.存储结构设计
本系统主要采用链表结构类型存储联系人信息。
3.系统功能设计
本系统分为以下7个功能模块。
(1)添加联系人:添加联系人子模块可完成添加联系人姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。
(2)编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。
p->name=name;
cout<<"修改成功!!"<<endl;
}breaห้องสมุดไป่ตู้;
case 2:{
cout<<"*********请输入新的的电话号码:*********"<<endl;
cin>>num;
p->num=num;
cout<<"修改成功!!"<<endl;
相关文档
最新文档