目录:课程设计任务书............................................错误!未定义书签。目录:.........................................................................................................1一、目的...................................................................................................................................2二、基本情况...........................................................................................................................2三、时间安排...........................................................................................................................3四、设计和调试过程规范化要求...........................................................................................3五、设计内容和设计要求.......................................................................................................4六、考核方式...........................................................................................................................5一通讯录的主要功能:...........................................................................6一、问题描述:..........................................................................................................................6二、功能要求:..........................................................................................................................6三、算法提示:..........................................................................................................................6四、测试数据:..........................................................................................................................7二、课题的主要功能模块划分:............................................................7三、主要功能的实现................................................................................8一、按名字查找显示函数voidsearch()...................................................................15二、快速查找函数:voidqseek()........................................................................................15四、程序调试:.......................................................................................16五、总结...................................................................................................18六、源程序..............................................................................................19机械工程学院课程设计评分表................................错误!未定义书签。2前言《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于理论与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养程序设计工作所需要的知识综合能力和动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了15个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘(缺一不可)收齐后交指导老师。一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、基本情况课程类别:必修课3课程学分:1学分课程学时:1周课程对象:汽服0901三、时间安排第一周周日上午8:00—12:00(查阅相关资料并开始编写源程序)第二周周一下午14:00—18:00(完成源程序编写调试运行课程设计报告)周三上午8:00—12:00(完成课程设计报告以及答辩)四、设计和调试过程规范化要求1)需求分析分析系统功能需求以及用户操作流程。2)概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。3)详细设计定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。4)代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功4能部分均要求给出清晰的程序注释。5)程序调试程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能(如避免用户操作错误时程序出现死循环等);另外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。五、设计内容和设计要求1.设计内容:设计与开发一个通讯录管理系统,对通讯录中的姓名、单位、电话、QQ、mail等基本信息进行管理、主要功能如下:1).输入记录;2).显示记录;3).按姓名查找显示记录;4).删除记录;5).插入记录;6).记录保存为文件;7).从文件中读记录;8).按姓名排序;9).显示单条记录;2.设计要求:1).设计正确,方案合理。52).界面友好,使用方便。3).程序精炼,结构清晰。4).设计报告5000字以上,含程序设计说明、系统的功能框图、流程图、源程序清单等。5).实际操作过程中遇到的问题及解决方法:设计总结及心得体会.6).上机演示。附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。六、考核方式指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:1)平时出勤(占10%)2)系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)3)程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)4)设计报告(占30%)5)独立完成情况(占10%)。6一通讯录的主要功能:一.问题描述:一有个通讯录,要求该系统对通讯录的姓名,单位,电话,进行输入,显示,查找,删除,插入,保存等操作的管理。二.功能要求:1,本系统采用一个结构体数组,每个数据的结构应包括;姓名,单位,电话名称。2,本系统显示这样的菜单请选择系统功能项a输入记录;b显示全部纪录;c查找记录;d删除记录;e插入记录;f保存文件;g读文件:(1)按序号显示记录;(2)按姓名排序;(3)快速查找记录;(4)复制文件。三算法提示:1.数据结构;结构体类型数组。2.数据库结构;下表构成该系统的基本数据库。姓名电话单位``````````````````7四测试数据:姓名电话单位Zhang152···························································································二、课题的主要功能模块划分:同学录输入查找显示删除快速查找记录.保存按姓名查找显示记录按序号查找显示记录按姓名查找8三、主要功能的实现程序设计一般由两部分组成算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性,在通讯录管理程序中由于预计记录数相对于一个单位的学生人数或职工人数来说不会太大除了能够增加、删除、保存等外更多的情况是查询,且能够实现快速查询。所以选用静态数组保存数据实现多种查询方式。1数据结构由于使用静态数组需要预先估计记录数,所以先预定义一个常数M表示记录,也就是数组的大小,记录联系人的信息至少应有姓名、单位、电话。所以定义每个数组元素的类型为结构体。由于数组存储是采用顺序存放在内存空间中占用连续空间,所以若干条记录通讯录的管理实质就是对顺序存储的线性表的管理结点结构如下:#defineM50/*估计的记录数*/typedefstruct{charname[20];/*姓名*/