班级通讯录管理系统课程设计报告
通讯录管理系统c语言课程设计报告课题简介
通讯录管理系统C语言课程设计报告
一、课题简介
通讯录管理系统是一种常见的应用程序,旨在帮助用户组织和管理他们的联系人信息。
本课程设计将利用C语言来实现一个基本的通讯录管理系统,旨在帮助学生掌握C语言编程的基本知识和技能。
二、设计目的
1.帮助学生熟悉C语言的基本语法和编程逻辑;
2.提高学生对数据结构的理解和运用能力;
3.培养学生的编程能力和软件开发思维;
4.提高学生的团队合作和项目管理能力。
三、设计内容
本课程设计将围绕以下几个方面展开:
1.用户界面设计:设计一个简洁直观的用户界面,包括菜单选项、输
入输出界面等;
2.数据结构设计:设计通讯录数据结构,包括联系人姓名、电话号码
等信息的存储方式;
3.功能实现:实现通讯录管理系统的基本功能,包括添加联系人、删
除联系人、查找联系人等操作;
4.文件操作:实现通讯录数据的读写操作,将联系人信息保存到文件
中,以便下次运行时读取;
5.错误处理:处理用户输入错误等异常情况,保证程序的稳定性和可
靠性。
四、预期效果
通过本课程设计,学生将能够掌握以下技能:
1.掌握C语言基本语法和编程逻辑;
2.熟悉数据结构的设计和运用;
3.提高编程能力和软件开发思维;
4.培养团队合作和项目管理能力。
五、总结
通过设计一个通讯录管理系统的C语言课程项目,学生将在实践中加深对C语言的理解和应用,提高编程技能和解决问题的能力。
希望本课程设计能够为学生的编程学习提供一定的帮助和指导。
以上为《通讯录管理系统C语言课程设计报告》的简要介绋,希望能够为课程设计的顺利进行提供一定的参考和指引。
班级通讯录管理系统课程设计分析报告
高级语言程序设计(1)课程设计专业班级学号姓名完成日期指导教师:1.程序设计说明书【设计题目】班级通讯录管理系统【问题描述】信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。
对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。
可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。
【基本要求】1.通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘上。
2.通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。
3.通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。
【算法思想】1.根据要求,通讯录数据以文本文件存放在文件中:2.需要提供文件的输入输出的等操作:3.还需要保存记录已进行修改,删除,查找的操作:4.另外还需提供键盘式选择菜单实现功能的选择。
【总体设计】图1系统功能模块图【详细设计】主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2.主函数流程图Voidmenu()/*主界面*/{intn,w1;voidenter();voidadd();voidmodify();voidbrowse();voiddelete();voidsearch(); do{puts("\t*******菜单**************\t\n\n");puts("\t\t\t\t1.新建联系人");puts("\t\t\t\t2.添加联系人");puts("\t\t\t\t3.修改");puts("\t\t\t\t4.删除");puts("\t\t\t\t5.浏览");puts("\t\t\t\t6.查找");puts("\t\t\t\t7.退出");puts("\n\n\t*****信息1002班通讯录*************\t\n");printf("请选择服务种类(1-7):[]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;/*输入模块*/case2:add();break;/*添加模块*/【模块流程图】main函数delete函数search函数1”,进入新建联系人。
班级通讯录系统课程设计
班级通讯录系统课程设计一、课程目标知识目标:1. 理解班级通讯录系统的基本概念,掌握其功能和作用;2. 学会运用所学的编程知识,设计并实现一个简单的班级通讯录系统;3. 掌握在班级通讯录系统中进行数据录入、查询、修改和删除等基本操作。
技能目标:1. 能够运用所学的编程语言,独立完成班级通讯录系统的设计和开发;2. 培养学生的逻辑思维和问题解决能力,提高编程实践能力;3. 学会合作与交流,提高团队协作能力。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,增强学习动力;2. 培养学生的创新意识和实践精神,鼓励尝试和探索;3. 增强学生的责任心,认识到班级通讯录系统在实际生活中的重要性。
课程性质分析:本课程为信息技术课程,旨在让学生将所学的编程知识应用于实际项目中,提高学生的实践能力和创新能力。
学生特点分析:学生处于初中年级,已具备一定的编程基础,对新鲜事物充满好奇心,具备较强的学习能力和动手能力。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力;2. 关注学生的个体差异,实施差异化教学,促进全体学生的共同发展;3. 以学生为主体,激发学生的学习兴趣,培养学生的自主学习能力。
二、教学内容1. 班级通讯录系统的基本概念与功能介绍:- 介绍通讯录系统的定义、作用及其在日常生活和学习中的应用;- 分析班级通讯录系统的功能需求,如信息录入、查询、修改和删除等。
2. 编程语言及开发环境准备:- 结合课本内容,回顾已学的编程语言(如Python、C++等)基础知识;- 介绍开发环境(如Visual Studio、Eclipse等)的安装和使用方法。
3. 数据结构与算法设计:- 学习线性表、链表等数据结构,理解其在通讯录系统中的应用;- 掌握排序、查找等基本算法,并应用于通讯录系统的信息管理。
4. 班级通讯录系统的设计与实现:- 分析系统功能模块,设计系统架构;- 编写代码实现各功能模块,如添加联系人、查询联系人、修改联系人和删除联系人等;- 学习使用文件存储和读取数据,保证通讯录信息的持久化。
学生通讯录管理系统课程设计
学生通讯录管理系统课程设计一、引言学生通讯录管理系统是一种能够有效管理学生通信信息的软件工具。
在当今信息化社会中,为了更好地维护学生通信信息和便于学校管理,设计一个高效、实用的学生通讯录管理系统至关重要。
本文将围绕学生通讯录管理系统的设计与实现展开讨论。
二、需求分析1. 用户需求•管理员需要能够对学生信息进行增删查改操作;•学生要能够方便地修改个人信息;•教师需要便捷地查看学生信息;•系统需要有良好的用户权限管理机制。
2. 功能需求•学生信息管理:包括学生基本信息的录入、修改和删除。
•通讯录管理:实现学生通讯录的管理和分类。
•查询功能:实现对学生信息的快速查询。
•权限管理:分管理员和普通用户,管理员有更高的权限控制。
三、系统设计1. 系统架构学生通讯录管理系统采用典型的客户-服务器架构,后端基于MySQL数据库存储学生信息,前端通过Web页面进行展示和操作。
2. 数据库设计设计数据库表格包括:学生信息表(包括学号、姓名、性别、年级等字段)、用户表、通讯录表等。
3. 页面设计•登录页面:对用户进行身份验证。
•学生信息管理页面:实现对学生基本信息的增删查改。
•通讯录管理页面:实现通讯录的分类和管理。
四、系统实现1. 环境配置•使用Python语言编写后端代码。
•前端采用HTML、CSS、JavaScript。
•数据库采用MySQL。
2. 实现步骤1.搭建后端框架,实现数据的增删查改功能。
2.设计前端页面,实现用户交互和数据展示。
3.进行系统测试和优化。
五、功能演示1. 登录功能输入正确的用户名和密码,用户可以成功登录系统。
2. 学生信息管理管理员可以添加、删除、修改学生信息,普通用户只能查看。
3. 通讯录管理实现对通讯录的添加、分类和管理。
六、总结与展望通过本次学生通讯录管理系统课程设计,我学到了如何进行系统设计、数据库设计和前后端分离开发的方法。
未来,还可以进一步改进系统功能,增加权限管理模块、优化界面交互等,使系统更加稳健和实用。
通讯录管理系统课程设计报告系统存储结构
通讯录管理系统课程设计报告系统存储结构一、引言通讯录管理系统是一种方便快捷地存储和管理联系人信息的应用程序。
在该系统中,数据的存储结构至关重要,它直接关系到系统的性能和稳定性。
本文将介绍通讯录管理系统的系统存储结构设计,包括数据的组织方式、存储介质选择等内容。
二、存储结构设计1. 数据的组织方式在通讯录管理系统中,联系人信息是系统中最主要的数据之一。
为了高效地存储和管理这些信息,我们选择采用数据库的方式进行组织。
数据库将联系人信息按照一定的结构进行组织和存储,方便系统对数据的检索和更新。
2. 数据库的选择在选择数据库时,我们考虑到系统的使用特点和性能要求,最终选择了关系型数据库。
关系型数据库具有良好的数据一致性和完整性,能够满足系统的数据管理需求。
同时,支持 SQL 查询语言的特性也使得对数据进行灵活的操作成为可能。
3. 数据表设计在关系型数据库中,数据是以表的形式进行存储的。
针对通讯录管理系统的需求,我们设计了以下几张表:•用户表:用于存储系统的用户信息,包括用户名、密码等;•联系人表:用于存储用户的联系人信息,包括姓名、电话号码、邮箱地址等;•分组表:用于将联系人进行分类管理,方便用户对联系人信息进行组织。
每张表之间通过外键进行关联,确保数据的一致性和完整性。
三、存储介质选择除了数据库存储外,系统还需要选择适当的存储介质来保存一些系统配置信息和用户的登录状态等数据。
我们选择了文件系统作为存储介质,将这些数据以文件的形式进行存储。
四、存储结构的优化为了提高系统的性能和响应速度,我们对存储结构进行了一定的优化。
主要包括以下几点:•索引设计:对关键字段建立索引,加快检索速度;•归档策略:定期对系统中的数据进行归档,减少存储空间的占用;•缓存机制:使用缓存技术对频繁访问的数据进行缓存,减少数据库访问的频率。
五、总结系统存储结构的设计对于通讯录管理系统的性能和稳定性具有重要影响。
通过合理选择数据库和存储介质,并对存储结构进行优化,可以有效提高系统的用户体验和响应速度。
通讯录管理系统设计报告
通讯录管理系统学生姓名:学院:计算机与通信工程学院班级:班学号:摘要本课程设计主要是一个简单的通讯录管理系统。
通过程序中的菜单编号实现对数据的添加、修改、删除等操作。
在本课程设计中,系统开发平台为Windows2000,程序设计语言为C语言,程序运行平台为Windws 98/2000/XP。
在程序设计中采用了结构体、链表的方法实现对数据的操作。
程序通过调试运行,初步实现了设计目标,不过还需要很多的完善。
关键词程序设计;通讯录; C语言;1 引言对于日常生活中的人们来说,通讯录管理系统是一个非常重要,并且非常实用的工具。
有了通讯录系统,人们就不用再为记不住熟人们的号码等联系方式而烦恼了,增进了人们之间的联系,让人们更加方便与朋友亲人联系了。
1.1课题背景通讯管理系统是一个很实用的系统,不仅在人们用的手机中扮演着重要的角色,在各大商业与企业的运作中也起着非常大的作用。
想当初没有电子通讯录系统,人们要花很多时间去记住联系人的联系方式,而且有时候还会弄错,导致一些不必要的尴尬,有了电子通讯录系统自然记不住的问题迎刃而解了。
本系统只是实现了一个简单的通讯管理,通过对数组,结构体,链表,以及各个模块的应用达到一个管理的功能。
1.2课程设计目的C语言现在是一个应用比较广泛的语言,通过对程序的设计让我们能更好的学习和了解它的各个方面的应用,对我们今后的学习有很大的帮助。
同时,在做程序的过程中锻炼了我们对程序的分析与编写能力,更锻炼了我们的实战能力,为我们以后在自己的专业取得更好的成就做了一个好的铺垫。
1.3课程设计内容本课程设计是一个通讯录管理系统,可以实现简单的插入、删除、添加等功能。
图1-3通讯录管理系统2 设计思路与方案2.1设计思路该个人通讯录管理系统是一个对数据进行管理修改的简单系统,首先做出一个主菜单界面供用户选择需要的操作,再用各个模块来实现菜单中各单独功能的实现,例如修改数据、插入数据、添加数据等。
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)。
五、教学评估本课程的教学评估将综合考虑学生的平时表现、作业、考试等方面,以全面、客观、公正地评价学生的学习成果。
通讯录管理系统课程设计报告
通讯录管理系统课程设计报告一、引言通讯录管理系统是一种用于存储和管理联系人信息的应用程序,它可以帮助用户方便地记录和查找各种联系人信息。
在本课程设计报告中,我们将讨论通讯录管理系统的设计和实现过程,以及系统的功能特点和操作流程。
二、需求分析通讯录管理系统需要具备以下基本功能: 1. 添加联系人信息:用户可以输入姓名、电话号码、电子邮件地址等信息来添加新的联系人。
2. 查找联系人信息:用户可以通过姓名或电话号码等关键词来查找已添加的联系人信息。
3. 修改联系人信息:用户可以对已有联系人信息进行修改和更新。
4. 删除联系人信息:用户可以选择删除不需要的联系人信息。
5. 显示所有联系人信息:系统可以按照一定的格式将所有联系人信息展示给用户。
三、系统设计1. 数据结构为了存储联系人信息,我们可以使用一个包含姓名、电话号码、电子邮件地址等字段的结构体来表示每个联系人。
可以使用链表或数组来组织所有联系人信息。
2. 模块设计通讯录管理系统可以划分为以下几个模块: - 添加联系人模块:实现添加新联系人信息的功能。
- 查找联系人模块:实现根据关键词查找联系人信息的功能。
- 修改联系人模块:实现对已有联系人信息进行修改和更新的功能。
- 删除联系人模块:实现删除不需要的联系人信息的功能。
- 显示联系人模块:实现将所有联系人信息按照一定格式展示给用户的功能。
3. 用户界面设计用户界面应该简洁明了,包括各个功能的按钮或选项,以及输入框和显示信息的区域。
用户应该能够方便地进行各种操作和查看联系人信息。
四、系统实现1. 数据存储可以使用文件来存储联系人信息,也可以使用数据库来进行数据持久化。
2. 界面实现可以使用图形界面或命令行界面来实现用户交互功能,不同的界面设计会影响用户体验。
3. 功能实现根据需求分析中的功能,实现各个模块的功能代码,确保系统可以正确地完成相关操作。
五、功能测试在系统实现完毕后,需要进行功能测试,确保系统的各个功能都能正常运行,并且符合需求。
通讯录管理系统课程设计报告总结
通讯录管理系统课程设计报告总结
通讯录管理系统课程设计报告总结
本次课程设计的主题是通讯录管理系统,旨在通过设计一个实用的通讯录管理系统,提高学生的软件开发能力和实践能力。
在本次课程设计中,我们采用了Java语言和MySQL数据库进行开发。
在开发过程中,我们首先进行了需求分析,明确了系统的功能和用户需求。
然后进行了系统设计,包括数据库设计和界面设计。
在开发过程中,我们采用了面向对象的开发方法,将系统分为多个模块,每个模块负责不同的功能。
同时,我们也采用了MVC设计模式,将数据、视图和控制分离,使得系统更加灵活和易于维护。
在实际开发中,我们遇到了许多问题,如数据库连接问题、界面设计问题等。
但是,我们通过不断的学习和实践,最终成功地完成了系统的开发。
在开发过程中,我们也学习了许多新的知识和技能,如Java 语言的基本语法、MySQL数据库的使用、面向对象的开发方法等。
最终,我们成功地开发出了一个实用的通讯录管理系统,该系统具有以下功能:
1. 用户登录和注册功能,保证系统的安全性和可靠性。
2. 通讯录的添加、删除、修改和查询功能,方便用户管理通讯录。
3. 通讯录的导入和导出功能,方便用户备份和恢复通讯录。
4. 通讯录的分类和分组功能,方便用户对通讯录进行分类管理。
5. 通讯录的搜索功能,方便用户快速查找通讯录。
通过本次课程设计,我们不仅提高了自己的软件开发能力和实践能力,也为今后的学习和工作打下了坚实的基础。
同时,我们也深刻认识到
软件开发需要不断学习和实践,只有不断地提高自己的技能和能力,
才能在竞争激烈的市场中立于不败之地。
通讯录管理系统课程设计报告总结
通讯录管理系统课程设计报告总结一、引言通讯录管理系统作为一种常见的信息管理工具,在日常生活中发挥着重要作用,能够帮助人们方便地管理和查找联系人信息。
本次课程设计旨在设计和实现一个简单的通讯录管理系统,运用所学的软件开发技术和方法,提升学生的实际项目开发能力。
二、需求分析本系统主要包括以下功能模块: 1. 用户登录和注册:用户可以通过用户名和密码登录系统,也可以注册新用户; 2. 通讯录管理:用户可以添加、删除、修改联系人信息,并可以按照姓名、电话号码等字段进行排序和搜索; 3. 导入和导出:用户可以将通讯录数据导出到文件中,也可以从文件中导入数据; 4. 权限管理:管理员可以对用户进行管理,设定不同用户的权限和角色。
三、设计与实现本系统采用Python语言进行开发,使用了Django框架进行Web应用的搭建,并结合SQLite数据库实现数据的存储和管理。
系统的前端页面采用HTML、CSS和JavaScript进行设计,实现了用户友好的界面交互。
在系统的设计过程中,我们遵循了软件工程的相关原则和方法,包括需求分析、概要设计、详细设计、编码和测试等阶段。
通过团队合作,我们按照功能模块分工合作,每位成员负责不同的部分,最终将各部分整合在一起进行测试和优化。
四、测试与优化在系统开发过程中,我们进行了严格的测试工作,包括单元测试、集成测试和系统测试等,确保系统的功能正常运行和性能优秀。
在测试过程中,我们发现了一些问题并对其进行了优化,提高了系统的稳定性和用户体验。
五、总结与展望通过本次通讯录管理系统课程设计,我们深入了解了软件开发的整个流程,提升了团队协作能力和项目管理能力。
在未来的学习和工作中,我们将继续探索软件开发领域,不断提高自己的技术水平,为社会和行业做出更多贡献。
以上是本次通讯录管理系统课程设计的报告总结,希望能够对读者有所启发和帮助。
感谢大家的支持与关注!。
班级通讯录管理系统 课程设计报告
高级语言程序设计(1)课程设计专业 班级 学号姓名 完成日期 指导教师:1. 程序设计说明书【设计题目】 班级通讯录管理系统【问题描述】信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ 号和宿舍号。
对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。
可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。
【基本要求】1. 通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘上。
2. 通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。
3. 通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。
【算法思想】1. 根据要求,通讯录数据以文本文件存放在文件中:2. 需要提供文件的输入输出的等操作:3. 还需要保存记录已进行修改,删除,查找的操作:4. 另外还需提供键盘式选择菜单实现功能的选择。
【总体设计】图1 系统功能模块图【详细设计】通讯录管理系统数据输入 数据修改 删除 数据添加 查找 浏览主函数设计要求简洁,只提供部分提示语和函数的调用【程序】开始显示一系列功能选项n输入n,判断n是否是1~7 ?根据n的值调用各功能模块函数结束图2. 主函数流程图Void menu() /*主界面*/{int n, w1;void enter(); void add(); void modify(); void browse(); void delete(); voidsearch();do{puts("\t*******菜单**************\t\n\n");puts("\t\t\t\t1.新建联系人");puts("\t\t\t\t2.添加联系人");puts("\t\t\t\t3.修改");puts("\t\t\t\t4.删除");puts("\t\t\t\t5.浏览");puts("\t\t\t\t6.查找");puts("\t\t\t\t7.退出");puts("\n\n\t*****信息1002班通讯录*************\t\n");printf("请选择服务种类(1-7) : [ ]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 2: add(); break; /*添加模块*/【模块流程图】main函数开始显示一系列功能选项n输入n,判断n是否是1~7 ?根据n的值调用各功能模块函数结束enter函数输入选择服务类型1输入要新建学生数量n(n<N)输入第一个,第二个.......第n个学生信息记录What do you want to do?1>.浏览所有 2.>..返回modify函数输入选择服务类型3输入要修改学生姓名,选择修改选项1>.姓名 5.>.所有数据2.>.电话3.>.QQ号4.>.宿舍号 6.>.取消返回是否确定修改?1.>.是2.>.不,重新修改3.>.保存并返回browse函数输入浏览服务号5浏览所有学生基本通讯信息返回主菜单delete函数输入服务选项4输入要删除学生的姓名是否删除1.>.是2.>.否,返回search函数选择服务类型6选择查找类别1.>.姓名2.>.QQ号查看已查找到地通讯信息1.>继续2.>.返回【程序使用方法】1. 执行程序,按照界面提示进行选择。
c语言课程设计通讯录管理系统课程设计报告
c语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习C语言,使学生掌握通讯录管理系统的开发过程,培养学生的编程能力和逻辑思维能力。
具体目标如下:1.知识目标:学生能够理解C语言的基本语法和数据结构,掌握函数的定义和调用,了解面向过程的编程思想。
2.技能目标:学生能够使用C语言编写简单的程序,具备解决实际问题的能力,能够独立完成一个通讯录管理系统的开发。
3.情感态度价值观目标:学生通过课程学习,能够培养对编程的兴趣和热情,增强自我学习的动力,提高团队协作的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用,以及面向过程的编程思想。
具体安排如下:1.C语言的基本语法:介绍变量、常量、运算符、表达式等基本概念。
2.数据结构:介绍整数、浮点数、字符等数据类型的使用,以及数组、指针等数据结构。
3.函数的定义和调用:介绍函数的声明、定义和调用,以及函数的参数传递和返回值。
4.面向过程的编程思想:介绍程序的执行流程、循环结构、条件判断等编程控制语句。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解C语言的基本语法、数据结构、函数的定义和调用等知识,使学生掌握课程的基本概念。
2.案例分析法:通过分析实际案例,让学生了解编程思想,培养学生的实际操作能力。
3.实验法:安排实验室实践环节,让学生动手编写程序,提高学生的实际编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
具体资源如下:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。
2.参考书:推荐学生阅读一些优秀的编程书籍,丰富学生的知识储备。
3.多媒体资料:制作课件、视频等多媒体资料,提高课堂的教学效果。
4.实验设备:提供充足的计算机设备,确保学生能够进行实验和实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
《通讯录管理系统》课程设计报告
《通讯录管理系统》课程设计报告专业:xxxxxxxxx班级:xxxxxxxxxxx姓名:xxxxxxxxx指导教师:xxxxxxxxxx学号:xxxxxxxxx课程设计报告一、课程设计题目综合训练:通讯录管理系统设计二、设计要求学生成绩管理:(结构体数组、函数、算法、流程结构及文件等的综合应用)程序说明:通迅录数据信息构成内容可自行设计(如姓名、家庭地址、邮政编码、电话号码等等),通信录数据类型定义为结构体类型,使之能提供以下功能:(1(2)各菜单项功能①添加记录:输入联系人的序号、姓名、电话号码等相关信息;②显示记录:显示联系人的序号、姓名、电话号码等相关信息;③删除记录:根据联系人的任意信息,查找并删除联系人的信息;④查询记录:根据联系人的序号,查找联系人的其他信息;根据联系人的姓名,查找联系人的其他信息;根据联系人的电话号码,查找联系人的其他信息;根据联系人的电子邮箱,查找联系人的其他信息;根据联系人的通讯住址,查找联系人的其他信息;根据以上的联系人的任意信息,查找联系人的其他信息;⑤修改记录:根据联系人的任意信息,查找并修改联系人的信息;⑥保存记录:保存现有联系人的信息,将其写入文件中;⑦读取记录:读取文件中的联系人的信息,对系统的联系人的信息进行初始化;⑧插入记录:指定位置添加联系人的序号、姓名、电话号码等相关信息;⑨排序方式:根据联系人的序号,将联系人的信息进行排序;根据联系人的姓名,将联系人的信息进行排序;根据联系人的电话号码,将联系人的信息进行排序;根据联系人的电子邮箱,将联系人的信息进行排序;根据联系人的通讯住址,将联系人的信息进行排序;⑩退出程序:退出整个系统(即主菜单)。
(3)结构体数组:typedef struct{char order[10]: /* 定义联系人的序号*/char name[20]; /* 定义联系人的姓名*/char number[20];/* 定义联系人的电话号码*/char email[20]; /* 定义联系人的电子邮箱*/char address[20];/* 定义联系人的通讯住址*/}People: /* 定义People类型的结构体*/People Contact[300];/* 定义People类型的结构体数组,用于保存联系人信息*/ People Recond[300];/* 定义People类型的结构体数组,用于读取记录*/三、C语言结构设计描述1能够添加联系人的序号、姓名、电话号码等相关信息;2能够显示联系人的序号、姓名、电话号码等相关信息;3能够删除联系人的信息;4能够按照不同的方式查询联系人的信息;5能够修改联系人的序号、姓名、电话号码等相关信息;6存储记录到文件中7从文件中读取记录8能够插入联系人的信息;9能够按照不同的方式对联系人的信息进行排序;10退出;1、进入界面;2、输入选项1,回车;按提示输入数据3、回到主菜单;输入选项2,回车;4、回到主菜单,输入3,回车输入联系人的相关信息,显示删除成功。
通讯录管理系统课程设计报告Java
通讯录管理系统课程设计报告Java1. 简介通讯录管理系统是一种方便用户存储和管理联系人信息的工具。
本课程设计将使用Java语言开发一个简单的通讯录管理系统,实现对联系人信息的增删改查功能。
通过本项目的实践,学习者将掌握Java编程语言的基础知识和面向对象编程的技巧。
2. 功能需求通讯录管理系统应包含以下功能: - 添加联系人信息:用户可以输入联系人的姓名、电话号码、邮箱等信息添加到通讯录中。
- 显示所有联系人信息:系统能够展示所有已保存在通讯录中的联系人信息。
- 查找联系人信息:用户可以通过姓名或电话号码查找特定联系人的信息。
- 修改联系人信息:用户可以对已保存的联系人信息进行修改。
- 删除联系人信息:用户可以删除通讯录中的联系人信息。
实现以上功能需要设计相应的数据结构和算法,以及编写用户交互界面。
3. 技术实现3.1 数据结构在Java中,可以使用ArrayList或HashMap等数据结构来存储联系人信息。
ArrayList适用于有序的联系人列表,而HashMap适用于根据键值快速查找联系人信息。
3.2 用户交互界面用户交互界面可以通过Java的Swing或JavaFX等GUI工具包来实现。
设计一个简洁明了的界面,包含菜单栏、输入框、按钮等组件,以方便用户操作。
3.3 功能实现•添加联系人信息:用户输入信息后,将联系人信息添加到数据结构中。
•显示所有联系人信息:遍历数据结构,将所有联系人信息展示在界面上。
•查找联系人信息:根据用户输入的查询条件,在数据结构中查找对应的联系人信息。
•修改联系人信息:根据用户输入的修改信息,更新数据结构中相应的联系人信息。
•删除联系人信息:根据用户输入的删除条件,从数据结构中移除对应的联系人信息。
4. 总结通讯录管理系统是一个简单实用的应用程序,能够帮助用户有效管理联系人信息。
通过本课程设计,学习者将学习如何使用Java语言开发基本的应用程序,掌握面向对象编程的基本原理和技巧。
通讯录管理系统课程设计报告总结
任务名称:通讯录管理系统课程设计报告总结一、引言通讯录管理系统是一种用于管理联系人和通讯信息的应用程序。
该系统的设计旨在满足用户对个人和组织通讯信息的管理和查询需求。
本报告对通讯录管理系统的设计过程进行总结,并提出了改进建议。
二、系统需求分析在进行系统设计前,我们首先对用户需求进行了深入分析。
以下是我们对通讯录管理系统的需求分析总结:2.1 用户需求1.用户需要能够方便地添加、删除和编辑联系人信息。
2.用户需要能够快速搜索和查找特定联系人的信息。
3.用户需要能够导出通讯录信息并与其他应用程序集成。
4.用户需要能够进行批量操作,如导入联系人信息或发送批量邮件。
2.2 系统需求1.系统需要提供用户友好的用户界面,操作简单直观。
2.系统需要具备高效的搜索和查询功能,以满足用户的快速查找需求。
3.系统需要能够存储大量联系人信息,并确保数据安全性和完整性。
4.系统需要提供数据导入导出功能和与其他应用程序的集成能力。
三、系统设计在系统设计阶段,我们采用了面向对象的方法进行系统建模和设计。
以下是系统设计的要点:3.1 系统架构通讯录管理系统采用了三层架构模式:表示层、业务逻辑层和数据访问层。
这种架构模式将系统的功能划分为不同的层次,方便系统的维护和扩展。
3.2 数据库设计我们使用了关系型数据库来存储和管理通讯录信息。
数据库设计包括联系人表、联系人组表等。
通过合理的数据表设计,实现了联系人和联系人组之间的关联和查询。
3.3 用户界面设计为了提供用户友好的界面,我们通过使用图形用户界面(GUI)的方式构建了系统界面。
界面设计简洁明了,用户可以方便地进行联系人管理和查询操作。
3.4 功能设计根据用户需求,系统实现了联系人的添加、删除、编辑等功能。
同时,系统还提供了高效的搜索和查询功能,用户可以通过姓名、电话号码等信息快速查找联系人。
四、系统实现与测试在系统实现阶段,我们按照设计要求逐步开发各个模块,并进行了系统测试。
学生通讯录管理系统课程设计报告
学生通讯录管理系统课程设计报告一、课程设计背景学生通讯录管理系统是一个旨在帮助学生和教师更好地管理个人信息和通讯录的软件系统。
随着信息技术的不断发展,现代教育领域对教学、管理和学习等方面的要求越来越高,传统的纸质通讯录管理方式已经无法满足教育机构的需求。
因此,开发一个便捷、高效的学生通讯录管理系统成为当今教育信息化的重要课题。
二、需求分析学生通讯录管理系统主要包括以下功能模块:1.学生信息管理:用于录入、修改和删除学生个人信息,包括姓名、学号、性别、联系方式等;2.通讯录管理:实现通讯录的分类、查找、添加和删除功能,方便学生和教师进行联系;3.用户权限管理:设置不同权限等级的用户,如学生、教师和管理员,确保信息安全性;4.数据备份与恢复:对系统中的重要数据进行定期备份,保障数据的安全性;5.界面友好性:系统界面简洁明了,操作便捷,用户体验良好。
三、系统设计1. 系统架构学生通讯录管理系统采用客户端-服务器架构,客户端提供给学生和教师使用,服务器端用于存储核心数据和处理业务逻辑。
2. 数据库设计系统采用关系型数据库,主要包括以下表:•学生表(Student):包含学生的基本信息;•教师表(Teacher):包含教师的基本信息;•通讯录表(Contact):记录学生或教师之间的联系方式;•用户表(User):存储系统用户的账号信息和权限。
3. 功能实现(1)学生信息管理学生信息管理模块提供学生信息的增删改查功能,管理员可以对学生信息进行修改和删除,学生可以查看、修改自己的个人信息。
(2)通讯录管理通讯录管理模块支持对通讯录的分类和搜索功能,学生和教师可以添加、删除通讯录条目,并对通讯录进行管理。
(3)用户权限管理系统设定不同权限等级的用户,管理员有最高权限,可以管理用户账号和角色,确保系统的安全性。
四、系统实现系统采用Java语言进行开发,前端界面使用JavaFX技术,后端采用Spring框架实现业务逻辑,数据库连接采用JDBC等技术。
班级通讯录系统课程设计
班级通讯录系统课程设计一、教学目标本课程旨在通过学习班级通讯录系统的设计与实现,让学生掌握以下知识目标:1. 了解班级通讯录系统的基本概念和架构;2. 掌握常用的数据结构和算法在通讯录系统中的应用;3. 熟悉软件工程的基本原则和方法,能够进行合理的系统设计和实现。
技能目标方面,学生应能够:1. 使用编程语言进行简单的系统开发;2. 运用软件工程的方法进行系统设计和实现;3. 能够进行自我学习和解决问题的能力。
情感态度价值观目标方面,学生应能够:1. 培养对计算机科学的兴趣和热情;2. 培养团队协作和沟通能力;3. 培养对工作的责任感和敬业精神。
二、教学内容教学内容将按照以下大纲进行:1.班级通讯录系统概述:介绍班级通讯录系统的概念、功能和应用场景;2.数据结构与算法:介绍常用的数据结构(如数组、链表、树等)和算法(如排序、查找等)在通讯录系统中的应用;3.软件工程:介绍软件工程的基本原则和方法,包括需求分析、系统设计、编码实现、测试等;4.系统设计与实现:基于前面的知识,进行班级通讯录系统的需求分析、设计实现和测试。
三、教学方法本课程将采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
1.讲授法:用于讲解基本概念、原理和方法;2.讨论法:用于引导学生进行思考和讨论,培养其解决问题的能力;3.案例分析法:通过分析实际案例,让学生了解和掌握系统的实际应用;4.实验法:通过实际操作,让学生掌握系统的实现和测试方法。
四、教学资源教学资源包括:1.教材:选用《软件工程》和《数据结构与算法》等相关教材;2.参考书:提供相关的学术论文、技术文档等参考资料;3.多媒体资料:提供相关的教学视频、PPT等;4.实验设备:提供计算机、网络等实验设备,让学生能够进行实际的操作和实验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面客观地评价学生的学习成果。
1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和理解程度;2.作业:布置与课程内容相关的编程练习和案例分析,评估学生的应用能力和独立解决问题的能力;3.考试:包括期中考试和期末考试,以闭卷形式评估学生对课程知识的掌握程度和应用能力。
通讯录管理系统课程设计报告
设计课题题目一、课程设计目的与要求1.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。
(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。
2. 课程设计要求制作一个通讯录系统。
(1)该程序具有查找、添加、修改、删除功能。
(2)通讯录包括:姓名、电话、街道、城市、省、邮编等。
二、总体设计根据系统的要求,系统总体设计如图1所示。
三、详细设计1、数据结构设计#include<stdio.h> /*标准输入输出函数库*/#include<stdlib.h> /*标准函数库*/#include<string.h> /*字符串函数库*/#define FILENAME "phone.dat"struct date //定义一个结构体类型数组{ char name[10]; /*姓名*/char phone[12]; /*电话*/char email[20]; /*邮箱*/char QQ[20]; /*QQ*/} per[10];int menu() //主菜单选择函数2.函数说明(1) 主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。
(2)四、程序清单1、头文件#include<stdio.h> /*标准输入输出函数库*/#include<stdlib.h> /*标准函数库*/#include<string.h> /*字符串函数库*/#define FILENAME "phone.dat"2、主函数void main() //主函数{int n=0,i;while(1){ switch (menu()){ case 1: { printf("\n\t 通讯信息录入\n"); //信息录入n=Input(per, n);}break;case 2:printf("\n\t\t\t 通讯录记录表\n"); //显示记录Display(per,n);break;case 3:printf("\n\t保存功能\n");WritetoText(per,n); //保存数据printf("\t");system("pause"); //操作完成后进行暂停break;case 4:printf("\n\t从通讯录中删除记录\n");n=Delete_a_record(per,n); //删除记录printf("\t");system("pause");break;case 5:printf("\n\t修改通讯录中的记录\n");Change(per,n); //修改数据printf("\t");system("pause");break;case 6:printf("\n\t添加记录到通讯录\n"); //添加记录n=Input(per,n);break;case 7:printf("\n\t在通讯录中查找记录\n");Query_a_record(per,n); //查找记录printf("\t");system("pause"); //从程序里调用”pause”命令break;case 0:printf("\n\t\t谢谢使用,再见!\n"); //结束程序printf("\n\t\t");system("pause");exit(0);}五、总程序和分工执行结果#include<stdio.h> /*标准输入输出函数库*/#include<stdlib.h> /*标准函数库*/#include<string.h> /*字符串函数库*/#define FILENAME "phone.dat"struct date //定义一个结构体类型数组{ char name[10]; /*姓名*/char phone[12];char email[20]; /*邮箱*/char QQ[20];}per[10];int menu() //主菜单选择函数{ int c; //定义一个整型变量do{system("cls"); //清屏printf("\t*******通讯录*******\n");printf("\t--------------------\n");printf("\t 1、通讯信息录入\n");printf("\t 2、通讯信息显示\n");printf("\t 3、通讯信息保存\n");printf("\t 4、通讯信息删除\n");printf("\t 5、通讯信息修改\n");printf("\t 6、通讯信息增加\n");printf("\t 7、通讯信息查询\n");printf("\t 0. 退出\n");printf("\t--------------------\n");printf("\t请您选择(0-7):");scanf("%d",&c);}while(c>7&&c<0);return(c);}int Input(struct date per[10],int n){ int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){ printf("\t姓名:");scanf("%s",per[n+i].name);printf("\t电话号码:");scanf("%s",per[n+i].phone);printf("\t电子邮箱:");scanf("%s",per[n+i].email);printf("\tQQ:");scanf("%s",per[n+i].QQ);gets(x);printf("\n\t是否继续添加?(Y/N)");fflush(stdin); //清空缓存scanf("%c",&sign);i++;}return(n+i);}void writeToFile(struct date per[10],int n){ FILE *fp=NULL;int i=0;fp=fopen("phone.dat","wb");if(fp==NULL){ printf("打开文件出错!\n");exit(0);}for(i=0;i<10;i++)fwrite(&per[i],sizeof(per),1,fp); //把字节为1的信息写入文件fclose(fp);}void Display(struct date per[10],int n){ int i;printf("----------------------------------------------------------------------\n"); //格式/printf(" 姓名电话号码QQ 电子邮箱\n");printf("----------------------------------------------------------------------\n");for(i=1;i<n+1;i++){printf("%-15s%-14s%-14s%-14s\n",per[i-1].name,per[i-1].phone,per[i-1].QQ,per[i-1].email);if(i>1&&i%10==0){ printf("\t-----------------------------------\n");printf("\t");system("pause");printf("\t-----------------------------------\n");}}printf("----------------------------------------------------------------------\n");system("pause");}int Delete_a_record(struct date per[10],int n){ char s[20];int i=0,j;printf("\t请输入想删除记录中的名字:");scanf("%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return(n);}for(j=i;j<n-1;j++){ strcpy(per[j].phone,per[j+1].phone);strcpy(per[j].name,per[j+1].name);strcpy(per[j].QQ,per[j+1].QQ);strcpy(per[j].email,per[j+1].email);}printf("\t\t\t已经成功删除!\n");return(n-1);}void Query_a_record(struct date per[10],int n){ int m;printf("\t\n请选择查询方式:\n");printf("\t┌──────┐\n");printf("\t│1------姓名│\n");printf("\t│2------电话│\n");printf("\t│3------返回│\n");printf("\t└──────┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1){ char s[20];int i=0;printf("\t请输入想查询的姓名:");scanf("\t%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t此人QQ: %s\n",per[i].QQ);printf("\t电话号码: %s\n",per[i].phone);printf("\t电子邮箱: %s\n",per[i].email);} ;if(m==2){ char s[20];int i=0;printf("\t请输入想查询的电话:");scanf("\t%s",s);while(strcmp(per[i].phone,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t此人姓名: %s\n",per[i].name);printf("\t此人QQ: %s\n",per[i].QQ);printf("\t电子邮箱: %s\n",per[i].email);} ;}void Change(struct date per[10],int n){ char s[20];int i=0;printf("\t请输入想修改的记录中的名字:");scanf("%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){ printf("\t通讯录中没有此人!\n");return;}printf("姓名:");scanf("%s",per[i].name);printf("电话号码:");scanf("%s",per[i].phone);printf("QQ:");scanf("%s",per[i].QQ);printf("电子邮箱:");scanf("%s",per[i].email);printf("\n修改成功!");}void WritetoText(struct date per[10],int n){ int i=0;FILE *fp; //定义文件指针char filename[20]; //定义文件名printf("\t保存到文件\n"); //输入文件名if((fp=fopen("phone.dat","w"))==NULL){ printf("\t无法打开文件\n");system("pause");return;}fprintf(fp,"***************************************通讯录********************************\n");fprintf(fp," 姓名电话号码QQ 电子邮箱\n");fprintf(fp,"-----------------------------------------------------------------------------\n");while(i<n){ fprintf(fp,"%-10s\t%-3s\t%-20s\t%-20s\n",per[i].name,per[i].phone,per[i].QQ,per[i].email);i++;}fprintf(fp,"-------------------------------------------------------------------------\n");fprintf(fp,"********************************共有%d条记录***************************\n",n);fclose(fp); //关闭文件printf("保存成功!\n");}void main() //主函数{ int n=0,i;while(1){ switch (menu()){ case 1: { printf("\n\t 通讯信息录入\n"); //信息录入n=Input(per, n);}break;case 2:printf("\n\t\t\t 通讯录记录表\n"); //显示记录Display(per,n);break;case 3:printf("\n\t保存功能\n");WritetoText(per,n); //保存数据printf("\t");system("pause"); //操作完成后进行暂停break;case 4:printf("\n\t从通讯录中删除记录\n");n=Delete_a_record(per,n); //删除记录printf("\t");system("pause");break;case 5:printf("\n\t修改通讯录中的记录\n");Change(per,n); //修改数据printf("\t");system("pause");break;case 6:printf("\n\t添加记录到通讯录\n"); //添加记录n=Input(per,n);break;case 7:printf("\n\t在通讯录中查找记录\n");Query_a_record(per,n); //查找记录printf("\t");system("pause");break;case 0:printf("\n\t\t谢谢使用,再见!\n"); //结束程序printf("\n\t\t");system("pause");exit(0);}}}图1 通讯录主菜单结果图2 信息录入图3 通讯信息显示图4 通讯信息保存五、调试与测试所谓程序调试是对程序的查错和排错。
通讯录管理系统课程设计报告需求分析
通讯录管理系统课程设计报告需求分析一、背景介绍在当今社会,随着通讯技术的不断发展和普及,通讯录管理系统成为人们日常生活和工作中不可或缺的工具。
为了提高通讯录管理系统的便捷性和效率,本课程设计旨在分析通讯录管理系统的需求,进而设计一个功能完善、操作简便的系统,满足用户的实际需求。
二、需求分析1. 功能需求通讯录管理系统应具备以下基本功能: - 添加联系人:用户可以录入新的联系人信息,包括姓名、电话号码、邮箱等。
- 编辑联系人:用户可以修改已有联系人的信息。
- 删除联系人:用户可以删除不需要的联系人信息。
- 搜索联系人:用户可以根据关键词快速搜索联系人信息。
- 分组管理:用户可以对联系人进行分类管理,方便查找和管理。
2. 性能需求通讯录管理系统的性能需求包括: - 快速响应:系统应具备快速响应用户操作的能力,保证用户体验流畅。
- 数据安全:系统需要保障用户数据的安全性,防止数据泄露和丢失。
- 稳定性:系统需要保持稳定运行,避免出现频繁的崩溃和错误。
3. 可靠性需求通讯录管理系统的可靠性需求包括: - 数据备份:系统应具备数据备份和恢复功能,确保数据不会因意外情况丢失。
- 异常处理:系统需要具备异常处理机制,能够处理用户操作中出现的异常情况。
- 用户权限管理:系统需要对用户进行权限管理,保证只有授权用户可以访问和操作系统。
4. 易用性需求通讯录管理系统的易用性需求包括: - 界面友好:系统界面设计应简洁明了,操作逻辑清晰,便于用户使用。
- 操作简便:用户操作应简单明了,不需要复杂的步骤就能完成常用功能。
- 提示反馈:系统应提供操作提示和反馈,帮助用户正确使用系统。
三、总结基于以上需求分析,通讯录管理系统应具备功能完善、性能优良、可靠稳定、易用便捷的特点,以满足用户的实际需求。
通过本课程设计,我们将致力于设计一个满足以上需求的通讯录管理系统,为用户提供便捷高效的通讯录管理体验。
以上是对通讯录管理系统课程设计报告需求分析的整体内容,系统将围绕这些需求进行设计和实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级通讯录管理系统课程设计报告文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]高级语言程序设计(1)课程设计专业班级学号姓名完成日期指导教师:1. 程序设计说明书【设计题目】班级通讯录管理系统【问题描述】信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。
对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。
可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。
【基本要求】1. 通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘上。
2. 通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。
3. 通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。
【算法思想】1.根据要求,通讯录数据以文本文件存放在文件中:2.需要提供文件的输入输出的等操作:3. 还需要保存记录已进行修改,删除,查找的操作:4. 另外还需提供键盘式选择菜单实现功能的选择。
图1 系统功能模块图【详细设计】主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2. 主函数流程图Void menu() /*主界面*/{int n, w1;void enter(); void add(); void modify(); void browse(); void delete(); void search();do{puts("\t*******菜单**************\t\n\n");puts("\t\t\t\t1.新建联系人");puts("\t\t\t\t2.添加联系人");puts("\t\t\t\t3.修改");puts("\t\t\t\t4.删除");puts("\t\t\t\t5.浏览");puts("\t\t\t\t6.查找");puts("\t\t\t\t7.退出");puts("\n\n\t*****信息1002班通讯录*************\t\n");printf("请选择服务种类(1-7) : [ ]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 1: enter(); break; /*输入模块*/case 2: add(); break; /*添加模块*/【模块流程图】delete函数search函数1. “1”,进入新建联系人。
2. 按照程序提示,分别输入信息1002班所有同学的通讯基本信息。
(注:这里默认为信息1002班有30名同学,可以通过宏定义进行修改。
)3. 输入成功后,自动返回主界面。
输入“5”,进入通讯录预览,程序自动将各个已录入同学的基本通讯信息输出到屏幕上。
4. 输入“2”返回主界面。
输入“3”,进入基本通讯信息修改,按照提示进行输入。
5. 输入成功后,输入“1”浏览输入信息,输入“2”返回主界面。
输入“4”,进行删除根据提示操作。
6. 输入“6”进行查找,根据提示“1”按姓名查找,“2”按电话号码查找。
7. 输入“1”浏览所查找信息,“2”返回主界面。
输入“7”退出程序。
2. 程序上机调试报告【语法错误及其排除】1、单词拼写错误,导致出现没有定义的变量。
2、宏定义时在末尾处加上了分号,应该不加分号。
3、菜单输出时不整齐。
【算法错误及其排除】1、逐个检查,用查找替换等。
2、在修改个人通讯信息时,不小心将姓名删除。
3.程序测试结果1. 新建联系人;图一2. 添加联系人;图二3. 修改,删除联系人信息;图三4. 浏览,查找。
图四图一图二图三图四【收获及体会】通过为期十多天的设计,我对《C语言》这门有了更深一步的了解。
它是程序设计的重要理论技术基础,在我们专业的学习中占据着十分重要的地位。
同时也使我们知道,要学好这门,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践。
而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理。
通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。
4. 源程序代码#define N 30 ame,stu[i].phone,stu[i].QQnum,stu[i].dorm); } void printf_n(int n){ int j;for(j=0;j<n;j++){ if((j!=0)&&(j%10==0)) {printf("\n\nPress any key to continue...:"); getchar(); puts("\n\n");}printf_one(j);} getchar();}int load(){ FILE *fp;int i;if((fp=fopen("file","rb"))==NULL){ printf("\nCan not open file\n");exit(0);}for(i=0;!feof(fp);i++)fread(&stu[i],sizeof(struct student),1,fp);fclose(fp);return(i-1);}int modify_data(int i,int n){ int c,w1; void input(int i); void menu();do{ puts("\n修改选项=>\n\n 1).姓名 2).电话号码 3).QQ号 4).宿舍号5).所有数据 6).取消并返回");printf("请选择: [ ]\b\b");scanf("%d",&c);if(c>6||c<1) {puts("\nChoose error! Please again!"); getchar();} }while(c>6||c<1);do{ switch(c){ case 1: printf("name:"); scanf("%s",stu[i].name); break;case 2: printf("phone:"); scanf("%s",stu[i].phone); break;case 3: printf("QQnum:"); scanf("%s",stu[i].QQnum); break;case 4: printf("dorm:"); scanf("%s",stu[i].dorm); break;case 5: input(i); break;case 6: menu();}puts("\nNow:\n");printf_face(); printf_one(i);printf("\n确定\n\n\t1).是 2).不,重新修改 3).返回不保存[ ]\b\b");scanf("%d",&w1);}while(w1==2);return(w1);}void input(int i){ printf_face(); printf("\t");scanf("%s\t%s\t%s\t%s",stu[i].name,stu[i].phone,stu[i].QQnum,stu[i].d orm); }void save(int n){ FILE *fp; int i;if((fp=fopen("file","wb"))==NULL){ printf("\nCan not open file\n");exit(0);}for(i=0;i<n;i++)if(stu[i].name[0]!='\0')if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("file write error\n");fclose(fp);}void printf_back(){int w; void browse(); void menu();printf("\n\n\t^_^.Successful. ^_^\n\n");printf("What do you want to do\n\n\t1).浏览所有\t2).返回: [ ]\b\b"); scanf("%d",&w);if(w==1) browse();else menu();}void main(){void menu(); 建联系人*******************");puts("\t\t*******************2.添加联系人*******************");puts("\t\t*******************3.修改*******************");puts("\t\t*******************4.删除*******************");puts("\t\t*******************5.浏览*******************");puts("\t\t*******************6.查找*******************");puts("\t\t*******************7.退出*******************");puts("\n\n\t**************信息1002班通讯录********************* "); printf("请选择服务种类(1-7) : [ ]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 1: enter(); break;case 2: add(); break;case 3: modify(); break;case 4: delete(); break;case 5: browse(); break;case 6: search(); break;case 7: exit(0);}}void enter() n",i+1);input(i);}if(i!=0) save(n);printf_back();}void add() n",i-n+1); input(i);}save(k); printf_back();}void modify() ame)==0) {k=i; s=stu[i];}if(k==-1) printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face(); printf_one(k);w1=modify_data(k,n);if(w1==1) {printf("\n\t^_^.Successful ^_^.\n\n是否继续\n\n\t1).是 2).保存返回\t[ ]\b\b");scanf("%d",&w0); w2=1;}else{w0=0; if(w2==0) stu[k]=s;}if((w0!=1)&&(w2==1)) save(n);}while(w0==1); menu();}void browse() n",n);printf("\nPress any key to back...");getchar();menu();}void search() 名 2).电话号码 [ ]\b\b");scanf("%d",&w1); if(w1<1||w1>2) {printf("输入错误!请重新输入!\n"); w2=1;}}while(w2==1);if(w1==1){do{ k=-1;do{ printf("\n\nEnter name that tou want to search!\nName:");scanf("%s",;for(i=0;i<n;i++)if(strcmp,stu[i].name)==0) {k=i; s=stu[i];}if(k==-1) printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face(); printf_one(k);printf("\nWhat do you want to do\n\t1).继续 2).返回菜单[ ]\b\b");scanf("%d",&w0);}while(w0==1);menu();}else{ do{ k=-1;do{printf("\n\nEnter phone number that tou want tosearch!\nphone:");scanf("%s",;for(i=0;i<n;i++)if(strcmp,stu[i].phone)==0) {k=i; s=stu[i];}if(k==-1) printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face(); printf_one(k);printf("\nWhat do you want to do\n\t1).继续 2).返回菜单[ ]\b\b");scanf("%d",&w0);}while(w0==1);menu();}}void delete() ame)==0) {k=i; s=stu[i];}if(k==-1) printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face(); printf_one(k);printf("\n确定\n\t1).是 2).返回 [ ]\b\b");scanf("%d",&w0);if(w0==1) {stu[k].name[0]='\0'; save(n);} else break;printf("\n\t^_^.Successful^_^.\n");printf("What do you want to do\n\t1).继续 2).返回 [ ]\b\b"); scanf("%d",&w1);}while(w1==1);menu();}。