没有合适的资源?快使用搜索试试~ 我知道了~
c语言编写的通讯录管理系统软件课程设计报告
5星 · 超过95%的资源 需积分: 50 60 下载量 169 浏览量
2010-06-20
23:10:34
上传
评论 7
收藏 196KB DOC 举报
温馨提示
试读
20页
利用 “结构体”、“数组”、“链表” 或“类”、实现通讯录管理系统的数据结构,实现通讯录的按不同“关键字”的排序、查找、加入、删除以及文件加密及存储算法编程。
资源推荐
资源详情
资源评论
软件课程设计报告
1
目 录
1 软件设计 (四 号 黑 体 ) … … ...…………………………………………….……3
1.1 内容要求(四号宋体)…………………………………….………………3
1.2 设计思想(四号宋体)…………………………………………………… ..3
1.3 功能描述(四号宋体)……...…………………………………………….……3
1.4 模块划分(四号宋体) …………………………………………………… .3
·
2 软件 测 试 …… … …… … …… …… ……… ……… … ...……………………….6
·
·
3 开 发 体 会 … … … … … … … … … … … .………….……………………………11
附 录 : 源 代 码 清 单 … .………………………………………………………………11
通讯录管理系统
1.内容要求
利用 “结构体”、“数组”、“链表” 或“类”、实现通讯录管理系统的数据结构,实现
通讯录的按不同“关键字”的排序、查找、加入、删除以及文件加密及存储算法编
程。
2. 设计思想
2
本程序运用了结构体来存放联系人的信息,并定义了结构数组使数据的管理转化
为对结构数组的操作,从而实现了通讯录的输入,输出,存档,读取,删除以及查找和分
类显示功能
3. 功能描述
通讯录管理系统主要用数组来实现,其数组元素是结构体类型,整个系统又
如下几个功能模块组成
(1) 输入记录模块。输入记录模块主要将用户通过键盘输入的数据存入数组的
工作,数据记录的结构由结构体定义,包含联系人的相关信息。
(2) 查询记录模块。查询记录模块主要完成在数组中查找满足相关条件的信息
记录。本程序中,用户可以按联系人姓名及电话号码进行查找。若找到代
查记录,则以表格形式显示在屏幕上,否则提示代查信息不存在。
(3) 删除模块。删除模块主要完成对指定记录的删除。
(4) 显示模块。显示模块有两种功能,一是完成将数组中的联系人信息以表格
的形式显示在屏幕上的功能,二是将指定类别的信息以表格的形式显示在
屏幕上。
(5) 存盘模块。存盘模块有两种功能,一是将内存数组中的数据存在硬盘文件
中,二是将硬盘文件中的数据读取在内存数组中。
4.模块划分
1.数据结构设计
本程序定义了结构体 CARD,用于存放联系人的基本信息。
typedef struct body
{
char name[20];
char phonenumber[20];
char address[50];
char mail[50];
char group[10];
} CARD;
name[20] 保存联系人姓名
phonenumber[20] 保存联系人电话号码
address[50] 保存联系人地址
mail[50] 保存联系人邮箱
group[10] 保存联系人分类
2.功能模块设置
本程序可以实现通讯录的输入,输出,存档,读取,删除以及查找和分类显示功能.
main()函数
程序的主体,它先以追加的形式打开一个文件(contact_list.bin),若此文件不存在则
3
新建一个,并将其读入到内存中,再调用 menu()函数在屏幕上显示菜单选项,
用户根据菜单选项的数字标号选择功能,在键盘上键入相应数字,并用 switch
语句使程序执行各个功能。选择为 1 则为显示功能,用 list()函数将内存中的数
据显示在屏幕上。选择为 2 则为输入功能,用 input()函数用户可以用键盘输入数
据。选择 3 则为查找功能,用 search()函数用户可以关键字姓名和号码查找所需
的数据。选择 4 则是删除功能,用 del()函数用户可以通过查找找到需要删除的
数据并将其删除。选择 5 时分组功能,用 sort()函数用户可以将所有数据按家人,
同事,朋友分为三类,选择 6 则是存储功能,用 save()函数用户可以将内存中的
数据存入硬盘文件中,选择 7 则是重新载入的功能,用 reload()函数将硬盘中的
数据读入内存。选择 8 退出程序。
input()函数
函数原型:void input(CARD * cp)
用来实现数据的输入,每次输入都依“姓名(name),电话号码(phonenumber), 地
(address),邮箱(mail),类别(group)”的次序分别以字符数组的形式将用户在键盘上
输入的数据存入内存中先前定义的结构体数组中。形参为数据存入地址的指针。
list()函数
函数原型:void list(CARD * cp,int n)
用来实现内存中结构体数据在显示屏上的显示,用循环体对结构体指针的控制将
结构体中的各项依次显示在屏幕上,并显示结构体的总个数。形参为指向第一个
待读数据的指针,和整个数组的数据个数。
search()函数
函数原型:int search(CARD * cp,int n)
用来通过联系人姓名或电话号码查找数据,并将找到的数据显示在屏幕上。函
数用 switch 语句实现用户对这两种功能的选择,后通过 for 循环及 strcmp 语句将
用户通过键盘输入的关键字与数组中各个数据的相应项进行比较,若找到则将
其显示在屏幕上,若未找到则显示提示信息。形参为数组的首地址指针 cp 和数
组中数据的个数 n,返回值为找到的数据在数足中的编号,若没有找到,返回-
1。
del()函数
函数原型:int del(CARD * cp,int n)
用来用来通过联系人姓名或电话号码查找数据,并将找到的数据显示在屏幕上,
后将其删除。函数调用了 search()函数用来完成按关键字查询的功能,后通过 for
循环和 strcpy 语句在数组中将目标数据后面的数据一一向前移一个数据长度,这
样目标数据被后一个覆盖,最后一个数据被清空,这样整个数组长度缩短一个
数据长度,目标数据被删除。形参为数组的首地址指针 cp 和数组中数据的个数
n,返回值为删除数据后的数组中数据个数 n。
save()函数
函数原型:void save(CARD * cp,int n)
4
剩余19页未读,继续阅读
资源评论
- jeicy_2013-05-03还是不错的,不过有BUG,那个登陆模块有问题啊。
- jcycherish2013-07-04挺有帮助的,谢谢
Yves_D
- 粉丝: 4
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功