简单的通讯录实验报告
通讯录系统实验报告
通讯录系统实验报告通讯录系统实验报告一、引言通讯录系统是一种方便管理联系人信息的工具。
随着社会的发展和科技的进步,人们的联系方式越来越多样化,传统的纸质通讯录已经无法满足人们的需求。
因此,设计和开发一个高效、便捷的通讯录系统成为了一个重要的课题。
二、实验目的本次实验的目的是设计和实现一个通讯录系统,使用户能够方便地存储、查找和管理联系人信息。
通过这个实验,我们可以学习和掌握数据库的基本操作,提高我们的编程能力和实践能力。
三、实验过程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”中。
C语言课程设计通讯录实验报告
C语言课程设计通讯录实验报告实验目的:本实验旨在通过设计一个通讯录程序,加深理解和掌握结构体、函数和文件操作等C语言知识,并培养学生的实践能力和解决问题的能力。
实验要求:设计一个通讯录程序,能够实现添加联系人、删除联系人、查找联系人、修改联系人信息等基本功能,并能够将联系人信息保存到文件中,实现数据的持久化存储。
实验原理:通讯录程序的数据结构可以设计为一个结构体数组,每个元素表示一个联系人,结构体包含姓名、电话号码、地址等信息。
通过使用不同的函数实现不同的功能,如添加联系人函数addContact()、删除联系人函数deleteContact()、查找联系人函数searchContact()等。
实验步骤:1. 定义一个结构体类型,包含姓名、电话号码和地址等信息。
2. 声明并实现各个功能函数,如添加联系人函数addContact()、删除联系人函数deleteContact()、查找联系人函数searchContact()等。
3. 在主函数中使用循环菜单来实现用户的各种操作选择。
4. 将联系人信息保存到文件中,实现数据的持久化存储。
5. 编译并运行程序,验证程序的正确性和功能完整性。
实验结果:通过实验,成功设计并实现了一个通讯录程序,能够实现添加联系人、删除联系人、查找联系人、修改联系人信息等基本功能,并能够将联系人信息保存到文件中,实现数据的持久化存储。
实验总结:本实验通过设计一个通讯录程序,加深了对结构体、函数和文件操作等C语言知识的理解和掌握,同时也培养了解决问题的能力和实践能力。
通过实验,我进一步理解了结构体的定义和使用、函数的声明和调用、文件的打开和关闭等操作。
在实验过程中,我也遇到了一些问题,如如何优化查找联系人的算法、如何处理文件打开失败的情况等,通过思考和调试逐步解决了这些问题。
实验过程中的问题和解决方法不仅加深了对C 语言的理解,也提高了解决问题的能力。
作通讯录的实训报告
随着信息技术的飞速发展,通讯录在人们的工作、生活中扮演着越来越重要的角色。
为了提高同学们对通讯录管理的认识,培养实际操作能力,我校组织了通讯录实训活动。
本次实训旨在使同学们掌握通讯录的基本操作,提高信息处理能力,为今后的工作打下坚实基础。
二、实训目标1. 熟悉通讯录的基本概念和作用;2. 掌握通讯录的创建、编辑、查询、导出等功能;3. 学会使用通讯录进行日常信息管理;4. 培养同学们团队协作和沟通能力。
三、实训内容1. 通讯录基础知识实训老师首先向同学们介绍了通讯录的基本概念、作用以及常见的通讯录类型。
通讯录是一种用于存储和查询联系人信息的工具,可以方便地记录和查找电话、邮箱、地址等个人信息。
常见的通讯录类型有纸质通讯录、电子通讯录等。
2. 通讯录创建与编辑同学们在实训老师的指导下,学习了如何创建一个新的通讯录。
首先,选择合适的通讯录类型,如电子通讯录;然后,输入联系人的姓名、电话、邮箱、地址等基本信息。
在编辑通讯录时,同学们掌握了如何修改、删除、添加联系人信息。
3. 通讯录查询与导出实训老师讲解了如何通过姓名、电话、邮箱等条件在通讯录中查询联系人信息。
此外,同学们还学会了如何将通讯录导出为Excel、Word等格式,方便后续的整理和使用。
4. 实际操作演练为了巩固所学知识,同学们进行了实际操作演练。
在实训老师的带领下,同学们分组进行通讯录管理,包括创建通讯录、添加联系人、查询信息等。
通过实际操作,同学们熟练掌握了通讯录的基本操作。
1. 同学们对通讯录的基本概念、作用有了更深入的了解;2. 掌握了通讯录的创建、编辑、查询、导出等功能;3. 提高了信息处理能力,为今后的工作打下了坚实基础;4. 培养了团队协作和沟通能力。
五、实训总结本次通讯录实训活动,同学们积极参与,认真完成各项任务。
通过实训,同学们对通讯录有了更加全面的认识,掌握了通讯录的基本操作,提高了信息处理能力。
在今后的工作和生活中,通讯录将发挥重要作用,希望同学们能够充分利用所学知识,提高工作效率。
数据结构——通讯录实验报告
数据结构——通讯录实验报告
《数据结构课程设计》实验报告
编号实验一实验项目名称通讯录管理
班学姓08计科(1)班学时数 6 指导教师冯韵 5 黄媛级号名
成实验日期 2010年9月7日绩
一、实验目的:使用有关单链表的操作来实现通讯录信息系统的管理二、内容与设计思想:(设计思想、主要数据结构、主要代码结构、主要代码段分析) 设计思想:利用单链表的建立、查询、插入、删除、输出实现通讯录管理。
主要数据结构:单链表的建立、查询、插入、删除。
主要代码结构和分析:
void main( )主函数
for循环实现菜单循环。
int menu_select( ) 菜单选择函数
首先输出菜单选项,将输入的选项赋给sn,用sn判断输入值是否合理。
利用for循环实现重复选择,利用switch调用建立、查询、插入、删除和输出函数。
LinkList CreateList(void)建立带头结点链表
首先利用malloc申请头结点,置结束标志为0.通过0、1选择来结束建表。
三、调试过程(测试数据设计与测试结果分析) 四、总结
1、设计中遇到的问题及解决过程
2、设计中产生的错误及原因分析
3、设计体会和收获
五、评阅意见:。
通讯录管理系统实验报告
通讯录管理系统实验报告通讯录管理系统实验报告一、引言通讯录是我们日常生活中不可或缺的一部分,它帮助我们记录和管理与各种人的联系方式。
然而,传统的纸质通讯录存在着不便携、易丢失、难以更新等问题。
为了解决这些问题,我们设计并实现了一个通讯录管理系统。
二、系统设计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)将联系人的信息可以存放在文件中,从文件中也可以读出联系人的信息。
(2)可以添加一个新联系人的信息。
(3)可以删除一个联系人的信息,删除条件为电话号码或姓名。
(4)可以查询一个联系人的信息,查询条件为电话号码或姓名。
(5)可以对联系人的信息进行排序,排序条件为联系人的姓名。
二、实验过程1、整个程序包含三个文件。
手机通讯录.cpp、delong.h 、menu.h(点击产看代码)手机通讯录.cpp [主程序]delong.h [各种函数]menu.h [菜单目录]2、联系人信息包括编号、姓名、手机号码、家庭住址、E-mail、QQ、类别信息。
其中编号分配4位、姓名10位、手机号码13位、地址14位、E-mail 14位、QQ和类别都为12位。
但实际上存储的时候所占位数都要少一位。
因为存储的时候是以字符形式存储,读取的时候以字符串形式读取,需要用最后一位填写字符串结束标志’\0’。
3、函数列表:void AddSpace(int n); /*添加空格*/void Save(FILE *fp,int n,int j); /*将person[MAXSIZE]中的内容放到通讯录.txt*/j==0; 追加方式写入,适用于增加联系人的情况。
j==1; 重新方式写入,适用于修改、删除情况。
三、总结:1、还是有小BUG。
Eg:删除最后一个联系人的时候再输出全部信息时还是能输出一个联系人。
2、代码冗长:Eg:增加操作及存储,得到联系人信息增添空格的时候没有写AddSpace()函数。
在修改操作中得到修改后的联系人信息那里才用AddSpace()函数。
某些地方重复代码较多。
3、函数归编混乱,不利于读看。
四、实验具体实验程序代码(要有注释)、测试结果(最好截图)和实验总结1、开始界面2、创建通讯录,若存在则无须再次创建。
通讯录制作实习报告
一、实习背景随着信息化时代的到来,通讯录作为人们日常工作中不可或缺的工具,其重要性日益凸显。
为了更好地掌握通讯录制作的相关技能,提高自己的办公效率,我于近期在一家企业进行了为期一个月的通讯录制作实习。
本次实习旨在通过实际操作,深入了解通讯录制作的全过程,提高自己的办公软件应用能力。
二、实习单位及岗位实习单位:XX科技有限公司实习岗位:行政助理三、实习内容1. 实习目标通过本次实习,我期望达到以下目标:(1)掌握通讯录制作的基本流程和技巧;(2)熟悉常用办公软件(如Excel、Word等)在通讯录制作中的应用;(3)提高自己在实际工作中的沟通能力和团队协作能力。
2. 实习过程(1)实习初期实习初期,我在导师的带领下,了解了公司各部门的组织架构和人员信息。
随后,我开始学习通讯录制作的基本流程,包括收集信息、整理数据、设计模板、录入信息、校对修改等。
(2)实习中期在实习中期,我参与了公司通讯录的更新和维护工作。
具体内容包括:1)收集各部门人员的新增、变动和离职信息;2)根据收集到的信息,更新通讯录内容;3)对通讯录进行分类整理,便于查找;4)定期检查通讯录的准确性,确保信息及时更新。
(3)实习后期实习后期,我尝试独立完成一次通讯录的制作。
在导师的指导下,我学习了如何设计通讯录模板,并运用Excel和Word等办公软件进行操作。
以下是我制作通讯录的具体步骤:1)确定通讯录模板样式:根据公司实际情况,我选择了简洁、大方的模板样式,方便员工查找和使用。
2)收集信息:通过询问各部门负责人,收集到最新的员工信息,包括姓名、部门、职位、联系方式等。
3)录入信息:运用Excel软件,将收集到的信息录入表格中,并对数据进行分类整理。
4)设计模板:利用Word软件,根据模板样式,设计通讯录的排版和格式。
5)校对修改:在完成通讯录制作后,对内容进行仔细检查,确保信息准确无误。
6)打印分发:将制作好的通讯录打印出来,分发给各部门。
c语言简易通讯录报告
实习报告①需求分析建立一个通讯系统,系统中保存着人员的姓名,电话,住址,邮编等信息,通过该系统的界面可以浏览这些信息,也可以插入,添加及删除某个人的信息1)录入人员信息,创建通讯录文件2)进行相应的插入,添加,删除操作,并输出相应的结果(1)确定设计程序接收的输入数据和输出数据的形式、取值范围;每条通讯录包含姓名,街道,城市,邮编,电话号码。
都以字符型数组存储,分别定义为15、30、20、20、20字节长。
输入同输出。
(2)初步列出测试数据以及测试目的;②程序设计说明程序中用到的所有数据类型的定义。
绘制主程序的流程图,以及各子程序模块间的调用关系流程图:③调式分析(1)列出调式过程中遇到的主要问题,并说明解决方法;链表和结构体在实习刚开始时理解不透彻,只知道大概需要用到程序中,翻阅了一些资料后基本学会使用了。
开始用if,else语句轮寻菜单中用户输入的数字对应功能,后来发现用swith,case更方便灵活。
(2)分析算法的时间和空间复杂度,如果有给出算法改进思想;作为一个完整可用的通讯录还缺少保存信息到硬盘功能。
但本人基础较薄,有限的实习时间内无法完成。
希望今后有机会继续完善。
④使用说明说明编写程序的使用方法,详细列出每一操作步骤;⑤测试结果列出若干输入的测试数据、测试目的、产生的结果;简易通讯录系统:Designed by Irene=================================输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入:姓名街道城市邮编------------------------------------- Irenedfbj100034110------------------------------------- 继续输入吗?(Y/N)y姓名街道城市邮编------------------------------------- ericfdbj100076119------------------------------------- 继续输入吗?(Y/N)y姓名街道城市邮编------------------------------------- rareijbj100056120------------------------------------- 继续输入吗?(Y/N)n简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: 1显示所有记录如下:-------------------------------------姓名街道城市邮编------------------------------------- Irene df bj 100034-------------------------------------eric fd bj 100076-------------------------------------rare ij bj 100056-------------------------------------简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入:2请输入姓名进行查询:Irene------------------------------------- 姓名街道城市邮编------------------------------------- Irene df bj 100034------------------------------------- 查询成功!继续查询?(Y/N)n简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: 3请输入姓名删除纪录:eric确定要删除吗?(Y/N)ySuccess to delete!简易通讯录系统:Designed by Irene=================================输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: ⑥其他(1)注释源程序代码;#include <stdio.h>#include <string.h>#include <malloc.h>typedef struct txl{char name[15];char street[30];char city[20];char eip[20];char phone[20];}dtxl; /*建立通讯录信息结构体;*/ typedef struct dlnode{dtxl data;struct dlnode *prior;struct dlnode *next;}dnode; /*建立双向链表结构体;*/ dnode *head;void enter(void){dnode *p,*rear;char flag='Y';head=(dnode *)malloc(sizeof(dnode));rear=head;head->next=head;head->prior=head; /*建立双链表空头节点;*/while(flag=='Y'||flag=='y'){p=(dnode *)malloc(sizeof(dnode));printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\ n");scanf("%s %s %s %s %s",&p->,&p->data.street,&p->data.city,&p->data.eip,&p->data.phone);rear->next=p;p->prior=rear;rear=p;p->next=head; /*向双链表中动态增加节点数据;*/printf("-----------------------------------------------\ n");printf("继续输入吗?(Y/N)\n");scanf("%s",&flag);}printf("\n");}//显示子程序void display(dnode *head){dnode *p;p=head->next;printf("显示所有记录如下:\n");printf("-----------------------------------------------\n");printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\n");while(p!=head){printf("%s %8s %8s %8s %8s",p->,p->data.street, p->data.city,p->data.eip,p->data.phone);printf("\n");printf("-----------------------------------------------\ n\n");p=p->next;}}dnode *search(dnode *head){dnode *p;char name[9];p=head->next;scanf("%s",name);while(p!=head&&p&&strcmp(p->,name)!=0){p=p->next;}return p;}//删除子程序void delete(dnode *head){char f;dnode *p;p=search(head);if(p==head){printf("没有找到要删除的数据!!!\n\n");return;}else{printf("确定要删除吗?(Y/N)\n");scanf("%s",&f);if(f=='Y'||f=='y'){p->prior->next=p->next;p->next->prior=p->prior;free(p);printf("Success to delete!\n");}}}//退出子程序void quit(void){exit(0);}//主程序void main(){ char flag='Y';for(;;){dnode *q;int ch;printf("简易通讯录系统:\n");printf(" Designed by Irene\n\n");printf("=================================\n");printf(" 输入纪录-----------------0\n");printf(" 显示所有纪录-------------1\n");printf(" 查询纪录-----------------2\n");printf(" 删除纪录-----------------3\n");printf(" 退出---------------------4\n"); /*通讯录提示信息;*/printf("=================================\n");printf("请输入数字(0~4)选择,enter确定并输入:\n");scanf("%d",&ch);//菜单分支选择switch(ch){case 0:enter();break;case 1:display(head);break;case 2:jmp: printf("请输入姓名进行查询:\n");q=search(head);if(q!=head){printf("-----------------------------------------------\ n");printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\ n");printf("%s %8s %8s %8s %8s",q->,q->data.street, q->data.city,q->data.eip,q->data.phone);printf("\n-----------------------------------------------\n");printf("查询成功!\n");printf("\n继续查询?(Y/N)\n");scanf("%s",&flag);if(flag=='Y'||flag=='y')goto jmp;}elseprintf("对不起,没有此数据相关的纪录!!!\n\n");break;case 3:printf("请输入姓名删除纪录:\n");delete(head);break;case 4:quit();break;default:printf("\n\n按错键了吧?请输入数字0-6!\n\n\n");} /*用SWITCH函数选择菜单;*/}}(2)如果结果中有多个文件,列出文件名清单,注明每个程序的作用。
手机通讯录实验报告及使用说明(附源代码)
手机通讯录实验报告及使用说明(附源代码)自查报告。
标题,手机通讯录实验报告及使用说明(附源代码)。
自查报告:在进行手机通讯录实验及使用说明的撰写过程中,我对手机通讯录的功能和操作进行了深入的研究和实践。
在实验中,我首先对手机通讯录的基本功能进行了分析和总结,包括添加联系人、编辑联系人信息、删除联系人等操作。
然后,我利用编程知识,编写了手机通讯录的源代码,并进行了测试和调试。
在实验中,我发现手机通讯录的功能十分实用,可以帮助用户轻松管理联系人信息,提高工作效率。
通过对手机通讯录的操作和源代码的编写,我对手机通讯录的原理和实现方式有了更深入的了解,也增强了我的编程能力和实际操作能力。
在使用说明的撰写过程中,我详细介绍了手机通讯录的各项功能操作和使用方法,并附上了源代码的下载链接,方便读者进行学习和实践。
我还对手机通讯录的使用注意事项进行了说明,帮助用户更好地使用手机通讯录,并避免操作失误。
总的来说,通过本次实验和使用说明的撰写,我对手机通讯录有了更深入的了解,也提高了我的编程能力和文档撰写能力。
我相信这份实验报告和使用说明能够帮助更多的人学习和使用手机通讯录,提高工作和生活效率。
附源代码:```java。
public class Contact {。
private String name;private String phoneNumber;private String email;public Contact(String name, String phoneNumber, String email) {。
= name;this.phoneNumber = phoneNumber;this.email = email;}。
public String getName() {。
return name;}。
public void setName(String name) {。
= name;}。
public String getPhoneNumber() {。
员工通讯录实训体会与总结
员工通讯录实训体会与总结
员工通讯录实训是一项非常有意义的学习经历。
通过参与这个实训,我获得了许多宝贵的体会和总结。
首先,我深刻体会到了信息管理的重要性。
在员工通讯录实训中,我需要收集、整理和更新员工的联系信息,这让我意识到一个高效的信息管理系统对于企业的正常运转是至关重要的。
它可以帮助企业快速找到所需的人员,提高沟通效率,促进团队合作。
其次,我学会了如何有效地组织和管理数据。
在处理大量员工信息时,我学会了使用数据库和电子表格等工具来进行数据的分类、筛选和检索。
这些技能不仅在本次实训中非常有用,而且在未来的工作和学习中也将具有很大的帮助。
此外,我还提高了自己的沟通和协作能力。
在与团队成员合作完成员工通讯录的过程中,我学会了如何有效地与他人沟通、协调工作进度以及解决问题。
这些经验对于我未来的职业发展将非常有益。
最后,我总结出了一些在员工通讯录实训中需要注意的事项。
首先,要确保数据的准确性和完整性,及时更新员工信息。
其次,要合理规划工作流程,提高工作效率。
此外,要注重团队合作,充分发挥每个人的优势,共同完成任务。
总的来说,员工通讯录实训让我收获颇丰。
通过这次实训,我不仅学到了实用的技能和知识,还培养了自己的团队合作精神和解决问题的能力。
我相信这些经验和体会将对我未来的学习和工作产生积极的影响。
安卓通讯录实训报告
安卓实训设计报告安卓通讯录设计题目:安卓通讯录班级:姓名:学号:指导老师:日期: 2012年6月7日内容要求一、题目分析,功能要求。
1.1 实验目的熟悉Android软件开发的基本架构利用Eclipse和ADT插件设计通讯录1.2 功能本手机通讯录工具主要实现五大功能:联系人的查询:字段查询,分组查询,字母排序查询;增加、删除联系人以及修改联系人信息;导入、导出联系人;发送联系人信息;设置。
二、实验设计2.1 UI设计我们用一个ListView来显示整个通讯录,其中用TextView显示每一记录,他们的xml文件分别为:main.xml(通讯录主界面),addres.xml(添加联系人界面),list_item.xml(浏览联系人界面),find.xml(查找联系人界面)。
2.2功能的设计为了在主界面中浏览联系人的信息,并且创建主要菜单栏,我们设计了MainActivity类,主要用于显示联系人信息和菜单栏,通过菜单栏,实现通讯录的相关功能。
AddressBook类主要是为了实现联系人的添加功能,并且实现信息的保存后跳转到主界面。
Findactivity类主要是为了实现联系人的查找功能,输入联系人的姓名,点击查找按钮,显示所查联系人的相关信息。
三、实验程序四、实验效果图五、总结通过设计该通讯录,主要学习了UI设计、数据库的综合操作、动态菜单的使用以及各种权限的注册。
通过本次设计,使我对Android平台的数据库操作有了更进一步的理解,同时也对Android系统有了更深入的了解。
附录一//定义数据public class ContactColumn implements BaseColumns{public ContactColumn(){}//列名public static final String NAME = "name"; //姓名public static final String MOBILENUM = "mobileNumber"; //移动电话public static final String HOMENUM = "homeNumber"; //家庭电话public static final String ADDRESS = "address"; //地址public static final String EMAIL = "email"; //邮箱public static final String BLOG = "blog"; //博客//列索引值public static final int_ID_COLUMN = 0;public static final int NAME_COLUMN = 1;public static final int MOBILENUM_COLUMN = 2;public static final int HOMENUM_COLUMN = 3;public static final int ADDRESS_COLUMN = 4;public static final int EMAIL_COLUMN = 5;public static final int BLOG_COLUMN = 6;//查询结果public static final String[] PROJECTION ={_ID,NAME,MOBILENUM,HOMENUM,ADDRESS,EMAIL,BLOG,};}public class DBHelper extends SQLiteOpenHelper{public static final String DATABASE_NAME = "mycontacts.db";//数据库名public static final int DATABASE_VERSION = 2; //版本public static final String CONTACTS_TABLE = "contacts"; //表名//创建表private static final String DATABASE_CREATE ="CREATE TABLE " + CONTACTS_TABLE +" ("+ ContactColumn._ID+" integer primary key autoincrement,"+ +" text,"+ ContactColumn.MOBILENUM+" text,"+ ContactColumn.HOMENUM+" text,"+ ContactColumn.ADDRESS+" text,"+ ContactColumn.EMAIL+" text,"+ ContactColumn.BLOG+" text);";public DBHelper(Context context){super(context, DATABASE_NAME, null, DATABASE_VERSION);}public void onCreate(SQLiteDatabase db){db.execSQL(DATABASE_CREATE);}public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){db.execSQL("DROP TABLE IF EXISTS " + CONTACTS_TABLE);onCreate(db);}}// URI类型转换public String getType(Uri uri){switch (uriMatcher.match(uri)){case CONTACTS:return"vnd.android.cursor.dir/vnd.yarin.android.mycontacts";case CONTACT_ID:return"vnd.android.cursor.item/vnd.yarin.android.mycontacts";default:throw new IllegalArgumentException("Unsupported URI: " + uri);}}// 删除指定数据列@Overridepublic int delete(Uri uri, String where, String[] selectionArgs){int count;switch (uriMatcher.match(uri)){case CONTACTS:count = contactsDB.delete(CONTACTS_TABLE, where, selectionArgs);break;case CONTACT_ID:String contactID = uri.getPathSegments().get(1);count = contactsDB.delete(CONTACTS_TABLE,ContactColumn._ID+ "=" + contactID+ (!TextUtils.isEmpty(where) ? " AND (" + where + ")" : ""),selectionArgs);break;default:throw new IllegalArgumentException("Unsupported URI: " + uri);}getContext().getContentResolver().notifyChange(uri, null);return count;}// 插入数据public Uri insert(Uri uri, ContentValues initialValues){if (uriMatcher.match(uri) != CONTACTS){throw new IllegalArgumentException("Unknown URI " + uri);}ContentValues values;if (initialValues != null){values = new ContentValues(initialValues);Log.e(TAG + "insert", "initialValues is not null");}else{values = new ContentValues();}// 设置默认值if (values.containsKey() == false){values.put(, "");}if (values.containsKey(ContactColumn.MOBILENUM) == false){values.put(ContactColumn.MOBILENUM, "");}if (values.containsKey(ContactColumn.HOMENUM) == false){values.put(ContactColumn.HOMENUM, "");}if (values.containsKey(ContactColumn.ADDRESS) == false){values.put(ContactColumn.ADDRESS, "");}if (values.containsKey(ContactColumn.EMAIL) == false){values.put(ContactColumn.EMAIL, "");}if (values.containsKey(ContactColumn.BLOG) == false){values.put(ContactColumn.BLOG, "");}Log.e(TAG + "insert", values.toString());long rowId = contactsDB.insert(CONTACTS_TABLE, null, values);if (rowId > 0){Uri noteUri = ContentUris.withAppendedId(CONTENT_URI, rowId);getContext().getContentResolver().notifyChange(noteUri, null);Log.e(TAG + "insert", noteUri.toString());return noteUri;}throw new SQLException("Failed to insert row into " + uri);}// 更新数据库public int update(Uri uri, ContentValues values, String where, String[] selectionArgs){int count;Log.e(TAG + "update", values.toString());Log.e(TAG + "update", uri.toString());Log.e(TAG + "update :match", "" + uriMatcher.match(uri));switch (uriMatcher.match(uri)){case CONTACTS:Log.e(TAG + "update", CONTACTS + "");count = contactsDB.update(CONTACTS_TABLE, values, where, selectionArgs);break;case CONTACT_ID:String contactID = uri.getPathSegments().get(1);Log.e(TAG + "update", contactID + "");count = contactsDB.update(CONTACTS_TABLE, values, ContactColumn._ID + "=" + contactID+ (!TextUtils.isEmpty(where) ? " AND (" + where + ")" : ""), selectionArgs);break;default:throw new IllegalArgumentException("Unsupported URI: " + uri);}getContext().getContentResolver().notifyChange(uri, null);return count;}}public boolean onPrepareOptionsMenu(Menu menu){super.onPrepareOptionsMenu(menu);final boolean haveItems = getListAdapter().getCount() > 0;if (haveItems){Uri uri = ContentUris.withAppendedId(getIntent().getData(), getSelectedItemId());Intent[] specifics = new Intent[2];specifics[0] = new Intent(Intent.ACTION_EDIT, uri);specifics[1] = new Intent(Intent.ACTION_VIEW, uri);MenuItem[] items = new MenuItem[2];//添加满足条件的菜单Intent intent = new Intent(null, uri);intent.addCategory(Intent.CATEGORY_ALTERNATIVE);menu.addIntentOptions(Menu.CATEGORY_ALTERNATIVE, 0, 0, null, specifics, intent, 0, items);if (items[0] != null){//编辑联系人items[0].setShortcut('1', 'e').setIcon(R.drawable.edituser).setTitle(R.string.editor_user);}if (items[1] != null){//查看联系人items[1].setShortcut('2', 'f').setTitle(R.string.view_user).setIcon(R.drawable.viewuser);}}else{menu.removeGroup(Menu.CATEGORY_ALTERNATIVE);}return true;}<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.yarin.android.MyContacts"android:versionCode="1"android:versionName="1.0"><application android:icon="@drawable/icon" android:label="@string/app_name"><provider android:name="ContactsProvider"android:authorities="com.yarin.android.provider.ContactsProvider"/><activity android:name=".MyContacts"android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="UNCHER"/></intent-filter></activity><activity android:name=".ContactEditor"android:label="@string/editor_user"><intent-filter><action android:name="android.intent.action.EDIT"/><category android:name="android.intent.category.DEF AULT"/><data android:mimeType="vnd.android.cursor.item/vnd.yarin.android.mycontacts"/> </intent-filter><intent-filter><action android:name="android.intent.action.INSERT"/><category android:name="android.intent.category.DEF AULT"/><data android:mimeType="vnd.android.cursor.dir/vnd.yarin.android.mycontacts"/> </intent-filter></activity><activity android:name=".ContactView"android:label="@string/view_user"><intent-filter><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.DEF AULT"/><data android:mimeType="vnd.android.cursor.item/vnd.yarin.android.mycontacts"/> </intent-filter><intent-filter><category android:name="android.intent.category.DEF AULT"/><data android:mimeType="vnd.android.cursor.dir/vnd.yarin.android.mycontacts"/> </intent-filter></activity></application><uses-permission android:name="android.permission.CALL_PHONE"></uses-permission><uses-permission android:name="android.permission.SEND_SMS"></uses-permission><uses-permission android:name="android.permission.RECEIVE_SMS"/><uses-sdk android:minSdkVersion="5"/></manifest>。
通讯录管理实验报告
一、实验背景随着科技的发展,人们的生活节奏越来越快,通讯方式也日益多样化。
为了方便人们管理和查阅通讯信息,通讯录管理系统应运而生。
本实验旨在通过设计和实现一个通讯录管理系统,提高通讯信息管理的效率和便捷性。
二、实验目的1. 熟悉通讯录管理系统的基本功能和操作流程;2. 掌握通讯录管理系统的设计方法和实现技巧;3. 提高编程能力和系统分析能力。
三、实验内容1. 系统需求分析根据实验要求,本通讯录管理系统应具备以下功能:(1)添加联系人:输入联系人信息,包括姓名、电话、邮箱、QQ号等,并将其保存到系统中;(2)删除联系人:根据联系人姓名或电话,删除指定联系人信息;(3)修改联系人信息:根据联系人姓名或电话,修改指定联系人的信息;(4)查询联系人:根据联系人姓名、电话、邮箱或QQ号,查询指定联系人的信息;(5)导出通讯录:将通讯录信息导出到文本文件或Excel文件;(6)导入通讯录:从文本文件或Excel文件中导入通讯录信息。
2. 系统设计本系统采用C++编程语言,利用面向对象编程思想进行设计。
系统采用单例模式,确保全局只有一个通讯录对象。
联系人信息以链表形式存储,便于插入、删除和修改操作。
(1)数据结构设计联系人信息使用结构体存储,包括姓名、电话、邮箱、QQ号等字段。
```cppstruct Contact {string name;string phone;string email;string qq;Contact next;};```(2)类设计- Contact类:负责存储联系人信息,包括姓名、电话、邮箱、QQ号等字段;- ContactManager类:负责管理联系人链表,包括添加、删除、修改、查询、导出和导入等功能。
```cppclass Contact {public:string name;string phone;string email;string qq;Contact next;Contact(string n, string p, string e, string q) : name(n), phone(p), email(e), qq(q), next(NULL) {}};class ContactManager {private:Contact head;public:ContactManager() : head(NULL) {}~ContactManager() {// 释放链表内存Contact temp;while (head != NULL) {temp = head;head = head->next;delete temp;}}void AddContact(Contact contact) {// 添加联系人}void DeleteContact(string phone) {// 删除联系人}void ModifyContact(string phone, Contact newContact) { // 修改联系人信息}Contact QueryContact(string phone) {// 查询联系人return NULL;}void ExportContact() {// 导出通讯录}void ImportContact() {// 导入通讯录}};```3. 系统实现根据系统设计,使用C++编程语言实现各个功能模块。
通讯录制作实习报告
实习单位:ABC通讯录制作公司实习时间:2023年2月1日至2023年2月28日实习内容:在ABC通讯录制作公司实习期间,我主要负责了通讯录的制作、排版和校对工作。
实习期间,我参与了多个项目的通讯录制作,包括公司内部通讯录、学校班级通讯录和社团组织通讯录等。
以下是我实习期间的主要工作内容:1. 数据收集:在制作通讯录之前,我需要收集相关人员的姓名、职务、电话号码和电子邮件等信息。
通过与相关人员沟通,确保数据的准确性和完整性。
2. 通讯录排版:根据客户的要求,使用专业软件(如InDesign、Word等)进行通讯录的排版。
包括设置页边距、字体、字号、行间距等,确保通讯录的版面整洁、美观。
3. 信息校对:在通讯录排版完成后,我对每个页面的信息进行仔细校对,确保姓名、职务、电话号码等信息的准确无误。
同时,与客户沟通,确认通讯录的版面和内容是否符合要求。
4. 打印和装订:在通讯录校对无误后,我将文件发送至打印厂进行打印,并根据客户的要求选择合适的纸张和装订方式。
在装订过程中,确保通讯录的装订质量。
5. 交付客户:在通讯录制作完成后,我将成品交付给客户,并收集客户的反馈意见,以便在今后的制作过程中进行改进。
实习收获:1. 技能提升:通过实习,我熟练掌握了通讯录制作、排版和校对的相关技能,提高了自己的专业素养。
2. 团队协作:在实习过程中,我与同事们共同完成多个项目的通讯录制作,学会了与他人协作,提高了自己的沟通能力和团队意识。
3. 客户服务:在与客户沟通的过程中,我学会了倾听客户需求,为客户提供满意的服务,提高了自己的客户服务能力。
4. 工作态度:实习期间,我严格遵守公司的规章制度,按时完成工作任务,养成了良好的工作习惯和态度。
通过本次实习,我深刻认识到通讯录制作工作的重要性。
作为一名通讯录制作人员,需要具备严谨的工作态度、良好的沟通能力和团队协作精神。
在今后的学习和工作中,我将继续努力提升自己的专业素养,为客户提供更优质的服务。
通讯录实验报告
通讯录实验报告通讯录实验报告引言:通讯录是一种用于存储和管理联系人信息的工具。
随着科技的进步,我们已经不再依赖纸质通讯录,而是使用电子通讯录来管理我们的联系人。
在本次实验中,我们将探索通讯录的设计和功能,并测试其在现实生活中的实用性。
一、通讯录的设计原则通讯录的设计应遵循以下原则:简洁、易用、高效。
首先,通讯录应该能够简洁地展示联系人的基本信息,如姓名、电话号码和电子邮件地址等。
其次,通讯录的界面应该简单直观,用户可以轻松地添加、编辑和删除联系人信息。
最后,通讯录应该能够快速地搜索和筛选联系人,以提高用户的工作效率。
二、通讯录的功能1. 添加联系人:通讯录应该提供一个方便的界面,让用户可以轻松地添加联系人信息。
用户可以输入姓名、电话号码、电子邮件地址等基本信息,并可以选择添加其他附加信息,如生日、地址等。
2. 编辑联系人:通讯录应该允许用户随时编辑联系人信息。
当联系人的电话号码或电子邮件地址发生变化时,用户应能够快速地更新这些信息。
此外,通讯录还应提供一个简单的界面,让用户可以添加或删除联系人的附加信息。
3. 删除联系人:通讯录应该允许用户删除不再需要的联系人信息。
当用户不再需要某个联系人的信息时,他们应该能够轻松地将其从通讯录中删除。
4. 搜索联系人:通讯录应该提供一个快速、准确的搜索功能,以帮助用户快速找到他们需要的联系人。
用户可以通过输入姓名、电话号码或电子邮件地址等关键词来搜索联系人。
5. 分组管理:通讯录应该允许用户将联系人分组,以便更好地管理他们的联系人信息。
用户可以根据个人喜好或工作需求创建不同的分组,并将相关联系人归类到相应的分组中。
三、通讯录的实用性测试为了测试通讯录的实用性,我们进行了一项实验。
我们邀请了一些参与者使用不同的通讯录应用程序,并要求他们完成一系列任务,如添加联系人、编辑联系人信息、删除联系人、搜索联系人等。
通过观察参与者的表现和收集他们的反馈,我们得出了以下结论:1. 大多数参与者反馈通讯录应用程序的界面设计简洁、直观,易于使用。
数据结构实训通讯录报告
一、实训目的本次数据结构实训通讯录报告旨在通过实际操作,加深对数据结构理论知识的理解,提高编程能力,培养实际解决问题的能力。
通过设计、实现和维护一个通讯录管理系统,使学生掌握线性表、链表、树、图等基本数据结构的应用,同时熟悉数据库操作和前端界面设计。
二、实训环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C++4. 数据库:MySQL5. 前端界面设计:Qt三、实训内容1. 系统需求分析(1)功能需求① 添加:允许用户添加新的联系人信息,包括姓名、电话、邮箱、地址等。
② 查询:根据姓名、电话、邮箱等关键字进行模糊查询。
③ 修改:允许用户修改指定联系人的信息。
④ 删除:允许用户删除指定联系人信息。
⑤ 导出:将通讯录数据导出为Excel格式。
⑥ 导入:允许用户从Excel文件导入联系人信息。
(2)性能需求① 系统应具备良好的响应速度,用户操作时,系统应迅速给出反馈。
② 系统应具备较高的稳定性,避免因操作失误导致数据丢失。
2. 系统设计① 联系人信息采用结构体存储,包括姓名、电话、邮箱、地址等字段。
② 联系人信息存储在MySQL数据库中,使用线性表进行管理。
③ 查询操作采用二分查找算法,提高查询效率。
(2)功能模块设计① 添加模块:用户输入联系人信息,系统将其存储在数据库中。
② 查询模块:用户输入关键字,系统从数据库中查找匹配的联系人信息。
③ 修改模块:用户输入联系人信息,系统将其更新到数据库中。
④ 删除模块:用户输入联系人信息,系统将其从数据库中删除。
⑤ 导出模块:将数据库中的联系人信息导出为Excel格式。
⑥ 导入模块:用户上传Excel文件,系统将其中的联系人信息导入数据库中。
3. 系统实现(1)数据库设计① 创建联系人信息表(contact_info),包括姓名、电话、邮箱、地址等字段。
② 设计SQL语句,实现数据的增删改查操作。
(2)编程实现① 使用C++实现各个功能模块,包括添加、查询、修改、删除等。
手机通讯录实验报告及使用说明(附源代码)
手机通讯录实验报告及使用说明(附源代码)自查报告。
标题,手机通讯录实验报告及使用说明(附源代码)。
自查报告:
在进行手机通讯录实验及使用说明的撰写过程中,我仔细阅读
了实验要求,并按照要求完成了实验报告的撰写和源代码的整理。
在此过程中,我遇到了一些困难,但通过查阅资料和请教老师同学,最终顺利完成了任务。
在实验报告中,我详细描述了手机通讯录的功能和使用方法,
包括添加联系人、查找联系人、编辑联系人信息、删除联系人等操作。
我还附上了源代码,并对关键部分进行了解释和注释,以便他
人能够理解和使用。
在整个实验过程中,我学习到了许多关于手机通讯录的知识,
包括数据库的设计和操作、用户界面的设计和实现等。
通过动手实践,我加深了对这些知识的理解,并提升了自己的编程能力。
在撰写实验报告的过程中,我也注意到了一些自己的不足之处,比如在代码注释和格式上还有待改进。
因此,我会继续努力学习,
不断提升自己的编程水平和文档撰写能力。
总的来说,通过这次实验和撰写实验报告,我收获颇丰,不仅
掌握了手机通讯录的设计和实现方法,还提升了自己的综合能力。
我会继续努力,为以后更多的实验和项目做好准备。
自查人,XXX。
日期,XXXX年XX月XX日。
手机通讯录实验报告及使用说明(附源代码)
手机通讯录实验报告及使用说明(附源代码)英文回答:Mobile Phone Address Book Experiment Report and User Guide。
Introduction。
The mobile phone address book is an essential feature that allows users to store and manage their contacts. This experiment aims to evaluate the functionality and usability of the address book feature on a popular smartphone model.Methods。
Test Device: iPhone 14 Pro Max。
Software: iOS 16.1.1。
Participants: 10 users with varying levels ofsmartphone experience.Procedure:1. Users were given a series of tasks to perform using the address book feature, including adding, editing, deleting, and searching for contacts.2. The tasks were designed to assess the ease of use, efficiency, and overall functionality of the address book.3. Users were asked to provide feedback on their experience and any areas for improvement.Results。
c++通讯录实训报告
c++通讯录实训报告C++通讯录实训报告。
引言:通讯录是一种常见的应用程序,用于存储和管理联系人的信息。
在这个实训报告中,我将介绍我设计和实现的一个基于C++的通讯录应用程序。
我将从需求分析、设计思路、功能实现、测试等方面进行详细介绍。
一、需求分析:1. 收集用户需求,首先,我与用户进行了沟通,了解到他们希望能够方便地添加、删除、修改和查找联系人的信息。
他们还希望能够将联系人按照不同的分组进行管理,并能够导出联系人列表。
2. 功能需求:a. 添加联系人,用户可以输入联系人的姓名、电话号码、电子邮件地址等信息,将其添加到通讯录中。
b. 删除联系人,用户可以根据姓名或电话号码删除通讯录中的联系人。
c. 修改联系人,用户可以修改已有联系人的信息。
d. 查找联系人,用户可以根据姓名或电话号码查找通讯录中的联系人。
e. 分组管理,用户可以将联系人按照不同的分组进行管理。
f. 导出联系人,用户可以将通讯录中的联系人列表导出为文件。
二、设计思路:1. 数据结构,我选择使用结构体来表示联系人的信息,包括姓名、电话号码、电子邮件地址等字段。
我还使用了链表来存储联系人的信息,以便于动态管理。
2. 模块划分,我将程序划分为多个模块,包括通讯录管理模块、联系人管理模块、分组管理模块等,以便于代码的组织和维护。
3. 用户界面,我设计了一个简单的命令行界面,通过菜单选项来实现各种功能。
三、功能实现:1. 添加联系人,用户可以通过输入相关信息来添加联系人。
程序将根据用户输入创建一个新的联系人结构体,并将其插入到链表中。
2. 删除联系人,用户可以根据姓名或电话号码来删除通讯录中的联系人。
程序将遍历链表,找到匹配的联系人并删除。
3. 修改联系人,用户可以选择要修改的联系人,并输入新的信息来更新联系人的内容。
4. 查找联系人,用户可以根据姓名或电话号码来查找通讯录中的联系人。
程序将遍历链表,找到匹配的联系人并显示其信息。
5. 分组管理,用户可以创建新的分组,并将联系人分配到相应的分组中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
char e_mail[40];
};
class function:public student
{public:
void add();
void del();
void find_num();
void find_name();
void list_num();
void list_name();
char name1[20]="\0";
char num1[20]="\0";
char address1[40]="\0";
char post_code1[7]="\0";
char tel_num1[20]="\0";
char e_mail1[40]="\0";
switch(select)
{
case'1':cout<<"输入要修改的姓名:";
cout<<"电子邮件:";
cin>>stud1[j].e_mail;
outfile.write((char*)&stud1[j],sizeof(stud1[j]));
}
outfile.close ();
}
//删除联系人
void function::del()
{
student stud2[40]={0};
cin>>stud1[j].num;
cout<<"姓名:";
cin>>stud1[j].name;
cout<<"地址:";
cin>>stud1[j].address;
cout<<"电话号码:";
cin>>stud1[j].tel_num;
cout<<"邮编:";
cin>>stud1[j].post_code;
详细设计阶段的任务是要设计出程序的“蓝图”,此设计阶段的结果基本上决定了最终的程序代码的质量。因此衡量程序的质量,不仅要看它的逻辑是否正确、性能是否满足要求,更主要的是要看它是否容易阅读和理解。结构化程序设计技术是实现上述目标的关键技术,是详细设计的逻辑基础。
3.1
#include<iostream>
cout<<"******************************************************************************"<<endl;
cout<<"请选择:";
cin>>select1;
cout<<"------------------------------------------------------------------------------"<<endl;
2.2.3
查询联系人其中按姓名查询,是根据输入待查记录的姓名,查询该记录的信息。
而电话查询,则是根据输入的电话号码,查询该记录的信息,系统将自动识别是输入的固定电话号码还是移动电话号码。
2.2.4排序模块
联系人的排序整理其中按姓名查询,是根据输入待查记录的姓名,查询该记录的信息。
第三章 详细设计
详细设计阶段的根本任务是确定应该怎样具体地实现所要求的系统,也就是说,通过对软件结构进行细化,得到每个模块详细的数据结构和算法。
while(1)
{if(infile.eof())break;
infile.read((char*)&stud3[k],sizeof(stud3[k]));
k++;
}
infile.close();
char name[20]="\0";
cout<<"请输入要修改学生的姓名:";
cin>>name;
int x;
1.
通讯录管理系统在Microsoft Visual C++ 6.0上实现,开发工具是面向对象语言。
1.2
1.2.1数据字段
姓名、电话号码、学号
1.2.2
(1)对记录的录入、删除、显示、查询、修改和排序;
(2)与数据库连接,实现通讯录记录信息的保存于读取;
(3)退出系统时保存信息,以便下次打开系统时进入目前的工作状态。
}
break;
case'4':cout<<"请确认删除所有资料(Y/N)";
char select5;
cin>>select5;
if(sele;)
a.format();
break;
case'5':a.show();break;
case'6':system("cls");break;//清屏函数
第一章 需求与分析
软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
1.1
1.1.1
Window 7操作系统
1.1.2
计算机硬件:Intel酷睿i5 2G内存
cout<<"请选择:";
char select4;
cin>>select4;
switch(select4)
{
case'1':a.list_num();
break;
case'2':a.list_name();
break;
case'3':break;
default:cout<<"输入错误!"<<endl;
总之,本通讯录管理系统不仅和手工同学录管理系统相比有很大优势,同时按关系显示功能,一定程度上实现了对记录的分类;按姓名查找和按电话号码查找(自动识别是固定电话号码还是移动电话号码)功能的设计,也确实给人们日常生活带来了方便,这样使本系统和其他电子通讯录相比也有自己特有的优势,是一个功能较为完善的通讯录管理系统。
cout<<"******************************************************************************"<<endl;
cout<<"*1.通讯录编辑2.查询联系人3.按序排列4.格式化5.显示通讯录6.清屏7.退出*"<<endl;
void correct();
void format();
void show();
};
//主函数
int main()
{
function a;
char select1;
cout<<endl;
int m=0;
do
{
cout<<"---------------------------------学生通讯录-----------------------------------"<<endl;
if (!outfile)
{
cerr<<"打开错误,程序将退出!";
abort();
}
int i=0;
while(1)
{if(i>k-1)break;//每删除一项就会减少一组数据,所以是k-1
if(!strcmp(stud2[i].name,name))
i=i+1;
if(i>k-1)break;
outfile.write((char*)&stud2[i],sizeof(stud2[i]));
break;
case'3':a.correct();
break;
case'4':break;
default:cout<<"输入错误!"<<endl;
}
break;
case'2':cout<<"1.姓名查找2.学号查找3.返回主菜单"<<endl;
char select3;
cout<<"请选择:";
cin>>select3;
case'3':cout<<"输入要修改的地址:";
cin>>address1;
strcpy(stud3[x].address,address1);
char name[20]="\0";
cout<<"请输入要删除的学生的姓名:";
cin>>name;
ifstream infile("学生通讯录.dat",ios::binary);
if (!infile)
{
cerr<<"打开错误,程序将退出!";
abort();
}
int k=0;
while(1)
student stud1[40]={0};