c语言五子棋课程设计.doc_第1页
c语言五子棋课程设计.doc_第2页
c语言五子棋课程设计.doc_第3页
c语言五子棋课程设计.doc_第4页
c语言五子棋课程设计.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

枣枣 庄庄 学学 院院 信息科学与工程学院信息科学与工程学院 课程设计任务书课程设计任务书 题目 C 语言程序设计 五子棋 学 号 201112130335 姓 名 张 培 培 专 业 软 件 外 包 课 程 C 语言程序设计 指导教师 马怀志 职称 助 教 完成时间 2012 年 5 月 2012 年 5 月 枣庄学院信息科学与工程学院制 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 1 年 月 日 课程设计任务书及成绩评定课程设计任务书及成绩评定 课程设计的任务和具体要求课程设计的任务和具体要求 1 目的 1 复习 巩固 C 语言的基础知识 进一步加深对 C 语言的理解和掌握 2 课程设计为学生提供了一个既动手又动脑 独立实践的机会 将课本上的理论知识和实 际有机的结合起来 锻炼学生的分析解决实际问题的能力 提高学生适应实际 实践编程的 能力 3 培养学生在项目开发中团队合作精神 创新意识及能力 2 要求 1 对系统进行功能模块分析 控制模块分析正确 符合课题要求 实现相应功能 可以加 以其他功能或修饰 使程序更加完善 合理 2 系统设计要实用 编程简练 可用 功能全面 3 说明书 流程图要清楚 4 记录设计情况 备查 也为编写设计说明书作好准备 5 要求采用模块化程序设计方法 及锯齿型书写格式 要求上机调试通过和按设计报告格 式 指导教师签字 日期 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 2 指导教师评语指导教师评语 成绩 指导教师签字 日期 课程设计所需软件 硬件等课程设计所需软件 硬件等 软件 Microsoft Visual C 6 0 操作系统 WIN xp Rom 256 Cpu 1 6Ghz 课程设计进度计划课程设计进度计划 起至日期起至日期工作内容工作内容备注备注 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 3 5 月 25 日 5 月 26 日 5 月 27 日 进行程序设计需求分析 分析程序代码 撰写课程设计任务书 参考文献 资料索引参考文献 资料索引 序号文献 资料名称编著者出版单位 1 贾宗璞 许合利 C 语言程序设计 江苏 中国矿业大学出版社 2007 6 2 谭浩强 C 程序设计 第二版 北京 清华大学出版社 2001 1 3 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 4 目 录 摘 要 1 第 1 章 需求分析 1 1 1 五子棋背景 1 1 2 程序设计 1 1 2 1 程序需求分析 1 1 2 2 程序流程设计 2 第 2 章 概要设计 3 2 1 1 各类头文件 变量及宏定义 3 2 1 2 全局变量 4 2 2 图形模块 4 2 3 玩家操作模块 4 2 4 胜负判断模块 5 2 5 玩家计分模块 5 2 6 各模块之间调用关系如下 6 第 3 章 详细设计 6 3 1 图形模块 6 3 2 玩家操作模块 10 3 3 胜负判断模块 12 3 4 文件操作模块 15 3 5 函数大致调用关系图 18 第 4 章 调试分析 19 4 1 图形模块 19 4 2 玩家操作模块 20 4 3 胜负判断模块 20 4 4 玩家计分模块 20 第 5 章 用户手册 21 第 6 章 测试分析 21 结 论 22 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 1 摘摘 要要 五子棋是一种两人对弈的纯策略型棋类游戏 应用 C 语言编写程序可以 在计算机上实现二人对弈五子棋功能 二人对弈五子棋程序由图像生成 光 标移动与落子 判断胜负和系统帮助等子程序构成 程序中应用了结构体 数组 全局变量 按键处理和图形编程等元素和语句 程序通过棋盘和棋子 图像生成 二人移子与落子和判断胜负等功能的实现 在计算机上实现了二 人五子棋对弈 第第 1 1 章 需求分析章 需求分析 1 11 1 五子棋背景五子棋背景 传统五子棋的棋具与围棋相同 棋子分为黑白两色 棋盘为 15 15 棋 子放置于棋盘线交叉点上 两人对局 各执一色 轮流下一子 先将横 竖 或斜线的 5 个或 5 个以上同色棋子连成不间断的一排者为胜 因为传统五子棋在落子后不能移动或拿掉 所以也可以用纸和笔来进行 游戏 1 21 2 程序设计程序设计 本程序设计为人与人对弈 一方执黑棋 一方执白棋 轮流走棋 每方 都试图在游戏结束前让自己的棋子五子相连 首先实现五子相连的一方获胜 程序执行过程中 要求棋盘 棋子时时可见 并且人可以通过按键盘按键移 动光标 摆放棋子 1 2 11 2 1 程序需求分析程序需求分析 根据功能需求 将程序分为图形显示 玩家控制 胜负判断和玩家计分 四个模块 以下分析各模块的需求 图形显示模块 程序开始运行时 给出欢迎及帮助界面 游戏开始后要 求生成 19 19 的棋盘图像 并在棋盘上方提示当前落子方棋子颜色 游戏进 行过程中 要求实时显示棋盘上已落下的棋子 分出胜负后 要求给出游戏 结束画面 玩家控制模块 程序开始时 需玩家确定而后开始游戏 游戏过程中 两个玩家通过不同的按键移动光标 选择落子 游戏结束时 有玩家选择是 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 2 否开始新棋局 胜负判断模块 实时监测棋盘上棋子 一旦某一色棋子出现五子连线 终止游戏程序 并着色连成一线的五子 弹出该色玩家胜出界面 玩家计分模块 一方玩家再胜利后通过对文件的操作进行计分 并输出 于计分板上 1 2 21 2 2 程序流程设计程序流程设计 根据程序需求分析结果 可以得出程序的总体结构图如图 1 程序总体 流程图如图 2 图 1 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 3 第第 2 2 章 概要设计章 概要设计 2 1 12 1 1 各类头文件 变量及宏定义各类头文件 变量及宏定义 include stdio h include Conio h include graphics h include include define closegr closegraph 定义 1 号玩家的操作键键码 define W 0 x1177 上移 W define S 0 x1f73 下移 S define A 0 x1e61 左移 A define D 0 x2064 右移 D define SP 0 x3920 落子 空格键 定义 2 号玩家的操作键键码 define UP 0 x4800 上移 方向键 up define DOWN 0 x5000 下移 方向键 down define LEFT 0 x4b00 左移 方向键 left define RIGHT 0 x4d00 右移 方向键 right define ENTER 0 x1c0d 落子 回车键 Enter define ESC 0 x011b 退出 define Y 0 x1579 YES define N 0 x316e NO define BACK 0 xe08 悔棋 define DEL 0 x5300 删除比分 2 1 22 1 2 全局变量全局变量 int ch dh del 文件操作计分变量 int k i j n t 控制变量 int a 20 20 棋盘数组 2 22 2 图形模块图形模块 棋盘的显示由游戏开始与结束部分控制 棋子以及棋子定位框的显示与 保留由玩家操控部分决定 本章只列写棋盘与棋子的显示程序 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 4 图形模块主要由以下函数组成 initgr 图形界面初始化函数 Welcome 欢迎界面 Help 帮助界面 board 画棋盘 white 画白棋子 black 画黑棋子 bye 结束界面 green 连珠时着色相应棋子 show drawmat 显示中文的点阵图函数 以及产生动态变色效果 border 棋子定位框函数 delborder 删除当前位置棋子定位框函数 p1turn 轮到 1p 时在左边边框画出白棋以及输出 white turn 以提示 1p 进行 操作 p2turn 轮到 2p 时在右边边框画出黑棋以及输出 black turn 以提示 2p 进行 操作 p1del 轮到 2p 时去除 p1turn 函数的效果 p2del 轮到 1p 时去除 p2turn 函数的效果 2 32 3 玩家操作模块玩家操作模块 棋子的移动与落子有键盘上按键控制 本程序选取 1P 按键为 W S A D 和空格键 2P 按键为 和回车键 分别代表上移 下移 左移 右移光标和落子 在光标移动的过程中 光标按照玩家按键移 动 在玩家按下落子按键后 程序自动调用棋子显示子程序和判断胜负子程 序 1P 2P 的落子后 程序会为落子处的数组元素赋一个特定值 用于判定 胜负 玩家操作模块主要由以下函数构成 P1move 玩家 1 移动函数 P2move 玩家 2 移动函数 Back 悔棋函数 2 42 4 胜负判断模块胜负判断模块 胜负判断模块是程序的关键 该模块的设计直接关系到程序的运行速率 和运行结果的正确与否 本函数根据每次落子的位置 分别向上 下 左 右 左上 左下 右上 右下八个方向判断是否有相同颜色的棋子连成五子 如果成立 游戏就结束 并显示提示信息 否则继续落子 以下简析本程序流程 由获胜条件可以知 通过判断上 下 左 右 斜上 斜下八个方向上是否有连续的 5 个子即可得出是否获胜结果 在游戏 开始时 将棋盘初始化 即将棋盘抽象为一个 19 19 的数组 数组中每个元 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 5 素数值设为 6 1P 落子时 将数组内相应坐标处元素赋值为 0 2P 落子时 将数组内相应坐标处元素赋值为 1 通过循环扫描棋盘数组 如果 上 下 左 右 斜上 斜下八个方向某 5 个连续的子所对应的数组中元素之和等于 5 时 1P 获胜 当上 下 左 右 斜上 斜下八个方向某 5 个连续的子所 对应的数组中元素之和等于 0 时 2P 获胜 胜负判断模块主要由以下几个函数构成 Win 主要函数 判断胜负 P1win p1 胜利时调用 用于告知 p1 玩家胜利及询问是否继续 P1win p2 胜利时调用 用于告知 p2 玩家胜利及询问是否继续 restart 询问是否重新开始新的一局比赛的函数 initialization 初始化棋盘对应数组所有值为 6 2 52 5 玩家计分模块玩家计分模块 为了能使 1p 和 2p 更直观更便捷地看到双方对战的比分 所以做了此计 分模块 因为分数不能因为重新调用 main 函数就丢失了 所以采用对文件 的操作 通过文件来记录双方的比分 这里对 score1 txt 和 score2 txt 文 件进行操作 用来计 1p 和 2p 的分数 玩家计分模块主要由以下几个函数构成 Point 整合所有文件操作的模块 p1 point input 1p 计分文件读取 p1 point input2 1p 计分文件写入 p1 point output 1p 计分文件输出 p2 point input 2p 计分文件读取 p2 point input2 2p 计分文件写入 p2 point output 2p 计分文件输出 delscore1 删除当前 1p 分数 delscore2 删除当前 2p 分数 2 62 6 各模块之间调用关系如下各模块之间调用关系如下 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 6 第 3 章 详细设计 3 13 1 图形模块图形模块 initgr BGI 初始化 int gd DETECT gm 0 和 gd VGA gm VGAHI 是同样效果 registerbgidriver EGAVGA driver 注册 BGI 驱动后可以不需要 BGI 文件 的支持运行 initgraph welcome 欢迎界面 initgr 初始化 clearviewport 清屏 setcolor 2 设置颜色 settextstyle 0 0 6 样式 outtextxy 180 180 Welcome 位置以及内容 settextstyle 0 0 2 文本样式 outtextxy 240 420 press any key to continue 位置以及内容 getch press any key to continue help 帮助界面 基本操作同 welcome 函数 initgr clearviewport setcolor 2 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 7 settextstyle 0 0 2 outtextxy 60 100 P1 move W S A D outtextxy 60 120 set space outtextxy 60 180 P2 move up down left right outtextxy 60 200 set Enter outtextxy 60 240 You can press Backspace to pull back outtextxy 60 280 When you want to quit the game outtextxy 60 300 press Esc outtextxy 220 440 press any key to continue getch bye say bye 实现功能同上 initgr clearviewport setcolor 4 settextstyle 0 0 6 outtextxy 130 180 Thank you settextstyle 0 0 2 outtextxy 240 420 press any key to quit getch board 画棋盘 setcolor 14 线色 setfillstyle 1 6 样式 bar 120 50 520 450 棋盘底 for k 0 k 21 k line 120 20 k 50 120 20 k 450 竖线 line 120 50 20 k 520 50 20 k 横线 setfillstyle 1 9 bar 540 200 620 300 1p2p 两边框 bar 20 200 100 300 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 8 setcolor 2 settextstyle 3 0 4 outtextxy 50 210 1p outtextxy 570 210 2p delay 50000 show 显示动态变色效果的标题 moveto 320 250 初始化中心位置 border 画定位框 p1turn p1 开始落子 游戏开始 white 画白棋 setcolor 15 setfillstyle 1 15 circle getx gety 9 floodfill getx gety 15 black 画黑棋 setcolor 0 setfillstyle 1 0 circle getx gety 9 floodfill getx gety 0 green 用粉色着色连珠时的棋子 setcolor 13 setfillstyle 1 13 circle getx gety 9 floodfill getx gety 13 p1turn 画左边边框内白棋子 setcolor 15 setfillstyle 1 15 circle 60 250 9 floodfill 60 250 15 settextstyle 3 0 4 outtextxy 20 280 white turn p2turn 右边边框内黑色棋子 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 9 setcolor 0 setfillstyle 1 0 circle 580 250 9 floodfill 580 250 0 settextstyle 3 0 4 outtextxy 540 280 black turn p1del 不是 1turn 时候抹去左边边框内棋子 setfillstyle 1 9 floodfill 60 250 9 setcolor 9 settextstyle 3 0 4 outtextxy 20 280 white turn p2del 不是 2turn 时候抹去右边边框内棋子 setfillstyle 1 9 floodfill 580 250 9 setcolor 9 settextstyle 3 0 4 outtextxy 540 280 black turn border 画定位框 setcolor 14 line getx 8 gety 9 getx 3 gety 9 通过画线函数画出定位框 line getx 8 gety 9 getx 3 gety 9 line getx 8 gety 9 getx 8 gety 4 line getx 8 gety 9 getx 8 gety 4 line getx 8 gety 9 getx 3 gety 9 line getx 8 gety 9 getx 3 gety 9 line getx 8 gety 9 getx 8 gety 4 line getx 8 gety 9 getx 8 gety 4 delborder 除去定位框 setcolor 6 本质在于颜色覆盖 line getx 8 gety 9 getx 3 gety 9 line getx 8 gety 9 getx 3 gety 9 line getx 8 gety 9 getx 8 gety 4 line getx 8 gety 9 getx 8 gety 4 line getx 8 gety 9 getx 3 gety 9 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 10 line getx 8 gety 9 getx 3 gety 9 line getx 8 gety 9 getx 8 gety 4 line getx 8 gety 9 getx 8 gety 4 drawmat char mat int matsize int x int y int color 点阵图所用标准输出方 式 int i j k m m matsize 1 8 1 for j 0 j matsize j for i 0 i m i for k 0 k k putpixel x i 8 k y j color show 动态点阵图中文闪烁效果 for n 0 n 3 n delay 10000 drawmat wu32K 32 240 0 3 输出点阵图的 五 字 delay 10000 drawmat zi32K 32 290 0 3 delay 10000 drawmat qi32K 32 340 0 3 delay 10000 drawmat wu32K 32 240 0 2 delay 10000 drawmat zi32K 32 290 0 2 delay 10000 drawmat qi32K 32 340 0 2 3 23 2 玩家操作模块玩家操作模块 p1move 玩家 1 操作 switch bioskey 0 bioskey 函数对键盘操作 case W 上移 if gety 90 delborder moveto getx 430 所有 if 语句作用在于 如果落子即将溢出边 框 让其改变位置到 另一端 例如移动棋 盘最上端 若继续向 上移动 则移动至棋 盘最下端对应位置 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 11 delborder moverel 0 20 border p1move case A 左移 if getx 410 delborder moveto getx 70 delborder moverel 0 20 border p1move case D 右移 if getx 480 delborder moveto 140 gety delborder moverel 20 0 border p1move case SP 落子 if a getx gety 6 判定如果棋盘此处无子才能下 否则重新调用 p1move 函数 p1move delborder 去除定位框 white 画棋子 a getx gety 1 将所在位置对应的数组点赋值为 1 win 判断胜负 border 在新的位置画出定位框 p1del p2turn p2move case ESC 结束游戏 bye closegraph exit 0 case BACK 悔棋操作 back p1del p2turn p2move default p1move p2move 玩家 2 操作 switch bioskey 0 case UP if gety 90 delborder moveto getx 430 delborder moverel 0 20 border p2move 对左右两边提示框操作 提示轮到 2p 进行操作 并调用 p2move 函 数 P2move 函数与 p1move 函 数基本作用相同 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 12 case LEFT if getx 410 delborder moveto getx 70 delborder moverel 0 20 border p2move case RIGHT if getx 480 delborder moveto 140 gety delborder moverel 20 0 border p2move case ENTER if a getx gety 6 p2move delborder black a getx gety 0 win border p2del p1turn p1move default p2move case ESC bye closegraph exit 0 case BACK back p2del p1turn p1move back 悔棋功能 setcolor 6 setfillstyle 1 6 circle getx gety 9 floodfill getx gety 6 通过将现有棋子覆盖与棋盘底色相同的颜色来实 现 setcolor 14 line getx 9 gety getx 9 gety line getx gety 9 getx gety 9 3 33 3 胜负判断模块胜负判断模块 win 胜负判断主程序 因为覆盖棋盘颜色后对应的棋 谱线条颜色被覆盖 所以通过 画线函数补回被覆盖负分的线 色 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 13 for i 120 i 540 i i 20 for j 50 j 470 j j 20 通过循环扫描整个棋盘判定胜负 if a i j a i 20 j a i 40 j a i 60 j a i 80 j 5 a i j a i j 20 a i j 40 a i j 60 a i j 80 5 a i j a i 20 j 20 a i 40 j 40 a i 60 j 60 a i 80 j 80 5 a i j 80 a i 20 j 60 a i 40 j 40 a i 60 j 20 a i 80 j 5 如果棋盘上任何位置数组对应的值之和为 5 则白方 5 子连珠 if a i j a i 20 j a i 40 j a i 60 j a i 80 j 5 moveto i j green delay 10000 moveto i 20 j green delay 10000 moveto i 40 j green delay 10000 moveto i 60 j green delay 1 0000 moveto i 80 j green delay 10000 else if a i j a i j 20 a i j 40 a i j 60 a i j 80 5 moveto i j green delay 10000 moveto i j 20 green delay 10000 moveto i j 40 green delay 10000 moveto i j 60 green delay 1 0000 moveto i j 80 green delay 10000 else if a i j a i 20 j 20 a i 40 j 40 a i 60 j 60 a i 80 j 80 5 moveto i j green delay 10000 moveto i 20 j 20 green delay 10000 moveto i 40 j 40 green delay 10000 moveto i 60 j 60 green delay 10000 moveto i 80 j 80 green delay 10000 else if a i j 80 a i 20 j 60 a i 40 j 40 a i 60 j 20 a i 80 j 5 moveto i j 80 green delay 10000 moveto i 20 j 60 green delay 10000 moveto i 40 j 40 green delay 10000 moveto i 60 j 20 green delay 10000 moveto i 80 j green delay 10000 delscore1 p1 point input2 p1 point output p1win if a i j a i 20 j a i 40 j a i 60 j a i 80 j 0 a i j a i j 20 a i j 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 14 40 a i j 60 a i j 80 0 a i j a i 20 j 20 a i 40 j 40 a i 60 j 60 a i 80 j 80 0 a i j 80 a i 20 j 60 a i 40 j 40 a i 60 j 20 a i 80 j 0 if a i j a i 20 j a i 40 j a i 60 j a i 80 j 0 moveto i j green delay 10000 moveto i 20 j green delay 10000 moveto i 40 j green delay 10000 moveto i 60 j green delay 1 0000 moveto i 80 j green delay 10000 else if a i j a i j 20 a i j 40 a i j 60 a i j 80 0 moveto i j green delay 10000 moveto i j 20 green delay 10000 moveto i j 40 green delay 10000 moveto i j 60 green delay 1 0000 moveto i j 80 green delay 10000 else if a i j a i 20 j 20 a i 40 j 40 a i 60 j 60 a i 80 j 80 0 moveto i j green delay 10000 moveto i 20 j 20 green delay 10000 moveto i 40 j 40 green delay 10000 moveto i 60 j 60 green delay 10000 moveto i 80 j 80 green delay 10000 else if a i j 80 a i 20 j 60 a i 40 j 40 a i 60 j 20 a i 80 j 0 moveto i j 80 green delay 10000 moveto i 20 j 60 green delay 10000 moveto i 40 j 40 green delay 10000 moveto i 60 j 20 green delay 10000 moveto i 80 j green delay 10000 delscore2 p2 point input2 p2 point output p2win 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 15 p1win setcolor 15 settextstyle 0 0 2 outtextxy 10 110 1p win outtextxy 240 460 Restart Y N restart p2win setcolor 15 settextstyle 0 0 2 outtextxy 535 110 2p win outtextxy 240 460 Restart Y N restart restart switch bioskey 0 case Y main case N bye closegraph exit 0 default restart initialization for i 120 i 540 i for j 50 j 470 j 循环初始化棋盘对应的数组所在位置值为 6 a i j 6 3 43 4 文件操作模块文件操作模块 point 用于整合所有计分的函数 方便操 此处 2 个函数用于 1p 或 2p 获胜后的告知以及询问 是否开始新的一局 调用 restart 函数以继续或退出 通过对键盘的操作 提取 Y 或 N 以确定是否开始新的一 局 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 16 作 p1 point input p1 point output p2 point input p2 point output p1 point input 1p 计分文件读取 FILE fp fp fopen score1 txt r ch getw fp fclose fp p1 point input2 1p 计分文件输入 FILE fp fp fopen score1 txt r ch ch 1 putw ch fp fclose fp p1 point output 1p 计分输出 int i 0 char sh score 10 FILE fp fp fopen score1 txt r for sh fgetc fp EOF score i sh score i 0 setcolor 12 settextstyle 3 0 4 outtextxy 40 320 score outtextxy 55 340 score fclose fp 之所以做这么多函数来实现文件操作的计分 是因为我发现 C 语言中对文件操作似乎存在 bug 如果放在一个函数中经 常出现文件无法正常读取 无法正常写入等现象 即使拆分 成如此多函数 也依旧偶尔会出现以上提到的一些小 bug 首先打开文件 然后取出里面的 数字赋值于 ch 变量 再用另一 个函数打开文件并对 ch 进行自 增操作 最后将 ch 写入文件 通过再次打开文件 循环扫描 输 出文件中的数值并设置其样式 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 17 p2 point input FILE fp fp fopen score2 txt r dh getw fp fclose fp p2 point input2 FILE fp fp fopen score2 txt r dh dh 1 putw dh fp fclose fp p2 point output int i 0 char fh score 10 FILE fp fp fopen score2 txt r for fh fgetc fp EOF score i fh score i 0 setcolor 12 settextstyle 3 0 4 outtextxy 560 320 score outtextxy 575 340 score fclose fp 玩家 2 的计分模块 和玩家 1 的相同 就不再重复介绍 了 依旧通过循环读取文件内比分 然后通过颜色覆盖从而达到分数 改变功能 这么操作十分复杂 体现了 C 语言图形编程下的不完 善性 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 18 delscore1 删除当前 1p 分数 int i 0 char sh score 10 FILE fp fp fopen score1 txt r for sh fgetc fp EOF score i sh score i 0 setcolor 0 settextstyle 3 0 4 outtextxy 40 320 score outtextxy 55 340 score fclose fp delscore2 删除当前 2p 分数 int i 0 char fh score 10 FILE fp fp fopen score2 txt r for fh fgetc fp EOF score i fh score i 0 setcolor 0 settextstyle 3 0 4 outtextxy 560 320 score outtextxy 575 340 score 3 53 5 函数大致调用关系图函数大致调用关系图 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 19 枣庄学院 C 语言课程设计任务书 10 本三 软件外包专业 张培培 20 注 因为函数过多且调用关系过于复杂 没办法把所有函数的调用关系用图 表达 所以只能将大致的关系图表示出来 第第 4 4 章 调试分析章 调试分析 主要遇到的问题已经在详细分析里说道 这里主要列举一些遇到的一些 小问题 4 14 1 图形模块图形模块 1 在图形模块中 因为是第一次使用 所以刚开始时对于棋盘创建的位置把 握有些欠缺 解决方案 参考书本以及其他资料 找出最合适的位置坐标 2 在构建棋子时候 发现 C 语言中似乎对颜

温馨提示

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

评论

0/150

提交评论