《C 语言程序设计》
课程设计报告
题
目: 学生通讯录管理系统
专
业:
计算机科学与技术
学
号:
311209010207
姓
名:
张明贝
指导教师:
毋小省
成
绩:
1
一 系统设计目的
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计
算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行
信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了
其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信
息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统
就是为了管理而设计的。
通讯录管理系统的建立是可以有效节省同学、朋友、客户间日常交流的投资
(指时间、精力),其设计理念很简单,变传统的纸张与笔录方式为计算机自动化
进行通讯录信息管理系统,既省时间又提高效率。因此在系统构建时,只要我们
本着丰富通讯录的信息资源,为用户提供最为方便的快捷的信息阅览途径和管理
手段,去吸引用户,那么通讯录管理系统是完全可行的。
通讯录软件设计的灵感来源于生活和工作中的需要。如今,随着社会的飞速
发展,信息时代改变着人们的各种生活方式。人们的联系信息,联系方式变得复
杂而多样化,以前所使用的各种电话簿、通讯本等小册子由于查找不方便、功能
单一等缺陷已经无法胜任它的“时代使命”,而现在各种手机,商务通内设的电话
簿尽管携带方便却又挥之不去其“记录量少,界面小,浏览不方便”的缺点。工作
中看到有些人巧妙地利用 excell 或者 word 制表格来建立通讯录,每逢用时再打
开,可是查找极其不便,维护起来也麻烦。
通讯录系统设计,它的内容对于计算机来说是至关重要的,通讯录系统为计
算机的使用者提供充足的信息和快捷的查询手段。用 c 语言构建的通讯录系统设
计,通过课上学到的和查阅一些文献的一些关于结构体[1]、数组、指针、函数以
及循环函数的运用[1]和字符串的处理[2]等基本知识可以初步的实现通讯录的输
入、显示、查找、删除、快速查询等通讯录简单而用的一些实用的功能,给人们
带来更多的方便。本管理系统设计合理、操作方便、运行稳定、功能完备,具有
较高的实用价值。
本课程设计主要运用 C 语言中的结构体、数组、链表、等数据结构,设计
一个简单的管理系统应用程序。本程序设计出了通讯录管理系统的基本功能,并
设计了简单的界面,主要考察对自定义函数的熟悉程度,使用的是数组的相关操
作,包括结构体数组的输入、输出、查找、删除等。通过完成本课题进一步熟悉
C 语言基本知识,并掌握数据结构的一些基本算法思想,进一步熟悉指针的用法,
数组的建立运用和函数调用,加深对数据结构的理解,提高算法设计的能力,锻
炼编程的能力。用 C 语言编程的通讯录管理系统,要求实现通讯录系统中,添
加新记录、删除记录、显示记录信息、按名字查找信息和退出系统等功能。
2
①录入人员的编号、姓名、个人邮箱、地址、联系电话。
②显示所有人员的信息。
③通过输入姓名查找人员信息。
④通过输入姓名查找到要删除的,人员信息,然后可以进行删除,回显当前通讯
录信息。
⑤通过输入姓名查找到要修改的人员信息,然后依次进行信息修改。
⑥添加人员信息。
二 系统总体设计
本系统设计的函数是由一个主函数几个子函数组成的。首先构思大局编出一
个主函数,然后根据要实现的功能逐步细分设计,分别解决输入、显示、查找、
删除、修改,退出功能的子函数编程中遇到的问题。首先通过结构体的定义,确
定通讯录的项目和大小。首先通过输入函数添加信息,然后再逐步编写和验证其
它功能。显示函数的设计利用 C 语言的循环功能依次输出信息。查找是用一个
字符串比较得出两个相同的字符串的方法找出用户要查找的人。删除函数的设计
是通过指定位置以后的数组下标减一实现删除目的的,for 循环和 while 循环在
这此设计中也起了很大的作用。
1 概要设计
系统功能模块图如图 1 所示:
主菜单
输
入
通
讯
录
显
示
通
讯
录
查
找
通
讯
录
删
除
通
讯
录
修
改
通
讯
录
添
加
通
讯
录
退
出
通
讯
录
图 1 系统功能模块图
3
2 系统流程图
开始
int length,m=0
m>=0?
真
menu()=0?
假
menu()=1?
假
menu()=2?
假
menu()=3?
假
menu()=4?
假
menu()=5?
假
menu()=6?
假
假
真
真
真
真
真
真
真
调用输入函数
调用显示函数
调用输出函数
调用查找函数
调用修改函数
调用添加函数
调用退出函数
输入错误,重新操作
结束
图 2 主函数流程图
4
三 详细设计
1 菜单函数
菜单函数首先标出欢迎使用通讯录管理系,然后给出用户可选择的项目,用
户可以通过选择该项前的代码来实现想要实现的功能,其流程图如图 3 所示:
开始
int m
输入选项 0—6
m<0||m>6
真
返回 m
结束
图 3 菜单函数流程图
假
5
2 输入通讯录
将结构体数组分成几个数组分别对每个数组赋值,用 for 循环对不同地址的
数组分别赋值。其流程图如图 4 所示:
开始
输入数目 n
i=0
i
3 显示通讯录
显示通讯录通过循环函数将全部的通讯录信息以此显示出来,其流程图如图
5 所示:
开始
int i
i=0
i<=n-1?
真
显示 i 位置信息
假
i++
结束
图 5 显示函数流程图
7
4 find 函数
find 函数通过输入姓名与原通讯录中存储的姓名,两字符串的比较,找到与
输入姓名相同的姓名的位置,其流程图如图 6 所示:
开始
i=0
i