文章图片标题

C语言开发的简单通讯录管理系统

分类:c/c++源码 作者:阿流 评论:0 点击: 1,012 次 发布时间:2019-07-29

这是一个使用C语言开发的简单通讯录管理系统,附带有实验报告。

  1. 概述

1)问题描述

随着社会的不断发展与通信信息朝着多元化的转变,我们需要建立一个更加全面的通信录管理系统来对繁杂的通信信息进行多种操作。它既能够很好地满足用户的多元化需求,又具有便捷、美观、安全等特点。

  • 基本要求

1.应具有通信录的建立、追加、删除、修改、查询、排序、统计、显示功能。

2.通信录保存到文件中。

3.增加其他有用的功能。

4.本系统要具有通用性、界面美观、操作简单。

5.要靠虑系统和数据安全问题。

  • 需求分析

1)程序的目标与功能

首先,要实现通信录管理系统最基本的功能:对各种通信数据的基本操作。我们需要建立一个结构体,里面包括各种不同类型的数据,用来满足联系人信息的多元性。我们还需建立一个链表用来存储这些通信数据。为了满足用户的需要,系统读入数据可分为从文件中读取和从键盘输入读取;系统显示数据可分为屏幕显示和文件存储。同时为了能够按照多种数据进行查询与删除操作,我们可以在相应函数下设计一个选择界面,使功能更加齐全。在排序功能的实现方面,可以按照字母的顺序通过互换信息来完成。

其次,关于系统和数据安全问题上,我们希望能实现数据的安全、合理,并防止数据的丢失。所以我们需要建立一个保存和备份的函数,同时在每一个需要输入数据的地方都进行数据合法性的测试,如若输入错误,则系统会给予提醒并让用户重新输入。

然后,我们应该增添一些人性化功能。比如帮助函数,调用它就会显示出这个程序的流程和一些注意事项。再比如可以增加调查问卷函数,把用户输入的反馈自动保存,方便我们的回收以及后期的更新与维护。

最后,在界面美观方面,我们应注意输出的格式与排版。在界面的设计方面,也要有所创新。同时我们还可以进行清屏操作,把一些显示的繁杂数据进行清屏。通过这几项应该可以达到界面美观的效果。

2)数据来源形式

  1. 从文件中读取数据

用户在刚刚打开程序的时候,如果用户已保存过通信录,那么程序便会从保存的文件中读取信息,并把它录入到链表中。这样就减少了输入给用户带来的困扰。

  • 键盘输入

如果用户想建立一个新的通信录或者对一些数据实施修改添加等操作,那么就需要用键盘来输入数据。

3)输出形式

  1. 屏幕显示

用户对数据进行操作后如果想进行查看,即可调用显示函数,此函数会通过指针把链表中的数据有序的读取到屏幕上来。用户就可以看到排版清晰美观的数据了,方便进行下一步操作。

  • 文件存储

当用户建立好一个通信录后,为防止下一次使用还要重新输入,用户可以调用保存函数。然后链表中的数据就会以二进制的行式保存到一个用户指定的文件中。

  • 文件备份

为了防止数据的丢失,在每次对数据进行保存后,程序都会询问用户是否备份,若备份,则数据会被保存到一个指定的文件中,减少数据丢失的风险。

4测试数据

  1. 有非法数据的检测

在所有的选择界面中,如若用户输入错误的数字,程序会通过判断来提醒并让用户进行再次输入直到输入正确数据后为止。同时在一些按输入信息进行查询、删除的操作过程中,如若输入的数据是链表中没有的,程序也会进行提醒并让用户进行重新操作。

3.总体设计

(1)构图及功能

查询:可以选择用姓名、电话、邮箱地址和通讯地址四种方式查询。

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

删除:可以选择按名字、电话、邮箱地址和通讯地址四种方式删除,选择后会自动删除他(她)的记录内容。

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

修改:可以选择按名字、电话、邮箱地址和通讯地址四种方式修改。依次输入姓名、年龄、关系、电话、邮箱地址、通讯地址即可完成修改。会提示是否继续修改。

统计:可以按照年龄段和关系两种方式统计。以简单表格的形式输出,显示联系人信息及总数。

排序:按照姓名的字母顺序对链表进行排序。排序成功会提示排序成功。

保存:输入文件名(带后缀名)后,即可将通讯录信息保存到文件。同时用户可以选择是否备份数据,备份数据以Beckup.txt保存。

帮助:自动打开Help.txt文件,读入信息并输出,包含每一个选项的具体功能及操作,帮助用户正确使用本系统。

关于我们:会显示我们组的详细信息及我们组成员的详细信息。

退出:可以选择直接退出和对该系统进行评价及反馈再推出。评价及反馈以反馈函数实现,将用户的建议及相关体验信息以文件方式保存,便于我们对该程序的改进,再退出程序。

(2)总体数据结构

  该通讯录管理系统,在头文件中定义了结构体People,其中包含num、name、age、rela( relation)、pnum( phonenumber)、e-mail和address。本系统中数据的输入、排序、删除等功能均由动态链表实现,数据读入、保存及备份均由文件的形式保存。

3)分工列表

陈弘超(组长):主函数、读入函数(从文件中读取数据)、读取函数(创建新的通信录)、修改函数。

张亚强(组员):界面函数、增加函数、统计函数、排序函数、保存函数、帮助函数、关于函数(关于我们About us)。

曹越(组员) :删除函数、显示函数、查询函数、交换函数、反馈函数。

结果展示

首先进入一个选择界面,让用户选择是读取文件中数据或是自己输入数据
选择以读取文件或者是输入的方式载入数据到程序后进入选择功能主界面
选择第一个选项inquire查询后进入其子界面,其中有四个选项,提供用户分别按姓名、电话号码、Email、家庭住址来查询记录

总结与体会

这次我们组选择的实验题目是“通信录管理系统”,这也是我们进入大学以来所面对的第一个需要多人合作来完成的较大的程序设计实验。毫无疑问,这对我们小组的每一个成员来说都是一个巨大的挑战。

这次的实验——“通信录管理系统”不仅考察了我们的C语言知识的掌握情况,同时也让我们学会通过写出可读性强的代码来更好的与他人合作。平时我们仅仅是从书本中和课堂中学习有关程序设计的知识,却鲜有能够像这样从一个实际应用出发,从设计到实施到最后的运行都由我们自己来实现的机会来检验我们的学习成果。虽然实验课的时间很短,只有三周左右的时间,但在这短短的三周的合作编程实验的过程中,我们每一个人都发现了自己身上的许多不足之处,平时我们容易忽视的一些不以为然的小细节在这次的程序设计中让我们充分认识到了他的重要性——让我们付出了数个小时的时间来调试一个bug,在这个过程中,每一个人都受益匪浅。终于,在我们小组成员的共同努力下,经过一次又一次的coding与debug的循环后,我们的程序总算是能够完美运行,那一刻,我们明白自己要学的东西还有很多,路还很长。

虽然在编写程序的过程中我们也遇到过一些不太了解的问题,在老师同学及网络的帮助些也解决了大部分,但还有一些问题难以解决。但是我们坚信,经过我们的潜心贯注努力学习后,这些问题一定能得到更好的解决。在这三周的实验中,我们的收获了许多,更加深入的学习了C语言,明白了注释及函数命名的重要性,也慢慢熟练掌握了有关文件、链表、循环等有关操作。

最后,我们都深刻的明白,课堂上的知识仅仅是冰山一角,跟多的运用方面的知识需要我们自己到网络或书本中去寻找。只有通过不断的实践,我们才能够真正了解如何设计一个好的程序。

其他c语言通讯录系统源码下载:

C语言/C++通讯录管理系统 报告源码下载





声明: 本文由( 阿流 )原创编译,转载请保留链接: http://www.daimabuluo.com/source/cpp/1194.html

C语言开发的简单通讯录管理系统:等您坐沙发呢!

发表评论