通讯录管理系统数据库设计

合集下载

通讯录管理系统设计报告

通讯录管理系统设计报告

通讯录管理系统设计报告一、引言通讯录在日常生活中扮演着重要的角色,用来存储和管理各种联系人信息,方便人们随时找到需要联系的人或组织。

随着移动互联网的普及,通讯录的管理变得更加便捷和高效。

为了提高通讯录的管理效率,我们设计并开发了一款通讯录管理系统。

二、系统概述通讯录管理系统是一个基于Web的应用程序,用户可以通过浏览器访问系统,进行通讯录的管理操作。

系统主要包括以下功能:•用户登录与注册:用户可以注册新账号,并通过账号密码登录系统。

•联系人管理:用户可以添加、编辑、删除联系人信息,包括姓名、电话号码、邮箱等。

•分组管理:用户可以创建分组并将联系人归类到不同分组。

•搜索功能:用户可以通过关键词搜索联系人信息。

•导出和导入功能:用户可以将联系人信息导出为Excel表格,并可以通过Excel文件导入联系人到系统中。

三、系统架构通讯录管理系统采用了前后端分离的架构,前端使用Vue.js框架开发,提供友好的用户界面;后端使用Node.js和Express框架搭建RESTful API,负责数据的存储和管理。

系统中的数据存储在MySQL数据库中,用户的密码使用bcrypt进行加密存储,确保用户信息的安全性。

同时,系统对用户权限进行了细致管理,保障用户在系统中的数据安全。

四、系统界面系统的界面设计简洁直观,用户可以轻松进行操作。

主要包括登录页面、通讯录首页、联系人管理页面、分组管理页面等。

用户登录页面:[登录页面截图]通讯录首页:[通讯录首页截图]联系人管理页面:[联系人管理页面截图]五、系统特色•简洁高效:系统操作简单直观,提供了快速的联系人管理功能。

•个性化定制:用户可以根据自己的需求创建分组,快速查找联系人。

•数据安全:采用了加密技术和权限管理,确保用户数据的安全性。

•导入导出功能:支持Excel文件导入导出,方便用户管理大批量联系人信息。

六、未来展望通讯录管理系统将继续进行优化和迭代,引入更多智能化功能,如联系人推荐、消息提醒等,提升用户体验。

数据结构 通讯录管理系统

数据结构 通讯录管理系统

数据结构通讯录管理系统数据结构通讯录管理系统1、引言1.1 目的和范围本文档旨在详细描述一个通讯录管理系统的设计和实现,以便帮助开发人员了解系统的功能和特性。

本系统可以用于存储和管理个人联系信息,实现添加、删除、修改和查询等功能。

1.2 定义、缩略语和缩写词- 通讯录:存储个人联系信息的系统。

- 系统:通讯录管理系统。

2、总体概述2.1 系统背景通讯录管理系统是为了方便用户管理个人联系信息而开发的软件。

它提供了一系列功能,包括添加联系人、删除联系人、修改联系人信息以及搜索联系人等。

该系统旨在提供一个高效、方便和可靠的通讯录管理解决方案。

2.2 产品功能- 添加联系人:用户可以添加新的联系人,并输入其姓名、方式号码、电子邮箱等信息。

- 删除联系人:用户可以删除已经存在的联系人。

- 修改联系人信息:用户可以修改已经存在的联系人的姓名、方式号码、电子邮箱等信息。

- 搜索联系人:用户可以根据姓名、方式号码等信息搜索联系人。

- 显示所有联系人:系统可以显示所有已经存在的联系人。

2.3 用户特点通讯录管理系统的主要用户群体为个人用户,他们需要管理自己的联系人信息。

这些用户对于系统的易用性、稳定性和功能性要求较高,因此系统需要提供简单直观的用户界面,并保证操作的正确性和数据的安全性。

3、系统需求3.1 功能需求3.1.1 添加联系人- 用户可以输入联系人的姓名、方式号码、电子邮箱等信息进行添加。

- 系统应该对输入进行合法性检查,确保输入的信息符合格式要求。

- 添加联系人后,系统应该将联系人信息保存到数据库中。

3.1.2 删除联系人- 用户可以删除已经存在的联系人。

- 删除联系人后,系统应该将联系人信息从数据库中删除。

3.1.3 修改联系人信息- 用户可以修改已经存在的联系人的姓名、方式号码、电子邮箱等信息。

- 系统应该对输入进行合法性检查,确保输入的信息符合格式要求。

- 修改联系人信息后,系统应该将修改后的联系人信息保存到数据库中。

Java通讯录管理系统设计报告

Java通讯录管理系统设计报告

Java通讯录管理系统设计报告1. 引言随着社会发展和信息技术的进步,通讯录在人们的日常生活和工作中变得越来越重要。

Java通讯录管理系统是一种用于管理个人和组织联系信息的软件系统。

本篇文档将详细介绍Java通讯录管理系统的设计和实现。

2. 功能需求Java通讯录管理系统具有以下功能需求: - 添加联系人:用户可以添加新的联系人,包括姓名、电话号码、电子邮件等相关信息。

- 删除联系人:用户可以删除已存在的联系人。

- 编辑联系人:用户可以修改已存在联系人的信息。

- 搜索联系人:用户可以根据姓名、电话号码或其他关键字搜索联系人。

- 显示联系人列表:用户可以查看所有联系人的列表,并按照姓名或其他方式进行排序。

- 导入/导出联系人:用户可以将联系人导入/导出到文件中,以实现数据的备份和共享。

3. 系统设计3.1 技术栈选择Java通讯录管理系统采用Java语言进行开发,使用Java的面向对象特性来实现系统的各个功能模块。

系统使用MySQL数据库来存储联系人的信息。

3.2 系统架构Java通讯录管理系统采用三层架构,分为表示层、业务逻辑层和数据访问层。

•表示层:负责与用户的交互,包括图形界面和用户输入输出的处理。

•业务逻辑层:负责处理用户的请求,对联系人信息进行增加、删除、编辑、搜索等操作,并调用数据访问层进行数据的读写。

•数据访问层:负责与数据库交互,进行联系人信息的读写操作。

3.3 类设计在Java通讯录管理系统中,主要涉及以下类的设计: - Contact类:表示一个联系人,包含姓名、电话号码、电子邮件等属性。

- ContactDAO接口:定义对联系人的增删改查等操作。

- ContactDAOImpl类:实现ContactDAO接口,负责与数据库进行交互。

- ContactService类:负责处理业务逻辑,调用ContactDAOImpl 类进行联系人信息的操作。

- ContactConsole类:表示层的用户界面,处理用户输入输出和展示联系人信息。

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

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

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

通讯录管理系统

通讯录管理系统

通讯录管理系统姓名:学号:班级:导师:目录摘要 (2)第一部分 (3)1.1设计构思 (3)1.2系统数据流图: (4)1.3系统数据流程图: (5)1.4系统功能结构图: (6)1.5管理员用户部分功能图: (6)1.6普通用户部分功能图: (6)1.7开发及运行环境: (7)第二部分数据库设计: (7)2.1用户信息表(tb_User): (7)2.2资料信息表(tb_info) (8)第三部分通讯录管理系统的实现 (9)3.1 公共类的编写 (9)3.1.1 OperateAndValidate.cs类 (10)3.1.2 OperateAndValidate.cs类 (12)3.2 系统登录模块设计: (13)3.3 系统主窗体块模块设计:......................................................... 错误!未定义书签。

3.4 添加用户窗体块模块设计:................................................. 错误!未定义书签。

3.5 添加窗体块模块设计:......................................................... 错误!未定义书签。

3.6 修改密码窗体块模块设计:................................................. 错误!未定义书签。

第四部分总结 .............................................. 错误!未定义书签。

摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。

而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。

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

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

《数据结构》课程设计题目:学生通讯录管理系统设计与实现院、系:计算机信息与技术系学科专业:计算机科学与技术学号: ********* 学生姓名:**指导教师:目录第一章设计要求 (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.显示通讯簿的所有信息。

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

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

数据结构课程设计通讯录管理系统报告前言通讯录管理系统是一种常见的应用程序,用于帮助用户有效地组织和管理他们的联系人信息。

本报告旨在介绍和分析一个基于数据结构设计的通讯录管理系统,其中实现了基本的通讯录功能,并且通过合适的数据结构和算法进行优化。

功能需求通讯录管理系统需要实现以下基本功能: - 添加联系人信息 - 查找联系人信息 - 删除联系人信息 - 更新联系人信息 - 显示所有联系人信息数据结构选择为了实现通讯录管理系统的功能,我们选择使用链表作为数据结构。

链表是一种简单而灵活的数据结构,可以动态地添加或删除节点,非常适合存储联系人信息这种动态的数据。

在这里,我们采用双向链表,使得查找、插入和删除操作更加高效。

算法设计添加联系人信息添加联系人信息时,我们需要遍历链表找到合适的位置插入新节点,这里的算法复杂度为O(n),其中n表示链表的长度。

查找联系人信息查找联系人信息时,我们需要遍历链表查找目标节点,这里的算法复杂度为O(n)。

删除联系人信息删除联系人信息时,我们同样需要遍历链表找到目标节点并删除,其算法复杂度为O(n)。

更新联系人信息更新联系人信息时,我们首先需要查找到目标节点,然后进行更新操作,其算法复杂度也为O(n)。

系统优化为了提高系统的性能,我们可以通过以下几种方式进行优化: - 使用哈希表索引联系人信息,减少查找联系人的时间复杂度; - 引入缓存机制,减少频繁的IO 操作。

总结通过本报告的介绍和分析,我们了解了一个基于数据结构设计的通讯录管理系统的实现原理和优化方法。

在实际应用中,针对具体需求和场景,我们可以进一步优化系统性能,提升用户体验。

通讯录管理系统作为一种简单而实用的应用程序,将在日常生活中发挥重要作用。

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

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

学生通讯录管理系统数据结构课程设计一、需求分析在学生通讯录管理系统中,我们需要实现以下功能:1.学生信息的录入与管理2.通讯录信息的增删查改3.数据的持久化存储二、系统设计1. 数据结构设计为了实现学生通讯录管理系统的功能,我们需要设计以下数据结构:•学生信息结构体包括学号、姓名、性别、年龄等字段•通讯录信息结构体包括联系人姓名、电话号码、邮箱等字段2. 算法设计2.1 添加学生信息当用户选择添加学生信息时,系统会要求用户输入学号、姓名、性别、年龄等信息,然后将这些信息存储在学生信息的数据结构中。

void addStudentInfo() {// 读取用户输入的学生信息// 将学生信息存储在学生信息结构体中}2.2 修改通讯录信息用户可以根据联系人姓名查找通讯录信息,并进行修改操作,比如修改电话号码、邮箱等内容。

void modifyContactInfo() {// 根据联系人姓名查找通讯录信息// 用户进行修改操作}2.3 删除通讯录信息用户可以根据联系人姓名删除通讯录信息。

void deleteContactInfo() {// 根据联系人姓名删除通讯录信息}3. 数据存储设计为了持久化存储数据,我们可以选择使用文件存储或数据库存储。

在本系统中,我们选择文件存储的方式,数据以文本的形式存储在文件中。

三、系统实现通过以上设计,我们可以开始实现学生通讯录管理系统。

在实现过程中,我们需要注意保证数据结构的正确性和数据操作的合法性,从而确保系统的稳定性和可靠性。

四、总结通过本次数据结构课程设计,我们深入了解了学生通讯录管理系统的实现原理和功能设计。

在接下来的学习中,我们将继续努力提升自己的编程能力,不断完善系统的功能和性能,为实现更多复杂系统打下坚实的基础。

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

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

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

具体需求包括: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;}```六、系统测试在完成系统的开发后,需要进行全面的测试以确保系统的稳定性和可靠性。

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

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

通讯录管理系统数据库课程设计一、课程设计背景随着互联网和智能手机的普及,通讯录成为人们日常生活中不可或缺的一部分。

而对于企业和组织来说,通讯录更是必不可少的管理工具。

为了提高学生对数据库课程的实际应用能力,本课程设计旨在设计一个通讯录管理系统数据库,作为学生课程设计的项目,帮助学生深入理解数据库的概念和操作。

二、课程设计目标本课程设计的目标是让学生通过实际设计一个通讯录管理系统数据库,掌握数据库设计的基本原理和方法,包括数据库的规范化、关系模式的设计、SQL语言的应用等方面的知识。

通过完成课程设计,学生将能够提高解决问题的能力,锻炼团队合作和交流能力。

三、课程设计内容1. 系统需求分析1.1 确定系统的功能和性能需求1.2 确定系统的使用环境和用户特点2. 数据库设计2.1 确定数据库的实体和关系2.2 设计数据库的表结构和约束条件2.3 进行数据库规范化设计3. 系统实现3.1 使用MySQL或Oracle等数据库管理系统搭建数据库3.2 使用Java、C#等编程语言编写系统的界面和逻辑代码3.3 实现系统的基本功能,包括添加通信人、编辑通信人信息、查找通信人、删除通信人等功能4. 系统测试4.1 对系统进行功能测试和性能测试4.2 修复系统中出现的bug和问题5. 系统部署5.1 部署系统到本地服务器或云服务器5.2 进行系统的上线和维护四、课程设计流程1. 分组确定课程设计题目学生按照班级和兴趣分组,确定课程设计的具体题目和要求。

2. 系统需求分析学生对系统的功能和性能需求进行分析,编写系统需求规格说明书。

3. 数据库设计学生根据系统需求规格,设计系统的数据库结构和约束条件,完成数据库设计文档。

4. 系统实现学生根据数据库设计文档,使用相应的数据库管理系统搭建数据库,编写系统的界面和逻辑代码。

5. 系统测试学生对系统进行功能测试和性能测试,并记录测试结果,修复系统中出现的bug和问题。

6. 系统部署学生将完成的系统部署到本地服务器或云服务器,并进行上线和维护。

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

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

通讯录管理系统数据库课程设计报告湖南涉外经济学院课程设计报告课程名称数据库原理与应用课程设计题目通讯录管理系统组员学院信息科学与工程学院班级指导教师2015年 12月 30 日任务分配表摘要随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须经常与亲戚、朋友、同学、同事保持联系,但是有时候存在着许多的限制条件,比如怎样找到交流对象的各种信息?可能你会想到现实生活中的手机等通讯工具,由于这些工具的单一性,不可能在第一时间找到自己想要的信息资料,因此,为了能够快速查找到联系人的信息,节省查找时间,开发通讯录管理系统。

通讯录管理系统是一个基于SQL数据库储存和JAVA界面模式的个人通讯录管理系统。

它是将自己的联系人的具体信息集中管理,成为一个方便人们使用的小软件。

在开发过程中主要运用Java, SQL Server技术,由于开发工具和数据库之间的良好使用,可以为开发带来方便,使之成为一个可施行的系统。

从而达到开发的目的-----实现对通讯录信息的管理。

通过采用相关技术,以及老师的辅导和同学们的帮助,将系统设计的功能全部实现。

功能包括:用户的登录, 添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯的联系人,并且可以根据数据表的各字段来查询你所要找的联系人等功能关键词: SQL Server,JAVA。

目录摘要 (5)第一章绪论 (9)1.1目的 (9)1.2背景 (9)1.3研究内容 (9)第二章数据库需求分析 (10)2.1 通讯录系统的功能 (10)2.2通讯录系统的数据流 (10)2.3 通讯录系统数据流程图 (11)2.4通讯录的数据字典 (12)第三章数据库概念结构设计 (15)3.1实体 (15)3.2实体间包括 (15)3.3 实体属性图 (15)3.4局部E-R图 (16)第四章数据库逻辑设计 (18)4.1 E-R图转化而得到的关系模式 (18)4.2 由关系模式转换得到的函数依赖.. 184.3 关系模式优化 (18)4.4 对优化后的关系模式的结构 (18)第五章数据库实施 (20)5.1数据库创建代码 (20)5.2数据库表创建代码 (21)5.2.1用户表 (21)5.2.2联系人表 (21)5.2.3分组表 (22)5.3视图创建代码 (23)5.4存储过程代码创建 (24)第六章数据库运行和维护 (26)6.1登陆模块 (26)6.2联系人界面 (26)6.3朋友分组界面及详细查询 (27)6.4同学分组界面及详细查询 (27)6.5同事分组界面及详细查询 (28)6.6查询界面 (29)6.7增加界面 (30)6.8修改界面 (30)6.9删除界面 (31)第七章总结 (32)参考文献 (33)第一章绪论1.1目的个人通讯录是当前每个人不可缺少的信息系统,目前以纸质通讯录最为普遍。

通讯录管理系统毕业设计(两篇)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. 功能实现根据需求分析中的功能,实现各个模块的功能代码,确保系统可以正确地完成相关操作。

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

学生通讯录管理系统设计(数据结构)

学生通讯录管理系统设计(数据结构)

学生通讯录管理系统设计(数据结构)一、总体设计1、系统开发环境本系统采用C++语言,运行在Windows平台上,数据库采用MySQL。

2、系统功能(1)登陆:系统登录,验证用户名/密码,权限认证等。

(2)新增:新增学生通讯录信息,包括姓名、联系电话、地址、备注等信息。

(3)修改:修改学生通讯录信息,可以修改学生姓名、联系电话、地址等信息。

(4)删除:删除学生通讯录信息,可以根据姓名、联系电话删除学生的通讯录信息。

(5)查询:可以根据姓名、联系电话查询学生的通讯录详细信息。

(6)权限管理:根据用户类别对不同用户进行不同级别的权限管理。

(7)数据管理:根据学生查询,统计学生的报表信息和查询结果,可以对学生的通讯录数据实行一定的数据管理。

3、数据结构用于存储、管理学生通讯录信息的数据结构,采用链表法。

首先将学生信息定义为一个结构体,包含学生的姓名、联系电话、联系地址等信息,此构造体可存储学生一种或者多种信息;然后建立一个学生链表来存储学生信息,每个结点中存放学生结构体,在链表末尾增加一个指向学生链表头结点的指针,即实现了学生通讯录的输出。

二、模块分解1、登录模块实现用户名/密码的验证,权限的认证,权限管理等功能。

2、新增模块用于实现新增学生信息,信息包括姓名、联系电话、联系地址等,并将学生信息存放到学生链表中。

4、删除模块用于实现删除学生信息,使用链表的查找、删除等来实现。

6、权限管理模块用于实施对不同用户类别的权限管理,实现对不同用户类别的权限管理,保证数据的安全。

7、数据管理模块用于实施对学生数据的安全,统计报表信息,数据标准化处理。

数据结构课程设计-简易手机通讯录管理系统

数据结构课程设计-简易手机通讯录管理系统

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

基本功能如下:(1)联系人信息录入、添加功能:包括手机号(此处用短号,5位,不能重复)、姓名、家庭住址的录入和添加。

(2)联系人信息查询功能:能①按手机号进行查询。

②按联系人姓名进行查询。

(3)排序:①能按手机号升序进行排序;②能按姓名进行升序排序,姓名相同时按手机号从小到大进行排序(4)联系人信息的修改、删除功能:①按手机号进行联系人信息的修改和删除。

②按姓名进行联系人信息的修改和删除,多个姓名时,再指定具体的号码。

(5)统计功能:统计自己的联系人有多少个。

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

(2)界面设计//菜单函数int menu(){int c;printf("\n\n\t☆☆☆☆☆☆☆手机通讯录信息管理系统☆☆☆☆☆☆☆☆\n\n");printf("******************************************************************* ***\n");printf(" 1.添加联系人信息\n");printf(" 2.查询联系人信息\n");printf(" 3.对联系人信息进行排序\n");printf(" 4.修改联系人信息\n");printf(" 5.删除联系人信息\n");printf(" 6.统计联系人个数\n");printf(" 0.退出信息管理系统\n");printf("******************************************************************* ***\n\n");printf("★请输入您的选择(0-6):");while(1){scanf("%d",&c);if(c<0||c>6)printf("\n▲输入错误!请重新选择:");elsebreak;}return c;}//主函数void main(){SqList * L;InitList(L);system("color 3f");while(1){switch(menu()){case 1:system("cls");printf("\n\t\t\t信息的增加\n");ListAdd(L);break;case 2:system("cls");printf("\n\t\t\t信息的查询\n");Search(L);break;case 3:system("cls");printf("\n\t\t\t对信息进行排序\n");Paixu(L);break;case 4:system("cls");printf("\n\t\t\t信息的修改\n");ListModify(L);break;case 5:system("cls");printf("\n\t\t\t信息的删除\n");Delete(L);break;case 6:system("cls");printf("\n\t\t\t统计联系人个数\n");ListLength(L);break;case 0:printf("再见!\n");return;default:printf("\n▲输入错误!请重新选择:");break;}}}(3)功能模块的实现初始化顺序表void InitList(SqList *&L)L=(SqList *)malloc(sizeof(SqList));L->length=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一、设计目的日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。

通讯录管理系统的设计与实现

通讯录管理系统的设计与实现

通讯录管理系统设计与实现一、内容和要求(1)完成通信录信息的管理,包括添加、修改、删除、查询功能。

尽量丰富联系人的各项信息。

(2)能够根据联系的信息单独或分类查询。

(3)联系人的生日提醒功能。

(4)数据存储功能可以使用文件的块读写操作完成,也可以使用SQLite数据库(要学习如何用C/C++连接SQLite数据库)二、需求分析(1)添加:在系统中添加新成员,并保存在文件“通讯录.txt”中;(2)修改:读入要修改成员的姓名,按照提示进行修改;(3)删除:读入要删除成员的姓名,将进行删除;(4)保存:将所有成员数据保存在文件“通讯录.txt”中;(5)查找:读入要查找成员的姓名,查找成员将显示在屏幕上;三、实现代码#include<iostream>#include<string>#include<fstream>using namespace std;static int count=0;class telephone{char name[20]; //姓名char number[17]; //电话号码char birthday[18]; //生日int year,month,day,hour,minute,age;public:telephone(char *na,char *nu,int y,int m,int d,int h,int mi,int a);telephone(){};// ~telephone();char *getname(); //获得姓名char *getnumber(); //获得电话号码int getyear(); //获得年份int getmonth(); //获得月份int getday(); //获得日int gethour(); //获得小时int getminute(); //获得分钟int getage(); //获得年龄void display(); //输出信息void input(); //添加信息void insert(); //插入信息void Delete(); //删除信息void change(); //改变信息static int getcount();};//int telephone::count=0;telephone::telephone(char *na,char *nu,int y,int m,int d,int h,int mi,int a){strcpy(name,na);strcpy(number,nu);year=y;month=m;day=d;hour=h;minute=mi;age=a;// count++;}char *telephone::getname() //获得姓名{return name;}char *telephone::getnumber() //获得电话号码{return number;}int telephone::getyear() //获得年份{return year;}int telephone::getmonth() //获得月份{return month;}int telephone::getday() //获得日{return day;}int telephone::gethour() //获得小时{return hour;}int telephone::getminute() //获得分钟{return minute;}int telephone::getage() //获得年龄{return age;}void telephone::display() //输出信息{cout<<"姓名:"<<name<<endl;cout<<"年龄:"<<age<<endl;cout<<"号码:"<<number<<endl;cout<<"生日:"<<hour<<":"<<minute<<" "<<year<<"-"<<month<<"-"<<day<<endl;}void telephone::input() //输入信息{char na[20];cout<<"输入姓名:";cin>>na;strcpy(name,na);cout<<"输入年龄:";cin>>age;cout<<"输入电话号码:";cin>>number;cout<<"输入生日(按时、分、年、月、日的顺序):";cin>>hour>>minute>>year>>month>>day;count++;}void telephone::insert () //插入信息{if(!age)input();}void telephone::Delete () //删除信息{strcpy(name,(this+1)->name);strcpy(number,(this+1)->number);hour=(this+1)->hour;minute=(this+1)->minute;year=(this+1)->year;month=(this+1)->month;day=(this+1)->day;age=(this+1)->age;count--;}void telephone::change() //改变信息{cout<<"please input again!"<<endl;input();}int telephone::getcount(){return count;}const int N=20;void menu();void createfile(char *a,telephone *array);void outputtel(telephone *array);void inputtel(telephone *array);int searchtel(telephone *array,char *na);bool inserttel(telephone *array);bool Deletetel(telephone *array,char *na);int main(){telephone array[N];int choice; //读入选项do{menu();cout<<"please input your choice:";cin>>choice;if(choice>=0 && choice<=6)switch(choice){case 1:inputtel(array); break;case 2:cout<<"input the name searched"<<endl;char na[20];cin>>na;int i;i=searchtel(array,na);if(i==N)cout<<"无此人!\n";elsearray[i].display();break;case 3:outputtel(array);break;case 4:if(inserttel(array))cout<<"成功插入一条记录!"<<endl;elsecout<<"插入失败!"<<endl;break;case 5:cout<<"input the name deleted:"<<endl;char na1[20];cin>>na1;// system("cls");if(Deletetel(array,na1))cout<<"成功删除一条记录!"<<endl;elsecout<<"删除失败!"<<endl;break;case 6:cout<<"input the name changed:"<<endl;cin>>na;i=searchtel(array,na);if(i==N)cout<<"没有此联系人,改变失败"<<endl;elsecout<<"被改变联系人的信息为:"<<endl;array[i].display ();cout<<"改变后的信息为:"<<endl;array[i].Delete ();array[i].change ();break;default:break;}}while(choice);createfile("通讯录.txt",array);return 0;}void menu() //定义菜单函数{cout<<"*********1.添加联系人*********"<<endl;cout<<"*********2.查询联系人信息*********"<<endl;cout<<"*********3.浏览联系人信息*********"<<endl;cout<<"*********4.插入联系人*********"<<endl;cout<<"*********5.删除联系人*********"<<endl;cout<<"*********6.改变联系人信息*********"<<endl;cout<<"*********0.退出*********"<<endl;}void createfile(char *a,telephone *array){ofstream outf(a);if(!outf){cout<<"can't open the file\n";return;}for(int i=0;i<count;i++){outf<<"姓名:";outf<<" "<<array[i].getname ()<<endl;outf<<"电话:";outf<<" "<<array[i].getnumber ()<<endl;outf<<"年龄:";outf<<" "<<array[i].getage ()<<endl;outf<<"生日:";outf<<" "<<array[i].gethour ()<<array[i].getminute();outf<<array[i].getyear ()<<"-"<<array[i].getmonth ()<<"-"<<array[i].getday ()<<endl;}outf.close ();}void outputtel(telephone *array) //输出对象信息{cout<<"学生总数="<<count<<endl;for(int i=0;i<count;i++)array[i].display();}int searchtel(telephone *array,char *na) //按姓名查找{int i,j=N;for(i=0;i<N;i++)if(strcmp(array[i].getname(),na)==0){j=i;break;}return j;}void inputtel(telephone *array) //输入对象元素{char ch;int i=0;do{if(telephone::getcount()==N)cout<<"人数已满,无法继续录入!"<<endl;if(!array[i].getage())array[i++].input();array[count].input();cout<<"继续输入吗?(Y or N)"<<endl;cin>>ch;}while(ch=='Y');}bool inserttel(telephone *array) //根据年龄插入{if(telephone::getcount()==N){cout<<"人数已满,无法插入!"<<endl;return false;}// else// for(int j=0;j<N;j++)// {// if(array[j].getage())// {// cout<<"无法插入!";// return false;// }// }for(int i=0;array[i].getage() ;i++);array[i].insert();return true;}bool Deletetel(telephone *array,char *na) //按姓名删除{if(telephone::getcount()==0){cout<<"没有记录,无法删除!"<<endl;return false;}int i=searchtel(array,na);if(i==N){cout<<"查无此人,无法删除!"<<endl;return false;}array[i].Delete();return true;}四、运行结果。

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

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

通讯录管理系统课程设计报告Java1. 简介通讯录管理系统是一种方便用户存储和管理联系人信息的工具。

本课程设计将使用Java语言开发一个简单的通讯录管理系统,实现对联系人信息的增删改查功能。

通过本项目的实践,学习者将掌握Java编程语言的基础知识和面向对象编程的技巧。

2. 功能需求通讯录管理系统应包含以下功能: - 添加联系人信息:用户可以输入联系人的姓名、电话号码、邮箱等信息添加到通讯录中。

- 显示所有联系人信息:系统能够展示所有已保存在通讯录中的联系人信息。

- 查找联系人信息:用户可以通过姓名或电话号码查找特定联系人的信息。

- 修改联系人信息:用户可以对已保存的联系人信息进行修改。

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

实现以上功能需要设计相应的数据结构和算法,以及编写用户交互界面。

3. 技术实现3.1 数据结构在Java中,可以使用ArrayList或HashMap等数据结构来存储联系人信息。

ArrayList适用于有序的联系人列表,而HashMap适用于根据键值快速查找联系人信息。

3.2 用户交互界面用户交互界面可以通过Java的Swing或JavaFX等GUI工具包来实现。

设计一个简洁明了的界面,包含菜单栏、输入框、按钮等组件,以方便用户操作。

3.3 功能实现•添加联系人信息:用户输入信息后,将联系人信息添加到数据结构中。

•显示所有联系人信息:遍历数据结构,将所有联系人信息展示在界面上。

•查找联系人信息:根据用户输入的查询条件,在数据结构中查找对应的联系人信息。

•修改联系人信息:根据用户输入的修改信息,更新数据结构中相应的联系人信息。

•删除联系人信息:根据用户输入的删除条件,从数据结构中移除对应的联系人信息。

4. 总结通讯录管理系统是一个简单实用的应用程序,能够帮助用户有效管理联系人信息。

通过本课程设计,学习者将学习如何使用Java语言开发基本的应用程序,掌握面向对象编程的基本原理和技巧。

数据结构-通讯录管理系统的设计与实现汇总

数据结构-通讯录管理系统的设计与实现汇总

数据结构-通讯录管理系统的设计与实现汇总简介本篇文档介绍了如何使用数据结构实现一个简单的通讯录管理系统。

包括系统的需求分析、数据结构选择、程序设计与实现等方面。

需求分析通讯录管理系统的核心功能是记录联系人信息,包括姓名、电话号码、电子邮件地址等。

该系统需要支持以下操作:1.添加联系人2.删除联系人3.查找联系人4.修改联系人信息5.显示所有联系人除了核心功能以外,通讯录管理系统还需要具有以下扩展功能:1.根据姓名或电话号码排序2.将联系人信息导入/导出文件3.显示某个分组的联系人数据结构选择为了支持以上功能,我们需要选择合适的数据结构来存储联系人信息。

常见的数据结构有数组、链表、栈、队列、哈希表等。

对于通讯录管理系统,我们可以使用链表来存储联系人信息。

每个节点包含一个指向下一节点的指针和联系人信息。

这种方式可以方便地插入、删除联系人信息,同时节省存储空间。

排序可以使用快速排序(QSort)、归并排序等算法实现。

导入/导出文件可以使用文件读写操作实现。

分组显示则可以使用多个链表来分别存储不同分组的联系人信息。

程序设计与实现以下是通讯录管理系统的程序设计与实现的主要流程:1.定义联系人结构体,包含姓名、手机号、邮箱等字段。

2.定义联系人节点结构体,包含指向下一节点的指针和联系人信息结构体。

3.实现通讯录管理系统功能函数,包括添加联系人、删除联系人、查找联系人、修改联系人信息、显示所有联系人等。

4.实现排序算法,如快速排序和归并排序。

5.实现文件读写操作,包括将联系人信息导入/导出文件。

6.实现分组显示功能,使用不同链表存储不同分组的联系人信息。

以上是通讯录管理系统的设计与实现汇总。

在数据结构的选择上,我们选择了链表作为存储通讯录联系人信息的数据结构,使用排序算法进行排序,使用文件读写操作进行导入/导出操作,使用多个链表实现分组显示功能。

在功能实现上,分别实现了添加联系人、删除联系人、查找联系人、修改联系人信息、显示所有联系人等核心功能以及排序、导入/导出、分组显示等扩展功能。

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

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

学生通讯录管理系统课程设计报告一、课程设计背景学生通讯录管理系统是一个旨在帮助学生和教师更好地管理个人信息和通讯录的软件系统。

随着信息技术的不断发展,现代教育领域对教学、管理和学习等方面的要求越来越高,传统的纸质通讯录管理方式已经无法满足教育机构的需求。

因此,开发一个便捷、高效的学生通讯录管理系统成为当今教育信息化的重要课题。

二、需求分析学生通讯录管理系统主要包括以下功能模块:1.学生信息管理:用于录入、修改和删除学生个人信息,包括姓名、学号、性别、联系方式等;2.通讯录管理:实现通讯录的分类、查找、添加和删除功能,方便学生和教师进行联系;3.用户权限管理:设置不同权限等级的用户,如学生、教师和管理员,确保信息安全性;4.数据备份与恢复:对系统中的重要数据进行定期备份,保障数据的安全性;5.界面友好性:系统界面简洁明了,操作便捷,用户体验良好。

三、系统设计1. 系统架构学生通讯录管理系统采用客户端-服务器架构,客户端提供给学生和教师使用,服务器端用于存储核心数据和处理业务逻辑。

2. 数据库设计系统采用关系型数据库,主要包括以下表:•学生表(Student):包含学生的基本信息;•教师表(Teacher):包含教师的基本信息;•通讯录表(Contact):记录学生或教师之间的联系方式;•用户表(User):存储系统用户的账号信息和权限。

3. 功能实现(1)学生信息管理学生信息管理模块提供学生信息的增删改查功能,管理员可以对学生信息进行修改和删除,学生可以查看、修改自己的个人信息。

(2)通讯录管理通讯录管理模块支持对通讯录的分类和搜索功能,学生和教师可以添加、删除通讯录条目,并对通讯录进行管理。

(3)用户权限管理系统设定不同权限等级的用户,管理员有最高权限,可以管理用户账号和角色,确保系统的安全性。

四、系统实现系统采用Java语言进行开发,前端界面使用JavaFX技术,后端采用Spring框架实现业务逻辑,数据库连接采用JDBC等技术。

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

通讯录管理系统数据库设计与实现1 需求简介(赵河南)1.1功能概述1.2数据要求功能中涉及的数据项说明。

1.用分组基本信息(Admin):包括分组号、分组名;2.用户基本信息(Dormitory):包括账号、密码、昵称、个性签名,这样可以方便分清用户记录的联系人;3.联系人基本信息(linkman):包括姓名、性别、关系、手机号、座机号、QQ、E-mail、生日、工作单位、地址、所属用户、所属分组;1.3数据字典数据项列表数据项编号数据项名数据项含义与其它数据项的关系存储结构别名TXL-1G_number分组号CHAR(10)TXL-2G_name分组名CHAR(20)TXL-3ID所属用户等同于账号ID CHAR(10)TXL-4ID账号CHAR(10)TXL-5Nickname昵称CHAR(20)TXL-6Password密码CHAR(20)TXL-7Qianming签名CHAR(50)TXL-8L_number联系人号CHAR(100)TXL-9Name姓名CHAR(20)TXL-10Sex性别CHAR(2)TXL-11Concern关系CHAR(10)TXL-12Phone手机号CHAR(11)TXL-13Landline座机号CHAR(10)TXL-14QQ QQ号CHAR(10)TXL-15Email E-mail CHAR(20)TXL-16Work工作单位CHAR(30)TXL-17Address地址CHAR(30)TXL-18Birthday生日Date数据结构列表数据结构编号数据结构名数据结构含义组成DS-1Grouping分组G_number,G_name,ID,DS-2Worker用户ID,Nickname,Password,QianmingDS-3Linkman联系人L_number,Name,Sex,Concern,Phone,Landline,QQ,Email,Work,Address,Birthday,ID,G_number数据结构编号数据结构名数据结构含义组成DS-4Own拥有ID,G_number,Name2概念结构设计(刘江涛)ER图(如果系统没有那么复杂,可以不需要画局部ER图)属性请在ER图后单独说明。

3逻辑结构设计(陈佳奇)3.1将E-R图转换为关系模型关系模型图中实体所具有的属性为:User(ID,Nickname,Password,Qianming);Grouping(Group_number,,ID Group_name)Linkman(Name,Sex,Concern,QQ,Phone,Landline,Email,Work,Address,Birthday,);Own(ID,G_number,L_number)3.2 数据库模式设计(袁向阳)1.用户表信息表:Worker属性名数据类型含义是否是主属性或外键完整性ID Char(10)账号PKNickname Char(20)昵称NOT NULL Password Char(20)密码NOT NULL Qianming Char(50)个性签名2.联系人信息表:Linkman属性名数据类型含义是否是主属性或外键完整性L_number Char(10)联系人号PKName Char(20)姓名Sex Char(2)性别Concern Char(20)关系Phone Char(11)手机号Landline Char(10)座机号QQ Char(10)QQ号Email Char(20)E-mailWork Char(30)工作单位Address Char(30)地址Birthday Date生日3.分组信息表:Grouping属性名数据类型含义是否是主属性或外键完整性G_number Char(10)分组号PKG_name Char(10)分组名NOT NULL4.拥有信息表:Own属性名数据类型含义是否是主属性或外键完整性G_number Char(10)分组号PKID Char(10)用户ID PkL_number Char(100)联系人号Pk3.3 用户子模式设计(袁向阳)(可选)编号用户子模式(View)作用(共性:提供数据保密和安全保护机制)/或:子模式结构001用户分组显示显示每个分组的联系人002联系人查询快速查找的联系人003用户账号管理修改昵称、密码、个性签名004联系人的修改修改联系人信息005联系人的删除删除联系人信息006联系人的添加添加新的联系人007分组的创建创建分组008分组的修改修改分组009分组的删除删除分组4 物理结构设计(侯琦瑞)4.1 存储结构随着用户的增多,系统数据也会越来越多,所以要两个比较大的盘驱分别建立一个主数据文件和一个日志文件就可以了。

4.2 索引由于基本表Worker,linkman,Grouping的主码Name,ID,G_number经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,考虑在两个属性上建立唯一性索引;5实施(李玉舟)5.1 建立数据库create database TXLon(name=TXL,filename='D:\通讯录数据库\TXL.mdf',size=100MB,maxsize=UNLIMITED,filegrowth=50MB)log on(name=XSGL_log,filename='E:\通讯录数据库\TXL_log.ldf', size=3,maxsize=50MB,filegrowth=2MB)5.2建立基本表SQL语句或者图形界面截图。

--(1)创建用户表Workercreate table Worker(ID char(10)primary key,Nickname char(20)not null,Password char(20)not null,Qianming char(50));--(2)创建分组Groupingcreate table Grouping(G_number char(10)primary key,G_Name char(20)not null);--(3)创建联系人表Linkmancreate table Linkman(Name char(20)primary key,Sex char(2)check(Sex='男'or Sex='女')DEFAULT null, Concern char(10)DEFAULT null,Phone char(11)DEFAULT null,Landline char(10)DEFAULT null,QQ char(11)DEFAULT null,E_mail char(30)DEFAULT null,Work char(20)DEFAULT null,Address char(30)DEFAULT null,Birthday date DEFAULT null);--(4)创建拥有表Owncreate table Own(ID char(10),G_number char(10),Name char(20),primary key(ID,G_number,Name),FOREIGN KEY (ID)REFERENCES Worker(ID),FOREIGN KEY (G_number)REFERENCES Grouping(G_number), FOREIGN KEY (Name)REFERENCES Linkman(Name));5.3建立视图6功能实现(查孟博)6.1注册用户Insert into Worker(ID,Nickname,password,Qianming) Values('00000','用户1','00000','我的联系人我做主!');6.2管理用户(修改昵称、密码、个性签名)Update WorkerSet Nickname='超级用户',Password='11111',Qianming='常联系'Where ID='00000';6.3创建分组Insert into Grouping(G_number,G_name)Values('0000000000','firends');Insert into Grouping(G_number,G_name)Values('0000000001','family');6.4修改分组名update Groupingset G_name='my firends' where G_number='0000000000';6.5删除分组delete from Groupingwhere G_number='0000000001';6.5添加联系人功能(功能)Insert intoLinkman(L_number,Name,Sex,Concern,QQ,Phone,Landline,E_mail,Work,Address,Birthday) Values('0000000001','刘江涛','男',null,'1234567891','12345678901',null,null,null,null,null);Insert intoLinkman(L_number,Name,Sex,Concern,QQ,Phone,Landline,E_mail,Work,Address,Birthday) Values('0000000002','查孟博','男',null,'1234567892','12345678902',null,null,null,null,null);Insert intoLinkman(L_number,Name,Sex,Concern,QQ,Phone,Landline,E_mail,Work,Address,Birthday) Values('0000000003','赵河南','男',null,'1234567893','12345678903',null,null,null,null,null);Insert intoLinkman(L_number,Name,Sex,Concern,QQ,Phone,Landline,E_mail,Work,Address,Birthday) Values('0000000004','侯琦瑞','男',null,'1234567894','12345678904',null,null,null,null,null);Insert intoLinkman(L_number,Name,Sex,Concern,QQ,Phone,Landline,E_mail,Work,Address,Birthday) Values('0000000005','袁向阳','男',null,'1234567895','12345678905',null,null,null,null,null);Insert intoLinkman(L_number,Name,Sex,Concern,QQ,Phone,Landline,E_mail,Work,Address,Birthday) Values('0000000006','李玉舟','男',null,'1234567896','12345678906',null,null,null,null,null);Insert intoLinkman(L_number,Name,Sex,Concern,QQ,Phone,Landline,E_mail,Work,Address,Birthday) Values('0000000007','陈佳奇','男',null,'1234567897','12345678907',null,null,null,null,null);6.6联系人归属Insert into Own(ID,G_number,L_number) values('00000','0000000000','0000000001'); Insert into Own(ID,G_number,L_number) values('00000','0000000000','0000000002'); Insert into Own(ID,G_number,L_number) values('00000','0000000000','0000000003'); Insert into Own(ID,G_number,L_number) values('00000','0000000000','0000000004'); Insert into Own(ID,G_number,L_number) values('00000','0000000000','0000000005'); Insert into Own(ID,G_number,L_number) values('00000','0000000000','0000000006'); Insert into Own(ID,G_number,L_number) values('00000','0000000000','0000000007');6.7修改联系人功能update Linkmanset Name='侯启瑞'where L_number='0000000004';6.8删除联系人功能delete from Ownwhere L_number='0000000004';delete from Linkmanwhere L_number='0000000004';6.9关键字查询联系人功能select*from Linkmanwhere L_number='0000000001';6.10条件查询联系人功能select ,Phonefrom Linkman L,Own,Grouping Gwhere L.L_number=Own.L_number and Own.G_number=G.G_number and G_name='my firends';(注:范文素材和资料部分来自网络,供参考。

相关文档
最新文档