C语言课程设计实验报告模板

C语言课程设计.通讯录管理系统

《程序设计基础》 课程设计报告

课程设计题目

通讯录管理系统

指导教师:____李 萍____ 班 级:__ 0903班_ _ __ 学生姓名:2009100333_ 闫 晓

2009100334 皇 倩 2009100335 翟少平 2009100336 谢成龙 2009100337 姚 琳

完成日期: 2010年9月16日

第 1 页 共 14 页

C语言课程设计.通讯录管理系统

运城学院计算机科学与技术系

目录

一、课程设计目的 ............................ 3 二、课程设计内容 ............................ 3 三、总体设计 ................................ 3 四、详细设计 ................................ 4 五、调试与测试 ............................. 11

第 2 页 共 14 页

C语言课程设计.通讯录管理系统

《C语言课程设计》

通讯录管理系统

一、课程设计目的

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

2、 通过课程设计,学会设计数据结构。其中包括对结构数组、链表和数据文件等知识的运用。

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

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

5、 通过课程设计,开发一个中小型系统,掌握系统研发全过程。 6、 通话课程设计,培养分析问题、解决实际问题的能力。

二、课程设计内容

设计一个实用的学生通讯录管理系统,能以简便高效的方式对通讯录进行管理和检索,具体要示:

(1) 录入:学生通讯录信息包括:姓名,地址,电话等。以结构数组

或数据文件的形式存放通讯录信息。

(2) 更新:能插入、删除通讯录信息。 (3) 浏览:按姓名为序进行通讯录信息浏览。

(4) 查询:能实现指定联系人信息查询或指定课题组人员查询功能。 (5) 系统以菜单方式工作,要求界面友好,易于操作。

三、总体设计

模块化设计

第 3 页 共 14 页

C语言课程设计.通讯录管理系统

为实现系统功能,本程序主要分为六个模块。它们分别为:输入一个学生信息、删除一个学生信息、查询一个学生信息、插入一个学生信息、输出所有的学生信息、保存并且退出该程序。这六个函数再通过主函数调用分别得以实现。

主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用通讯录的哪种功能。然后,通过执行多分支选择语句——switch语句,分别实现其它各个函数的调用功能。

其它各个函数的功能分别如下:

creat函数用于对通讯录中的数据以文件的方式 进行读入及函数用于录入通讯录中学生的信息; delete函数用于对通讯录中指定信息的删除; search函数用于对通讯录中指定信息的查询;

append函数用于在通讯录中插入信息;

output函数用于对通讯录中所有信息进行浏览; exit函数用于保存通讯录信息并且退出。

四、详细设计

(1)数据结构设计

本程序中,运用了多种数据结构。首先对于学生通讯录中各项详细信息的记录用了结构数组的形式,然后又运用链表动态地分配内存单元,在creat函数中,把保存在数组中的值再赋值给其中的一个结点,通过指针的后移,把多个数据连成一个链,形成一个链表。在这过程当中,还运用了数据文件的方式,每一次从终端输入的数据都以数据文件的形式保存到了磁盘。

对于主要数据结构的举例如下: 结构数组: struct person

{ char name[10]; char addr[30]; char tel[15]; };

第 4 页 共 14 页

C语言课程设计.通讯录管理系统

(2)模块接口设计

由于本程序中存在很多指针,所以这个程序中被调用的函数都是空类型的,但这并没有影响最终结果的输出,反而使得函数调用的过程更加简便。 本程序执行的入口是main函数,然后在main函数中首先调用了creat函数,这就实现了对通讯录中的数据以文件的方式进行读入。接下来在while语句中再套用switch语句实现对各个函数的调用。最后,再从main函数中结束整个程序的运行。

其中涉及到被调用的函数有:

void creat33(); void output34(); void search34(); void append36(); void modify35(); void delete37();

(3)流程图

creat函数:

void creat33()

{

struct person one; long s1;

printf(\请输入通讯簿名:\ scanf(\

if((fp=fopen(filename,\ {

printf(\不能建立通讯簿!\ exit(); }

fprintf(fp,\姓名\电话号码\住址\ printf(\请输入姓名、电话号码及住址(以0结束)\\n\ scanf(\

第 5 页 共 14 页

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4