C通讯录管理课程设计报告

合集下载

通讯录管理系统c语言课程设计报告课题简介

通讯录管理系统c语言课程设计报告课题简介

通讯录管理系统C语言课程设计报告
一、课题简介
通讯录管理系统是一种常见的应用程序,旨在帮助用户组织和管理他们的联系人信息。

本课程设计将利用C语言来实现一个基本的通讯录管理系统,旨在帮助学生掌握C语言编程的基本知识和技能。

二、设计目的
1.帮助学生熟悉C语言的基本语法和编程逻辑;
2.提高学生对数据结构的理解和运用能力;
3.培养学生的编程能力和软件开发思维;
4.提高学生的团队合作和项目管理能力。

三、设计内容
本课程设计将围绕以下几个方面展开:
1.用户界面设计:设计一个简洁直观的用户界面,包括菜单选项、输
入输出界面等;
2.数据结构设计:设计通讯录数据结构,包括联系人姓名、电话号码
等信息的存储方式;
3.功能实现:实现通讯录管理系统的基本功能,包括添加联系人、删
除联系人、查找联系人等操作;
4.文件操作:实现通讯录数据的读写操作,将联系人信息保存到文件
中,以便下次运行时读取;
5.错误处理:处理用户输入错误等异常情况,保证程序的稳定性和可
靠性。

四、预期效果
通过本课程设计,学生将能够掌握以下技能:
1.掌握C语言基本语法和编程逻辑;
2.熟悉数据结构的设计和运用;
3.提高编程能力和软件开发思维;
4.培养团队合作和项目管理能力。

五、总结
通过设计一个通讯录管理系统的C语言课程项目,学生将在实践中加深对C语言的理解和应用,提高编程技能和解决问题的能力。

希望本课程设计能够为学生的编程学习提供一定的帮助和指导。

以上为《通讯录管理系统C语言课程设计报告》的简要介绋,希望能够为课程设计的顺利进行提供一定的参考和指引。

通讯录管理系统c语言课程设计报告(一)

通讯录管理系统c语言课程设计报告(一)

通讯录管理系统c语言课程设计报告(一)通讯录管理系统C语言课程设计报告1. 简介通讯录管理系统是一款基于C语言开发的软件,旨在帮助用户方便地存储、查找、编辑和删除联系人信息。

本报告将对该系统的功能和设计进行详细介绍。

2. 系统功能通讯录管理系统具备以下主要功能:•添加联系人:用户可以输入联系人的姓名、电话号码、电子邮件等信息,并将其添加到通讯录中。

•查找联系人:用户可以根据姓名或电话号码等方式,快速查找通讯录中的联系人信息。

•编辑联系人:用户可以修改通讯录中已有联系人的信息,如电话号码、电子邮件等。

•删除联系人:用户可以从通讯录中删除特定联系人。

•显示通讯录:用户可以查看通讯录中的所有联系人信息。

•退出系统:用户可以选择退出通讯录管理系统。

3. 系统设计数据结构通讯录管理系统主要使用以下数据结构存储联系人信息:•结构体:定义了一个联系人的数据结构,包括姓名、电话号码、电子邮件等字段。

•数组:用于存储多个联系人信息,构成通讯录。

数组的每个元素对应一个联系人的结构体。

主要函数添加联系人函数void addContact(struct Contact contacts[], int *num Contacts)•功能:向通讯录中添加一个联系人。

•输入参数:通讯录数组contacts、通讯录中联系人数量numContacts的指针。

•输出:无。

查找联系人函数void searchContact(struct Contact contacts[], int n umContacts)•功能:根据用户提供的关键词在通讯录中查找联系人。

•输入参数:通讯录数组contacts、通讯录中联系人数量numContacts。

•输出:无。

编辑联系人函数void editContact(struct Contact contacts[], int num Contacts)•功能:根据用户选择的联系人在通讯录中编辑联系人信息。

通讯录管理系统c语言课程设计报告顺序储存

通讯录管理系统c语言课程设计报告顺序储存

通讯录管理系统C语言课程设计报告一、引言通讯录管理系统是一种能够对联系人信息进行存储、增删改查等管理操作的系统。

在本课程设计中,我设计并实现了一个基于C语言实现的通讯录管理系统,采用顺序储存的数据结构。

本报告将介绍通讯录管理系统的设计思路、功能特点以及实现过程。

二、需求分析通讯录管理系统主要包括以下功能:1.添加联系人信息2.删除联系人信息3.修改联系人信息4.查询联系人信息5.显示所有联系人信息在设计系统时,需要考虑如何高效地实现上述功能,并保证数据的准确性和一致性。

三、设计思路为了实现通讯录管理系统,我采用了顺序储存的方式存储联系人信息。

具体而言,我使用结构体数组来存储联系人的姓名、电话号码等信息,通过数组下标来实现对联系人信息的操作。

四、功能实现1. 添加联系人信息用户通过输入联系人的姓名、电话号码等信息,将新的联系人信息添加到通讯录中。

系统会提示用户输入相关信息,并将信息加入到结构体数组中。

2. 删除联系人信息用户可以根据联系人的姓名或电话号码来删除指定的联系人信息。

系统会遍历结构体数组,找到相应的联系人信息并删除。

3. 修改联系人信息用户可以选择需要修改的联系人信息,然后输入新的信息进行修改。

系统会在结构体数组中找到对应的联系人信息,并进行更新操作。

4. 查询联系人信息用户可以通过姓名或电话号码查询指定联系人的信息。

系统会输出符合条件的联系人信息。

5. 显示所有联系人信息系统会将通讯录中所有联系人的信息依次显示出来,方便用户查看。

五、总结通过本次课程设计,我深入理解了C语言的数据结构和实现原理,同时锻炼了对问题的分析与解决能力。

通讯录管理系统是一个简单且实用的应用,通过本次设计,我对通讯录系统的设计与实现有了更深入的认识,也提高了编程的能力。

六、参考文献暂无以上是对通讯录管理系统C语言课程设计报告的简要介绍,希望能够对您有所帮助。

c语言课程设计报告---通讯录管理系统

c语言课程设计报告---通讯录管理系统

一、实习题目通讯录管理系统二、需求分析问题描述:本程序属于非数值计算型算法设计,学生需要设计出图书馆模拟系统所需要的基本功能,并设计简单的界面(无需图形化)。

实现功能:1、通过提示菜单选择可以进行的操作2、将图书的信息存入文件中,并命名为BookInfo.txt3、将图书借阅情况信息存入文件中,并命名为SendInfo.txt4、在本系统中可以进行管理系统包含的基本操作,其中包括:a)查看所有图书的信息;b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息;c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置;d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在;e)借阅一本图书,需要给出学号和图书编号,如果图书编号不存在则重新输入,直到输入正确为止,并将学号和相应的图书编号存入SendInfo.txt文件中。

5、图书基本信息包括图书编号、书名、作者、出版社和价钱这些简单信息。

6、图书信息文件中每一行存放一本图书的信息。

7、借阅信息文件中每一行存放一本书的借阅情况。

知识点:本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组的相关操作,包括数组的输入、输出、查找、插入、删除等操作,需要对数组有比较深入的掌握。

说明:(1)当程序执行的时候所读取的图书信息文件必须存在,否则可能会出现错误。

(2)图书信息文件中存放图书信息的时候是按照行来存放的,即一行一本书。

(3)借阅信息文件中存放学生借阅情况是按照行来存放的,即一行存放一个学号和一个图书编号。

(4)程序执行的基本过程为:a)在所有操作之前,也就是加载操作菜单之前,先从文件中读取所有图书的信息,并存入一个数组中,此时数组可以定义为包含100个元素;b)然后根据菜单所进行的所有操作都是对当前数组进行操作,此时也就是对数组的查找、定位、添加、修改、删除操作;c)当退出系统的时候再将当前数组中的所有元素按照一本图书一行的方式写回图书信息文件中,此时注意选择覆盖方式,这样就可以将原来的所有数据覆盖,只保留最新的数据;当按行读取图书信息文件的时候,有可能最后一行只有一个回车,这时候实际上所读取的数据为空字符串,需要对此作判断,如果是空字符串,则说明已经没有人员,就必须将当前读入的空字符串写入数组中。

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

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

c语言通讯录管理系统课程设计报告报告标题:C语言通讯录管理系统课程设计报告1. 引言本报告旨在介绍并分析本次课程设计所涉及到的C语言通讯录管理系统的设计与实现过程。

2. 设计目标•开发一个功能完善的通讯录管理系统•实现基本的通讯录管理功能,包括添加、删除、查询、修改联系人信息等•提供良好的用户交互界面,方便用户使用该系统•提高系统的效率和稳定性,确保数据的安全性3. 系统设计概述本通讯录管理系统基于C语言开发,主要包括以下几个模块: - 用户管理模块:实现用户注册、登录、退出等功能 - 联系人管理模块:实现联系人的增删改查等功能 - 数据存储模块:使用文件系统进行数据的读写操作数据结构设计本系统使用了以下数据结构: - 用户结构体:包含用户名、密码等信息 - 联系人结构体:包含姓名、电话号码、地址等信息功能模块设计•用户管理模块:提供用户注册、登录、退出等功能•联系人管理模块:提供联系人的添加、删除、查询、修改等功能•数据存储模块:实现数据的读取与保存功能4. 实现细节用户管理模块•注册功能:获取用户输入的用户名和密码,存储到用户数据文件中•登录功能:根据用户输入的用户名和密码,从用户数据文件中验证登录信息•退出功能:退出当前用户,返回系统主界面联系人管理模块•添加联系人功能:获取用户输入的联系人信息,存储到联系人数据文件中•删除联系人功能:根据用户输入的联系人姓名,从联系人数据文件中删除对应的联系人信息•查询联系人功能:根据用户输入的关键词,从联系人数据文件中查找匹配的联系人信息•修改联系人功能:根据用户输入的联系人姓名,从联系人数据文件中修改对应的联系人信息数据存储模块•读取数据功能:从文件中读取用户和联系人的数据•保存数据功能:将用户和联系人的数据保存到文件中5. 测试与优化本系统在开发过程中进行了多次测试和优化,确保系统的稳定性和功能完善性。

通过模拟用户的操作,检测系统的响应速度、功能是否正常等,并对系统进行了性能调优和bug修复。

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

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

C语言通讯录管理系统课程设计报告一、引言通讯录管理系统是一种常见的实用性软件,用于记录和管理个人或组织的联系人信息。

本文档旨在介绍一种基于C语言开发的通讯录管理系统的设计与实现。

通过本系统,用户可以方便地添加、删除、搜索和编辑联系人信息,实现了通讯录的基本功能。

二、系统需求分析本通讯录管理系统的主要功能包括: 1. 添加联系人:用户可以添加联系人的姓名、电话号码、邮箱等信息。

2. 删除联系人:用户可以根据联系人的姓名或电话号码删除对应的联系人信息。

3. 查找联系人:用户可以根据联系人的姓名或电话号码查找对应的联系人信息。

4. 修改联系人:用户可以修改已存在联系人的信息。

5. 显示所有联系人:用户可以查看通讯录中所有的联系人信息。

三、系统设计1. 数据结构设计为了实现通讯录管理系统,我们需要设计适当的数据结构来存储联系人信息。

在本设计中,使用结构体数组来表示每个联系人的信息,其中每个结构体包含姓名、电话号码、邮箱等成员变量。

struct Contact {char name[50];char phoneNumber[20];char email[50];};2. 功能模块设计本系统主要包含以下几个功能模块:a. 添加联系人模块用户可以选择添加新的联系人,输入姓名、电话号码和邮箱等信息后,系统将在通讯录中添加新的联系人。

b. 删除联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择删除对应的联系人。

c. 查找联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并在界面上显示查询结果。

d. 修改联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择修改对应的联系人。

e. 显示所有联系人模块用户可以选择显示通讯录中所有的联系人信息,在界面上进行展示。

3. 系统框架设计本系统的整体框架如下:1. 主菜单显示2. 根据用户的选择,进入对应的功能模块四、系统流程图下图展示了通讯录管理系统的整体流程:主菜单 -> 用户选择功能模块 -> 执行对应模块功能五、代码实现以下为通讯录管理系统的部分核心代码实现,完整代码可参考附录部分。

c语言课程设计报告---通讯录管理系统

c语言课程设计报告---通讯录管理系统

一、实习题目通讯录管理系统二、需求分析问题描述:本程序属于非数值计算型算法设计,学生需要设计出图书馆模拟系统所需要的基本功能,并设计简单的界面(无需图形化)。

实现功能:1、通过提示菜单选择可以进行的操作2、将图书的信息存入文件中,并命名为BookInfo.txt3、将图书借阅情况信息存入文件中,并命名为SendInfo.txt4、在本系统中可以进行管理系统包含的基本操作,其中包括:a)查看所有图书的信息;b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息;c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置;d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在;e)借阅一本图书,需要给出学号和图书编号,如果图书编号不存在则重新输入,直到输入正确为止,并将学号和相应的图书编号存入SendInfo.txt文件中。

5、图书基本信息包括图书编号、书名、作者、出版社和价钱这些简单信息。

6、图书信息文件中每一行存放一本图书的信息。

7、借阅信息文件中每一行存放一本书的借阅情况。

知识点:本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组的相关操作,包括数组的输入、输出、查找、插入、删除等操作,需要对数组有比较深入的掌握。

说明:(1)当程序执行的时候所读取的图书信息文件必须存在,否则可能会出现错误。

(2)图书信息文件中存放图书信息的时候是按照行来存放的,即一行一本书。

(3)借阅信息文件中存放学生借阅情况是按照行来存放的,即一行存放一个学号和一个图书编号。

(4)程序执行的基本过程为:a)在所有操作之前,也就是加载操作菜单之前,先从文件中读取所有图书的信息,并存入一个数组中,此时数组可以定义为包含100个元素;b)然后根据菜单所进行的所有操作都是对当前数组进行操作,此时也就是对数组的查找、定位、添加、修改、删除操作;c)当退出系统的时候再将当前数组中的所有元素按照一本图书一行的方式写回图书信息文件中,此时注意选择覆盖方式,这样就可以将原来的所有数据覆盖,只保留最新的数据;当按行读取图书信息文件的时候,有可能最后一行只有一个回车,这时候实际上所读取的数据为空字符串,需要对此作判断,如果是空字符串,则说明已经没有人员,就必须将当前读入的空字符串写入数组中。

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

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

c语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习C语言通讯录管理系统的设计与实现,让学生掌握C语言编程的基本技能,培养其软件开发的基本思路与方法。

具体目标如下:1.知识目标:–理解C语言的基本数据类型、运算符、控制结构。

–学习C语言函数的定义与调用。

–掌握结构体、文件操作等高级C语言特性。

2.技能目标:–能够运用C语言实现简单的数据结构,如链表、数组。

–培养学生使用C语言进行程序设计的能力,能够独立完成程序编写、调试与优化。

–学会使用C语言实现文件操作,包括文件的读取与写入。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣,增强其自主学习的动力。

–通过项目实践,培养学生的团队协作能力和解决问题的能力。

–引导学生理解技术对生活的影响,培养其对技术发展的责任感。

二、教学内容教学内容选取C语言编程的核心知识点,结合通讯录管理系统的实例进行讲解。

具体内容包括:1.C语言基础:数据类型、变量、运算符、控制结构。

2.函数:函数定义、调用、参数传递、返回值。

3.数据结构:数组、链表、栈和队列。

4.文件操作:文件读写、文件指针。

5.通讯录管理系统实现:结构体定义、系统功能实现、项目管理。

三、教学方法结合C语言特点和通讯录管理系统实例,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和通讯录管理系统的设计理念。

2.案例分析法:通过分析典型代码案例,让学生理解程序设计逻辑。

3.实验法:学生在实验室进行编程实践,巩固理论知识。

4.讨论法:分组讨论问题,培养学生的团队协作和沟通能力。

四、教学资源1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。

2.参考书:《C语言编程思想》、《C语言实践》。

3.多媒体资料:教学PPT、在线编程教程、视频讲解。

4.实验设备:计算机、网络环境、编程环境(如Code::Blocks、VisualStudio)。

五、教学评估本课程的教学评估将综合考虑学生的平时表现、作业、考试等方面,以全面、客观、公正地评价学生的学习成果。

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

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

通讯录管理系统c语言课程设计报告通讯录管理系统C语言课程设计报告1. 项目概述•本项目是一个通讯录管理系统,旨在提供用户管理通讯录的功能。

•使用C语言开发,具有良好的跨平台兼容性。

•主要功能包括添加联系人、查找联系人、编辑联系人、删除联系人等。

2. 项目背景•通讯录是现代社会必不可少的工具,用于管理个人和组织的联系人信息。

•传统的纸质通讯录已不能满足日益增长的信息管理需求。

•本项目旨在开发一款方便、高效的电子通讯录管理系统,满足人们对联系人信息管理的需求。

3. 技术实现•采用C语言作为开发语言,具有良好的跨平台兼容性和高效的执行速度。

•主要采用文件存储方式,将联系人信息保存在本地文件中。

•使用结构体来表示联系人信息,方便管理和操作。

4. 功能模块添加联系人•用户可以通过输入姓名、电话号码、电子邮件等信息,添加新的联系人。

•程序将自动生成一个唯一的联系人ID,并将联系人信息保存到文件中。

查找联系人•用户可以通过姓名、电话号码等条件进行查找联系人。

•程序将根据用户输入的条件,在通讯录中查找符合条件的联系人,并将结果返回给用户。

编辑联系人•用户可以选择要编辑的联系人,并进行修改联系人信息的操作。

•程序将根据用户输入的联系人ID,找到对应的联系人并允许用户修改其信息。

删除联系人•用户可以选择要删除的联系人,并进行删除操作。

•程序将根据用户输入的联系人ID,找到对应的联系人并从通讯录中删除。

5. 实施计划需求分析•确定系统所需的功能模块和用户需求,并进行详细的功能需求分析。

概要设计•设计系统的整体结构,包括模块划分、数据结构设计等。

详细设计•对每个模块进行具体的设计,包括函数接口定义、算法流程图等。

编码实现•根据详细设计的结果,使用C语言进行编码实现。

调试测试•对编码实现的程序进行测试和调试,修复可能出现的问题。

文档撰写•撰写项目的相关文档,包括使用说明、技术文档等。

6. 总结与展望•本项目成功开发了一个通讯录管理系统,具有简洁、高效的特点。

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

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

C++通讯录管理系统课程设计报告1. 引言本文档是关于C++通讯录管理系统课程设计的报告。

通讯录管理系统是一款方便用户管理联系人信息的应用程序。

本文将详细介绍设计理念、功能需求、系统设计及实现等方面的内容。

2. 功能需求为了满足用户对通讯录管理的需求,本系统应具备以下功能:2.1 添加联系人用户可以通过系统添加联系人信息,并包括联系人的姓名、电话号码、电子邮件地址等基本信息。

2.2 删除联系人用户可以选择删除通讯录中现有的联系人信息。

2.3 查询联系人用户可以根据联系人的姓名、电话号码等信息进行查询,以便于快速找到所需的联系人。

2.4 修改联系人信息用户可以对通讯录中现有联系人的信息进行修改,包括姓名、电话号码、电子邮件地址等。

2.5 显示所有联系人用户可以查看通讯录中所有联系人的详细信息。

3. 系统设计3.1 数据结构通讯录管理系统可以使用结构体来表示联系人的信息,每个联系人的信息包括姓名(name)、电话号码(phone)、电子邮件地址(email)等字段。

struct Contact {std::string name;std::string phone;std::string email;};3.2 类设计系统设计中包含以下类:3.2.1 ContactManagerContactManager是通讯录管理类,负责管理联系人信息的添加、删除、查询、修改和显示等操作。

成员函数:•void addContact(const Contact& contact): 添加联系人信息。

•void deleteContact(const std::string& name): 删除指定姓名的联系人信息。

•Contact findContact(const std::string& name): 根据指定姓名查询联系人信息。

•void modifyContact(const std::string& name, const Contact& contact): 修改指定姓名的联系人信息。

通讯录管理系统课程设计报告书(C语言)

通讯录管理系统课程设计报告书(C语言)

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

②显示所有人员的信息。

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

④通过输入姓名查找到要删除的人员信息,然后可以进行删除。

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

⑥添加人员信息。

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

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

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

姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。

软件中使用的结构体和结构体数组,如:structcallmember{charname[20];charaddress[20];charcode[20];charcallnumber[ 20];};对用户的信息进行保存,他们都以二进制的形式读写。

其中:charname[20];charaddress[20];charcode[20];charcallnumber[20]通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。

C课程设计报告简单通讯录管理

C课程设计报告简单通讯录管理

C++语言课程设计报告一、课题名称:简单通讯录管理二、程序功能:一个简单的通讯录管理程序,具有插入、删除、显示、修改和查询联系人通讯方式等功能。

三、课题分析;本课程设计的数据有每个人的姓名,电话号码和Email地址,并且所有人的数据默认以姓名为关键字按升序排放,排序方式可修改,同时为了减少执行“添加”、“删除”等过于复杂和繁琐的操作,采用单向链表来进行数据的存储和操作。

同时需要一个文本文件来存储联系人信息,数据可从该文本文件中导出。

四、设计中的问题与解决方法:从文本文件中载入数据时,出现不能读的情况,解决的办法是分情况,写程序分别进行处理。

此外从文本文件中载入数据时,出现不同类数据合并现象,原因是数据之间无空格,解决方法是增大字段占用宽度。

五、对设计的感想和心得:程序的编写应是:三分编写,七分调试;熟能生巧,这次在用指针处理单向链表时,感觉很吃力,以前对这块内容并不十分清楚,所以在今后的编程之中,尽可能把基本技能练习熟练;为了方便使用,我选择了汉化菜单;3.程序源代码(及简单注释):主函数如下:#include<>#include<>#include<>#include<>#include<>#include<>#include"简单通讯录.h"voidadd(AddrList&addrlist)AddrList();cout<<"已全部删除!\n";}elsecout<<"未删除!\n";();();}voidquit(AddrList&addrlist)del加一条记录", "2.删除一条记录","3.显示所有记录","4.按姓名修改查找并显示一条记录", "5.按姓名修改查找并修改一条记录","6.从文件中添加数据到库表中","7.将库表中的数据写入文件","8.排序","9.清空","0.退出系统"};inti;charc;do{system("cls");/*清屏*/cout<<"\n\n======欢迎使用通讯录管理系统======\n\n";for(i=0;i<10;i++)cout<<m[i]<<endl;cout<<"\n================================ ==\n";cout<<"请选择(1-9,0):";cin>>c;}while(c<'0'||c>'9');return(c-'0');}头文件如下:classNode//节点类{charName[10];//姓名charMobilePhone[15];//手机号码charEMail[20];//email地址Node*next;//下一结点指针public:Node(char*name=NULL,char*mobilephone=NULL ,char*email=NULL)//构造函数,各参数均有缺省值{if(name)strcpy(Name,name);elsestrcpy(Name,"");if(mobilephone)strcpy(MobilePhone,mobilephone);elsestrcpy(MobilePhone,"");if(email)strcpy(EMail,email);elsestrcpy(EMail,"");}voidShow()//显示节点数据{cout<<setw(11)<<Name<<setw(16)<<MobilePho ne<<setw(21)<<EMail<<'\n';}voidSetName(charname[])//修改姓名{strcpy(Name,name);}voidSetMobilePhone(charmobilephone[])//修改手机号码{strcpy(MobilePhone,mobilephone);}voidSetEMail(charemail[])//修改email地址{strcpy(EMail,email);}char*GetName()//返回姓名地址{returnName;}char*GetMobilePhone()//返回手机号码地址{returnMobilePhone;}char*GetEMail()//返回Email地址{returnEMail;}Node*Getnext()//返回next{returnnext;}friendclassAddrList;//将AddrList类说明为友元类};classAddrList//AddList链表类{Node*HeadPtr;//链表首指针Node*TailPtr;//链表为指针intTag;//排序状态标志,tag=1时按姓名排;tag=2时按手机号码排public:AddrList();//构造函数,创建空链表,将tag 设为1voidAddTail(Node*p);//将p指向的结点加入到链表尾部voidAddSort(Node*p);//将p指向的结点按Tag 指定的顺序插入到链表中Node*LookUp(char*name);//按姓名查找结点,返回该结点的指针voidDelete(char*name);//删除指定姓名的结点voidSort(inttag);//按tag指定的关键字重新排序voidShowAll();//显示全部结点,每10个显示一屏voidSetTag(intt);//置tag值intGetTag();//取tag值Node*GetHeadPtr();//取首指针~AddrList();//释放链表空间voidCreateList(char*filename);//从二进制文件读入数据voidWriteToFile(char*filename);//将链表中数据写入指定的二进制文件};AddrList::AddrList()//构造函数,创建空链表,将tag设为1{HeadPtr=TailPtr=NULL;Tag=1;}voidAddrList::AddTail(Node*p)//将p指向的节点加入到链表尾部{p->next=NULL;if(!HeadPtr)HeadPtr=p;elseTailPtr->next=p;TailPtr=p;}voidAddrList::AddSort(Node*p)//将p指针的节点按Tag指定的顺序插入到链表中{p->next=NULL;if(HeadPtr==NULL){HeadPtr=TailPtr=p;return;}else{Node*p1=HeadPtr,*p2;while(((Tag==1)&&strcmp(p->Name,p1->Name) >0&&p1->next)||(Tag==2)&&(strcmp(p->MobilePhone,p1->Mobi lePhone)>0&&p1->next)){p2=p1;p1=p1->next;}if(((Tag==1)&&strcmp(p->Name,p1->Name)<0) ||(Tag==2)&&(strcmp(p->MobilePhone,p1->Mobi lePhone)<0)){if(p1==HeadPtr){p->next=p1;HeadPtr=p;}else{p2->next=p;p->next=p1;}}else{p1->next=p;TailPtr=p;}}}Node*AddrList::LookUp(char*name)//按姓名查找节点,返回该节点指针{Node*p;p=HeadPtr;while(p!=NULL){if(strcmp(p->Name,name)==0)returnp;p=p->next;}returnNULL;}voidAddrList::Delete(char*name)//删除指定姓名的节点{Node*p1,*p2;if(HeadPtr==NULL){cout<<"未删除!\n";}elseif(strcmp(HeadPtr->Name,name)==0){p1=HeadPtr;HeadPtr=HeadPtr->next;cout<<"删除成功!\n";}else{p1=HeadPtr;p2=HeadPtr->next;while(strcmp(p2->Name,name)&&p2){p1=p2;p2=p2->next;}if(p2&&strcmp(p2->Name,name)==0){p1->next=p2->next;cout<<"删除成功!\n";}elsecout<<name<<"未删除!\n";}}voidAddrList::Sort(inttag)//按tag指定的关键字重新排序{AddrList*newptr;newptr=newAddrList;Node*p1=HeadPtr,*p2;newptr->Tag=tag;while(p1){p2=p1;p1=p1->next;newptr->AddSort(p2);}HeadPtr=newptr->HeadPtr;TailPtr=newptr->TailPtr;Tag=newptr->Tag;newptr->HeadPtr=NULL;newptr->TailPtr=NULL;deletenewptr;}voidAddrList::ShowAll()//显示全部节点,每10个显示一屏{if(HeadPtr==NULL){cout<<"无数据!\n";();();}else{intn=0;Node*p=HeadPtr;cout<<setw(11)<<"姓名"<<setw(16)<<"手机号码"<<setw(21)<<"Email地址"<<'\n';while(p){p->Show();p=p->next;n++;if(n%10==0||p==NULL)system("pause");}}}voidAddrList::SetTag(intt)//置tag值{Tag=t;}intAddrList::GetTag()//取tag值{returnTag;}Node*AddrList::GetHeadPtr()//取首指针{returnHeadPtr;}AddrList::~AddrList()//释放链表空间{Node*p;while(HeadPtr){p=HeadPtr;HeadPtr=HeadPtr->next;deletep;}}voidAddrList::CreateList(char*filename)//从指定文件中读入数据,构造链表{ifstreamin(filename,ios::in|ios::binary|i os::nocreate);if(!in)return;((char*)&Tag,sizeof(int));intnodenum;((char*)&nodenum,sizeof(int));Node*nodeptr;for(inti=0;i<nodenum;i++){nodeptr=newNode;((char*)nodeptr,sizeof(Node));AddSort(nodeptr);}();}voidAddrList::WriteToFile(char*filename)//将链表中数据写入指定的文件{ofstreamout(filename,ios::out|ios::binary );if(!out){cout<<"打不开!\n";exit(1);}Node*nodeptr=HeadPtr;intnodenum=0;while(nodeptr){nodenum++;nodeptr=nodeptr->next;}((char*)&Tag,sizeof(int));((char*)&nodenum,sizeof(int));nodeptr=HeadPtr;while(nodeptr){((char*)nodeptr,sizeof(Node));nodeptr=nodeptr->next;}();}五、典型测试数据组:aaa11111bbb33333ccc22222ddd44444。

c语言通讯录课程设计报告

c语言通讯录课程设计报告

C语言通讯录课程设计报告一、设计题目设计一个简单的通讯录管理系统,要求实现以下功能:1. 添加联系人信息;2. 删除联系人信息;3. 修改联系人信息;4. 查找联系人信息;5. 显示所有联系人信息。

二、设计要求1. 使用C语言实现,不得使用任何图形界面库;2. 使用结构体来表示联系人信息,每个联系人包括姓名、电话、邮箱等基本信息;3. 使用文件存储联系人信息,每次程序运行时从文件中读取联系人信息,程序结束时将联系人信息写入文件。

三、设计实现1. 定义联系人信息结构体:```ctypedef struct {char name[20];char phone[20];char email[30];} Contact;```2. 定义文件操作函数:```cvoid save_contacts(Contact contacts[], int size) { FILE *fp = fopen("contacts.txt", "w");if (fp == NULL) {printf("Failed to open file.\n");return;}for (int i = 0; i < size; i++) {fprintf(fp, "%s %s %s\n", contacts[i].name, contacts[i].phone, contacts[i].email);}fclose(fp);}void load_contacts(Contact *contacts, int *size) {FILE *fp = fopen("contacts.txt", "r");if (fp == NULL) {*size = 0;return;}fscanf(fp, "%d", size);for (int i = 0; i < *size; i++) {fscanf(fp, "%s %s %s", contacts[i].name, contacts[i].phone, contacts[i].email);}fclose(fp);}```3. 实现通讯录管理功能:```cint main() {Contact contacts[100];int size = 0;char choice;do {printf("\n--- Main Menu ---\n");printf("1. Add contact\n");printf("2. Delete contact\n");printf("3. Modify contact\n");printf("4. Search contact\n");printf("5. Display all contacts\n");printf("6. Exit\n");printf("Please choose an option: ");scanf("%c", &choice);switch (choice) {case '1': // Add contactadd_contact(contacts, &size); break;case '2': // Delete contactdelete_contact(contacts, size); break;case '3': // Modify contactmodify_contact(contacts, size);break;case '4': // Search contactsearch_contact(contacts, size);break;case '5': // Display all contactsdisplay_contacts(contacts, size);break;case '6': // Exit programsave_contacts(contacts, size); // Save contacts before exitbreak;default: // Invalid option choice, display error message and return to main menuprintf("Invalid option choice.\n");break;}} while (choice != '6'); // Exit program when option 6 is chosen or when user types 'q' instead of a number choice.以上就是关于c语言通讯录课程设计报告的介绍,欢迎补充。

c通讯录课程设计报告

c通讯录课程设计报告

c通讯录课程设计报告一、课程目标本通讯录课程设计旨在通过实践活动,使学生在信息技术学科的基础上,掌握以下知识目标、技能目标和情感态度价值观目标:1. 知识目标:- 了解通讯录的基本概念、功能及在实际生活中的应用。

- 掌握通讯录的录入、修改、删除、查询等基本操作。

- 了解如何对通讯录进行分类、排序和筛选,以便快速查找和整理信息。

2. 技能目标:- 学会使用电子表格软件(如Microsoft Excel)创建、编辑和管理通讯录。

- 能够运用所学知识,设计并优化个人或团队的通讯录,提高信息处理效率。

- 培养学生的团队协作能力,通过小组讨论和分享,提高问题解决和沟通表达能力。

3. 情感态度价值观目标:- 培养学生珍惜个人信息,尊重他人隐私的观念。

- 增强学生的信息素养,认识到信息技术在生活中的重要性,激发对信息技术的学习兴趣。

- 通过对通讯录的学习和实际操作,培养学生的责任心和细致严谨的工作态度。

课程性质:本课程为实践性较强的信息技术课程,结合学生年级特点和教学要求,注重培养学生的动手操作能力和团队协作能力。

学生特点:考虑到学生所在年级,他们在信息技术方面已具备一定的基础,对新鲜事物充满好奇心,善于合作学习。

教学要求:结合课程目标和学科特点,教师应注重实践操作,引导学生主动探索、积极思考,将所学知识应用于实际生活中,达到学以致用的目的。

在教学过程中,教师需关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过本课程的学习,使学生能够熟练掌握通讯录的制作和管理,提高个人信息素养。

二、教学内容根据课程目标,本章节教学内容围绕通讯录的制作和管理展开,确保内容的科学性和系统性。

以下是详细的教学大纲及教材关联内容:1. 通讯录概述- 介绍通讯录的定义、功能及应用场景。

- 教材章节:第一章 信息技术与日常生活。

2. 通讯录的基本操作- 学习通讯录的录入、修改、删除、查询等操作。

- 教材章节:第二章 电子表格软件的基本操作。

通讯录c课程设计报告

通讯录c课程设计报告

通讯录c 课程设计报告一、课程目标本课程为六年级信息技术学科“通讯录C”课程设计,旨在通过实践操作,使学生在知识、技能及情感态度价值观方面取得以下目标:1. 知识目标:(1)掌握通讯录的基本概念及作用;(2)学会使用电子表格软件(如Microsoft Excel)创建、编辑和保存通讯录;(3)了解通讯录信息分类和排序的方法。

2. 技能目标:(1)能够独立完成通讯录的创建、编辑和保存操作;(2)能够运用电子表格软件对通讯录进行信息分类和排序;(3)学会在电子表格中插入公式,实现通讯录信息的自动计算。

3. 情感态度价值观目标:(1)培养学生对信息技术的兴趣和热情,提高信息素养;(2)培养学生团队协作精神,学会在小组合作中共同解决问题;(3)引导学生认识到信息保护的重要性,养成信息安全意识。

本课程结合六年级学生的认知特点,注重实践操作,将知识目标、技能目标和情感态度价值观目标融入教学过程中,使学生能够在轻松愉快的氛围中学习信息技术,提高综合运用能力。

同时,课程目标具体、可衡量,便于教学设计和评估。

二、教学内容本章节教学内容依据课程目标,结合教材第四章“电子表格与数据处理”内容,具体安排如下:1. 通讯录基本概念与作用:介绍通讯录的定义、功能及在日常生活和工作中重要性。

2. 电子表格软件操作:(1)认识Microsoft Excel界面,学会基本操作;(2)创建新工作簿,编辑单元格内容;(3)保存和打开工作簿。

3. 通讯录创建与编辑:(1)设计通讯录表格结构;(2)录入联系人信息;(3)调整单元格格式,美化通讯录。

4. 通讯录信息处理:(1)运用公式进行信息统计;(2)使用排序和筛选功能,快速查找联系人;(3)分类汇总联系人信息。

5. 通讯录保护与分享:(1)设置密码保护通讯录;(2)导出和分享通讯录。

教学进度安排:共计4课时,分别为:1. 第1课时:通讯录基本概念与作用、电子表格软件认识;2. 第2课时:创建与编辑通讯录;3. 第3课时:通讯录信息处理;4. 第4课时:通讯录保护与分享。

C语言课程设计报告 通讯录

C语言课程设计报告 通讯录

《C语言课程设计》目录摘要 (3)一、课程设计目的 (4)二、课程设计内容 (4)三、总体设计 (5)四、详细设计 (6)(1)数据结构设计 (6)(2)模块接口设计 (7)(3)流程图 (7)五、调试与测试 (10)(1)调试过程中的主要问题 (10)(2)测试结果的分析与讨论 (10)六. 实习总结 (12)注: 13摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式, 特别是对于做经常出差的人来说更是难, 所以通讯录能够便捷的给我们带来所需要的相关信息。

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

这就需要有一个使用的通讯录管理系统, 用户可以方便的通过自己电脑的通讯录管理系统, 来随时查阅自己所需要的信息, 而不必再大费周折去翻开那繁琐的记事本。

通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统, 它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能, 大大减少了查找过程的时间。

一、课程设计目的1、通过课程设计, 加深对结构化设计思想的理解, 能对系统功能进行分析, 并设计合理的模块化结构。

2、通过课程设计, 学会设计数据结构。

其中包括对结构数组、链表和数据结构等知识的运用。

3、通过课程设计, 提高程序开发功能, 能运用合理的控制流程编写清晰高效的程序。

4、通过课程设计, 训练C程序调试能力, 能将一个中小型各级组织系统联调通过。

通过课程设计, 开发一个中小型系统, 掌握系统研发全过程。

通话课程设计, 培养分析问题、解决实际问题的能力。

二、课程设计内容(1)设计一个实用的通讯录管理系统, 能以简便高效的方式对通讯录进行管理和检索, 具体要示:(2)录入:通讯录信息包括:编号, 姓名, 单位, 电话, 地址, QQ, 邮编。

以结构通讯录信息。

(3)更新: 能插入、删除通讯录信息。

c语言通讯录管理系统课程设计报告(一)

c语言通讯录管理系统课程设计报告(一)

c语言通讯录管理系统课程设计报告(一)C语言通讯录管理系统课程设计报告1. 引言在现代社会中,通讯录是人们经常使用的工具之一。

为了方便人们管理各种联系方式,本次课程设计致力于开发一个C语言通讯录管理系统。

本文将围绕该课程设计进行详细介绍和分析。

2. 功能需求为了满足用户对通讯录管理的需求,我们设计了以下功能:•添加联系人:用户可以输入姓名、电话号码、电子邮件等信息,将联系人添加到通讯录中。

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

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

•删除联系人:用户可以将指定的联系人从通讯录中删除。

•显示所有联系人:用户可以查看通讯录中的所有联系人。

3. 设计思路本次课程设计将借助C语言及其相关库函数来实现通讯录管理系统。

主要采用如下设计思路:•采用结构体存储联系人信息:通过定义一个结构体来存储每个联系人的姓名、电话号码、电子邮件等信息。

•使用动态数组管理联系人:通过动态数组来动态管理联系人的数量,以便实现添加、删除等功能。

•借助文件存储联系人信息:通过将联系人信息存储在文件中,实现系统的持久化。

4. 系统设计与实现4.1 数据结构设计为了存储联系人信息,我们定义了如下的结构体:typedef struct {char name[50];char phone[20];char email[50];} Contact;4.2 功能实现为了实现上述功能需求,我们设计了一系列函数来完成相应的操作:•addContact():用于添加新的联系人到通讯录中。

•searchContact():根据给定的关键字在通讯录中查找联系人。

•modifyContact():修改已存在的联系人信息。

•deleteContact():从通讯录中删除指定的联系人。

•displayContacts():显示所有联系人信息。

4.3 文件存储为了实现系统的持久化,我们使用文件来存储联系人信息。

c通讯录课程设计报告

c通讯录课程设计报告

c通讯录课程设计报告一、教学目标本课程的目标是让学生掌握通讯录的基本概念、设计和实现方法。

通过本课程的学习,学生应能理解通讯录的结构和功能,掌握通讯录的编写和使用方法,培养学生的实际动手能力和解决问题的能力。

具体目标如下:1.知识目标:学生能够理解通讯录的基本概念,掌握通讯录的设计和实现方法。

2.技能目标:学生能够编写和使用通讯录,解决实际问题。

3.情感态度价值观目标:学生通过学习通讯录,培养对信息技术的兴趣和热情,增强信息处理的实际能力。

二、教学内容本课程的教学内容主要包括通讯录的基本概念、设计和实现方法。

具体安排如下:1.第一章:通讯录的基本概念,介绍通讯录的定义、功能和分类。

2.第二章:通讯录的设计,介绍通讯录的设计原则、方法和步骤。

3.第三章:通讯录的实现,介绍通讯录的编程语言、技术和工具。

4.第四章:通讯录的应用,介绍通讯录在日常生活和工作中的应用场景。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。

具体方法如下:1.讲授法:通过讲解通讯录的基本概念、设计和实现方法,使学生掌握相关知识。

2.讨论法:学生就通讯录的应用场景和实际问题进行讨论,培养学生的思考和表达能力。

3.案例分析法:分析实际案例,使学生了解通讯录在日常生活和工作中的应用,提高学生的实际操作能力。

4.实验法:安排实验课,让学生动手编写和使用通讯录,培养学生的实际动手能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用权威、实用的通讯录教材,为学生提供系统、全面的知识体系。

2.参考书:推荐学生阅读相关参考书,拓展知识面,提高学生的自学能力。

3.多媒体资料:制作课件、视频等多媒体资料,直观展示通讯录的设计和实现过程。

4.实验设备:准备计算机、编程环境等实验设备,确保学生能够顺利进行实验操作。

五、教学评估本课程的评估方式包括平时表现、作业和考试等,旨在全面、客观、公正地反映学生的学习成果。

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

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

一:需求分析二:总体设计三:详细设计四:调试与测试五;测试结果六:本次课程设计的心得体会七:附录本程序设计亮点介绍(及)改进方面1.在修改函数中,可以实现单条记录修改(运用switch)2.查询函数中,能返回该函数继续查询(运用了递归)3.使用变量少,仅通过变量i的递加和表示成员数的变量n就实现了数据结构体之间的联系4.界面美观,使用方便5.允许编号输入为字符6.在显示函数上能够分屏显示(换页)缺点在输入数据时,未输完一个成员的所有信息不能退出输入一:需求分析A.需要实现的功能有:输入功能、输出功能、显示功能、查找功能、以及增加、删除、修改功能。

输入功能要求一次完成若干信息的输入;显示功能要能完成所有信息的显示,并且自动分页;查找可以通过多种方式进行。

按需求的功能,应该设计出输入函数、输出函数、显示函数、查找函数、修改函数。

另需要一个标准界面。

B.数据存储问题这个系统数据庞大复杂,需要需要适当应用数组,循环,结构体,文件操作等基本语句及稍有难度的语句。

因此要求我们熟练掌握结构化程序设计的基本思路和方法,在所掌握的基本知识和技能的基础上,进一步提高自学能力和查找资料的能力,解决一定程度的复杂的结构化程序设计问题,加深对所学知识的理解与掌握,利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。

二:总体设计主要结构图示本程序由主函数和多个子函数组成,可执行多种数据管理的功能。

具体通过c语言中结构体数组来实现。

主函数主体为定义的结构体,和一个switch函数,以提供多种程序操作功能。

主要需运用到结构体数组、文件、函数等内容知识。

子函数有六个,分别负责添加、显示、删除、查询、修改、保存的功能。

通过变量i使结构体数组之间达成数据链表的功能,利用该方法主要考虑到成员中对于结构体指针尚未熟练掌握,而这种方法更加便捷易懂。

子函数功能介绍1.添加:输入成员信息,依次输入编号、姓名、QQ、电话号码、单位、电子邮箱、身份。

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

C通讯录管理课程设计报告IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】湖南涉外经济学院课程设计报告课程名称:面向对象程序设计课程设计报告题目:通讯录管理学生姓名:蒋行伍田方成刘倩所在学院:信息科学与工程学院专业班级:计应1301指导教师:2014年6月10日课程设计任务书摘要在《面向对象程序设计》课程理论与实验教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统,复习与深入掌握面向对象的程序设计思想与技术方法。

同时,作为整个实践教学体系一部分,系统培养学生采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。

本课题要设计的是简单的通讯录管理程序。

通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。

程序提供了通信录的基本管理功能。

包括添加、显示、存储、装入、查询和修改等功能。

关键词:类;C++;通讯录;结构体目录一、概述 (1)二、方案设计 (2)1.类设计 (2)2.特殊设计 (2)三、系统整体设计及详细设计 (2)1.整体设计 (2)2.详细设计 (3)四、系统测试 (6)五、结论与心得 (8)六、参考文献 (10)七、程序代码 (11)一、概述编写一个简单的通讯录管理程序。

通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。

程序应提供的以下基本管理功能有:1)添加:即增加一个人的记录到通信录中2)显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。

3)存储:即将通讯录信息保存在一个文件中。

4)装入:即将文件中的信息读入程序。

5)查询:可根据姓名查找某人的相关信息,若找到显示其姓名、地址、电话号码和邮政编码。

6)修改:可修改一个人的除姓名外其它信息。

二、方案设计1.类设计程序可用一个单向链表来管理人员信息,每个人员的姓名,地址,电话号码和邮政编码用一个类来实现,作为链表的值指针指向这些类对象,通过链表的遍历可以操作这些数据。

首先,本程序中设计如下的结构体存储通信录信息。

该结构体重包括了姓基于该结构体,定义了如下通信录类。

该类中包括了指向结构体的头指针head。

函数InitTeleBook()的功能是初始化head;函数isNameExist的功能是判断名字是否已存在结构体中,如果存在则返回1,否则返回0;函数addTeleBook()的功能是添加通讯录信息;函数findByName()的功能是根据姓名查找某人的相关信息;函数printTeleBook()的功能是在屏幕上显示所有通信录中的人员信息,可以分屏显示;函数writeToFile()的功能是将通讯录信息保存在一个文件中;函数loadFromFile()的功能是将文件中的信息读入程序;函数2.特殊设计本程序为了加快数据定位查找的速度,采用常用优先的方法对链表的各个节点进行排序,即一旦操作了一个人员的数据,他的数据就将被调用到链表的链首。

这样经过有限次操作,经常查阅的人员的信息就将排在链表的前端。

虽然不能说链首的节点一定是最常用的,但常用的节点一定会排在较靠前的部分,链表查找时所要走的平均距离一定较短。

对于人员重名的情况,本程序会检测到将要添加的人名是否重复,并将提示用户重新输入新的人名。

三、系统整体框架及详细设计1.总体框架系统的整体框架如图1所示。

图1系统总体框架2.详细设计添加通讯录信息的代码如下所示,主要通cin及cout完成数据的输入及显示通讯录功能的实现主要通过遍历链表来实现,主要代码如下所示。

文件的存储和读出主要是通过istream和ostream来完成,具体代码如下所示。

C++程序设计》.北京:清华大学出版社,2、吴乃陵、况迎辉着.《C++程序设计》.北京:高等教育出版社,程序代码#include<iostream>#include<fstream>#include<iomanip>#include<>usingnamespacestd;typedefstructTeleNode/*标记为telebook*/{charname[20];/*姓名*/charaddress[50];/*电话号码*/charphone[20]; /*省份*/ charcode[20];/*地址*/structTeleNode*next;}TeleNode;classTeleBook{private:TeleNode*head;public:TeleBook(){head=NULL;}voidInitTeleBook();intisNameExist(charname[20]);voidaddTeleBook();voidfindByName();voidprintTeleBook();voidwriteToFile();voidloadFromFile();voidupdateTeleBook();};voidTeleBook::InitTeleBook(){this->head=(TeleNode*)new(TeleNode);this->head->next=NULL;}intTeleBook::isNameExist(charname[20]){TeleNode*tmp=this->head->next;while(tmp){if(!strcmp(tmp->name,name)){return1;}tmp=tmp->next;}return0;}voidTeleBook::addTeleBook(){TeleNode*tmp;tmp=(TeleNode*)new(TeleNode);tmp->next=NULL;cout<<"请输入姓名:";cin>>tmp->name;while(isNameExist(tmp->name)){cout<<"该用户名已存在,请输入别的名称以区分:";cin>>tmp->name;}cout<<"请输入地址:";cin>>tmp->address;cout<<"请输入电话号码:";cin>>tmp->phone;cout<<"请输入邮政编码:";cin>>tmp->code;tmp->next=head->next;head->next=tmp;cout<<"添加成功!!\n";}voidTeleBook::findByName(){charname[20];TeleNode*pre,*cur;cout<<"请输入要查找的用户名:";cin>>name;pre=this->head;cur=this->head->next;(10);cout<<"姓名";(20);cout<<"地址";(15);cout<<"电话号码";(10);cout<<"邮政编码";cout<<endl;while(cur){if(!strcmp(cur->name,name)){(10);cout<<cur->name;(20);cout<<cur->address;(15);cout<<cur->phone;(10);cout<<cur->code;cout<<endl;pre->next=cur->next;cur->next=head->next;head->next=cur;break;}pre=cur;cur=cur->next;}}voidTeleBook::printTeleBook(){TeleNode*cur;intflag=1;cur=this->head->next;(10);cout<<"姓名";(20);cout<<"地址";(15);cout<<"电话号码";(10);cout<<"邮政编码";cout<<endl;while(cur){(10);cout<<cur->name;(20);cout<<cur->address;(15);cout<<cur->phone;(10);cout<<cur->code;cout<<endl;cur=cur->next;if(flag%15==0){getch();}flag++;}}voidTeleBook::writeToFile(){ofstreamfile;TeleNode*tmp;("",0x02);//打开文件,不存在则创建if(!file){cout<<"FilecreateFailure"<<endl;return;}tmp=this->head->next;while(tmp){file<<tmp->name<<""<<tmp->address<<""<<tmp->phone<<""<<tmp->code;tmp=tmp->next;}();}voidTeleBook::loadFromFile(){ifstreamfile;TeleNode*tmp;charch[100];("",0x20);//打开文件,不存在则创建if(!file){cout<<"FileopenFailure"<<endl;return;}while(file>>ch){tmp=(TeleNode*)new(TeleNode);strcpy(tmp->name,ch);file>>tmp->address;file>>tmp->phone;file>>tmp->code;tmp->next=this->head->next;this->head->next=tmp;}();}voidTeleBook::updateTeleBook(){TeleNode*tmp;charname[20];chartmp1[50],tmp2[20],tmp3[20];cout<<"请输入姓名:";cin>>name;tmp=this->head->next;while(tmp){if(!strcmp(tmp->name,name)){cout<<"请输入新地址(输入0不修改):";cin>>tmp1;if(strcmp(tmp1,"0"))strcpy(tmp->address,tmp1);cout<<"请输入新电话(输入0不修改):";cin>>tmp2;if(strcmp(tmp2,"0"))strcpy(tmp->phone,tmp2);cout<<"请输入新邮编(输入0不修改):";cin>>tmp3;if(strcmp(tmp3,"0"))strcpy(tmp->code,tmp3);cout<<"修改成功!!\n";return;}tmp=tmp->next;}cout<<"该姓名不存在!!\n";}voidmain(){TeleBookteleBook;intselect=111;();while(select!=0){cout<<"通信录管理系统\n";cout<<"****************************菜单*******************************\n";cout<<"*1添加*\n";cout<<"*2显示*\n";cout<<"*3存储*\n";cout<<"*4装入*\n";cout<<"*5查询*\n";cout<<"*6修改*\n";cout<<"*0退出*\n";cout<<"******************************************************** *******\n";cout<<"请输入选择:";cin>>select;switch(select){case0:return;case1:();break;case2:();break;case3:();break;case4:();break;case5:();break;case6:();break;default:break;}}return;}。

相关文档
最新文档