欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言程序设计工程实训报告.docx

    • 资源ID:16392427       资源大小:199.30KB        全文页数:37页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计工程实训报告.docx

    1、C语言程序设计工程实训报告某某工程实训报告五子棋游戏 课程名称 C语言程序设计工程实训姓 名 院(系) 专业班级 学 号 指导教师 某某大学教务处制目 录1 需求分析 12 系统总框图和功能模块说明 12.1 系统总框图 12.2 功能模块说明 13 系统设计 23.1 主要结构体 23.2主要功能函数 23.3 关键函数的流程图 34.系统调试 55 总结 66 源程序清单 61 需求分析 系统以菜单方式工作 落子输入 实时浏览功能输出 存档,按文件查找。2 系统总框图和功能模块说明2.1 系统总框图图1 系统总框图2.2 功能模块说明棋局生成模块:生成棋局用户操作模块:用户落子,设定游戏等

    2、。游戏判断模块:判断游戏哪方玩家赢得比赛,游戏是否结束。3 系统设计3.1 主要结构体short LineNo_Color=15,RowNo_Color=15,Check_Color=6,X_Color=10,O_Color=12,Menu_Color=7,Game_Options_Color=7,Help_Color=7,Open_Sound=1,Auto_Save_Ending=1;int Game_Over3( int (*a)N , int chess_symbol )/* /形呈龙 */*以上全局变量依次表示:行序号颜色,列序号颜色,棋盘格线颜色,玩家1的棋子X颜色,玩家2的棋子O颜

    3、色,游戏主菜单GAME_MENU颜色,游戏设定菜单Game_Options颜色,关于游戏的颜色,是否开启游戏提示音,是否开启棋局终局自动保存3.2主要功能函数int main()void About_Game( )/*游戏帮助*/ int Game_Options( )/*游戏设定*/ int Game_Over1( int (*a)N , int chess_symbol )/* -形或者|形呈龙(事实上-与|关于对称) */ int Game_Over2( int (*a)N , int chess_symbol )/* 形呈龙 */int Game_Over3( int (*a)N ,

    4、int chess_symbol )/* /形呈龙 */void Init_Chess( int (*a)N )/*初始化棋盘,置棋盘上无任何棋子*/int Load_Chess( int (*a)N )/*读取棋局*/int Load_Options( )/*读取游戏设定*/void Print_Chess( int (*a)N )/*输出棋局,或者说画棋盘*/int Save_Chess( int (*a)N , char* ss )/*保存棋局*/int Save_Options( )/*保存游戏设定*/int String_to_Int( char* s , int max )/*字符

    5、串条件转化成整型*/3.3 关键函数的流程图void Init_Chess( int (*a)N )/*初始化棋盘,置棋盘上无任何棋子*/int String_to_Int( char* s , int max )/*字符串条件转化成整型*/int main()4.系统调试菜单如上图:5 总结本次做的五子棋游戏,界面有点简陋,可观性不强,因为操作是要靠输入坐标的方式落子的,可操作性不强,希望能在以后的学习中能够努力的学习这方面的不足。由于这个游戏是人人对战的,而非人际对战,缺少可玩性,但愿能在日后的学习中做出人机对战的程序来,这无疑是需要强大的算法和坚实的基础,熟练的技巧的,这对我也是很大的挑

    6、战 。6 源程序清单#include #include #include #define N 19#define SetColor(x) SetConsoleTextAttribute(setcolor,x) short LineNo_Color=15,RowNo_Color=15,Check_Color=6,X_Color=10,O_Color=12,Menu_Color=7,Game_Options_Color=7,Help_Color=7,Open_Sound=1,Auto_Save_Ending=1;/*以上全局变量依次表示:行序号颜色,列序号颜色,棋盘格线颜色,玩家1的棋子X颜色,玩

    7、家2的棋子O颜色,游戏主菜单GAME_MENU颜色,游戏设定菜单Game_Options颜色,关于游戏的颜色,是否开启游戏提示音,是否开启棋局终局自动保存*/void Init_Chess( int (*a)N )/*初始化棋盘,置棋盘上无任何棋子*/int i, j;for( i = 0; i N; i+ )for( j = 0; j N; j+ )a i j = ;int String_to_Int( char* s , int max )/*字符串条件转化成整型*/int i, n = 0;for( i=0; s i = 0; i+ )n = 10 * n + s i - 0 ; /*

    8、s i - 0 , not s i - 0 */return ( ( s i = 0 ) & ( max 0 | n = max ) ) ? n : -1;/*任何一个输入都可以看成是一个不定长的字符串,此函数用来处理非法输入问题,比如输入整型数据时输入了含有字母等非数字字符*/void Print_Chess( int (*a)N )/*输出棋局,或者说画棋盘*/int i, j;HANDLE setcolor=GetStdHandle( STD_OUTPUT_HANDLE );SetColor( 11 );/*设定颜色*/SetColor( LineNo_Color );printf(LR

    9、 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19n);for( i = 0; i N; i+ )SetColor( Check_Color );printf( |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|n);SetColor(RowNo_Color);printf( %2d , i + 1 );SetColor( Check_Color );printf(|);for( j = 0; j N; j+ )if( aij = X )SetColor( X_Color );elseSetColor( O_Color

    10、);printf( %c , a i j );SetColor( Check_Color );printf(|);printf(n);printf( |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|n);int Game_Over1( int (*a)N , int chess_symbol )/* -形或者|形呈龙(事实上-与|关于对称) */int i, j, k, l, r;for( i=0; i N; i+ )for( k=0; k N-4; k+ )l=r=0;for( j=k; j k+5; j+ )/* algorithm error: j k+5;

    11、 not j j+5; */if( aij = chess_symbol )/* -形呈龙 */l+;if( aji = chess_symbol )/* |形呈龙 */r+;if( l = 5 | r = 5 )/*连续的5个棋子在一条直线上时,游戏结束*/return 1;return 0;int Game_Over2( int (*a)N , int chess_symbol )/* 形呈龙 */int i, j, k, m, LeftDown, RightUp;for( m=0; m N-4; m+ )for( k=0; k N-4-m; k+ )RightUp=LeftDown=0;

    12、for( i=k , j=k+m; i = 4; m- )for( k=0; k m + 1 - 4; k+ )RightDown=LeftUp=0;for( i=k , j= m - k; i k+5; i+ , j- )if( aij = chess_symbol )/* 对角线/上及其左上方的/形呈龙 */LeftUp+;if( aN-1-jN-1-i = chess_symbol )/* 对角线/上及其右下方的/形呈龙 */RightDown+;/* 上面应该是 aN-1-jN-1-i , 而不是 aN-jN-i */if( RightDown = 5 | LeftUp = 5 )re

    13、turn 1;return 0;/*以上三个函数通过遍历棋盘所有的可能呈龙情况以判定游戏是否over了*/ int Save_Chess( int (*a)N , char* ss )/*保存棋局*/int i, j;FILE* fp;if( strcmp( ss , save ) = 0 )/*保存当前未结束的棋局*/if( ( fp = fopen( Save.sav , w ) ) = NULL )printf( Cant open file Save.sav !n);return 0;elseprintf(当前棋局已经成功保存到存档文件Save.sav中!n);else /*保存棋局终

    14、局*/if( ( fp = fopen( Ending.txt , a ) ) = NULL )printf( Cant open file Ending.txt !n);return 0;elseprintf(棋局终局已经成功保存到文本文件Ending.txt中!n);fprintf( fp , LR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19n );for( i = 0; i N; i+ )fprintf( fp , |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|n );fprintf( fp , %2d|

    15、 , i + 1 );for( j = 0; j 1 | X_Number - O_Number -1 )/*检查棋盘数据是否合法*/return -1;rewind(fp);/*文件指针移至文件首*/c = fgetc(fp);while( c != EOF & i O_Number ? 2 : 1;/*返回读档后的优先下棋的玩家*/ int Load_Options( )/*读取游戏设定*/char c;short Option_Value10 = 0 , i = 0 ;FILE* fp;if( ( fp = fopen( Config.ini , r ) ) = NULL )/*检测配置

    16、文件Config.ini是否在当前目录下*/return 0;c=fgetc(fp);while( c != EOF )if( c = 0 )Option_Value i = 10 * Option_Value i + c - 0 ;/* c - 0 , not c */if( c = n )if( Option_Value i 1 & i 8 )/*确保颜色属性值合法,即不小于1*/return -1;i+;c=fgetc(fp);fclose(fp);LineNo_Color = Option_Value0;/*加载配置文件Config.ini中的设定*/RowNo_Color = Opt

    17、ion_Value1;Check_Color = Option_Value2;X_Color = Option_Value3;O_Color = Option_Value4;Menu_Color = Option_Value5;Game_Options_Color = Option_Value6;Help_Color = Option_Value7;Open_Sound = Option_Value8;Auto_Save_Ending = Option_Value9;return 1;int Game_Options( )/*游戏设定*/HANDLE setcolor=GetStdHandle

    18、(STD_OUTPUT_HANDLE);int temp;short i;char s10;while(1)system(cls);SetColor(11);SetColor(Game_Options_Color);printf(*-*-*-*-*-*-*Game_Options*-*-*-*-*-*-*n);printf( 1.查看各种颜色的属性值(1-15);n);printf( 2.设定行序号的颜色;n);printf( 3.设定列序号的颜色;n);printf( 4.设定棋局格线(棋盘)的颜色;n);printf( 5.设定玩家1的棋子的颜色;n);printf( 6.设定玩家2的棋子

    19、的颜色;n);printf( 7.设定游戏主菜单Game_Menu的颜色;n);printf( 8.设定游戏设定菜单Game_Options的颜色;n);printf( 9.设定关于游戏的颜色;n);printf(10.设定是否开启游戏提示音;n);printf(11.设定是否开启棋局终局自动保存;n);printf(12.保存当前设定到配置文件Config.ini中;n);printf(13.加载配置文件Config.ini中的设定;n);printf(14.恢复游戏设定至默认值;n);printf(15.退出游戏设定菜单Game_Options.n);printf(请输入一个整数以决定你要

    20、设定的项目:);scanf(%s,s);temp = String_to_Int( s , 15 );switch( temp )case 1:system(cls);for( i=1 ; i 0 )LineNo_Color = temp;printf(已成功设定行序号的颜色!n);elserintf(非法的颜色属性值!n);break;case 3:printf(请输入列序号颜色的属性值(1-15):);scanf(%s,s);temp = String_to_Int( s , 15 );if( temp 0 )RowNo_Color = temp;printf(已成功设定列序号的颜色!n)

    21、;elseprintf(非法的颜色属性值!n);break;case 4:printf(请输入棋局格线(棋盘)颜色的属性值(1-15):);scanf(%s,s);temp = String_to_Int( s , 15 );if( temp 0 )Check_Color = temp;printf(已成功设定棋局格线(棋盘)的颜色!n);elseprintf(非法的颜色属性值!n);break;case 5:printf(请输入玩家1的棋子(棋子符号X)颜色的属性值(1-15):);scanf(%s,s);temp = String_to_Int( s , 15 );if( temp 0 )X_Color = temp;printf(已成功设定玩家1的棋子的颜色!n);elseprintf(非法的颜色属性值!n);break;case 6:printf(请输入玩家2的棋子(棋子符号O)颜色的属性值(1-15):);scanf(%s,s);temp = String_to_Int( s , 15 );if( temp 0 )O_Color = temp;printf(已成功设定玩家2的棋子的颜色!n);elseprintf(非法的颜色属性值!n);break;case 7:printf(请输入游戏主菜单Game_Menu的颜色的属性值(1-15):);scanf(%s,s);te


    注意事项

    本文(C语言程序设计工程实训报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开