C_C++程序设计-电子教案-李云峰 第10章 综合应用程序设计

上传人:E**** 文档编号:89389479 上传时间:2019-05-24 格式:PPT 页数:46 大小:1.03MB
返回 下载 相关 举报
C_C++程序设计-电子教案-李云峰 第10章 综合应用程序设计_第1页
第1页 / 共46页
C_C++程序设计-电子教案-李云峰 第10章 综合应用程序设计_第2页
第2页 / 共46页
C_C++程序设计-电子教案-李云峰 第10章 综合应用程序设计_第3页
第3页 / 共46页
C_C++程序设计-电子教案-李云峰 第10章 综合应用程序设计_第4页
第4页 / 共46页
C_C++程序设计-电子教案-李云峰 第10章 综合应用程序设计_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《C_C++程序设计-电子教案-李云峰 第10章 综合应用程序设计》由会员分享,可在线阅读,更多相关《C_C++程序设计-电子教案-李云峰 第10章 综合应用程序设计(46页珍藏版)》请在金锄头文库上搜索。

1、第10章 综合应用程序设计,本章教学内容,10.1 电子万年历,电子万年历在计算机系统中、手机里、电子词典中、MP4播放器中、办公桌上,甚至家庭摆设等随处可见。 1、系统设计的教学目标 掌握语言程序设计的基本知识、基本思想和基本应用,熟悉了解开发应用系统的基本方法。 2、系统开发的知识要点 标准输入/输出函数的应用; 顺序结构、选择结构、循环结构的程序设计方法; 系统库函数的应用方法; 用户自定义函数的定义、声明及调用方法等。 按功能模块进行设计、组织、调试的基本方法。,10.1.1 系统设计目标,10.1.2 系统需求分析,1、基本需求 电子万年历用来提供查询,主要实现以下三个查询功能: 功

2、能1:要求从键盘输入年份,输出该年12个月的日历。 功能2:要求从键盘输入年份和月份,输出该月的日历。 功能3:要求从键盘输入年、月、日, 输出该日是星期几。 2、功能要求 日历显示功能:自动显示系统日期所在月份的月历, 并能突出显示当期日期。 日期查询功能:显示查询日期、月份、是否为闰年。 支持键盘操作:通过键盘调整年份、月份和日期。 参数排错功能:能对输入的日期进行合法性检查。,10.1.3 系统总体设计,1、系统结构设计 根据以上需求分析,系统应有功能控制、打印输出、日历显示和键值获取等4个功能模块,系统结构如图101所示。,10.1.3 系统总体设计,2、主控函数main() 本系统的

3、结构由4个模块所组成,由主函数main()实行控制,按照系统工作顺序,其工作流程如图102所示。 主控函数主要对输入参数进行检查,以保证输入参数正确,不会对后续程序造成影响;其次,对输入的年份和月份进行处理和计算,判断输入年份是否为闰年。,图 102 万年历设计流程图,10.1.3 系统总体设计,3、功能模块设计 功能控制模块:用来实现日期合法性检查、闰年判断和星期计算。 打印输出模块:用来实现输出显示和打印指定个数的空格、打印分隔线、打印用户使用手册、打印当前日期你对应的星期以及打印给定的星期。 日历显示模块:用来实现日历生成和显示。 键值获取模块:主要用于对键盘操作的响应,由函数void

4、getKey Value()获取按键值,根据键值调整当前日期,并调用日历显示模块中的showCalendar()函数来实现日历生成和输出,其实现过程如图104所示。,10.1.3 系统总体设计,4. 数据结构设计 本程序没有自定义结构体,仅定义了全局变量。 struct date sysTime:系统结构体,用于存储系统日期。该结构体有3个成员,分别是da_year、da_mon和da_day,分别表示年、月和日。 int currentYear:表示当前的年份。 int currentMonth:表示当前的月份。 int currentDay:表示当前的日期。 int n_currentMo

5、n:表示当前月的天数。 int n_lastMon:表示上一个月的天数。,10.1.4 系统功能实现,电子万年历系统设计项目的实现分为项目建立、项目需求分析、项目算法设计、代码编写与调试、代码测试、代码完善等多个环节。 1、函数功能描述 在进行本项目的程序设计时,建议按教材358页表101定义模块中的函数,然后进行调试。 2、模快化编程 根据模块结构,按模块进行编程,并在每个程序代码前写上模块显示结构。 参数输入与验证:对输入参数作验证,若输入参数不合法,则重新输入,允许输入3次,若3次均不正确,则结束程序 。,10.1.4 系统功能实现, 闰年判断:判断year为闰年还是平年,为后续程序设计

6、作判断。仿照算法设计中的公式,写出闰年判断函数leapyear()。 计算是星期几:根据dayNum()函数返回的结果,计算month中的星期值。 计算是第几天:根据输入的month值,计算month第一天在该年中是第多少天。 3. 程序编码的基本原则 易修改:为了便于日后修改,每个函数应在入口处加入较详细的注释。 易记忆:给变量命名时,名字中尽可能多地包含必要的信息。,10.1.4 系统功能实现, 易阅读:当结构嵌套时,内层结构采用缩进形式,以明确结构的界限。 易理解:尽量采用容易理解的表达式。 易排错:编码最基本的要求是语法和逻辑的正确。 4、调试程序 异常处理:通过输入错误数据格式验证工

7、程代码对异常输入的处理能力。 平年2月验证:输入2011-2能验证千年2月的打印输出。 闰年其它月份验证:输入闰年的其它月份如2012-11可以验证输出结果。 平年其它月份验证:输入平年其它月份如2011-11可以验证输出结果。,10.2 俄罗斯方块游戏,1、系统设计的教学目标 本项目旨在训练学生的基本编程能力和游戏开发技巧,熟悉C语言图形模式下的编程。本项目中涉及C语言的结构体、数组、时钟中断及绘图等方面的知识。 2、系统开发的知识要点 这里介绍开发俄罗斯方块游戏的实现方法,用C语言编程实现俄罗斯方块游戏涉及的主要知识点有以下几个方面:结构体、数组、时钟中断及绘图等方面的知识。 应用结构体类

8、型编程; 应用数组编程; 时钟中断系统的应用方法; C语言的绘图知识等;,10.2.1 系统设计目标,10.2.2 系统需求分析,1、基本需求 游戏本身是一种娱乐,因此,必须使游戏者在游戏过程中感到有趣。与此同时,通过这种“娱乐”,应能对游戏者在智能、创造性等方面具有一定的启迪、激发、引导作用。 2、功能要求 要使游戏者感到该游戏格外有趣,在游戏操作过程中,游戏系统应具有以下功能和特点: 游戏操作引导:在游戏过程中,在当前游戏画面中,出现下一个游戏方块,这样有利于游戏者控制游戏的策略。 方便任意操作:能实现对游戏方块的左、右、下、上的快速移动、下落和旋转。,10.2.2 系统需求分析, 画面显

9、示更新:当游戏方块左右移动、下落、旋转时,要清除先前的游戏方块。 具有成绩记录:在游戏过程中自动计算游戏分数,以激励游戏者具有技能性的操作。 游戏帮助功能:游戏者进入游戏后,系统具有随时跟踪本游戏如何操作的友情提示。,10.2.3 系统总体设计,1、系统结构设计助 根据以上需求分析,系统应有游戏方块预览功能、控制功能、显示更新功能、速度更新功能、帮助功能等,其模块结构如图105所示:,图 105 俄罗斯方块游戏功能描述图, 方块预览模块:在游戏过程中,当在游戏底板中出现一个游戏方块时,必须在游戏方块预览区域中出现下一个游戏方块,这样有利于游戏玩家控制游戏的策略。 方块控制模块:通过各种条件的判

10、断,实现对游戏方块的左移、右移、快速下移、自由下落、旋转功能以及行满消除行的功能。 显示更新模块:当游戏方块左右移动、下落、旋转时,要清除先前的游戏方块,用新坐标重绘游戏方块。当消除满行时,要重绘游戏底板的当前状态。 速度更新模块:在游戏者进行游戏过程中,需要按照一定的游戏规则给游戏者计算游戏分数。 帮助功能模块:游戏者进入游戏后,将有对本游戏如何操作的温馨提示。,10.2.3 系统总体设计,2. 主控函数main( ) 主控函数main( )实现对整个程序的运行控流程制以及相关功能模块的调用。 3. 功能模块设计 整个游戏的操作是通过以下5个功能模块来实现的。 方块预览模块:游戏方块将在如图

11、107所示的44的正方形小方块中预览。 方块控制模块:这是该游戏开发的重点和难点部分。 左移的实现过程。 右移的实现过程 下移的实现过程 旋转的实现过程,10.2.3 系统总体设计, 显示更新模块:清除游戏方块的过程是先画轮廓再填充的方式,使用背景色填充小方块,然后使用前景色画一个游戏底板中的小方块。 分数更新模块:当判断出一行满时,score变量加一固定值(如10),可以把等级level看作是速度speed 4、数据结构设计 游戏底板BOARD结构体 游戏方块SHAPE结构体 SHAPE结构数组,10.2.3 系统总体设计,10.2.4 系统功能实现,1、函数功能描述 在进行本项目的程序设计

12、时,建议按教材367页表102定义模块中的函数,然后进行调试。 2、模块化编程 俄罗斯方块程序按模块化编程,分为4个功能模块 。 主函数main():实现对整个程序的运行控制。 时钟中断处理:速度越快,时间中断的间隔也就越短。 成绩、速度及帮助的显示:为了帮助游戏者操作,必须提供帮助,为了鼓励游戏者,必须显示游戏成绩与速度。 满行处理:当游戏方块不能满足相关操作条件时,可以调用以下函数来处理。,10.3 图书借阅管理系统,1、系统设计的教学目标 设计一个图书借阅管理系统,需要使用函数、数组、指针、结构体、链表和文件等,基本上涵盖了C语言程序设计的所有基础阶段的知识。 2、系统开发的知识要点 函

13、数的定义与调用; 指针变量做为函数参数; 结构体数组的应用; 字符串函数的应用; 文件的打开、关闭及读/写操作等。,10.3.1 系统设计目标,10.3.2 系统需求分析,1、基本需求 图书借阅管理系统中的实体主要有图书和用户。对一般用户来说,主要功能有查找图书、浏览图书、借书、还书等;对管理员来说,除了一般用户的权限外,还具备有管理功能,即注册图书、注册用户、注销图书、注销用户等维护管理功能。 2、功能要求 一个功能比较完善、具有实用价值的图书借阅管理系统,从业务流程来讲,要求能实现用户的注册、注销、查找、浏览、借书、还书,图书的注册、注销、查找、浏览、外借和归还等。因此,应具有以下6项基本

14、功能。 用户登录:系统用户分为管理员和学生。,10.3.2 系统需求分析, 图书信息管理:包括;书号、书名、作者、图书分类、出版社、出版时间、单价、总量和库存量。 学生信息管理。包括:输入学生信息、保存学生信息、修改学生信息、添加学生信息、删除和输出学生信息。 图书查询功能:图书查询分为:按书名查询、按作者查询、按图书分类查询、按出版社查询和按出版时间查询。 借书功能:借书时,先判断学生是否有空闲的借书卡,若有空闲的借书卡,则要求学生输入所借图书的书号。 还书功能:还书时,先检查学生的借书卡,然后要求学生输入所还图书的书号,将对应借书卡上的记录清零,并修改该书的库存量。,10.3.3 系统总体

15、设计,1、系统结构设计 根据上述需求分析,图书借阅管理系统应具有用户登录管理模块、图书信息管理模块、学生信息管理模块、图书查询管理模块、图书借阅管理模块,其结构如图109所示。 用户登录管理模块:用于实现管理员和学生登录管理。 图书信息管理模块:用于实现图书信息的输入、保存、修改、添加、删除、输出等。 学生信息管理模块:用于实现学生信息的输入、保存、修改、添加、删除、输出等。 图书查询管理模块:用于实现按不同条件对图书信息进行查询。 图书借阅管理模块:用于实现图书的借阅和归还管理。,2、主控函数main() 图书借阅管理系统由5个模块组成,所有模块都位于主函数main()之下,用户通过主函数中

16、提供的菜单选择相应的模块,执行具体的功能操作,因此,主函数的设计是极为重要的。 3、功能模块设计 用户登录管理模块:是进入图书借阅管理系统的必备模块,主要实现两项功能,一是用来完成管理员登录工作 ;二是用来完成学生登录工作 。 图书信息管理模块:用于实现图书信息的输入、保存、修改、添加、删除、输出等6个方面的操作。 学生信息管理模块:其功能与图书信息管理模块相似,它用于实现学生信息的输入、保存、修改、添加、删除、输出等6个方面的操作。,10.3.3 系统总体设计, 图书信息查询模块:用于实现按不同条件对图书信息进行查询。 图书借阅管理模块:主要是对图书借阅卡的信息管理,包括图书借阅管理和图书归还管理。 4、数据结构设计 该系统可以定

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号