通讯录管理系统实验报告

合集下载

通讯录系统实验报告

通讯录系统实验报告

通讯录系统实验报告通讯录系统实验报告一、引言通讯录系统是一种方便管理联系人信息的工具。

随着社会的发展和科技的进步,人们的联系方式越来越多样化,传统的纸质通讯录已经无法满足人们的需求。

因此,设计和开发一个高效、便捷的通讯录系统成为了一个重要的课题。

二、实验目的本次实验的目的是设计和实现一个通讯录系统,使用户能够方便地存储、查找和管理联系人信息。

通过这个实验,我们可以学习和掌握数据库的基本操作,提高我们的编程能力和实践能力。

三、实验过程1.需求分析在设计通讯录系统之前,我们首先需要进行需求分析。

通过调研和访谈,我们了解到用户对通讯录系统的需求主要包括以下几点:- 用户可以添加、编辑和删除联系人信息;- 用户可以按照姓名、电话号码等字段进行快速查找;- 用户可以导入和导出联系人信息,方便备份和共享;- 界面简洁明了,操作简单易用。

2.数据库设计在进行数据库设计时,我们需要确定通讯录系统的数据结构。

通讯录系统的主要数据包括联系人的姓名、电话号码、邮箱等信息。

我们可以使用关系型数据库来存储这些数据,并通过SQL语句进行操作。

3.界面设计为了提高用户体验,我们需要设计一个简洁明了的界面。

界面设计应该符合用户的使用习惯,操作简单易懂。

在设计界面时,我们可以考虑使用图形化界面或者命令行界面。

4.编码实现在编码实现过程中,我们需要根据需求分析和数据库设计来进行编码。

编码实现的重点是实现用户的各项操作功能,包括添加联系人、编辑联系人、删除联系人、查找联系人等。

5.测试和优化在编码实现完成后,我们需要进行测试和优化。

通过测试,我们可以发现和修复潜在的bug,优化系统的性能和稳定性。

四、实验结果经过几天的努力,我们成功地设计和实现了一个通讯录系统。

该系统具有以下特点:- 界面简洁明了,操作简单易用;- 用户可以方便地添加、编辑和删除联系人信息;- 用户可以按照姓名、电话号码等字段进行快速查找;- 用户可以导入和导出联系人信息,方便备份和共享。

通讯录管理系统实验报告

通讯录管理系统实验报告

实验报告----通讯录管理系统专业:计算机嵌入式班级:10455341日期2012-05-28一.实验目的1.通过这一项目的实现,进一步掌握利用连接都数据库进行访问。

2.掌握利用来操纵数据库中的数据的方法。

3.通过本次实验来提高编程能力和独立解决编程问题的能力。

二.实验内容1.设计并实现“通讯录管理系统”。

该系统提供多用户的通讯录管理,并能对通讯录中的联系人分组。

2.具体任务①完成“用户管理”窗口②完成“用户登录”窗口③完成“主窗体”窗口④完成“新增/修改联系人”窗口⑤完成“新增/修改分组”窗口(不在题目要求范围之内)⑥完成“查找联系人”窗口⑦完成“用户注册”窗口(为方便使用用户管理而添加的,不在题目要求范围之内)三.实验环境Microsoft Visual Studio 2008语言:C#四.实验分析、代码及运行结果本次实验实现通讯录管理系统的基本功能,包括用户管理、用户登录、修改/新增联系人、修改/新增分组、查找联系人、用户注册等。

本实验中所有数据全部放在ADDBRS数据库中,该库在Form1_Load中创建,并同时在库中创建Users和Groups两张表,在以后每注册一个用户的时候就同时创建一张以用户名命名的表,用于存储联系人的信息。

主界面中对分组和联系人的增删改已经查看的控件不止一个,但下面的空间均调用菜单栏中的方法来实现操作。

添加/修改联系人为同一个窗口,添加/修改分组为同一个窗口在centerData类中声明一个静态字符串centerData.constr来代替所有代码中连接数据库所用到的字符串。

1.登陆窗体①截图②代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data;using System.Data.SqlClient;namespace 通讯录管理系统1{ public partial class Form1 : Form{ public Form1(){ InitializeComponent(); }public void AddLink() //用于将所有注册过的联系人添加在combox1的下拉菜单中{ comboBox1.Items.Clear();SqlConnection con = new SqlConnection();con.ConnectionString = CenterData.constr;con.Open();SqlCommand cmd = new SqlCommand("select name from Users", con);SqlDataReader dr = cmd.ExecuteReader();while (dr.Read()){ comboBox1.Items.Add(dr[0]); }con.Close();}private void Form1_Load(object sender, EventArgs e){ try //该距用于判断数据库ADDBRS是否已经存在{ SqlConnection con = new SqlConnection();con.ConnectionString = CenterData.constr;con.Open();con.Close();}catch //如果不存在try运行出错,则运行该语句,创建数据库和两个表{ SqlConnection conn = new SqlConnection();conn.ConnectionString = "Data Source=localhost;User ID=sa;Password=sa;";onn.Open();SqlCommand cmd = conn.CreateCommand();mandText = "create database [ADDBRS] ";cmd.ExecuteNonQuery();mandText = @"use [ADDBRS] create table Users (name nvarchar(50) NOT NULL,password nvarchar(50) NOT NULL,maxMan int NOT NULL,maxGroup int NOT NULL) ";cmd.ExecuteNonQuery();//Users用于存储用户名、密码、最多组别、最多联系人mandText = @"use [ADDBRS] create table Groups (GroupName nvarchar(50) NOT NULL,UserName nvarchar(50) NOT NULL)";cmd.ExecuteNonQuery();//Groups用于存储每个所有用户的分组信息conn.Close();}finally{ // TODO: 这行代码将数据加载到表“ers”中。

通讯录管理系统实践报告

通讯录管理系统实践报告

通讯录管理系统实践报告一、需求分析1、功能要求通讯录管理系统至少应具有以下功能:(1)、能通过键盘向通讯录输入数据。

要求随时都能使用该项功能实现记录输入,一次可以输入一条记录,也可以输入多条记录。

所谓一条记录,是指通讯录中一个人的完整信息。

每个通讯录记录包括如下信息:序号、姓名、电话、所在城市。

(2)、能按照“所在城市”排序顺序显示通讯录存储的记录信息。

(3)、能对通讯录的信息进行删除。

要求删除时以记录为单位,既能一次删除一条记录,也能一次删除多条记录。

2 技术要求(1)通讯录信息以磁盘文件的形式存储,文件名,文件格式由设计者确定。

(2)对于通讯录功能中的数据输入、显示、删除等功能,要求编写功能独立的函数予以实现,其所属的各项功能尽量由独立的函数实现。

(3)以菜单方式实现功能选择控制。

(4)通讯录管理结束后,能正常退出通讯录管理程序。

(5)本通讯录管理程序能够实现300条记录的管理。

程二、.各功能的具体说明如下:通讯录信息输入。

1、、通过显示信息项目,逐渐输入通讯录记录信息。

1)(、每次输入记录后,通过询问的方式决定是否继续进行记录(2)输入。

因此,使用该功能即可录入一条记录,也可连续录入多条记录。

3)每次录入记录之前,显示通信录种理由的记录数。

( 2 通讯录信息查询)按排列顺序显示,即对通讯录中的记录进行排序后,在按照1(排序显示不能但不管使用何种排序算法,排序结果显示出来。

改变通讯录记录的物理顺序。

条20)当通讯录信息较多时,实行分屏显示,每屛最多显示(2 记录信息。

)显示记录时,对每一条记录增加与现实顺序一致的序号。

3(通讯录信息查询3(1)提供按姓名查询(2)查找成功后显示每一条符合条件记录的完整信息,当一屛不能完成显示时,实行分屏显示,每屛最多显示20条符合条件的记录。

当找不到符合条件记录时,给出相应的提示信息。

4 通讯录信息删除(1)提供按姓名删除,当找到指定记录时,进行删除操作。

找不到指定记录时,给出相应的提示信息。

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

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

数据结构通讯录管理系统课程设计实验报告背景随着信息化的快速发展,通讯录管理系统成为了每个人生活中必备的工具之一。

传统的纸质通讯录已经无法满足人们对于信息管理的需求,因此开发一个高效、便捷、用户友好的通讯录管理系统显得尤为重要。

本次课程设计实验的目标是设计一个基于数据结构的通讯录管理系统,实现通讯录的创建、查找、修改、删除等功能。

通过本次实验,我们可以学习和掌握数据结构中的链表、哈希表等基础概念和算法,并将其应用到实际项目中。

分析通讯录管理系统主要有以下几个功能:1.创建通讯录:通讯录是一个存储联系人信息的数据结构,可以存储联系人的姓名、电话号码、邮箱地址等信息。

2.添加联系人:可以向通讯录中添加新的联系人,包括姓名、电话号码、邮箱地址等信息。

3.查找联系人:可以根据姓名或电话号码查找通讯录中的联系人,并显示其详细信息。

4.修改联系人:可以根据姓名或电话号码修改通讯录中的联系人信息。

5.删除联系人:可以根据姓名或电话号码删除通讯录中的联系人。

为了实现上述功能,我们可以使用链表来实现通讯录的存储,每个节点表示一个联系人。

每个节点包含姓名、电话号码、邮箱地址等信息,并且有指向下一个节点的指针。

为了提高查找联系人的效率,我们还可以使用哈希表来实现联系人的快速查找。

哈希表采用键值对的方式存储数据,通讯录中的联系人可以以姓名为键,联系人节点为值存储在哈希表中。

结果实验的最终结果是一个完善的通讯录管理系统,能够实现创建通讯录、添加联系人、查找联系人、修改联系人和删除联系人等功能。

在实现过程中,我们遵循了以下步骤:1.首先,我们设计了联系人节点的数据结构,包括姓名、电话号码、邮箱地址等字段,并定义了节点的操作方法。

2.接着,我们设计了通讯录的数据结构,使用链表来存储联系人节点,并实现了通用的链表操作方法,如插入节点、删除节点等。

3.然后,我们设计了哈希表的数据结构,使用哈希函数将联系人节点存储在哈希表中,并实现了查找联系人的快速算法。

通讯录管理系统C++实验报告

通讯录管理系统C++实验报告

通讯录管理系统C++实验报告《C++数据结构》课程设计班级信管1123 指导老师吴卫祖学号 201211671330 姓名易梓麒2014 年 7 月 7 日目录目录 (4)通讯录管理系统 (5)一. 问题描述 (5)1.1系统总体描述 (5)1.2需求分析 (6)1.3系统实现方案 (6)二.概要设计(流程) (6)三.详细模块设计 (9)3.1信息录入 (9)3.2显示信息 (10)3.3按姓名查找信息 (10)3.4删除联系人信息 (11)3.5保存信息至文件 (12)3.6读取信息 (12)3.7添加信息 (13)3.8退出 (13)3.9主函数 (14)四.程序运行示意图 (15)4.1主界面 (15)4.2输入信息 (16)4.3显示记录 (16)4.4删除记录 (17)4.5查阅记录 (17)4.6保存记录 (18)4.7读取记录 (19)4.8添加记录 (19)五.总结与心得 (20)六.附录#源代码 (20)通讯录管理系统一.问题描述1.1系统总体描述本系统是一款基于对通讯录中联系人进行管理的系统,可使用户更好的对通讯录中的联系人进行基本的操作。

1.2需求分析根据需求,该系统应具备以下功能:1.对联系人基本信息的录入2.显示所有联系人的基本信息3.按照姓名查找联系人信息4.删除联系人信息5.保存联系人信息至文件6.从文件中读取联系人的信息7.添加新联系人信息1.3系统实现方案为实现系统功能,本系统共分为构建链表函数,显示函数,查找函数,删除函数,保存函数,读取函数,添加函数以及退出系统。

这七个函数通过主函数switch语句进行调用。

二.概要设计(流程)开始进入主函数三.详细模块设计3.1信息录入输入信息函数(Createlist)首先建立一个空的链表,其次进行对联系人基本信息比如联系人姓名,电话,Email,以及与自己的关系等的输入。

代码示意图如下:3.2显示信息显示函数(showlist)用于向用户显示用户所输入过的联系人的各种资料,包括姓名,电话,Email,关系等。

c通讯录管理系统实验报告

c通讯录管理系统实验报告

C通讯录管理系统实验报告1. 引言通讯录是我们日常生活中非常常见的一种信息管理工具,用于存储和管理联系人的信息。

本实验旨在设计和实现一个基于C语言的通讯录管理系统。

本文将介绍系统的设计思路、功能实现以及使用过程中的注意事项。

2. 设计思路通讯录管理系统主要包括以下功能: - 添加联系人:输入联系人的姓名、电话号码和电子邮件信息,将其添加到通讯录中。

- 删除联系人:输入联系人的姓名,从通讯录中删除该联系人。

- 查找联系人:输入联系人的姓名,系统将显示该联系人的详细信息。

- 修改联系人:输入联系人的姓名,可以修改该联系人的电话号码和电子邮件信息。

- 显示所有联系人:系统将按照添加的顺序显示通讯录中所有联系人的信息。

在设计过程中,我们采用了如下的步骤思考: 1. 定义联系人结构体:使用结构体来存储联系人的姓名、电话号码和电子邮件信息。

2. 定义通讯录结构体:使用动态数组来存储联系人的信息,以及记录通讯录的当前大小和最大容量。

3. 实现添加联系人功能:动态扩展通讯录数组的容量,将新的联系人信息添加到数组中。

4. 实现删除联系人功能:根据输入的姓名,查找并删除对应的联系人。

5. 实现查找联系人功能:根据输入的姓名,查找并显示对应联系人的详细信息。

6. 实现修改联系人功能:根据输入的姓名,查找并修改对应联系人的电话号码和电子邮件信息。

7. 实现显示所有联系人功能:按照添加的顺序,显示通讯录中所有联系人的信息。

3. 功能实现3.1 定义联系人结构体联系人结构体包含姓名、电话号码和电子邮件信息的变量。

3.2 定义通讯录结构体通讯录结构体包含一个指向联系人结构体的指针和记录当前容量和最大容量的变量。

3.3 实现添加联系人功能在添加联系人之前,首先需要判断通讯录数组是否已满。

如果已满,则需要动态扩展通讯录数组的容量。

然后,将新的联系人信息添加到数组中,更新通讯录的当前大小。

3.4 实现删除联系人功能根据输入的联系人姓名,在通讯录数组中查找对应的联系人。

通讯录管理系统实验报告

通讯录管理系统实验报告

通讯录管理系统实验报告通讯录管理系统实验报告一、引言通讯录是我们日常生活中不可或缺的一部分,它帮助我们记录和管理与各种人的联系方式。

然而,传统的纸质通讯录存在着不便携、易丢失、难以更新等问题。

为了解决这些问题,我们设计并实现了一个通讯录管理系统。

二、系统设计1. 功能设计我们的通讯录管理系统具有以下主要功能:- 添加联系人:用户可以输入联系人的姓名、电话号码、电子邮件等信息,并将其保存到系统中。

- 查找联系人:用户可以根据姓名、电话号码等关键字在通讯录中查找指定的联系人。

- 编辑联系人:用户可以对已有的联系人信息进行修改,包括姓名、电话号码、电子邮件等。

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

- 导出联系人:用户可以将通讯录中的联系人信息导出为Excel或CSV文件,以便在其他应用程序中使用。

2. 技术实现为了实现上述功能,我们使用了以下技术:- 前端界面:采用HTML、CSS和JavaScript技术,实现用户友好的界面设计。

- 后端逻辑:采用Python编程语言,使用Flask框架搭建Web应用程序。

- 数据存储:使用MySQL数据库存储联系人信息,并通过SQL语句实现数据的增删改查操作。

三、系统实现1. 前端界面我们的前端界面采用了简洁、直观的设计风格,用户可以通过输入框和按钮进行各种操作。

在添加联系人时,用户需要填写姓名、电话号码等信息,并点击保存按钮将联系人信息提交到后端。

在查找联系人时,用户可以输入关键字并点击搜索按钮,系统将根据关键字在通讯录中查找匹配的联系人并显示在界面上。

2. 后端逻辑后端逻辑主要由Flask框架实现,通过路由和视图函数来处理用户的请求。

当用户提交添加联系人的请求时,后端会接收到用户输入的信息,并将其存储到数据库中。

当用户搜索联系人或编辑联系人时,后端会根据用户的请求在数据库中进行相应的查询和更新操作。

当用户删除联系人时,后端会从数据库中删除对应的联系人信息。

通讯录管理实验报告

通讯录管理实验报告

通讯录管理实验报告通讯录管理实验报告一、引言通讯录是现代社会中不可或缺的一项工具,它能够帮助我们有效地管理联系人信息,提高沟通效率。

然而,随着社会的发展和科技的进步,传统的纸质通讯录已经无法满足人们的需求。

因此,本次实验旨在探索和研究通讯录管理的现代化方法。

二、实验目的1. 研究并比较不同通讯录管理软件的功能和特点;2. 分析并评估通讯录管理软件对用户的实际需求的满足程度;3. 提出改进建议,以优化通讯录管理软件的设计和使用体验。

三、实验方法本次实验采用了以下方法:1. 调查问卷:设计并分发调查问卷,收集用户对不同通讯录管理软件的使用体验和需求反馈;2. 功能比较:选取几款常见的通讯录管理软件,对其功能进行详细比较和分析;3. 用户体验测试:邀请一些用户进行实际操作测试,观察他们在使用过程中的反应和问题。

四、实验结果与分析1. 调查问卷结果显示,用户对通讯录管理软件的主要需求是方便快捷地添加、编辑和查找联系人信息,以及支持多种联系方式的整合。

2. 功能比较结果表明,不同的通讯录管理软件在功能上存在差异,有些软件提供了更多的高级功能,如群组管理、备份与恢复等,而有些软件则更注重简洁易用的界面设计。

3. 用户体验测试发现,一些通讯录管理软件存在操作繁琐、界面复杂等问题,导致用户在使用过程中感到困惑和不便。

五、改进建议基于实验结果和分析,我们提出以下改进建议:1. 界面设计优化:通讯录管理软件应该追求简洁、直观的界面设计,方便用户快速上手和操作。

2. 功能定制化:根据用户需求,通讯录管理软件应提供个性化的功能定制选项,使用户能够根据自己的实际需求进行设置。

3. 数据安全保护:通讯录管理软件应加强数据安全保护措施,防止用户隐私信息泄露或丢失。

4. 多平台兼容性:通讯录管理软件应支持多种操作系统和设备,以满足用户在不同设备上的使用需求。

六、结论通过本次实验,我们对通讯录管理软件进行了深入研究和分析,发现了其功能和设计上的一些问题,并提出了相应的改进建议。

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

实验报告一程序设计目的和要求1.掌握从“对象“的角度看问题,而不仅仅是功能的划分的思想;2..熟练掌握将对象所具有的功能和属性封装到一个类中及其用功能;3.熟练掌握文件的存取方法;4.了解综合系统设计的基本原理;5.掌握C语言程序的综合应用。

二程序设计任务内容通讯录管理系统给用户提供了一个在Windows操作系统上运行的通讯录管理平台,用户可以对联系人进行在电话号码、姓名以及简介等方面的添加、删除、修改等管理操作。

同时系统还可以判断登录用户功能,根据用户的分类,其拥有的权限也不同,系统可以通过判断登录用户的用户名和密码,从而判断其是否是首次登陆。

系统亦可获取登录用户的权限信息,从而判断该用户能够使用该系统的哪些特定功能,不同级别的用户不能够越权使用系统功能。

通讯录管理系统软件是为用户提供一个保存联系人及信息管理进行辅助的应用软件、功能描述如下。

1.用户选择:进入界面后用户可以选择自己的种类,当用户登录后根据权限判断该用户是新用户还是老用户,可以使用哪些对应的功能。

2.给用户提供功能选择界面: 新老用户对应的功能选择界面是不同的。

功能选择界面包括输入功能选项、调用相应程序两大需求。

3.初始化联系人:用户根据提示输入联系人的电话号码、姓名、简介。

可一次性输入多个联系人的相关信息。

系统将联系人的信息存储在系统磁盘的文件中,以便进行管理、查找和备份。

4.浏览联系人:用以查看联系人的信息以及联系人的电话号码。

5.修改联系人:提示用户输入要进行修改操作的联系人的信息,如果在文件中有该联实验报告系人的电话号码存在,则将该电话号码所对应的姓名、电话号码、简介以及得票数所对应文件中加以修改。

由系统提示是否继续进行修改操作,让用户可多次进行修改操作。

6.修改密码:按照提示用户要输入旧密码一次以及新密码两次来进行用户的密码修改,被修改的信息将会储存在文件中,下一次用户要登陆的话得输入新密码才能成功登陆进行其他操作。

三程序详细设计说明系统结构设计1.总体设计本系统的总体思想基于结构化的程序设计。

应用高级语言程序设计中的基本控制结构,如循环和选择,着重实现管理系统的增、删、改、查等典型的管理功能。

因此,系统的设计方法是结构化设计方法,开发手段是C语言,在Microsoft Visual C++ 6.0环境下开发。

2.系统模块结构图依据需求分析结果,通讯录管理系统可以分为3个模块:用户选择模块、用户登陆模块、用户管理模块。

如图1所示。

实验报告3.系统流程描述:实验报告结束图2系统流程图4.界面设计通讯录管理系统的界面设计主要遵循方便易用、界面友好的原则,具体设计如下。

(1) 用户选择界面设计①进入界面后有三个选项,分别是“登陆”,“新建”和“退出”,选择了“新建”的话会提示进入新建用户名和密码,选择登陆,分别要输入用户姓名和密码,如果输入有误则会提示有错误。

当输入的姓名和密码都是正确的时候会进入到用户的功能界面。

图3 登录界面效果图(2)功能选择界面的设计实验报告图4 功能选择界面效果图(3) 执行结果界面设计由于C语言对图形化界面的支持比较有限,因此,对于该管理系统,首要考虑的是结果的清晰易读。

对于此类的界面设计要采用一些简单处理,将执行的每一个功能都很清晰的表示出来。

示例:若用户选择了“好友管理”,执行结果如图所示实验报告图5 浏览联系人执行结果图若选择“增加好友”,则会出现:实验报告图6 增加好友界面(3).用户功能选项模块有“增加好友”,“查询记录”,“修改联系人”,“删除记录”,“返回主菜单”和“退出”6项功能管理。

对联系人有修改的操作,会将操作结果保存至文件,对于需要查看结果的操作,将文件中的操作结果输出到屏幕上。

模块功能树如图9所示图7 用户功能选择模块功能图函数声明:①Find ()●功能:查找联系人的信息文件。

根据用户输入的文件名创建联系人信息文件,将用户输入的若干联系人信息记录存入该文件并保存。

最后列表显示文件内容。

●输入:按要求输入联系人的电话号码,姓名,其他信息,并且选择是否继续添加●处理:提示用户逐条输入联系人信息;将完整的联系人信息存入文件;循环判断用户是否要继续添加联系人;实验报告●查找:列表显示用户创建并输入内容后的文件内容。

图8 查找联系人的界面②Hyxg ()●功能:修改联系人●输入:输入“c”即可●输出:列表显示所有联系人的信息实验报告图9 浏览联系人界面③Delete ()●功能:删除联系人的信息。

根据用户输入联系人的电话号码,然后会显示出联系人的相关信息,然后根据提示对联系人进行各项信息的删除,可以进行循环修改。

●输出:做完修改操作后联系人信息记录图10 删除联系人界面④Mmxg()●功能:按照用户的意愿对用户的密码进行修改●输入:原始密码。

实验报告新密码两次。

●处理:当用户输入的原始密码与文件中的密码不相符时,提示输入密码错误;若输入正确则需要输入两次新密码来进行对原始密码的修改如果两次新密码输入不也一样,系统会提醒用户输入密码不一样,请重新输入●输出:显示修改密码成功图11 修改密码成功的界面四程序部分源程序代码和调试过程可以使用排序的方法对联系人进行更方便的储存和调用#include<conio.h>#include<stdio.h>#include<string.h>#include<stdlib.h>const int L=600000000;typedef struct Telephone //建立结构体{char secret[20]; //密码char yanzheng[20]; //验证密码char hao[20]; //用户号实验报告char zuming[50]; //分组名char name[50]; //好友姓名char sex[30]; //性别char tel[30]; //电话char adr[30]; //地址char eip[30]; //邮编struct Telephone *next;}TEL;TEL *head; //建立头结点FILE *fp; // 建立文件int i;TEL *p1,*p2,*p3; //用指针指向结构体void Initiate(); //初始化指针。

void Create(); //的功能是:创建新的通信录。

void Denglu(); //登录通信录。

void Jinru(); //进入创建与登录界面。

void Menu(); //通信录主菜单。

void Add(); //在通信录的末尾,写入新的信息,并返回选单。

void Xtgl(); //系统管理。

void Hygl(); //好友管理。

void Find(); //查找记录。

void Mmxg(); //通信录密码修改void Hyxg(); //通信录好友信息修改void Delete(); //删除某人的信息,如果未找到要删的人,提示通信录中没有此人的信息,并返回选单。

void Help(); //通信录操作帮助。

void main(){Initiate(); //初始化Jinru(); //进入进入界面}//初始化void Initiate(){if((head =(TEL *)malloc(sizeof(TEL)))==NULL) exit(1); //初始化指针。

head->next=NULL;}//开始进入void Jinru(){实验报告system("cls");system("color 3f");char choice;printf("\t\t\t温馨提示:\n\n\t\t\t如果您还没有创建,请先创建!\n\n\n\n");printf("\t\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\n");printf("\t\t\t^^ a.创建^^\n\n");printf("\t\t\t^^ b.登录^^\n\n\n");printf("\t\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\n");printf("\t\t\t请选择a或b\n\n\t\t\t"); //进入界面输出提示用户scanf("%s",&choice); //用户输入数据printf("\n");if(choice=='a'||choice=='b') //进行判断{switch(choice){case'a':Create();break; //进行选择case'b':Denglu();break; //进行选择}}else{printf("\t\t\t输入有误!请重新输入\n\n\n\t\t\t");//输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Jinru(); //返回进入界面}}//创建通信录void Create(){system("cls");system("color 2f");//fp=fopen("mm","w+");p1=(TEL *)malloc(sizeof(TEL)); //申请一个新的空间printf("请输入用户号:\n"); //输出提示用户scanf("%s",&p1->hao);//fprintf(fp,"%s",p1->hao);//用户输入数据printf("请输入密码:\n\n注意!小于20位!\n\n");//输出提示用户scanf("%s",&p1->secret);//第一次输入的密码用户输入数据//fprintf(fp,"%s",p1->secret);printf("请再次输入密码:\n\n注意!小于20位!\n\n");//输出提示用户实验报告scanf("%s",&p1->yanzheng); //第二次输入的密码用户输入数据//fclose(fp);if(strcmp(p1->yanzheng,p1->secret)!=0) //比较两次输入是否一样{printf("两次输入密码不一致!请重新输入!");//输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Create(); //返回创建界面}else{system("cls");printf("\n\n\n\n\n\n\t\t\t\t正在创建中!");//输出提示用户printf("\n\n\t\t\t\t请稍侯...\n"); //输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观system("cls");printf("\n\n\n\n\n\t\t\t\t恭喜创建成功!");//输出提示用户printf("\n\n\t\t\t\t正在进入登录界面!"); //输出提示用户printf("\n\n\t\t\t\t请稍侯...\n"); //输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Denglu();}}//登录界面void Denglu(){system("cls");//fp=fopen("mm","r+");p2=(TEL *)malloc(sizeof(TEL)); //申请一个新的空间printf("\n\n\n\n\n\t\t\t\t欢迎登录个人通信录系统!");//输出提示用户printf("\n\n\t\t\t\t请输入用户号:\n\t\t\t\t");//输出提示用户scanf("%s",&p2->hao);//fscanf(fp,"%s,",&p1->hao);if(strcmp(p2->hao,p1->hao)==0) //比较与原用户号是否一样{printf("\n\n\t\t\t\t请输入密码:\n\t\t\t\t");//输出提示用户scanf("%s",&p2->secret); //用户输入数据//fscanf(fp,"%s",&p1->secret);if(strcmp(p1->yanzheng,p2->secret)==0) //比较与原密码是否一实验报告样{system("cls");printf("\n\n\n\n\n\t\t\t\t正在登录中!");//输出提示用户printf("\n\n\t\t\t\t请稍侯...\n");//输出提示用户//fclose(fp);for(i=0;i<L;i++); //减慢速度使界面更美观system("cls");printf("\n\n\n\n\n\t\t\t\t恭喜登录成功!\n\n\t\t\t\t");//输出提示用户printf("正在进入主菜单!");//输出提示用户printf("\n\n\t\t\t\t请稍侯...\n");//输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Menu(); //进入主菜单}else{system("cls");printf("\n\n\n\n\n\t\t\t\t密码不正确!\n");//输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Denglu(); //返回登录界面}}else{system("cls");printf("\n\n\n\n\n\t\t\t\t该用户没注册!\n");//输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Denglu(); //返回登录界面}}void Xtgl(){char choice;system("cls");printf("\n\n\t\t**********欢迎使用个人通信录系统************\n\n");//输出提示用户printf("\n\n\t\t****\t\ta.密码修改\t\t****\n\n");//进行选择printf("\t\t****\t\tb.返回主菜单\t\t****\n\n");//进行选择printf("\t\t****\t\tc.退出通信录\t\t****\n\n");//进行选择实验报告printf("\n\n\t\t**********欢迎使用个人通信录系统************\n\n");//输出提示用户printf("\t\t\t\t请选择小写字母a~c\n\t\t\t\t");//输出提示用户scanf("%s",&choice); //用户输入数据if(choice=='a'||choice=='b'||choice=='c')//进行判断{switch(choice){case'a':Mmxg();break; //修改通信录信息case'b':Menu();break; //返回主菜单case'c':system("cls");printf("\n\n\n\n\n\n\n\n\t\t\t*******感谢您的使用*******");//输出提示用户printf("\n\n\t\t\t\t正在退出!");//输出提示用户printf("\n\n\t\t\t\t请稍侯...\n");//输出提示用户for(int i=0;i<L;i++);//减慢速度使界面更美观exit(0); //退出程序}}else{printf("\t\t\t输入有误!请重新输入\n\n\n\t\t\t");//输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Xtgl(); //返回系统管理界面}}void Hygl(){system("cls");char choice;printf("\n\n\t\t**********欢迎使用个人通信录系统************\n\n");//输出提示用户printf("\t\t****\t\ta.增加好友\t\t****\n\n");//进行选择printf("\t\t****\t\tb.查询记录\t\t****\n\n");//进行选择printf("\t\t****\t\tc.修改记录\t\t****\n\n");//进行选择printf("\t\t****\t\td.删除记录\t\t****\n\n");//进行选择printf("\t\t****\t\te.返回主菜单\t\t****\n\n");//进行选择printf("\t\t****\t\tf.退出通信录\t\t****");//进行选择实验报告printf("\n\n\t\t**********欢迎使用个人通信录系统************\n\n");//输出提示用户printf("\t\t\t\t请选择小写字母a~f\n\t\t\t\t");//输出提示用户scanf("%s",&choice); //用户输入数据if(choice=='a'||choice=='e'||choice=='b'||choice=='c'||choice=='d'||choice=='f')//进行判断{switch(choice){case'a':Add();break; //增加通信录信息case'b':Find();break; //查询通信录信息case'c':Hyxg();break; //修改通信录信息case'd':Delete();break; //删除通信录信息case'e':Menu();break; //返回主菜单case'f': //退出通信录system("cls");printf("\n\n\n\n\n\n\n\n\t\t\t*******感谢您的使用*******");//输出提示用户printf("\n\n\t\t\t\t正在退出!");//输出提示用户printf("\n\n\t\t\t\t请稍侯...\n");//输出提示用户for(int i=0;i<L;i++);//减慢速度使界面更美观exit(0); //退出程序}}else{printf("\n\n\t\t\t\t输入有误!请重新输入\n\n\t\t\t\t\t");//输出提示用户for(int i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回主菜单}}//显示菜单void Menu(){system("cls");char choice;system("color 5f");printf("\n\n\t\t**********欢迎使用个人通信录系统************\n\n");//输出提示用户实验报告printf("\n\n\t\t****\t\ta.好友管理\t\t****\n\n");//进行选择printf("\t\t****\t\tb.系统管理\t\t****\n\n");//进行选择printf("\t\t****\t\tc.操作帮助\t\t****\n\n");//进行选择printf("\t\t****\t\td.退出通信录\t\t****\n\n");//进行选择printf("\n\n\t\t**********欢迎使用个人通信录系统************\n\n");//输出提示用户printf("\t\t\t\t请选择小写字母a~d\n\t\t\t\t");//输出提示用户scanf("%s",&choice); //用户输入数据if(choice=='a'||choice=='b'||choice=='c'||choice=='d')//进行判断{switch(choice){case'a':Hygl();break; //修改通信录信息case'b':Xtgl();break; //修改通信录信息case'c':Help();break; //操作帮助case'd': //退出通信录system("cls");printf("\n\n\n\n\n\n\n\n\t\t\t*******感谢您的使用*******");//输出提示用户printf("\n\n\t\t\t\t正在退出!");//输出提示用户printf("\n\n\t\t\t\t请稍侯...\n");//输出提示用户for(int i=0;i<L;i++);//减慢速度使界面更美观exit(0); //退出程序}}else{printf("\n\n\t\t\t\t输入有误!请重新输入\n\n\t\t\t\t\t");//输出提示用户for(int i=0;i<L;i++); //减慢速度使界面更美观Menu(); //返回主菜单}}//添加通讯录信息void Add(){system("cls");int j,m,i,n;TEL *p1[100],*p2; //用指针指向结构体实验报告printf("请输入添加分组个数:"); //输出提示用户printf("\n\n注意!请输入阿拉伯数字!\n\n");//输出提示用户scanf("%d",&n); //用户输入数据if(n>0){for(j=1;j<=n;j++){p1[j]=(TEL *)malloc(sizeof(TEL)); //申请一个新的空间printf("分组名:");scanf("%s",&p1[j]->zuming); //用户输入数据printf("请输入添加第%d组好友个数:",j); //输出提示用户printf("\n\n注意!请输入阿拉伯数字!\n\n",j);scanf("%d",&m); //用户输入数据if(m>0){for(i=1;i<=m;i++){p1[i]=(TEL *)malloc(sizeof(TEL)); //申请一个新的空间printf("请输入第%d个好友信息!\n",i);//输出提示用户printf("姓名:\n");scanf("%s",&p1[i]->name); //用户输入数据printf("性别:\n");scanf("%s",&p1[i]->sex); //用户输入数据printf("电话:\n");scanf("%s",&p1[i]->tel);//用户输入数据printf("地址:\n");scanf("%s",&p1[i]->adr);//用户输入数据printf("邮编:\n");scanf("%s",&p1[i]->eip);//用户输入数据p1[i]->next=NULL;if(head->next==NULL){head->next=p1[i];}else{for(p2=head;p2->next!=NULL;p2=p2->next);//找到结点尾实验报告p2->next=p1[i];}}//保存到链表}else{printf("此操作无法进行!返回中...");//输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Add();}}}else{printf("此操作无法进行!返回中..."); //输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Add();}system("cls");printf("\n\n\n\n\n\n\n\n\t\t\t\t信息正在保存中!");//输出提示用户printf("\n\n\t\t\t\t请稍侯...\n"); //输出提示用户for( i=0;i<L;i++); //减慢速度使界面更美观system("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t\t恭喜添加成功!");//输出提示用户printf("\n\n\t\t\t\t返回中!请稍侯...\n\n"); //输出提示用户for( i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回好友管理}//查找通信录信息void Find(){system("cls");TEL *p; //用指针指向结构体char name[50];if(head->next==NULL){printf("\n\n\n\n\n\n\t\t\t\t查找中!"); //输出提示用户实验报告printf("请稍侯...\n\n\n"); //输出提示用户for(int i=0;i<L;i++); //减慢速度使界面更美观printf("此通信录为空!"); //输出提示用户printf("\n返回中!请稍侯...\n"); //输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回好友管理}printf("请输入要查找的姓名:\n"); //输出提示用户scanf("%s",&name); //用户输入数据for(p=head->next;p!=NULL;p=p->next){if(strcmp(p->name,name)==0){system("cls");printf("\n\n\n\n\n\n\t\t\t\t查找中!请稍侯...\n\n\n");//输出提示用户for(int i=0;i<L;i++); //减慢速度使界面更美观printf("\t\t\t\t姓名\t性别\t地址\t邮编\t电话\n");//输出提示用户printf("\t\t\t\t%s\t%s\t%s\t%s\t%s\n",p->name,p->sex,p->adr,p->eip,p->tel);//输出数据printf("\n\t\t\t\t");system("pause");Hygl(); //返回好友管理}else if(p->next==NULL){system("cls");printf("\n\n\n\n\n\n\t\t\t\t查找中!请稍侯...\n\n\n");//输出提示for(int i=0;i<L;i++); //减慢速度使界面更美观printf("\n\n\n\n\n\t\t\t\t无此信息!");//输出提示用户printf("\n\t\t\t\t返回中!请稍侯...\n");//输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回好友管理}}Hygl(); //返回好友管理}void Hyxg(){实验报告system("cls");char name[50]; //先查找后删除TEL *p, *p1; //用指针指向结构体if (head->next == NULL){printf("此通信录为空!"); //输出提示用户printf("\n返回中!请稍侯...\n"); //输出提示用户//return;for(int i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回好友管理}printf("请输入要修改的姓名:\n"); //输出提示用户scanf("%s",name); //用户输入数据for(p=head->next;p!=NULL;p=p->next){if(strcmp(p->name,name)==0)break;else if(p->next==NULL){for(int i=0;i<L;i++); //减慢速度使界面更美观printf("无此信息!"); //输出提示用户printf("\n返回中!请稍侯...\n"); //输出提示用户//return;for(i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回好友管理}}p1=(TEL *)malloc(sizeof(TEL)); //申请一个新的空间printf("\n新姓名:\n"); //添加信息scanf("%s",p1->name); //用户输入数据strcpy(p->name,p1->name);printf("性别:\n"); //输出提示用户scanf("%s",p1->sex); //用户输入数据strcpy(p->sex,p1->sex);printf("电话:\n"); //输出提示用户scanf("%s",p1->tel); //用户输入数据strcpy(p->tel,p1->tel);printf("地址:\n");scanf("%s",p1->adr); //用户输入数据实验报告strcpy(p->adr,p1->adr);printf("邮编:\n"); //输出提示用户scanf("%s",p1->eip); //用户输入数据strcpy(p->eip,p1->eip);system("cls");printf("\n\n\n\n\n\n\t\t\t\t信息修改中!"); //输出提示用户printf("请稍侯...\n\n"); //输出提示用户for(int i=0;i<L;i++); //减慢速度使界面更美观printf("\t\t\t\t此信息已修改!\n\n");//显示修改的信息printf("\t\t\t\t姓名\t性别\t地址\t邮编\t电话\n\t\t\t\t");printf("%s\t%s\t%s\t%s\t%s\n",p->name,p->sex,p->adr,p->eip,p->tel);//输出数据//free(p1);printf("\n\n\t\t\t\t返回中!请稍侯..."); //输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回好友管理}void Mmxg(){system("cls");p3=(TEL *)malloc(sizeof(TEL)); //申请一个新的空间printf("\n\n\n\n\n\t\t\t\t请输入原密码:");//输出提示用户printf("\n\n\t\t\t\t");scanf("%s",p3->secret); //用户输入数据if((strcmp(p1->secret,p3->secret))==0){printf("\n\n\n\n\n\t\t\t\t请输入新密码:");//输出提示用户printf("\n\n\t\t\t\t");scanf("%s",p1->secret); //用户输入数据system("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t\t新密码保存中!");//输出提示用户printf("\n\n\t\t\t\t请稍侯......"); //输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观system("cls");printf("\n\n\n\n\n\n\n\t\t\t\t恭喜!\n\n\t\t\t\t密码修改成功!");//输出提示用户printf("\n\n\t\t\t\t正在返回主菜单!请稍侯......");//输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观实验报告Xtgl(); //返回主菜单}else{system("cls");printf("\n\n\n\n\n\n\n\n\t\t\t\t原密码输入错误!");//输出提示用户printf("\n\n\t\t\t\t请重新输入!"); //输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观Mmxg(); //返回密码修改界面}}//删除通信录信息void Delete(){system("cls");char name[50]; //先查找后删除TEL *p = head->next, *p1 =head->next,*p2; //用指针指向结构体if (head->next == NULL){printf("\n\n\n\n\n\t\t\t\t查找中!请稍侯...");//输出提示for(int i=0;i<L;i++); //减慢速度使界面更美观printf("\n\t\t\t\t此通信录为空!"); //输出提示printf("\n\t\t\t\t返回中!请稍侯...\n"); //输出提示// return;for(i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回好友管理}printf("\n\n\n\n\n\t\t\t\t请输入要删除的姓名:\n");//输出提示用户scanf(" %s",name); //用户输入数据while ((strcmp(p->name,name)!=0 )&& p->next != NULL){p1=p;p =p->next;}if (strcmp(name, p->name)==0) //输出删除信息{if (p == head->next&&p->next!=NULL)head->next = p->next;else if(p==head->next&&p->next==NULL)实验报告{head->next=p->next;printf("\t\t\t\t正在删除信息中!请稍侯...");//输出提示用户for(int i=0;i<L;i++); //减慢速度使界面更美观system("cls");printf("\n\n\n\n\n\t\t\t\t信息已删除,此通信录为空!!");//输出提示用户printf("\n\t\t\t\t返回中!请稍侯...");//输出提示用户//return;for(i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回好友管理}elsep1->next = p->next;}else{printf("\n\n\n\n\n\t\t\t\t查找中!请稍侯..."); //输出提示用户for(int i=0;i<L;i++);printf("\n\t\t\t\t此信息不存在!!!\n"); //输出提示用户for(i=0;i<L;i++); //减慢速度使界面更美观// return;for(i=0;i<L;i++); //减慢速度使界面更美观Hygl(); //返回好友管理}printf("\t\t\t\t正在删除信息中!请稍侯...");for(int i=0;i<L;i++); //减慢速度使界面更美观printf("\n\t\t\t\t此信息已删除!\n\t\t\t\t"); //输出提示用户printf("姓名\t性别\t地址\t邮编\t电话\n"); //输出提示用户for(p2=head->next;p2!=NULL;p2=p2->next)printf("%s\t%s\t%s\t%s\t%s\n",p2->name,p2->sex,p2->adr,p2->eip,p2->tel);//输出数据}void Help(){system("cls");printf("\n\n\n\n\n\n\n\t\t\t\t请您按提示操作!!!!!!!!!");//输出提示用户printf("\n\n\t\t\t\t谢谢合作!!!!!!!!!\n\n\t\t\t\t");//输出提示用户实验报告system("pause");Menu(); //返回主菜单}五软件使用说明1.在使用该软件系统时,应首先定义用户,这样才可以以用户的身份进行登录和操作。

相关文档
最新文档