C语言实现电子通讯录管理系统:功能与优化实践

版权申诉
0 下载量 128 浏览量 更新于2024-06-27 收藏 134KB DOC 举报
本篇文档是关于C语言程序设计的电子通讯录项目,旨在通过电子工程系电子信息工程专业的学生运用C语言和数据结构知识,开发一个简易但功能齐全的电子通讯录管理系统。以下是详细的内容概述: 1. **课程设计目的**: 随着信息技术的发展,个人对联系人信息管理的需求增加,电子通讯录作为必不可少的工具应运而生。本次课程设计的目标是使用Visual C++ 6.0工具开发一款能够方便用户添加、显示、查找、删除、修改联系人信息,并能将数据保存至文件的电子通讯录应用。通过这个项目,学生可以实践C语言编程,提升数据结构理解和实际操作能力,同时增强程序的可靠性和功能性。 2. **设计题目描述与要求**: - **功能**:主要包括添加(姓名、编号、年龄等)、查找、删除、修改和显示联系人信息,以及保存通讯录到文件。 - **要求**:确保所有功能都能正常工作,鼓励学生在实践中自我调整和完善,以提高程序的健壮性和易用性,同时深化对教材知识的理解。 3. **需求分析**: 课程设计强调了在快速发展的社会中,计算机和编程在管理系统中的基础作用。通过电子通讯录的实训,学生们得以理解并实践如何设计和实现一个简单的管理系统,特别是通过函数的嵌套和结构体的使用,优化代码结构,提升编程技巧。 4. **设计步骤**: - **需求分析阶段**:确定系统功能需求,了解用户界面的重要性。 - **概要设计**:设计整体架构,如使用函数模块化处理,避免main函数过于复杂。 - **详细设计**:细化每个模块的功能,如使用结构体存储联系人信息,循环结构用于处理数据操作。 - **源程序编写**:编写C语言代码实现各个功能模块。 - **测试分析**:验证程序的正确性和性能,确保满足设计要求。 5. **结论与心得**: 通过完成这个项目,学生不仅可以掌握C语言编程技能,还能锻炼解决问题的能力,增强对数据结构的理解,以及提升软件开发和维护的实际经验。 6. **参考文献**:未给出具体参考文献,但可推测该部分会列出在设计过程中参考的相关书籍、教程或学术论文。 这篇文档提供了一个C语言电子通讯录项目的设计框架,强调了实践中的学习和技能提升,对于C语言初学者和想要深入理解信息系统管理的学生具有很高的参考价值。
2023-02-27 上传
辽宁工程技术大学 高级语言程序设计(C) 课程设计报告书 设计题目 : 电子通讯录 2013年01月 目 录 一、引言…………………………………… 二、系统功能和原始数据……………………………………… 三、程序总体设计……………………………………………… 四、功能模块函数设计和调试 ……………………………… 五、程序清单…………………………………………………… 六、课程设计总结 …………………………………………… 一、引言 通过使用C语言编程实现通讯录管理系统的基本功能,并设计了简单的界面。该程序 主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。用到的 知识点是结构体类型定义结构提数组的的定义及应用。另外还用到了大量的自定义函数 。本人设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、添加等必要 的功能。 二、系统功能和原始数据 2.1 原始数据 录入内容包括ID号,姓名,性别,出生日期,固定电话号码,移动电话号码,QQ号码 ,电子邮箱,通讯地址和邮编等。其中出生日期又包括年份,月份和日期三项。 2.2 系统功能 查找功能:能够提供检索除功能,他可以随心所欲的查找通讯录中任意一位朋友的详细 信息。通讯录结构中的许多项,都可以作为查找的线索,例如出生日期,邮编和姓名 。 自动排序功能:它能提供按姓名等排序的功能 纪录和读盘功能:在用户结束程序时,如果做了改动操作,程序会提示用户是否存盘。 三、程序总体设计和调试 3.1 总体设计:包括系统总体设计框架和系统功能模块图; 输入函数:用键盘输入朋友资料 写入文件:将信息写入指定文本文件 导出函数:将信息从文件中导出放在结构数组中 显示主菜单 浏览函数: 查询函数:按名字查询:输入名字显示对应的朋友资料 按出生日期查询:输入出生日期显示对应朋友资料 按邮编查询:输入邮编显示对应的朋友资料 删除函数:删除原有的朋友资料 3.2 详细设计: 1、主函数:main() 显示系统工作菜单,罗列该系统所有功能。先声明所有将会调用到的函数名。再运用选 择函数switch即可根据使用者所输入的功能代号进入对应的功能程序。亮点:定义一个 全局指针变量*p和全局变量a。其中a表示当前系统中职工人数,p指向a的地址,追 踪人数变化,这样在添加或者删除导致人数变化后,浏览函数display()能够正确显示出 当前人数的职工信息。宏定义define N指定首次输入的职工人数,可根据不同需要随时更改。 开始 显示菜单 输入功能代码 Switch(n) "调用输 "调用浏 "调用查 "调用删 "退出 " "入函数 "览函数 "询函数 "除函数 "exit() " "Input() "display() "search() "del() " " 结束 2、输入函数:void input() 定义一个结构struct employee和数组em[N]用来储存N个朋友的所有信息(ID号em[i].number,姓名em[i].na me,性别em[i].sex,生日em[i].birthday,电话em[i].phone,手机em[i].mobile,QQ em[i].qq,邮编em[i].zip)。通过for循环输入所有职工信息。用orintf语句提示需要 输入的内容,接着用scanf语句输入相应内容。输入完毕后套用保存函数save(N)将所有 输入信息写入指定文件。 3、保存函数:void save(int m) 定义文件指针fp,用fopen"只写"打开指定在D盘的"d://bbb.txt"文本文件。首先用if 语句判断文件是否打开成功,若fopen返回值不为0,则可继续下面操作。用for循环通 过fprintf语句将结构数组em中的内容写入保存在D盘的文本文件里面。形参m指需要写 入文件的职工人数。最后关闭文件。 4、导出函数:void load(int b) 首先判断fopen"只读"打开"d://bbb.txt"是否成功,若其返回值不为零,继续下面操 作。用for循环通过fscanf语句将文件中的朋友资料取出放到em结构数组里面。形参b指 需要导出的朋友。最后关闭文件。 5、浏览函数void display(int a) 声明整形变量i和b,其中i记录输出的朋友序数,b用来接收调用浏览函数时所传递过 来的实参,接着将其值传递给导出函数load(b),使得导出的朋友人数与浏览的朋友人数 保持一致。通过调用load函数后(即给em数组附值),用for循环输出每个朋友的各种信 息。 6、查询函数void search() 声明整形变量t,先用printf语句显示查询菜单,用scanf输入选择的查询方式代号, 用switch(t)进入所选择的具体查询函数,包括按出生日期查询、按姓名查