C语言程序开发实例.ppt_第1页
C语言程序开发实例.ppt_第2页
C语言程序开发实例.ppt_第3页
C语言程序开发实例.ppt_第4页
C语言程序开发实例.ppt_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第12章C语言程序开发实例,本章要点:应用程序设计步骤C语言综合实例的开发,学习方法建议:通过C语言综合实例的开发,掌握C语言应用程序开发的一般步骤,重点掌握结构化程序设计的思想。,进行应用程序设计时一般遵循以下步骤:1可行性研究在应用程序开发之前,要对需要解决的问题进行定义,对问题的性质、目标和规模进行确切的了解。同时要研究这个问题是否值得解决,也就是对要开发的系统进行可行性研究,可行性研究的目的就是用最小的代价在尽可能短的时间内,确定问题是否能够解决,从而确定问题是否值得解决。2需求分析需求分析是指在可行性研究基础上进行更细致的分析工作,需求分析过程实际上是一个调查研究、分析综合的过程,是一个抽象思维的过程。需求分析阶段务必详细、具体地理解用户要解决的问题,明确系统必须做什么,系统必须具备哪些功能,把来自用户的这些信息加以分析提炼,最后从功能和性能上加以描述。还要通过分析实际问题,了解已知或需要的输入数据、输出数据,需要进行的处理。,12.1应用程序设计步骤,3.系统设计系统设计是把软件需求变换成为软件的具体方案,可分为总体设计和详细设计。总体设计通常用结构图描绘程序的结构,以确定程序由哪些模块组成以及模块间的关系,即解决怎样做的问题。详细设计就是给出问题求解的具体步骤。这个阶段主要是对模块过程的说明,这种说明可以使用图形、表格、公式或文字来描述。不管使用哪种表达方式,都应当给编码人员提供足够准确的信息,尽量避免歧义性,根据它可以很快地写出源程序。4软件编码软件开发的最终目标是把软件设计结果翻译成计算机能够理解和执行的形式,也就是选择适当的程序设计语言,把详细设计的结果描述出来,即形成源程序。,5软件测试可以选择若干具有代表性的输入数据,其中包括合理的数据(包括边界值)和不合理的数据,进行测试,尽量使程序中的每个语句和每个分支都被检查到,以期待发现程序中的错误的漏洞,然后针对出现的问题,对算法和程序进行修改。6文档编制开发者编制程序文档的主要目的是为了让别人了解自己编写的算法和程序。文档包括源程序代码、算法(程序)的流程图、开发过程中各阶段的有关记录、算法(程序)的正确性证明、程序的测试结果、对输入/输出的要求及格式的详细描述等。,12.2.1学生成绩管理系统1案例描述开发一个学生成绩管理系统,用于对班级的学生成绩进行处理。学生的基本信息包括学号、姓名、三门课的成绩和平均分。2设计分析本系统是一个学生综合管理系统,能够完成对学生成绩的综合管理,本系统具备如下的基本功能:输入学生基本信息、追加、修改、删除、查找、浏览学生和排序等功能。,12.2应用程序设计实例,本系统由9个模块组成,结构图如图12-1所示。,3设计方案(1)定义数据结构由于学生的基本数据信息包括学号、姓名、3门课成绩和平均分,所以决定采用结构体类型来描述,具体定义如下:structstudentcharnum6;/*学号*/charname8;/*姓名*/intscore3;/*3门课成绩*/floatavr;/*平均分*/,(2)主界面设计。为了程序界面清晰,主界面采用菜单设计,便于用户选择执行,如图12-2所示。,(3)输入数据模块(函数名为creat)。本模块功能是从键盘输入N个学生数据(包括学号、姓名、3门课成绩)并存放到磁盘文件“stud”中,“stud”为二进制数据文件,用函数fread()和fwrite()完成读写操作。(4)追加数据模块(函数名为add)。通过该模块可以随时添加多个学生的信息。(5)修改学生信息模块(函数名为modify)。当输入数据出现错误时,可以使用修改学生信息模块进行修改,可以对每个学生的学号、姓名、成绩进行修改。(6)删除学生信息(函数名为del)。用来删除某个学生的信息。(7)浏览学生信息模块(函数名为show)。当每次进行一项操作后,可以通过调用该模块来查看操作情况,也可以单独浏览学生基本信息。(8)查找学生信息模块(函数名为search)。本模块可以通过姓名查找某个学生的基本信息。(9)排序模块(函数名为sort)。可按照学生的平均分进行降序排序。4实现程序略,12.2.2单位员工通讯录管理系统1案例描述为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录链表的输出。2设计分析在本设计中,整个通讯录可以采用顺序表或链表方式存储。采用前者,可以提高查询速度;采用后者,可以提高插入与删除记录的效率。在本系统中对查询速度要求不高,所以采用链表存储结构。数据结点类型采用单链表来实现的。,3设计方案(1)存储结构类型定义/*员工通讯信息的结构类型定义*/typedefstructcharnum5;/*员工编号*/charname8;/*员工姓名*/charphone9;/*办公室电话号码*/charcall12;/*手机号码*/DataType;/*通讯录单链表的结点类型*/typedefstructnodeDataTypedata;/*结点的数据域*/structnode*next;/*结点的指针域*/ListNode,*LinkList;,(2)主要功能函数设计建立通讯录链表采用手工输入的方法,逐个输入每个员工的信息,每输入一个自动创建一个结点,并插入链表中,直到所有的员工信息输入完毕,通讯录链表也就建立好了。查询功能:可以按照编号或姓名在链表中顺序查找出对应的记录。插入新的记录:将新记录结点插入到头结点之后,成为链表中的第一个记录结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论