个人通讯录管理(c语言课程设计)
通讯录管理系统课程设计c语言
通讯录管理系统课程设计c语言一、课程目标知识目标:1. 理解通讯录管理系统的基础概念,掌握C语言实现通讯录管理的核心功能;2. 学会使用结构体、数组、文件操作等C语言基础知识,实现数据的存储与读取;3. 掌握函数的定义与调用,能运用模块化编程思想设计通讯录管理系统。
技能目标:1. 能够运用所学知识独立设计并实现一个简单的通讯录管理系统;2. 培养良好的编程习惯,编写规范、可读性强的代码;3. 提高问题分析能力,通过编写程序解决实际问题。
情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习热情,树立编程自信心;2. 培养学生的团队协作意识,学会在团队中发挥个人优势,共同解决问题;3. 培养学生严谨、踏实的学术态度,养成勤奋思考、乐于探究的良好习惯。
课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握C语言在通讯录管理系统中的应用。
学生特点:学生具备一定的C语言基础,对编程有一定了解,但实际操作能力有待提高。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,培养学生实际编程能力。
通过分解课程目标为具体学习成果,使学生在完成课程学习后,能独立设计并实现一个简单的通讯录管理系统。
二、教学内容1. 通讯录管理系统概述- 了解通讯录管理系统的基本功能与需求;- 掌握系统设计的基本流程与模块划分。
2. C语言基础知识回顾- 结构体、数组的使用;- 文件操作(读写、打开、关闭文件);- 函数的定义与调用。
3. 通讯录管理系统核心功能实现- 设计并实现数据结构存储通讯录信息;- 编写功能函数,包括增加、删除、修改和查询联系人;- 实现数据的持久化存储。
4. 系统测试与优化- 学习测试方法,对系统进行功能测试;- 分析测试结果,优化代码与算法。
5. 编程规范与团队协作- 学习编程规范,编写高质量的代码;- 了解团队协作的重要性,培养团队协作能力。
教学内容安排与进度:第1周:通讯录管理系统概述与需求分析;第2周:C语言基础知识回顾;第3周:设计数据结构与功能函数;第4周:实现通讯录管理系统核心功能;第5周:系统测试与优化;第6周:总结与团队协作。
c通讯录课程设计
c 通讯录课程设计一、教学目标本课程旨在让学生掌握通讯录的基本知识和技能,能够使用常见的通讯录软件进行个人信息管理。
通过本课程的学习,学生将能够:1.理解通讯录的基本概念和结构;2.熟练使用通讯录软件进行联系人信息的添加、删除、修改和查询;3.掌握通讯录软件的高级功能,如分组、设置提醒等;4.培养学生的信息管理和能力,提高日常生活和工作中的通讯效率。
二、教学内容本课程的教学内容主要包括以下几个部分:1.通讯录的基本概念和结构:介绍通讯录的定义、分类和常见的通讯录软件;2.通讯录软件的基本操作:讲解如何使用通讯录软件进行联系人信息的添加、删除、修改和查询;3.通讯录软件的高级功能:介绍如何使用通讯录软件进行分组、设置提醒等高级功能;4.实际操作练习:安排一定的实践时间,让学生实际操作,巩固所学知识。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解通讯录的基本概念、结构和软件操作方法;2.案例分析法:通过分析实际案例,让学生学会如何使用通讯录软件解决实际问题;3.讨论法:学生进行小组讨论,分享使用通讯录软件的心得和技巧;4.实验法:安排实际操作练习,让学生动手实践,提高操作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的通讯录教材,为学生提供系统的理论知识;2.参考书:提供相关的参考书籍,丰富学生的知识视野;3.多媒体资料:制作课件、视频等多媒体资料,增强课堂教学的趣味性和生动性;4.实验设备:准备电脑、通讯录软件等实验设备,确保学生能够进行实际操作练习。
五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占比20%;2.作业:评估学生完成作业的质量和速度,占比30%;3.考试:安排一次期末考试,评估学生对课程知识的掌握程度,占比50%。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保每个章节都有足够的教学时间;2.教学时间:每周安排两节课,每节课45分钟,共16周;3.教学地点:教室。
c语言课程设计通讯录
c语言课程设计 通讯录一、课程目标知识目标:1. 理解并掌握C语言结构体和数组的使用,能够运用其创建和操作通讯录。
2. 学习并掌握C语言中的文件操作,实现通讯录数据的保存和读取功能。
3. 掌握C语言中的函数定义和应用,实现通讯录各项功能模块的划分和调用。
技能目标:1. 能够编写C程序,实现通讯录的增加、删除、修改和查询功能。
2. 能够运用所学知识,设计出界面友好、操作简便的通讯录管理系统。
3. 能够对程序进行调试和优化,提高代码的可读性和执行效率。
情感态度价值观目标:1. 培养学生主动探索、积极实践的学习态度,增强其解决实际问题的能力。
2. 培养学生的团队协作精神,学会与他人共同分析问题、解决问题。
3. 通过本课程的学习,使学生认识到编程在生活中的应用价值,激发其对计算机科学的兴趣。
分析课程性质、学生特点和教学要求:本课程为C语言课程设计,旨在巩固和拓展学生所学知识,提高其编程能力。
学生已具备一定的C语言基础,能够独立完成简单的程序编写。
课程要求学生通过动手实践,掌握结构体、数组、文件操作等知识,并能够将其应用于实际项目中。
课程目标明确,分解为具体学习成果,便于教学设计和评估。
在教学过程中,注重培养学生的实际操作能力和团队协作能力,提高其综合素质。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. C语言基础知识回顾:结构体、数组、函数、文件操作等。
- 结构体:定义、声明、初始化、结构体数组。
- 数组:一维数组、二维数组、字符串与字符数组。
- 函数:函数定义、声明、调用、参数传递。
- 文件操作:文件打开、关闭、读写、定位。
2. 通讯录管理系统功能模块设计:- 系统架构设计:功能模块划分、模块间关系。
- 功能实现:增加、删除、修改、查询、排序等。
3. 编程实践与调试:- 编写代码实现通讯录管理系统各项功能。
- 调试程序,优化代码,提高执行效率。
4. 团队协作与项目展示:- 分组进行项目开发,培养学生团队协作能力。
c语言课程设计通讯录管理系统
c语言课程设计 通讯录管理系统一、课程目标知识目标:1. 理解C语言中结构体的概念和使用方法,掌握利用结构体创建复杂数据结构的能力;2. 学会使用数组存储结构体数据,实现对通讯录信息的有效管理;3. 掌握基本的文件操作,能够实现通讯录数据的存储和读取。
技能目标:1. 能够运用结构体和数组设计并实现一个简单的通讯录管理系统;2. 掌握在C语言中进行简单的输入输出操作,实现用户界面的友好交互;3. 学会使用调试工具进行程序调试,提高解决问题的能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发其主动探索和创新的欲望;2. 培养学生的团队协作意识,学会在项目开发中与他人合作;3. 引导学生关注信息技术在生活中的应用,认识到编程对解决实际问题的重要性。
课程性质:本课程为实践性较强的课程,要求学生在掌握C语言基础知识的基础上,运用所学知识设计并实现一个通讯录管理系统。
学生特点:学生具备一定的C语言基础,对编程有一定的兴趣,但可能缺乏实际项目经验。
教学要求:通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其编程能力和解决实际问题的能力。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效指导和评估。
二、教学内容1. 结构体和结构体数组的概念及应用- 课本章节:第五章 结构体与共用体- 内容:结构体的定义、结构体成员的访问、结构体数组的创建与使用。
2. 文件操作基础- 课本章节:第六章 文件- 内容:文件的打开与关闭、文件的读写操作、文件的定位。
3. 通讯录管理系统设计- 内容:系统需求分析、功能模块划分、系统设计、实现与测试。
4. 用户界面设计- 内容:菜单设计、命令行用户输入输出、简单的人机交互流程。
5. 项目实践与团队协作- 内容:项目分组、任务分配、代码共享与协作、项目评审。
教学进度安排:第一周:复习结构体和结构体数组相关知识,讲解通讯录管理系统需求。
第二周:学习文件操作基础,设计通讯录数据存储与读取功能。
C语言程序设计个人通讯录管理
摘要通讯录[address book] 记录通讯地址的书本,通讯录涵盖了多项内容:可以储存一个人的姓名、手机号码、家庭住址、QQ等,以方便联系。
通过学习我设计一个个人通讯录管理,这个系统可以方便人们的查找个人信息,他具有快速查找的功能,主要是通过按姓名查找、按手机号码查找、按地址查询等。
这个通讯录可以修改已存所有人的任何信息,也可以删除里面你不想储存人的信息,当你在运行删除的时候,系统会再次提醒你是否删除,一旦删除将会永远删除。
关键字:通讯录查找删除重庆科技学院课程设计任务书设计题目:个人通讯录管理系统杨治明 2012年1月1日目录摘要 (1)课程设计责任书 (2)软件需求分析说明书 (4)第一章系统分析与设计 (5)第二章软件的实现 (6)2.1 软件界面设计 (6)2.2 软件的数据(结构)设计 (6)2.3 软件的算法设计 (6)第三章软件测试 (7)第四章软件使用说明书 (8)致谢 (9)参考文献 (10)软件需求分析说明书个人通讯录管理是个可以储存、修改、查看、查找、删除的功能。
在这个程序中可以储存一个人的姓名、家庭住址、手机号码、QQ号等信息,可以同时查看所有已存的信息,如果已存的数量过多,你可以选择快速查找,快速查找方式有:按姓名查找、按家庭住址查找、按手机号码查找、按QQ号查找。
如果要删除信息,只要输入你要删除信息的编号就可以删除,在删除过程中,系统会再次提醒你是否确认删除,以免后悔。
如果确定删除将会永远删除。
这个程序也可以修改,输入想修改的编号,就可以修改了。
如果你输入的编号不存在,系统将会提示你是否查看所有已存的数据。
第五章系统分析与设计2.1 软件界面设计图2.1 通讯录管理的主界面根据主界面的提示选择你想要执行的任务项钱的字母图2.2 添加联系人在添加联系人中尼可以输入姓名、地址、电话号码、QQ号,输入好之后你可以继续完成其他选项。
图2.3 浏览信息按b 屏幕上将显示已储存的个人信息,按a 将继续为你服务。
c课程设计个人通讯录
c 课程设计个人通讯录一、教学目标本课程的目标是让学生掌握个人通讯录的基本设计和使用方法,通过学习,学生应能够理解个人通讯录的结构和功能,并能够运用所学的知识设计和使用个人通讯录。
具体的学习目标包括:知识目标:学生应了解个人通讯录的基本概念和结构,理解个人通讯录的功能和使用方法。
技能目标:学生应能够运用所学的知识设计和使用个人通讯录,能够进行基本的通讯录管理操作。
情感态度价值观目标:通过学习和使用个人通讯录,学生应能够提高对个人信息管理的重视,培养良好的个人信息管理习惯。
二、教学内容本课程的教学内容主要包括个人通讯录的基本概念和结构,个人通讯录的功能和使用方法,以及个人通讯录的管理和维护。
具体的教学内容安排如下:1.个人通讯录的基本概念和结构:介绍个人通讯录的定义,解释个人通讯录的基本组成部分,如姓名、电话号码、电子邮件地址等。
2.个人通讯录的功能和使用方法:介绍个人通讯录的功能,如添加、删除、查找联系人信息等,演示个人通讯录的使用方法。
3.个人通讯录的管理和维护:介绍个人通讯录的管理和维护方法,如定期更新联系人信息,整理联系人列表等。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法等。
1.讲授法:通过讲解个人通讯录的基本概念和结构,个人通讯录的功能和使用方法,以及个人通讯录的管理和维护,使学生掌握个人通讯录的基本知识和技能。
2.讨论法:通过学生进行小组讨论,鼓励学生分享自己的经验和看法,促进学生之间的交流和合作,提高学生的理解和应用能力。
3.案例分析法:通过分析实际案例,使学生更好地理解和掌握个人通讯录的应用,培养学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,将选择和准备适当的教学资源,包括教材、参考书、多媒体资料、实验设备等。
1.教材:选择合适的教材,如《个人通讯录设计与使用》等,为学生提供全面系统的学习资料。
c语言课程设计通讯录
c语言课程设计通讯录一、课程目标知识目标:1. 理解并掌握C语言中的结构体概念,能够运用结构体创建复杂数据类型;2. 学会使用数组存储结构体数据,实现结构体数组的操作;3. 掌握文件操作的基本方法,实现对通讯录数据的读写和存储。
技能目标:1. 能够编写C程序,设计并实现一个基本的通讯录管理系统;2. 能够运用选择、循环等基本控制结构实现对通讯录的有效管理;3. 能够对程序进行调试和优化,提高代码的执行效率。
情感态度价值观目标:1. 培养学生的编程兴趣,激发他们主动探索问题的积极性;2. 培养学生团队协作意识,提高沟通与协作能力;3. 引导学生认识到编程在生活中的实际应用,增强学以致用的意识。
课程性质分析:本课程为C语言课程设计,旨在通过设计一个通讯录管理系统,让学生将所学C语言知识应用于实际项目中,提高编程实践能力。
学生特点分析:学生已具备基本的C语言知识,熟悉语法和基本控制结构,但可能缺乏实际项目经验,对复杂数据类型和文件操作尚需加强。
教学要求:1. 注重理论与实践相结合,引导学生通过实际操作掌握知识;2. 鼓励学生相互讨论、协作,培养解决问题和团队协作能力;3. 强化代码规范,提高代码质量和可读性。
二、教学内容1. 结构体和结构体数组:- 介绍结构体的定义和使用;- 通过通讯录管理系统的需求,设计联系人结构体;- 引导学生运用结构体数组存储和管理联系人信息。
2. 文件操作:- 讲解文件的基本概念和文件操作函数;- 结合通讯录管理系统,实现数据的读写和存储。
3. 通讯录功能实现:- 添加联系人:实现输入、存储联系人信息的功能;- 删除联系人:实现根据条件删除指定联系人的功能;- 查找联系人:实现根据关键字查找联系人的功能;- 显示所有联系人:实现显示通讯录中所有联系人的功能。
4. 程序调试与优化:- 分析程序可能出现的错误和异常;- 引导学生掌握调试方法,优化代码执行效率。
教材章节关联:本教学内容与教材中关于结构体、数组、文件操作等章节密切相关。
c语言通讯录管理系统课程设计报告
C语言通讯录管理系统课程设计报告一、引言通讯录管理系统是一种常见的实用性软件,用于记录和管理个人或组织的联系人信息。
本文档旨在介绍一种基于C语言开发的通讯录管理系统的设计与实现。
通过本系统,用户可以方便地添加、删除、搜索和编辑联系人信息,实现了通讯录的基本功能。
二、系统需求分析本通讯录管理系统的主要功能包括: 1. 添加联系人:用户可以添加联系人的姓名、电话号码、邮箱等信息。
2. 删除联系人:用户可以根据联系人的姓名或电话号码删除对应的联系人信息。
3. 查找联系人:用户可以根据联系人的姓名或电话号码查找对应的联系人信息。
4. 修改联系人:用户可以修改已存在联系人的信息。
5. 显示所有联系人:用户可以查看通讯录中所有的联系人信息。
三、系统设计1. 数据结构设计为了实现通讯录管理系统,我们需要设计适当的数据结构来存储联系人信息。
在本设计中,使用结构体数组来表示每个联系人的信息,其中每个结构体包含姓名、电话号码、邮箱等成员变量。
struct Contact {char name[50];char phoneNumber[20];char email[50];};2. 功能模块设计本系统主要包含以下几个功能模块:a. 添加联系人模块用户可以选择添加新的联系人,输入姓名、电话号码和邮箱等信息后,系统将在通讯录中添加新的联系人。
b. 删除联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择删除对应的联系人。
c. 查找联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并在界面上显示查询结果。
d. 修改联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择修改对应的联系人。
e. 显示所有联系人模块用户可以选择显示通讯录中所有的联系人信息,在界面上进行展示。
3. 系统框架设计本系统的整体框架如下:1. 主菜单显示2. 根据用户的选择,进入对应的功能模块四、系统流程图下图展示了通讯录管理系统的整体流程:主菜单 -> 用户选择功能模块 -> 执行对应模块功能五、代码实现以下为通讯录管理系统的部分核心代码实现,完整代码可参考附录部分。
c语言课程设计通讯录管理系统课程设计报告
c语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习C语言通讯录管理系统的设计与实现,让学生掌握C语言编程的基本技能,培养其软件开发的基本思路与方法。
具体目标如下:1.知识目标:–理解C语言的基本数据类型、运算符、控制结构。
–学习C语言函数的定义与调用。
–掌握结构体、文件操作等高级C语言特性。
2.技能目标:–能够运用C语言实现简单的数据结构,如链表、数组。
–培养学生使用C语言进行程序设计的能力,能够独立完成程序编写、调试与优化。
–学会使用C语言实现文件操作,包括文件的读取与写入。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣,增强其自主学习的动力。
–通过项目实践,培养学生的团队协作能力和解决问题的能力。
–引导学生理解技术对生活的影响,培养其对技术发展的责任感。
二、教学内容教学内容选取C语言编程的核心知识点,结合通讯录管理系统的实例进行讲解。
具体内容包括:1.C语言基础:数据类型、变量、运算符、控制结构。
2.函数:函数定义、调用、参数传递、返回值。
3.数据结构:数组、链表、栈和队列。
4.文件操作:文件读写、文件指针。
5.通讯录管理系统实现:结构体定义、系统功能实现、项目管理。
三、教学方法结合C语言特点和通讯录管理系统实例,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和通讯录管理系统的设计理念。
2.案例分析法:通过分析典型代码案例,让学生理解程序设计逻辑。
3.实验法:学生在实验室进行编程实践,巩固理论知识。
4.讨论法:分组讨论问题,培养学生的团队协作和沟通能力。
四、教学资源1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。
2.参考书:《C语言编程思想》、《C语言实践》。
3.多媒体资料:教学PPT、在线编程教程、视频讲解。
4.实验设备:计算机、网络环境、编程环境(如Code::Blocks、VisualStudio)。
五、教学评估本课程的教学评估将综合考虑学生的平时表现、作业、考试等方面,以全面、客观、公正地评价学生的学习成果。
通讯录管理系统c语言课程设计报告
通讯录管理系统c语言课程设计报告通讯录管理系统C语言课程设计报告1. 项目概述•本项目是一个通讯录管理系统,旨在提供用户管理通讯录的功能。
•使用C语言开发,具有良好的跨平台兼容性。
•主要功能包括添加联系人、查找联系人、编辑联系人、删除联系人等。
2. 项目背景•通讯录是现代社会必不可少的工具,用于管理个人和组织的联系人信息。
•传统的纸质通讯录已不能满足日益增长的信息管理需求。
•本项目旨在开发一款方便、高效的电子通讯录管理系统,满足人们对联系人信息管理的需求。
3. 技术实现•采用C语言作为开发语言,具有良好的跨平台兼容性和高效的执行速度。
•主要采用文件存储方式,将联系人信息保存在本地文件中。
•使用结构体来表示联系人信息,方便管理和操作。
4. 功能模块添加联系人•用户可以通过输入姓名、电话号码、电子邮件等信息,添加新的联系人。
•程序将自动生成一个唯一的联系人ID,并将联系人信息保存到文件中。
查找联系人•用户可以通过姓名、电话号码等条件进行查找联系人。
•程序将根据用户输入的条件,在通讯录中查找符合条件的联系人,并将结果返回给用户。
编辑联系人•用户可以选择要编辑的联系人,并进行修改联系人信息的操作。
•程序将根据用户输入的联系人ID,找到对应的联系人并允许用户修改其信息。
删除联系人•用户可以选择要删除的联系人,并进行删除操作。
•程序将根据用户输入的联系人ID,找到对应的联系人并从通讯录中删除。
5. 实施计划需求分析•确定系统所需的功能模块和用户需求,并进行详细的功能需求分析。
概要设计•设计系统的整体结构,包括模块划分、数据结构设计等。
详细设计•对每个模块进行具体的设计,包括函数接口定义、算法流程图等。
编码实现•根据详细设计的结果,使用C语言进行编码实现。
调试测试•对编码实现的程序进行测试和调试,修复可能出现的问题。
文档撰写•撰写项目的相关文档,包括使用说明、技术文档等。
6. 总结与展望•本项目成功开发了一个通讯录管理系统,具有简洁、高效的特点。
c语言课程设计学生通讯录管理系统
c语言课程设计学生通讯录管理系统以下是一个简单的C语言课程设计学生通讯录管理系统的示例代码,可以实现对学生信息的基本操作,如添加、查找、修改和删除。
```c#include <stdio.h>#include <string.h>// 学生信息结构体struct Student {char name[20];int age;char phone[11];};// 学生信息数组struct Student students[100];int count = 0; // 学生数量// 添加学生信息函数void addStudent() {struct Student s;printf("请输入学生姓名:");scanf("%s", );printf("请输入学生年龄:");scanf("%d", &s.age);printf("请输入学生电话:");scanf("%s", s.phone);students[count++] = s;printf("添加成功!\n");}// 查找学生信息函数void findStudent() {char name[20];printf("请输入要查找的学生姓名:");scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) {printf("姓名:%s,年龄:%d,电话:%s\n", students[i].name, students[i].age, students[i].phone);return;}}printf("未找到该学生!\n");}// 修改学生信息函数void modifyStudent() {char name[20];printf("请输入要修改的学生姓名:");scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) { printf("请输入新的学生姓名:");scanf("%s", students[i].name);printf("请输入新的学生年龄:");scanf("%d", &students[i].age);printf("请输入新的学生电话:");scanf("%s", students[i].phone);printf("修改成功!\n");return;}}printf("未找到该学生!\n");}// 删除学生信息函数void deleteStudent() {char name[20];printf("请输入要删除的学生姓名:");scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) {for (int j = i; j < count - 1; j++) {students[j] = students[j + 1]; // 将后面的学生信息往前移动一位,覆盖掉要删除的学生信息。
c语言通讯录课程设计报告
C语言通讯录课程设计报告一、设计题目设计一个简单的通讯录管理系统,要求实现以下功能:1. 添加联系人信息;2. 删除联系人信息;3. 修改联系人信息;4. 查找联系人信息;5. 显示所有联系人信息。
二、设计要求1. 使用C语言实现,不得使用任何图形界面库;2. 使用结构体来表示联系人信息,每个联系人包括姓名、电话、邮箱等基本信息;3. 使用文件存储联系人信息,每次程序运行时从文件中读取联系人信息,程序结束时将联系人信息写入文件。
三、设计实现1. 定义联系人信息结构体:```ctypedef struct {char name[20];char phone[20];char email[30];} Contact;```2. 定义文件操作函数:```cvoid save_contacts(Contact contacts[], int size) { FILE *fp = fopen("contacts.txt", "w");if (fp == NULL) {printf("Failed to open file.\n");return;}for (int i = 0; i < size; i++) {fprintf(fp, "%s %s %s\n", contacts[i].name, contacts[i].phone, contacts[i].email);}fclose(fp);}void load_contacts(Contact *contacts, int *size) {FILE *fp = fopen("contacts.txt", "r");if (fp == NULL) {*size = 0;return;}fscanf(fp, "%d", size);for (int i = 0; i < *size; i++) {fscanf(fp, "%s %s %s", contacts[i].name, contacts[i].phone, contacts[i].email);}fclose(fp);}```3. 实现通讯录管理功能:```cint main() {Contact contacts[100];int size = 0;char choice;do {printf("\n--- Main Menu ---\n");printf("1. Add contact\n");printf("2. Delete contact\n");printf("3. Modify contact\n");printf("4. Search contact\n");printf("5. Display all contacts\n");printf("6. Exit\n");printf("Please choose an option: ");scanf("%c", &choice);switch (choice) {case '1': // Add contactadd_contact(contacts, &size); break;case '2': // Delete contactdelete_contact(contacts, size); break;case '3': // Modify contactmodify_contact(contacts, size);break;case '4': // Search contactsearch_contact(contacts, size);break;case '5': // Display all contactsdisplay_contacts(contacts, size);break;case '6': // Exit programsave_contacts(contacts, size); // Save contacts before exitbreak;default: // Invalid option choice, display error message and return to main menuprintf("Invalid option choice.\n");break;}} while (choice != '6'); // Exit program when option 6 is chosen or when user types 'q' instead of a number choice.以上就是关于c语言通讯录课程设计报告的介绍,欢迎补充。
C语言个人通讯录管理系统课程设计报告
语言程序设计》C《课程设计报告_________:__________C设计题目语言个人通讯录管理系统摘要本次课程设计地题目为个人通讯录管理系统,要求将程序中所输入地联系人姓名、电话和地址信息这三个数据以文本方式保存在磁盘中,并且能够对所储存地联系人信息进行显示、查询、修改、删除等功能.我编写地程序从整体上看可分为两个部分,一部分为文件地建立、读取和保存,另一部分为通讯录功能地实现.在文件部分,我通过readfile()函数和writefile()函数从而实现了对磁盘上数据地进行写和读,通过刚开始地界面提示可以知道文件是否建立,以免丢失数据,我还为用户设计了保存退出和不保存退出两大功能供用户做选择.在模块功能实现部分,通过scanf从键盘上输入地数字放到switch() case 循环中来实现调用zengjia()、shanchu()、xiugai()、chazhao()等十五个函数来实现“添加”、“查询和显示”、“修改”、“删除”等不同功能.关键字:文件、数组、循环、函数重庆科技学院课程设计任务书设计题目:个人通讯录管理系统学生姓XXX课程名语言程序设计课程设专业班电自2011I515起止时20111-12建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示查找、添加、修改及删.进一步掌握利语言进行程序设计地能力;进一步理解和运用结构化程序计地思想和方法;初步掌握开发一个小型实用系统地基本方法;学会调试一个较程序地基本方法;学会利用流程图表示算. 根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰课程设计报.)系统分析、设计正)结果以图表方式显(计3)界面简洁、美观..参)报告格式规范4(数.教研室主任:指导教师:雷亮2015年12月10日目录第一章软件需求分析说明书 (1)1.1设计软件地目地分析 (1)1.2软件地界面要求 (1)1.3详细地功能分析 (1)1.3.1创建文件 (1)1.3.2 添加联系人 (1)1.3.3显示和查询联系人 (1)1.3.4 删除联系人 (1)1.3.5 修改联系人 (1)1.3.6 保存退出与不保存退出 (1)1.4设计要求分析 (1)1.5软件地数据结构分析 (2)1.5.1 软件地函数 (2)1.5.2 文件地调用和保存 (2)第二章系统分析与设计 (2)2.2 软件地数据(结构)设计 (2)2.2.1 软件地文件功能 (2)2.2.2 文件内部地数据格式 (2)2.3 软件地模块图 (2)2.4 软件地流程图 (3)2.4.1 添加联系人程序流程图 (3)2.4.2 显示和查找联系人程序流程图 (4)2.4.3 删除联系人流程图 (4)2.4.4 修改联系人流程图 (5)第三章软件地实现 (6)3.1 函数声明 (7)3.2 zhucaidan()主菜单函数 (7)3.3 main()主函数 (7)3.4 readfile()读取文件函数 (8)3.5 writefile()联系人写入文件函数 (9)3.6 zengjia()增加联系人函数 (9)3.7 shanchu()删除函数主界面 (10)3.8 xianshi()显示和查询函数 (11)3.9 xianshi()显示所有人函数 (11)3.10 chazhao_xingming()姓名查询函数 (12)3.11 chazhao_dianhua()按号码查询函数 (12)3.12 shanchu_dange()删除单个联系人函数 (13)3.13 shanchu_quanbu()删除所有联系人函数 (13)3.14 shanchu_xingming()按姓名删除联系人函数 (14)3.15 shanchu_dianhua()按电话号码删除函数 (15)3.16 xiugai()修改函数主体界面 (16)3.17 xiugai_xingming()按姓名修改 (17)3.18 xiugai_dianhua()按号码修改联系人函数 (18)第四章软件测试 (20)4.1 文件导入界面 (20)4.2 软件地主界面 (20)4.3 添加联系人模块 (20)4.4.1主界面 (21)4.4.2无联系人地显示界面 (21)4.4.3有联系人地显示界面 (22)4.4.4按姓名查找 (22)4.4.5 按电话号码查找 (22)4.5 删除联系人模块 (23)4.5.1删除联系人主界面 (23)4.5.2没有对应联系人地删除界面 (23)4.5.3按姓名删除 (23)4.5.4按电话号码删除 (24)4.6 修改联系人模块 (24)4.6.1修改联系人主菜单 (24)4.6.2 按姓名修改 (25)4.6.3按电话修改 (25)4.7 退出 (26)4.7.1 保存退出 (26)4.7.2 不保存退出 (26)第五章总结与体会 (26)致谢 (28)参考文献 (29)第一章软件需求分析说明书1.1设计软件地目地分析本软件要求用C语言建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信录进行显示、查找、添加、修改及删除.1.2软件地界面要求本软件要求软件地界面简洁、美观,让人一目了然,使用起来方便.于是我设计地软件首先提示您是否有通讯录文件存在,如没有文件,则自动建立一个,如有文件存在,则提示导入成功,让人直观明白地了解文件地情况.按任意键便可以进入主菜单,在主菜单上显示出软件地功能,通过输入数字0到5来进行选择便可以实现你所需要地功能,每个模块进入模块内部实现软件地具体功能,实现您所需要地功能.1.3详细地功能分析该系统用下面六个功能模块编写,每个模块执行不同地功能,体现了模块化设计地思想.下面六个模块都是利用C语言文件,向文件中添加数据、修改数据、查询数据、删除数据和保存数据.1.3.1创建文件用fopen()建立一个文本文件,然后向其中输入数据(例如,向文件中输入“姓名”,“地址”,“号码”等),并对文件进行命名.1.3.2 添加联系人通过键盘输入通讯录人员地姓名、电话号码、地址信息便可实现将信息添加到通讯录文件内,添加完毕后,系统会自动询问你是否继续添加,如你想继续添加,再通过键盘输入通讯录人员地姓名、电话号码、地址信息即可实现继续添加.1.3.3显示和查询联系人通过前面第一个模块打得录入我们便可以执行第二个模块,通过第二个模块我们可以进行对联系人进行显示和查找.我通过调用showall()函数来进行显示所有地联系人,showall()函数可以实现逐个显示联系人.对于查找联系人我则采用了search()函数来进行查找联系人,我提供了两种查找方法:①按照姓名查找;②按照电话号码查找.1.3.4 删除联系人我调用deletecd()函数来实现删除功能,同样我也提供给了两种删除方法:①全部删除;②单个删除.其中全部删除会提示是否全部删除,以免误删.1.3.5 修改联系人我调用modify()函数来实现修改功能,我同样提供了两种修改方法:①对姓名进行修改;②对电话号码进行修改.修改完毕后会提示是否据需修改.1.3.6 保存退出与不保存退出你还在为误添加、误修改、误删除后悔吗?还想回到以前地数据吗?这个担忧在我地程序中您就不必担心了,我为程序提供了两种退出方式:①保存退出;②不保存退出.完全解决您地后顾之忧.1.4设计要求分析语言进行程序设计地能力;C进一步掌握利用①.进一步理解和运用结构化程序设计地思想和方法;②初步掌握开发一个小型实用系统地基本方法;③学会调试一个较长程序地基本方法;④.⑤学会利用流程图表示算法.⑥根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告1.5软件地数据结构分析1.5.1 软件地函数本软件采用了不同地函数来进行定义不同模块地功能,通过调用不同地函数,可以实现不同地功能.软件中采用了五个主体函数来实现添加联系人,修改联系人,查找联系人,显示联系人,删除联系人地功能.1.5.2 文件地调用和保存本软件通过文本方式对用户所录入地信息进行保存.通过保存下来地文本,您可以在电脑磁盘中找到您存入文件地位置,打开后便可以找到您所录入地通讯录信息.第二章系统分析与设计2.1 软件界面设计画出软件全部输入、输出数据地界面,并对每一个界面进行详细地操作说明2.2 软件地数据(结构)设计软件调用不同地函数来实现不同地功能,通过反复调用函数来实现反复输入.代码中通过scanf 从键盘上输入不同地数字选项,然后通过swtich case()来实现对不同函数地调用.2.2.1 软件地文件功能软件采用了文本文档进行存取,我在C盘建立了一个txl文本文档用于存取输入地信息,打开C 盘后就能直接看到您录入地信息,很方便和快捷.2.2.2 文件内部地数据格式我采用了readfile()函数来读取文件,使用if((fp=fopen(c:\\通讯录.txt,))==NULL)以只读方式打开判定文件是否为空,如果不空,则使用fseek(fp,0,2)。
c语言通讯录管理系统课程设计
c语言通讯录管理系统课程设计一、教学目标本课程旨在让学生掌握C语言编程基础,通过编写通讯录管理系统,培养学生的实际编程能力和问题解决能力。
具体目标如下:1.知识目标:学生能理解C语言的基本语法、数据类型、运算符、控制结构等,并掌握结构体、文件操作等高级概念。
2.技能目标:学生能运用C语言实现功能齐全的通讯录管理系统,包括但不限于添加、删除、查找、修改联系人信息等功能。
3.情感态度价值观目标:通过课程学习,学生能培养编程思维,增强对计算机科学的兴趣,理解技术对现代社会的重要性。
二、教学内容教学内容围绕C语言通讯录管理系统的设计与实现展开,具体包括:1.C语言基础知识:数据类型、变量、运算符、控制结构。
2.高级数据结构:结构体、指针、数组。
3.文件操作:文件的打开、读写、关闭。
4.通讯录管理系统设计:需求分析、系统设计、功能实现。
三、教学方法结合C语言的特点和学生实际情况,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和编程技巧。
2.案例分析法:分析已有的通讯录管理系统案例,引导学生理解系统设计过程。
3.实验法:学生在实验室环境里动手编写代码,实践所学知识。
四、教学资源为确保教学质量,准备以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。
2.参考书:《C语言深度剖析》、《C语言编程实践》。
3.多媒体资料:教学PPT、在线编程教程、视频讲解。
4.实验设备:计算机、网络环境、编程环境(如Code::Blocks、Visual Studio)。
五、教学评估本课程采用多元化的评估方式,全面客观地评价学生的学习成果:1.平时表现:通过课堂参与、提问、小组讨论等评估学生的积极性与专注度。
2.作业:布置编程作业,评估学生的编程能力和对知识的理解应用。
3.实验:评估学生在实验室的编程实践表现,检查代码质量与创新性。
4.期中期末考试:设置包含选择题、填空题、编程题的试卷,全面测试学生的知识掌握和应用能力。
原创c语言课程设计通讯录
原创C语言课程设计通讯录1. 引言通讯录是一种用于存储联系人信息的工具,对于个人和组织来说,它是必不可少的。
在本篇文章中,我将介绍一个基于C语言的通讯录设计方案。
通过这个课程设计项目,我们可以学习到如何使用C语言实现基本的数据处理和文件操作。
2. 功能需求分析在设计通讯录之前,我们需要明确所要实现的功能。
根据常见的通讯录需求,以下是我们的功能设计:•添加联系人信息:通过输入姓名、手机号码、邮箱等信息,将联系人添加到通讯录中。
•删除联系人信息:根据姓名或手机号码查找并删除指定联系人。
•修改联系人信息:根据姓名或手机号码查找并修改指定联系人的信息。
•查找联系人信息:根据姓名或手机号码查找并显示指定联系人的信息。
•显示全部联系人信息:将通讯录中的所有联系人信息按照一定的格式显示出来。
•保存通讯录:将通讯录中的联系人信息保存到文件中。
3. 数据结构设计在实现通讯录的功能之前,我们需要设计合适的数据结构来存储联系人信息。
考虑到联系人的信息较为复杂,并且需要支持动态增删改查的操作,我们选择使用链表来存储联系人信息。
每个节点包含姓名、手机号码、邮箱等信息,以及指向下一个节点的指针。
struct Contact {char name[50];char phone[20];char email[50];struct Contact *next;};4. 程序流程设计4.1 主菜单设计通讯录程序的主要界面是一个菜单,让用户选择不同的功能。
使用一个无限循环来保持程序一直运行,用户可以输入不同的指令来选择要执行的功能。
```c while (1) { // 显示菜单 printf(。
通讯录管理系统c语言课程设计
通讯录管理系统 - C语言课程设计一、引言通讯录管理系统是一个基础而重要的应用程序,它可以帮助用户轻松地管理各种联系人信息。
本文将介绍一个使用C语言开发的通讯录管理系统的设计和实现过程。
二、系统设计1. 功能设计通讯录管理系统主要包括以下功能: - 添加联系人信息 - 删除联系人信息 - 修改联系人信息 - 查询联系人信息 - 显示所有联系人信息2. 数据结构设计为了实现通讯录管理系统的功能,我们需要设计合适的数据结构来存储联系人信息。
在本系统中,我们使用结构体来表示每个联系人的信息,结构体包括姓名、电话号码等字段。
typedef struct {char name[50];char phone[20];// 其他字段} Contact;3. 界面设计为了方便用户操作,通讯录管理系统的界面设计应该简洁明了。
在本系统中,我们采用命令行界面,用户通过键盘输入不同的命令来实现相应的功能。
三、系统实现1. 添加联系人信息用户可以通过输入联系人的姓名和电话号码来添加新的联系人信息。
系统将会将新的联系人信息存储到通讯录中。
2. 删除联系人信息用户可以通过输入联系人的姓名来删除特定联系人的信息。
系统将会从通讯录中删除对应的联系人记录。
3. 修改联系人信息用户可以通过输入联系人的姓名来修改特定联系人的信息。
系统将会根据用户输入的信息更新通讯录中相应联系人的记录。
4. 查询联系人信息用户可以通过输入联系人的姓名来查询特定联系人的信息。
系统将会显示出对应联系人的所有信息。
5. 显示所有联系人信息用户可以查看通讯录中所有联系人的信息。
系统将会按照一定的格式将所有联系人的信息逐条显示出来。
四、总结通过本文的介绍,我们了解了一个简单而实用的通讯录管理系统的设计和实现过程。
通讯录管理系统可以帮助用户方便地管理联系人信息,提高工作效率。
我们希望在学习C语言的过程中,通过实际项目的练习,提升自己的编程能力和解决问题的能力。
通讯录管理系统是一个不错的项目选择,希望读者可以从中获益良多。
c语言通讯录管理系统 课程设计 概述及范文
c语言通讯录管理系统课程设计概述及范文1. 引言1.1 概述本文旨在介绍和讨论C语言通讯录管理系统的课程设计。
通讯录管理系统是一个常见的应用程序,它能够帮助用户有效地存储和管理个人联系人信息。
在这个课程设计中,我们将使用C语言来实现这样一个功能齐全的通讯录管理系统。
1.2 文章结构本文分为四个主要部分:引言、C语言通讯录管理系统、课程设计要点以及结论与展望。
首先,在引言部分,我们将简要介绍文章的背景和目的,并概述文章的结构。
其次,在C语言通讯录管理系统部分,我们将详细介绍该系统的功能、设计思路和方法以及实现过程和技术选型。
然后,在课程设计要点部分,我们将重点阐述需求分析与设计准备工作、功能实现与代码编写方法以及界面设计与用户交互优化方法。
最后,在结论与展望部分,我们将对整个课程设计进行总结评价,提出存在问题及改进方向,并探讨该系统的发展前景与应用推广建议。
1.3 目的本次课程设计旨在通过实际动手编写C语言通讯录管理系统来巩固和应用我们在课堂上学到的知识。
通过这个项目,我们将学习如何进行需求分析、系统设计以及代码编写等方面的技能,并掌握C语言在实际应用中的使用方法。
同时,我们还将培养解决问题、优化用户体验以及具备良好代码风格和团队协作能力的能力。
通过完成这个课程设计,我们将为今后的编程工作打下坚实的基础。
2. C语言通讯录管理系统:2.1 系统功能介绍:C语言通讯录管理系统是一个基于C语言开发的应用程序,旨在帮助用户有效地管理和组织联系人信息。
该系统具有以下主要功能:- 添加联系人:用户可以输入姓名、电话号码、电子邮件等详细信息来添加新的联系人。
- 查找联系人:根据关键字进行搜索,快速定位到指定联系人的信息。
- 编辑联系人:允许用户修改已有联系人的信息,如更新电话号码或电子邮件地址。
- 删除联系人:提供删除指定联系人及其相关信息的选项。
- 显示所有联系人:以列表形式展示所有已存储的联系人详细信息。
C语言课程设计报告 通讯录
《C语言课程设计》目录摘要 (3)一、课程设计目的 (4)二、课程设计内容 (4)三、总体设计 (5)四、详细设计 (6)(1)数据结构设计 (6)(2)模块接口设计 (7)(3)流程图 (7)五、调试与测试 (10)(1)调试过程中的主要问题 (10)(2)测试结果的分析与讨论 (10)六. 实习总结 (12)注: 13摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式, 特别是对于做经常出差的人来说更是难, 所以通讯录能够便捷的给我们带来所需要的相关信息。
而随着计算机的普及, 人们的生活摆脱了传统式的记事本、电话簿, 越来越多的靠计算机来帮助人们记住这些事情, 极其简便。
这就需要有一个使用的通讯录管理系统, 用户可以方便的通过自己电脑的通讯录管理系统, 来随时查阅自己所需要的信息, 而不必再大费周折去翻开那繁琐的记事本。
通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统, 它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能, 大大减少了查找过程的时间。
一、课程设计目的1、通过课程设计, 加深对结构化设计思想的理解, 能对系统功能进行分析, 并设计合理的模块化结构。
2、通过课程设计, 学会设计数据结构。
其中包括对结构数组、链表和数据结构等知识的运用。
3、通过课程设计, 提高程序开发功能, 能运用合理的控制流程编写清晰高效的程序。
4、通过课程设计, 训练C程序调试能力, 能将一个中小型各级组织系统联调通过。
通过课程设计, 开发一个中小型系统, 掌握系统研发全过程。
通话课程设计, 培养分析问题、解决实际问题的能力。
二、课程设计内容(1)设计一个实用的通讯录管理系统, 能以简便高效的方式对通讯录进行管理和检索, 具体要示:(2)录入:通讯录信息包括:编号, 姓名, 单位, 电话, 地址, QQ, 邮编。
以结构通讯录信息。
(3)更新: 能插入、删除通讯录信息。
学生通讯录管理c语言课程设计
学生通讯录管理c语言课程设计一、课程目标知识目标:1. 掌握C语言中结构体的定义和使用,能够利用结构体创建并管理学生通讯录信息。
2. 学会使用一维数组和指针操作结构体数组,实现对通讯录信息的增加、删除、查找和排序等基本操作。
3. 理解文件读写的基本原理,能够将通讯录信息保存到文件,并从文件中读取通讯录信息。
技能目标:1. 培养学生运用C语言进行小型信息管理系统开发的能力。
2. 能够运用逻辑思维,解决通讯录管理中的实际问题,如排序算法的应用等。
3. 提高学生的代码编写和调试能力,形成良好的编程习惯。
情感态度价值观目标:1. 培养学生积极探究信息技术领域的兴趣,激发学习C语言的积极性。
2. 增强学生的团队合作意识,培养在项目开发过程中沟通协作的能力。
3. 引导学生认识到编程在解决实际问题中的重要作用,提高学生的信息素养。
本课程针对高年级学生,在学生已掌握C语言基本语法和编程技巧的基础上,通过设计学生通讯录管理系统,将所学知识应用于实际项目中,提高学生的编程能力和解决问题的能力。
课程注重培养学生的实践操作技能和团队协作精神,使学生在完成课程学习后,能够独立完成类似项目的设计与开发。
二、教学内容1. 结构体和结构体数组的基本概念和使用方法,关联教材第六章。
- 结构体的定义和声明- 结构体变量的初始化和赋值- 结构体数组的创建和管理2. 指针与数组的关系及其应用,关联教材第七章。
- 指针与数组的基本操作- 指针数组的使用- 指针与结构体的结合3. 文件操作基础,关联教材第十章。
- 文件打开和关闭- 文件的读写操作- 结构体数据的文件存储4. 通讯录管理系统功能实现,结合教材实例进行拓展。
- 用户界面设计- 信息的增加、删除、查找、排序功能实现- 系统的测试与优化5. 项目实践与团队协作。
- 项目的需求分析- 功能模块划分与实现- 团队合作与代码整合教学内容按照由浅入深的顺序进行安排,每部分内容均与教材章节紧密相关。
c语言个人通信录管理系统课程设计报告
高级语言程序设计报告(个人通信录管理系统)院系:通信与信息工程学院班级:通信工程1104班成员:时间:2012年7月2日基于链表的个人通信录管理系统课程设计任务书课程设计情况课程设计名称基于链表的个人通信录管理系统指导教师姓名职称需学生数6人组长杨文刚成员李岩、王皓升、罗洋、王志旭、沈洋各成员主要负责内容杨文刚负责主体函数框架建立和函数模块整合李岩负责程序的添加模块王皓升负责程序的删除模块王志旭负责程序的查找模块罗洋负责程序的输出模块沈洋负责程序的输入模块程序的调试和测试由小组成员共同参与完成课程设计的报告撰写由杨文刚、李岩完成目录1.设计目的 (1)2.总体设计 (2)3.详细设计 (3)4.程序调试与测试 (5)5.程序清单与执行结果 (6)5.1 程序清单 (6)5.2 程序执行结果 (14)6.课程设计总结 (20)1.设计目的1.1 问题描述编写一C 语言程序,其功能是建立一个基于链表的个人通信录管理系统,个 人通信录进行建立、输出、添加、查找及删除运行结果进行打印等相关操作。
1.2 问题分析首先,选择合适的存储结构构造个人通信录,对该程序可以分为几个模块进行分析,每个模块在该程序中的作用进行了解。
最后用设计连接图将各模块之间的联系连接起来,以方便我们更容易理解。
然后,该程序需要一个详细的设计流程图来表示各个步骤所完成的先后顺序,(如,对个人通信录进行添加,查找输出打印结果)。
最后,按流程图进行编写个人通信录的程序,输出结果,并将打印的结果显示出。
1.3 设计分析本次实验设计主要是建立个人通信录,要实现个人通信录的建立,个人通信录的查找,个人通信录的添加及个人通信录的删除功能。
.设计需求上我们需要掌握以下几点:(1).设计部分1. 写出本次实验的详细设计方案。
2. 画出该次程序的流程图。
3. 分析该次程序的程序清单,进行程序测试并输出运行结果。
4. 对该次程序中个函数的功能分析结果。
5. 对该次实验完成后有总结。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安徽工业大学《C语言课程设计》实习综合报告课题名称:个人通讯录管理系统实习成员:王刚学号: *********专业班级: 网络工程103班指导教师: 郑啸老师目录一.问题描述 (2)二. 各功能流程图与设计思路 (3)2.1显示模块 (3)2.2查找模块……………………………………………4..2.3添加模块 (6)2.4删除模块 (8)2.5修改模块 (9)三、文件的读取与保存 (11)四、程序源代码 (12)五、调试与运行结果 (18)六、计算机学院课程设计评定意见 (24)一.问题描述设计通讯录包含以下功能:(1)通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ 等。
(2)输入功能:可以一次完成若干条信息的输入。
(3)显示功能:完成全部通讯录信息的显示。
(4)查找功能:可以按姓名等多种方式查找通讯信息。
(5)增加、删除、修改功能:完成通讯录信息的多种更新。
二.各功能流程图与设计思路Menu菜单:运用switch()进行操作:case'1': 显示功能,list()函数说明:利用for循环,逐个输出已保存的内容代码如下://*****************显示通讯录中的内容*************void list(){ printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");for(i=0;i<m;i++){ if(rec[i].name[0]){ printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);}}printf("\t\t\t----------------END--------------\n");}case'2': 查找功能,search()函数说明:先用switch让操作者选择是按姓名查找还是按编号查找,然后再按操作者的输入,逐个判断是否有操作者要查的联系人信息,若有则输出此人信息,若没有则输出“通讯录中没有您要查找的联系人”代码如下://*****************查找联系人的信息********************void search(){ char xm[10];char ch;int d;printf("→1.按姓名查找\n");printf("→2.按编号查找\n");printf("请选择...\n");ch=getchar();getchar();switch(ch){case'1':printf("输入查找的姓名\n");gets(xm);for(i=0;i<m;i++){ if(strcmp(xm,rec[i].name)==0){ printf("\t\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n");break;case'2':printf("输入查找的编号\n");scanf("%d",&d);for(i=0;i<m;i++){if(d==rec[i].num){ printf("\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n");break;default:printf("输入错误!!");}getchar();}case'3': 增加功能,app()函数说明:按照屏幕的提示,依次输入要添加联系人的各项信息,并保存到结构体当中,输入完成后,提示是否继续添加,若是,则进入循环,若否,则结束。
代码如下://*******************添加联系人*******************void app(){ char an;puts("当前通讯录中的内容\n");list();do{ rec[m].num=m+1;printf("请按照提示输入新添加记录的各项信息\n");printf("姓名:");gets(rec[m].name);printf("\n电话:");gets(rec[m].tel);printf("\n手机:");gets(rec[m].celtel);printf("\n工作单位:");gets(rec[m].dw);printf("\nEMAIL:");gets(rec[m].email);printf("\nQQ:");gets(rec[m].qq);puts("\n这是新添加联系人的信息!\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[m].num,rec[m].name, rec[m].tel,rec[m].celtel,rec[m].dw,rec[m].email,rec[m].qq);m++;puts("\t\t\t☆☆☆☆☆新纪录输入完成!☆☆☆☆☆\n");puts("☆继续添加吗?(y/n)");an=getchar();getchar();}while(an=='y');}case'4': 删除功能,dele()函数;说明:输入要删除的编号,判断是否存在,若不存在就要重新输入,若存在,则利用循环进行删除操作,从要删除的编号开始,逐个由后一项往前一项覆盖。
代码如下://*****************删除联系人的记录********************void dele(){ int a;int n=0;list();do{ n++;if(n>1){printf("没有此记录,请重新输入...\n");}printf("删除几号记录?\n");scanf("%d",&a);}while(a>m&&a>0||a<0);if(a!=m+1){ for(i=a;i<m;i++){ rec[i-1]=rec[i];rec[i-1].num=i;}m--;list();printf("\t\t\t☆☆☆☆☆完成删除!☆☆☆☆☆\n");}getchar();}case'5': 修改功能,correct()函数;说明:输入修改的编号,判断是否存在,若存在则输出此人初始信息,再按提示输入修改后的新信息,若不存在,则结束操作。
代码如下://*******************修改联系人的信息*****************void correct(){char xm[10];bool k=1;list();printf("输入要修改联系人的姓名:");gets(xm);for(i=0;i<m;i++){ if(strcmp(xm,rec[i].name)==0){ k=0;printf("\n这是您要修改联系人的初始信息\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);printf("请输入修改后的电话号码:");gets(rec[i].tel);printf("\n请输入修改后的手机:");gets(rec[i].celtel);printf("\n请输入修改后的工作单位:");gets(rec[i].dw);printf("\n请输入修改后的EMAIL:");gets(rec[i].email);printf("\n请输入修改后的QQ:");gets(rec[i].qq);list();printf("\t\t\t☆☆☆☆☆修改完成!☆☆☆☆☆\n");break; }}if(k)printf("输入有误,通讯录中没有此联系人信息\n");}三.文件的读取与保存读取://***************从文件读记录到通讯录中***************** void load(){ FILE *fp;if((fp=fopen("tongxunlu.txt","rb"))==NULL){printf("Can't open file\n");exit(0);}for(i=0;i<SIZE;i++){ if(fread(&rec[i],sizeof(struct record),1,fp)!=1){if(feof(fp))break;printf("File read error!\n");}rec[i].num =i+1;m++;}list();printf("\t\t\t☆☆☆☆☆读取成功!☆☆☆☆☆\n");fclose(fp);}保存://******************保存通讯录内容到文件中************* void save(){ FILE *fp;if((fp=fopen("tongxunlu.txt","wb"))==NULL){printf("Can't open file");exit(0);}list();for(i=0;i<m;i++)if(fwrite(&rec[i],sizeof(struct record),1,fp)!=1)printf("File wrete error!\n");fclose(fp);printf("\t\t\t☆☆☆☆☆保存成功!☆☆☆☆☆\n"); }四.程序源代码#include<stdio.h>#include<stdlib.h>#include<string.h>#define SIZE 100int i,m=0; //m为当前通讯录中的记录数char menu(); //选单void list(); //显示void search(); //查找void app(); //增加void dele(); //删除void correct(); //修改void save(); //保存void load(); //读入struct record //结构体包含的联系人信息{ int num; //在通讯录中的编号char name[10]; //联系人姓名char tel[12]; //联系人电话号码char celtel[12]; //联系人手机号码char dw[20]; //联系人工作单位char email[20]; //联系人邮箱char qq[12]; //联系人QQ}rec[SIZE];void main(){ char choice;char an;while(1){ choice=menu();switch(choice){case'1':printf("显示通讯录中的内容\n");list();break;case'2':printf("查找联系人\n");search();break;case'3':printf("增加联系人记录\n");app();break;case'4':printf("删除记录\n");dele();break;case'5':printf("修改联系人信息\n");correct();break;case'6':printf("保存通讯录到TXT文件\n");save();break;case'7':printf("从TXT文件中读取记录\n");load();break;case'8':printf("即将退出通讯录管理系统...\n");printf("是否保存刚才进行的操作y/n?\n");an=getchar();if(an=='y'){save();}printf("(按任意键退出)");break;default:printf("输入错误!!");}if(choice=='8')break;printf("\n按任意键返回....\n");getchar();}}//*********************菜单**********************char menu(){ char c;printf("------------☆欢迎使用☆------------\n\n");printf("*************简易通讯录*************\n");printf(" ☆1.显示通讯录\n");printf(" ☆2.查找联系人\n");printf(" ☆3.增加联系人\n");printf(" ☆4.删除联系人\n");printf(" ☆5.修改通讯录\n");printf(" ☆6.保存到文件\n");printf(" ☆7.从文件读取\n");printf(" ☆8.退出此系统\n");printf("************************************\n");printf(" \n请选择………\n\n");c=getchar();getchar();return c;}//*****************显示通讯录中的内容*************void list(){ printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");for(i=0;i<m;i++){ if(rec[i].name[0]){ printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);}}printf("\t\t\t----------------END--------------\n");}//*******************添加联系人*******************void app(){ char an;puts("当前通讯录中的内容\n");list();do{ rec[m].num=m+1;printf("请按照提示输入新添加记录的各项信息\n");printf("姓名:");gets(rec[m].name);printf("\n电话:");gets(rec[m].tel);printf("\n手机:");gets(rec[m].celtel);printf("\n工作单位:");gets(rec[m].dw);printf("\nEMAIL:");gets(rec[m].email);printf("\nQQ:");gets(rec[m].qq);puts("\n这是新添加联系人的信息!\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[m].num,rec[m].name, rec[m].tel,rec[m].celtel,rec[m].dw,rec[m].email,rec[m].qq);m++;puts("\t\t\t☆☆☆☆☆新纪录输入完成!☆☆☆☆☆\n");puts("☆继续添加吗?(y/n)");an=getchar();getchar();}while(an=='y');}//*****************查找联系人的信息********************void search(){ char xm[10];char ch;int d;printf("→1.按姓名查找\n");printf("→2.按编号查找\n");printf("请选择...\n");ch=getchar();getchar();switch(ch){case'1':printf("输入查找的姓名\n");gets(xm);for(i=0;i<m;i++){ if(strcmp(xm,rec[i].name)==0){ printf("\t\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n");break;case'2':printf("输入查找的编号\n");scanf("%d",&d);for(i=0;i<m;i++){if(d==rec[i].num){ printf("\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n");break;default:printf("输入错误!!");}getchar();}//*****************删除联系人的记录********************void dele(){ int a;int n=0;list();do{ n++;if(n>1){printf("没有此记录,请重新输入...\n");}printf("删除几号记录?\n");scanf("%d",&a);}while(a>m&&a>0||a<0);if(a!=m+1){ for(i=a;i<m;i++){ rec[i-1]=rec[i];rec[i-1].num=i;}m--;list();printf("\t\t\t☆☆☆☆☆完成删除!☆☆☆☆☆\n");}getchar();}//*******************修改联系人的信息*****************void correct(){char xm[10];bool k=1;list();printf("输入要修改联系人的姓名:");gets(xm);for(i=0;i<m;i++){ if(strcmp(xm,rec[i].name)==0){ k=0;printf("\n这是您要修改联系人的初始信息\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);printf("请输入修改后的电话号码:");gets(rec[i].tel);printf("\n请输入修改后的手机:");gets(rec[i].celtel);printf("\n请输入修改后的工作单位:");gets(rec[i].dw);printf("\n请输入修改后的EMAIL:");gets(rec[i].email);printf("\n请输入修改后的QQ:");gets(rec[i].qq);list();printf("\t\t\t☆☆☆☆☆修改完成!☆☆☆☆☆\n");break; }}if(k)printf("输入有误,通讯录中没有此联系人信息\n");}//******************保存通讯录内容到文件中*************void save(){ FILE *fp;if((fp=fopen("tongxunlu.txt","wb"))==NULL){printf("Can't open file");exit(0);}list();for(i=0;i<m;i++)if(fwrite(&rec[i],sizeof(struct record),1,fp)!=1)printf("File wrete error!\n");fclose(fp);printf("\t\t\t☆☆☆☆☆保存成功!☆☆☆☆☆\n");}//***************从文件读记录到通讯录中***************** void load(){ FILE *fp;if((fp=fopen("tongxunlu.txt","rb"))==NULL){printf("Can't open file\n");exit(0);}for(i=0;i<SIZE;i++){ if(fread(&rec[i],sizeof(struct record),1,fp)!=1){if(feof(fp))break;printf("File read error!\n");}rec[i].num =i+1;m++;}list();printf("\t\t\t☆☆☆☆☆读取成功!☆☆☆☆☆\n");fclose(fp);}五.调试与运行结果运行环境:vc++6.01.运行程序,进入系统菜单六.计算机学院课程设计评定意见。