搜档网
当前位置:搜档网 › 通讯录管理系统

通讯录管理系统

通讯录管理系统
通讯录管理系统

摘要

为了人们对他人信息的记忆方便而设计,开发的一套“通讯录管理系统“软件。

通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。得到软件工程的综合训练,提高解决实际问题的能力。

关键字:信息;管理;实用

Abstract

Designedfor people to others the memoryof information convenient,developed a setof "mail listmanagement system" software.

Through the designprocessofthis subject, students can bestructuredprogramming ideas, deepen our understanding of the advanced languagebasiclanguage elements and controlthe understandingofthestructure,conducttraining for emphasis and difficultyinC language, independently complete the program design hasa certainwork tasks,while emphasizing the good programming https://www.sodocs.net/doc/a66559252.html,prehensivetraining in software engineering, improvingtheabilityto solve practical problems.

Keywords:Information;management;practical

目录

1 概述 (1)

1.1设计目的?1

1.2设计要求................................................................. 1

1.3系统功能需求分析?2

2 总体设计?3

2.1总体功能模块图?3

2.2程序的数据设计?4

3详细设计 (5)

3.1功能及工作流程图 (5)

3.2源程序代码?8

4调试分析................................................................... 194.1测试................................................................... 194.2问题思考与调试:?错误!未定义书签。

5总结........................................................ 错误!未定义书签。参考文献...................................................... 错误!未定义书签。致谢?27

1 概述

1.1设计目的

随着信息社会的高速发展,人与人之间的联系越来越频繁,通讯方式越来越多样化,如何保证与朋友、同学、同事、领导、亲戚等之间的联系,并能方便快捷的查找、记录、修改其相关通讯信息。仅靠以前单独的手工记录已远远不能满足当前的需要。

开发一个通讯录管理系统,借助计算机可以方便、快捷、灵活的管理个人的朋友及相关人员的通讯信息,了解友人相关信息,帮助与友人保持联络。

所以设计一个通讯录管理系统管理各人的通讯信息是是非必要的。

设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。

(1)数据包括:人名、工作单位、电话号码和E-mail地址。

(2)可对记录中的姓名和电话号码进行修改。

(3)可增加或删除记录。

(4)可显示所有保存的记录。

(5)可按人名或电话号码进行查询。

1.2设计要求

建立通讯录信息,信息至少包含姓名、住址、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、E-mail、QQ等。

该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、单位、分类方式查找。

将通讯录保存在文件中。

能够输出通讯录中的信息。

1.3系统功能需求分析

主要包含一下多种功能:

添加:添加通讯录记录

显示:显示通讯录记录

删除:删除通讯录记录

查询:查询通讯录记录

修改:修改通讯录记录

保存:将信息保存到文件

本系统为通讯录管理系统,可由用户自由添加,删除和修改信息,还可以将通讯录信息导出到文本文档,极大的方便了用户的使用。

2 总体设计

思路:我们首先设计出了主函数,然后根据去要实现的功能分别设计录入联系人信息、浏览、查询、修改、删除功能的子函数。删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环实现删除。修改也大体和删除相同,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。

2.1总体功能模块图

图2.1 总体功能模块图

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。

显示:可以以表格形式输出所有通讯录里的记录。

删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容。

查询:可以选择用姓名、电话、地址三种方式查询。

修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改。

保存:输入文件名(带后缀名)后,即可将通讯录信息保存到文件。

运行所需环境:win7及以下各版本windows,visual C++6.0。

2.2程序的数据设计

该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。下面六个模块都是利用C语言文件,向文件中追加数据、修改数据、查询数据和除数据。

创建:用fopen()建立一个文本文件,然后用fprintf()向其中输入数据(例如,向文件中输入“姓名”,“地址”等),并对文件进行命名。

添加:可以添加通讯录记录,利用C语言文件,向文件中按顺序输入姓名、住址、单位、固定电话、手机号码、分类(如同事、朋友、同学、家人等)、E-mail、

QQ,再用fclose()函数关闭并保存文件。

输出:也是用通过循环依次输出文件中的数据,即输出所有通讯录里的记录。

删除:输入你要删除的人的姓名后,系统会自动删除他(她)的记录,在删除通过switc h语句满足提示你确认删除的功能,只有等你确认删除后才会删除。

查找:为了满足用户的实际需求,设计了三种查询方式,可以用姓名、单位、分类三种方式查找通讯录记录。这里用到strcmp()函数,通过比较字符串是否相同来

判别是否找到相关信息,找到后,就把文件中的数据赋给对应的变量,再把变

量所带的值输出到屏幕上。

修改:输入你要修改的那个人的姓名后,系统会查找该通讯录文件(此时用发ftell()函数来跟踪文件指针的指向地址,找到个人的记录后,会显示他(她)的记

录,然后通过fseek()函数来找到修改处的地址,然后用户再依次输入他(她)

的相关信息来替代以前的记录。

保存:用到fclose()函数,每次操作成功后会自动保存到指定的文件中。

3详细设计

3.1功能及工作流程图

①添加:添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮

箱后,会提示是否继续添加。

图3.1(1)添加流程图

②显示:以表格形式输出所有通讯录里的

图3.1(2)显示流程图

③删除::输入欲删除的那个人的名字后,会自动删除他(她)的记录内容。??

图3.1(3)删除流程图

④查询:可以选择用姓名、电话、地址三种方式查询。

图3.1(4)查询流程图

⑤修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改。

图3.1(5)修改流程图

3.2源程序代码

#include

#include

#include

typedef struct

?{

?char score; /*编号*/

??char name[10]; /*姓名*/

?char num[15];/*号码*/ ??char email[20];?? /*邮箱*/

?char age[8]; /*年龄*/

?charadds[20];??/*住址*/

?}Person;

Personpe[80];

int menu_select()

?{

?charc;

do{

?system("cls");

printf("\t\t*****通讯录*****\n");??printf("\t\t┌───────┐\n");

??printf("\t\t│ 1.添加记录│\n");

?printf("\t\t│ 2. 显示记录│\n");

??printf("\t\t│ 3. 删除记录│\n");

??printf("\t\t│ 4. 查询记录│\n");

?printf("\t\t│ 5.修改记录│\n");

printf("\t\t│ 6. 保存记录│\n");?printf("\t\t│0. 退出程序│\n");

?printf("\t\t└───────┘\n");

??printf("\t\t请您选择(0-6):");

?c=getchar();

??}while(c<'0'||c>'6');

?return(c-'0');

?}

int Input(Person per[],int n)

?int i=0;

charsign,x[10];

while(sign!='n'&&sign!='N')

{

printf("\t编号:");

?scanf("\t%d",&per[n+i].score);

printf("\t姓名:");

?scanf("\t%s",per[n+i].name);

printf("\t年龄:");

?scanf("\t%s",per[n+i].age);

?printf("\t电话号码:");

scanf("\t%s",per[n+i].num);

??printf("\t通讯住址:");

?scanf("\t%s",per[n+i].adds);

?printf("\t电子邮箱:");

??scanf("\t%s",per[n+i].email);

相关主题