网站大量收购独家精品文档,联系QQ:2885784924

第12章 综合实训.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 综合实训

第12章 综合实训 * §12.1 综合实训一:24点程序 ★ 问题描述 编写一个解24点游戏的程序。规则:随机给出4个1~10之间的正整数,通 过简单的四则运算和括号组合,使得表达式的最终运算结果等于24,要求 计算机列出所有满足要求的表达式。 ★问题分析 ●朴素解法 用a、b、c、d代替4个正整数,用‘#’、‘$’、‘’代表3个运算符。 ◆每个运算符有加、减、乘、除四种,则3个运算符共有4×4×4=64种。 ◆加上括号运算,3个运算符一共会产生3!=6种情况。 ? #$-(((a#b)$c)d) ? #$-((a#b)$(cd)) ? $#-((a#(b$c)d)) ? $#-(a#((b$c)d)) ? #$-((a#b)$(cd)) ? $#-(a#(b$(cd))) 这两种情况相同,实际只有5种情况。 ◆问题描述中4个数字的顺序可以改变,因此共有4!=24种表达式。 综上所述:4个数字最多可以产生64×5×24=7680种表达式。但对表达式的求值是一 复杂的过程,“朴素解法”并非本程序的较优解法。 ●改进方法 ★数据结构分析 ●选择一:将4个数合并成一个有4个元素的集合,然后递归式的依次分割 成两个非空真子集进行运算。 ●选择二:将4个数包装成4个只有一个元素的集合,然后递推式组合出2-4 个元素的集合。 ★程序执行流程和设计分析 ★程序的运行和测试 §12.2 综合实训二:五子棋游戏 ★问题描述 请用所学的C语言知识实现一个命令行下的五子棋游戏。要求有棋盘界面 并实现人与人,人与计算机,计算机与人三种 对弈模式。 ★问题分析 ●游戏界面。可借助Unicode码字符集的一些特殊符号来实现命令行下的 界面。 ●由于要实现三种对弈模式,对弈程序的实现必须分三种情况: ◆人与人:程序只需要根据人的指令落子,并根据游戏规则判断输赢。 ◆人与计算机:人先落子,计算机后落子。程序必须具有一定的智能性, 需要根据人的落子情况,自动选择最有利的落子位置。 ◆计算机与人:计算机先落子,人后落子。处理过程与上一种情况类似。 ○ ┨ ┷ ┛ ┓ 符号 0xA1F1 ● 0xA1F0 0xA9E0 ┼ 0xA9CC 0xA9C4 ┠ 0xA9DB xA9D3 ┯ 0xA9BF 0xA9BB ┗ 0xA9B7 0xA9B3 ┏ unicode unicode 符号 程序用到的Unicode码表 ●定义一个整型二维数组来记录棋盘的状态。 #define BOARD_SIZE 15 int chessboard[BOARD_SIZE+2][BOARD_SIZE+2] ★数据结构分析 ●定义一个坐标数据类型,它是一个由横坐标X和纵坐标Y组成的结构体。 typedef struct{ int x,y; }POINT; ●定义一个数组,用来遍历棋子的八个方向。 const int dir[4][2]={ {0,-1},//横 {-1,-1},//撇 {-1,0},//竖 {-1,1},//捺 }; ★程序执行流程和设计分析 ◆显示棋盘 ●函数init_chessboard对棋盘状态数组chessboard初始化,生成一张空棋盘。 ●用systerm函数调用系统清屏命令。 ●在Windows下要调用systerm(“color F0”),将屏幕设置成白底黑字。 ◆对弈 ●人落子操作通过函数from_user完成; ●机器落子操作通过函数from_computer完成; ●通过函数has_end判断比赛是否已经结束。 ◆落子 ●函数calc_value用来扫描整个棋盘,对每个未落子的位置进行分析 ,获得 “将棋子放到该处”的价值,最后把棋子摆放在价值最高的地方。 ●函数from_user只要确保用户从键盘输入的位置是可用的。 ★程序运行和测试 §12.3 综合实训三:通用的管理信息系统 ★问题描述

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档