计算机C语言暑期实习报告

发布 2022-08-24 00:08:28 阅读 8425

暨软件设计评审报告。

学号: 20071000684

姓名: 魏建辉。

班序号: 12307205

学院: 数学与物理学院。

专业:信息与计算科学。

指导老师: 李向老师。

实习时间: 08.8.22~28

目录。一、实习题目编号:

二、需求分析。

三、总体设计。

系统总体设计思路:

功能模块的分化:

四、详细设计。

运行结果:算法总结:

系统优缺点评估:

系统改进设想:

五、上机操作:

六、附录即源**:

七、心得与总结。

一、 实习题目。

编号05.一担挑游戏

要求]简单计算机模拟棋盘对弈。其中棋盘左上角坐标为(1,1),右下角坐标为(3,3)。游戏规则如下:

1) 计算机移动时,使用相应函数扫描棋盘矩阵,寻找未占单元:发现空单元后,置为“o”,未发现时,报告平局后退出。

2) 轮到对弈者时,使用相应函数要求对弈者回答想把“x”放到**。

3) 谁先三点连成一线了,则报告谁胜出。

4) 计算机与对弈者每下一步棋都会使相应位置变为“o”和“x”,便于在屏上显示矩阵。

[提示]棋盘位置用2维数组代表,初始状态每一位置均为“ ”空)。其分隔线(及棋盘线)可用—和|来分格。

二、 需求分析。

根据题目要求,由于程序要求计算机模拟简单棋盘对弈,所以系统涉及到了二维数组的引用;同时,在对弈期间,计算机移动时,系统要不停的扫描棋盘矩阵来寻找未占单元,所以程序提供了显示、浏览、查找、排序等操作:另外系统还能提供键盘式选择菜单来实现功能的选择。

三、总体设计

根据题意来看,此程序可分为棋盘输入、检查空挡和退出三大模块。

四、 详细设计。

1. 主函数程序设计; 此主函数设计的较为简洁,仅提供了数据输入、功能处理等函数的调用。

2. 以下是主函数程序。

流程图】主程序】

main主函数***

while(done对弈结果显示*/

if(done=='x')

printf("恭喜恭喜 you win!");

else printf("you lost! 下次加油");

disp退出***

getchar();

return 0; }

3. 各功能模块设计。

1) 棋盘输入模块。

【数据结构】

我们在此程序中使用的数据是二维数组来建造棋盘,并使用相应函数来移动棋子。

分析】用二维数组构造了棋盘,用间隔线分割棋盘后,就可以按自己意愿和计算机对弈了,此后每走一步,计算机都会调用相应函数扫描棋盘。而题目就是要求这样的棋盘。

【程序】棋盘输入模块。

char qi pan[3][3];

void init_qipan(void) ;九格棋盘*/

int i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

qipan[i][j]='

2) 对弈模块。

【问题分析】

该模块的功能是提供给用户模拟棋。

盘使用户按自己的思想来下棋,这期间涉及了两种情况1.用户输入错误,2.棋子位子错误。

程序】用户方面对弈。

void player_move(void)

int x,y;

printf("it's your turn,please:")

scanf("%d%*c%d",&x,&y);

x--;y--;

if(qipan[x][y]!=

printf("error, try again.");

player_move();

else qipan[x][y]='x';

计算机方面对弈。

void computer_move(void)

int i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(qipan[i][j]==

break;

if(qipan[i][j]==

break;

if(i*j==9)

printf("pingju");

exit(0);

else qipan[i][j]='0';

3) 显示模块。

需求分析】该模块的作用是显示对弈结果。即要求计算机调用相关的函数多次扫描棋盘,谁的棋优先连成一线了,计算机就判定谁胜出:这期间有三种情况;1.

用户是胜者,2.计算机胜出,3.二者打成平局。

程序】void disp(void)

int t;

for(t=0;t<3;t++)

printf("%c|%c|%c",qipan[t][0],qipan[t][1],qipan[t][2]);

if(t!=2)

printf("-|-n");

printf("");

char check(void)

int i;

for(i=0;i<3;i++)

if(qipan[i][0]==qipan[i][1]&&qipan[i][0]==qipan[i][2])

return qipan[i][0];

for(i=0;i<3;i++)

if(qipan[0][i]==qipan[1][i]&&qipan[0][i]==qipan[2][i])

return qipan[0][i];

for(i=0;i<3;i++)

if(qipan[0][0]==qipan[1][1]&&qipan[0][0]==qipan[2][2])

return qipan[0][0];

for(i=0;i<3;i++)

if(qipan[0][2]==qipan[1][1]&&qipan[1][1]==qipan[2][0])

return qipan[0][2];

return '

五、 上机操作。

1. 数据源。

2. 编译、连接和运行。

3. 结果。

下面是这个程序的运行界面图:

界面一即主函数显示:

界面二及移动一个棋子后:

界面三即移动两个棋子后:

界面四即移动了三个棋子后:

六、 附录即源**:

#include ""

#include ""

void init_qipan();

void player_move();

void computer_move();

void disp();

char check();

int main(void)

char done;

done='

init_qipan();

dodisp();

player_move();

done=check();

if(done!='

break;

computer_move();

done=check();

while(done=='

if(done=='x')

printf("恭喜恭喜 you win!");

elseprintf("you lost! 下次加油");

disp();

getchar();

return 0;

char qipan[3][3];

void init_qipan(void)

int i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

qipan[i][j]='

void player_move(void)

int x,y;

printf("it's your turn,please:")

scanf("%d%*c%d",&x,&y);

x--;y--;

if(qipan[x][y]!=

printf("error, try again.");

player_move();

else qipan[x][y]='x';

void computer_move(void)

int i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(qipan[i][j]==

break;

if(qipan[i][j]==

break;

if(i*j==9)

printf("pingju");

exit(0);

elseqipan[i][j]='0';

void disp(void)

int t;

for(t=0;t<3;t++)

printf("%c|%c|%c ",qipan[t][0],qipan[t][1],qipan[t][2]);

if(t!=2)

printf("-|-n");

printf("");

char check(void)

int i;

for(i=0;i<3;i++)

if(qipan[i][0]==qipan[i][1]&&qipan[i][0]==qipan[i][2])

return qipan[i][0];

for(i=0;i<3;i++)

if(qipan[0][i]==qipan[1][i]&&qipan[0][i]==qipan[2][i])

return qipan[0][i];

for(i=0;i<3;i++)

if(qipan[0][0]==qipan[1][1]&&qipan[0][0]==qipan[2][2])

return qipan[0][0];

for(i=0;i<3;i++)

if(qipan[0][2]==qipan[1][1]&&qipan[1][1]==qipan[2][0])

return qipan[0][2];

XX年暑期计算机实习报告

实习报告要求内容详实 层次清楚 侧重实际动手能力和技能的培养 锻炼和提高,这是对今后工作的经验积累,利于今后工作更顺利。为大家整理了暑假实习报告计算机,希望你能喜欢!参考借鉴。暑假实习报告计实习报告要求内容详实 层次清楚 侧重实际动手能力和技能的培养 锻炼和提高,这是对今后工作的经验积累,利于今后工...

选修计算机C语言作业答案

计算机等级考试 c语言程序设计。一 选择题 40分 下列各题a b c d 四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。c 1 程序流程图中指有箭头的线段表示的是 a 图元关系 b 数据流 c 控制流 d 调用关系 a 2 结构化程序设计的基本原则不包括 ...

2023年上计算机c试卷C语言

二级 c语言程序设计 一 单项选择题 每题1分,共40分 1 计算机可以与象棋大师进行下棋比赛,这属于计算机在 a 方面的应用。a 人工智能b 科学计算c 数据处理d 计算机辅助设计。2 计算机运算器的主要功能是 d a 实现算术运算b 实现逻辑运算。c 分析指令并进行译码d 实现算术运算和逻辑运算...