当前位置:文档之家› C语言课设下棋范本

C语言课设下棋范本

C语言课设下棋范本
C语言课设下棋范本

辽宁工业大学

C语言程序设计课程设计(论文)题目:黑白棋游戏

院(系):软件学院

专业班级:计算机信息管理000班

学号: 000000000

学生姓名: 000000

指导教师:

教师职称:

起止时间:2009.12.14至2009.12.26

课程设计(报告)任务及评语

目录

第1章课程设计的目的与要求 (1)

1.1 课程设计目的 (1)

1.2 课程设计的实验环境 (1)

1.3 课程设计的预备知识 (1)

1.4 课程设计要求 (1)

第2章课程设计内容 (2)

2.1程序功能介绍 (2)

2.2程序整体设计说明 (2)

2.2.1设计思路 (2)

2.2.2数据结构设计及用法说明 (2)

2.2.3程序结构(流程图) (3)

2.2.4各模块的功能及程序说明 (3)

2.2.5程序结果 (6)

2.3程序源代码及注释 (8)

第3章课程设计总结 (17)

参考资料. (18)

第1章课程设计的目的与要求

1.1 课程设计目的

本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务:

1. 巩固和加深学生对C语言课程的基本知识的理解和掌握

2. 掌握C语言编程和程序调试的基本技能

3. 利用C语言进行基本的软件设计

4. 掌握书写程序设计说明文档的能力

5. 提高运用C语言解决实际问题的能力

1.2 课程设计的实验环境

硬件要求能运行Windows 2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。

1.3 课程设计的预备知识

熟悉C语言及C语言开发工具。

1.4 课程设计要求

1分析课程设计题目的要求

2. 写出详细设计说明

3. 编写程序代码,调试程序使其能正确运行

4. 设计完成的软件要便于操作和使用

5. 设计完成后提交课程设计报告

第2章课程设计内容

2.1程序功能介绍

黑白棋游戏是一个深受人们喜爱的游戏,有人机对弈和人人对以两种情况,人与人对弈一方执黑棋,一方执白棋,轮流走棋,每方都试图在游戏结束前让自己棋子的数目多于对方。按键盘上的方向键可以上下左右移动棋子,按回车键可以摆放棋子。

2.2程序整体设计说明

2.2.1设计思路

(1)每个棋手下棋时,摆子的位置必须是以自己的棋子能包围住对方一个或多个棋子,被包围住的对方棋子将成为自己的棋子。包围的方向可以是上下左右以及斜线8个方向,只要能连成一线即可。

(2)当轮到某一个棋手下子,但是他没有可以包围对方棋子的位置时,他必须停步,让对方走棋,直到他可以走为止。

(3)当棋盘上一方的棋子为0或者下满64格,游戏结束,棋子少者输

2.2.2数据结构设计及用法说明

在黑白棋的程序设计中主要应用了模块,利用主调函数和被调函数实现程序的运行。例如:在住函数中调用了函数DrawQp();以实现绘制棋盘的功能。在这个程序中多处运用这种调用关系,以实现程序的运行。

我首先使用了最简单的顺序结构程序设计。这是最基本的数据结构设计。按照我的设计思路按书写顺序依次执行主函数,接下来是各个被调函数,在对这些函数进行简单的连接。但程序都不会是简单的顺序结构,而是顺序、选择、循环三种结构的组合。所以在本程序的设计中,我大量的使用了选择结构和循环结构程序设计,进行选择结构程序设计需要考虑两个方面的问题:一是在C语言中如何表示条件,二是在C语言中用什么语句来实现选择结构。我使用了if语句实现选择结构,if语句一般用来实现单分支和双分支选择结构,有三种形式。例如在playtoplay模块中就大量的运用了if语句。而循环语句是一种算法多次执行,直到运行结束。在运用循环结构时,难在掌握好循环

体,比如在Qpchange模块中就运用了大量的for循环嵌套,并配合break、continue 使用进行循环。使程序更简洁,易读性加强。

2.2.3程序结构(流程图)

可参考流程图2.2.3-1

图2.2.3-1流程图

2.2.4各模块的功能及程序说明

(1)main()主函数

首先初始化图形模式,然后通过调用函数先画出棋盘,再开始游戏,一旦游戏结束则关闭图形模式,程序结束。

(2)DrawQp()画棋盘函数

先设置背景色,然后通过循环利用水平和垂直直线画出棋盘,再利用填充圆画出初始棋子。

(3)SetPlayColor()设置棋子的颜色

目的是为判断棋手和棋盘的变化,根据函数参数的值来设计填充棋子的当前颜色,值为1代表白棋,值为2代表黑棋。

(4)MoveColor()恢复原来棋子的状态

棋手要通过移动光标键走到落子的位置,在经过的路程上显示当前棋子,则会覆盖原来的棋盘状态,所以一旦棋子走过后,就应恢复原来的状态。

(5)playbplay()人人对战函数

这是游戏进行的函数,主要是接收棋手的按键消息,其处理过程如下:

1)按Esc键程序可以随时结束。

2)按上下左右光标键,则改变棋子移动的坐标值。

3)按回车键后判断:

如落子的位置已经有棋则无效,继续压键。

〔1〕如落子位置是空格,可以将棋子落入格内,调用函数QpChange()判断是否引起棋盘的变化,函数值为1有变化,为0没变化。如果棋盘有变化,说明将包围的对方棋子吃掉,统计当前分数,如果棋盘没有变化,则说明落子的位置无法包围对方的棋子也视为无效棋,可以继续寻找合适的位置,但开始统计其落子次数,一旦尝试次数超过当前棋盘的空格数,则说明他无棋可走,则放弃此步,让对方下棋。

〔2〕如果棋子变化后,格子已占满64格或一方棋子为0,则游戏结束,显示胜利方信息。按任意键程序结束。

〔3〕重复上述步骤,直到游戏结束。

(6)QpChange()判断棋盘变化

当棋手按回车键落子后,就要分别往8个方向判断是否包围住对方棋子,如果是,则改变棋盘,也就是棋盘上黑白棋子的个数要发生变化。表示黑白棋的图形用屏幕上的

像素坐标,而棋子的状态是数组元素a,所以要根据落子的坐标x和y计算出对应数组元素a的下标i和j。i代表行,j代表列,对于8×8的棋盘,它们的值为0-7,如果j<6,往右边判断,从当前位置开始,用循环语句判断右边是否有一个或连续多个对方的棋子,遇到自己的棋子或空格则结束循环,如果循环结束不是遇到空白,且列坐标小于8,则说明这些位置的棋子是被自己包围的对方棋子,将它们吃掉.也就是改变为自己的棋子,如果有棋子发生了变化,给棋盘变化标志值yes赋值为1,同样的方法向左、上、下等8个方向进行判断,并作相应的变化。如果所有方向都判断过,并且没有引起棋盘的变化,则棋盘变化标志值yes为0,返回yes,结束本函数。

(7)DoScore ()处理分数

根据当前数组元素的值判断分数,也就是各方棋子的个数,如果数组元素值为1,白棋棋子数累加;如果数组元素值为2,则黑棋棋子数累加。

(8)PrintScore()输出成绩

利用设置实体填充模式填充矩形条消除掉前次的成绩,再利用索赔sprintf()函数将整数转换为字符串的形式,再利用outtextxy0函数将成绩输出。

(9)playWin()输出胜利者结果

根据分数值score1和score2的大小得出下棋的结果,输出赢者信息。

2.2.5程序结果

运行结果可参照结果运行图 2.2.5-1,图 2.2.5-2,图 2.2.5-3,图 2.2.5-4,图2.2.5-5:

图2.2.5-1结果运行1

图2.2.5-2结果运行2

图2.2.5-3结果运行3

图2.2.5-4结果运行4

图2.2.5-5结果运行5

2.3程序源代码及注释

#include "graphics.h" /*图形系统头文件*/

#define LEFT 0x4b00 /*光标左键值*/

#define RIGHT 0x4d00 /*光标右键值*/

#define DOWN 0x5000 /*光标下键值*/

#define UP 0x4800 /*光标上键值*/

#define ESC 0x011b /* ESC键值*/

#define ENTER 0x1c0d /* 回车键值*/

int a[8][8]={0},key,score1,score2;/*具体分数以及按键与存放棋子的变量*/ char playone[3],playtwo[3];/*两个人的得分转换成字符串输出*/

void playtoplay(void);/*人人对战函数*/

void DrawQp(void);/*画棋盘函数*/

void SetPlayColor(int x);/*设置棋子第一次的颜色*/

void MoveColor(int x,int y);/*恢复原来棋盘状态*/

int QpChange(int x,int y,int z);/*判断棋盘的变化*/

void DoScore(void);/*处理分数*/

void PrintScore(int n);/*输出成绩*/

void playWin(void);/*输出胜利者信息*/

/******主函数*********/

void main(void)

{

int gd=DETECT,gr;

initgraph(&gd,&gr,"c:\\tc"); /*初始化图形系统*/

DrawQp();/*画棋盘*/

playtoplay();/*人人对战*/

getch();

closegraph();/*关闭图形系统*/

}

void DrawQp()/*画棋盘*/

{

int i,j;

score1=score2=0;/*棋手一开始得分都为0*/

setbkcolor(BLUE);

for(i=100;i<=420;i+=40)

{

line(100,i,420,i);/*画水平线*/

line(i,100,i,420); /*画垂直线*/

}

setcolor(0);/*取消圆周围的一圈东西*/

setfillstyle(SOLID_FILL,15);/*白色实体填充模式*/

fillellipse(500,200,15,15); /*在显示得分的位置画棋*/ setfillstyle(SOLID_FILL,8); /*黑色实体填充模式*/

fillellipse(500,300,15,15);

a[3][3]=a[4][4]=1;/*初始两个黑棋*/

a[3][4]=a[4][3]=2;/*初始两个白棋*/

setfillstyle(SOLID_FILL,WHITE);

fillellipse(120+3*40,120+3*40,15,15);

fillellipse(120+4*40,120+4*40,15,15);

setfillstyle(SOLID_FILL,8);

fillellipse(120+3*40,120+4*40,15,15);

fillellipse(120+4*40,120+3*40,15,15);

score1=score2=2; /*有棋后改变分数*/

DoScore();/*输出开始分数*/

}

void playtoplay()/*人人对战*/

{

int x,y,t=1,i,j,cc=0;

while(1)/*换棋手走棋*/

{

x=120,y=80;/*每次棋子一开始出来的坐标,x为行坐标,y为列坐标*/ while(1) /*具体一个棋手走棋的过程*/

{

PrintScore(1);/*输出棋手1的成绩*/

PrintScore(2);/*输出棋手2的成绩*/

SetPlayColor(t);/*t变量是用来判断棋手所执棋子的颜色*/

fillellipse(x,y,15,15);

key=bioskey(0);/*接收按键*/

if(key==ESC)/*跳出游戏*/

break;

else

if(key==ENTER)/*如果按键确定就可以跳出循环*/

if(y!=80&&a[(x-120)/40][(y-120)/40]!=1

&&a[(x-120)/40][(y-120)/40]!=2)/*如果落子位置没有棋子*/

{

if(t%2==1)/*如果是棋手1移动*/

a[(x-120)/40][(y-120)/40]=1;

else/*否则棋手2移动*/

a[(x-120)/40][(y-120)/40]=2;

if(!QpChange(x,y,t))/*落子后判断棋盘的变化*/

{

a[(x-120)/40][(y-120)/40]=0;/*恢复空格状态*/

cc++;/*开始统计尝试次数*/

if(cc>=64-score1-score2) /*如果尝试超则停步*/ {

MoveColor(x,y);

fillellipse(x,y,15,15);

break

}

else

continue;/*如果按键无效*/

}

DoScore();/*分数的改变*/

break;/*棋盘变化了,则轮对方走棋*/

else/*已经有棋子就继续按键*/

continue;

}

else /*四个方向按键的判断*/

if(key==LEFT&&x>120)/*左方向键*/

MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

x-=40;

fillellipse(x,y,15,15);

else

if(key==RIGHT&&x<400&&y>80)/*右方向键*/

{ MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

x+=40;

fillellipse(x,y,15,15);

} else

if(key==UP&&y>120)/*上方向键*/

{ MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

y-=40;

fillellipse(x,y,15,15);

} else

if(key==DOWN&&y<400)/*下方向键*/

{ MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

y+=40;

fillellipse(x,y,15,15);

} }

if(key==ESC)/*结束游戏*/

break;

if((score1+score2)==64||score1==0||score2==0)/*格子已经占满或一方棋子为0判断胜负*/

{

playWin();/*输出最后结果*/

break;

}

t=t%2+1; /*一方走后,改变棋子颜色即轮对方走*/

cc=0; /*计数值恢复为0*/

} /*endwhile*/

}

if(i>1&&j<6)/*右上*/

{

for(k=i-1,kk=j+1;k>=0&&kk<8;k--,kk++)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]&&k>=0&&kk<8)

{

for(ii=i-1,jj=j+1;ii>k&&k>=0;ii--,jj++)

{ a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

} if(ii!=i-1)

yes=1;

}

}

if(i<6&&j>1)/*左下*/

{

for(k=i+1,kk=j-1;k<8&&kk>=0;k++,kk--)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]!=0&&k<8&&kk>=0)

{

for(ii=i+1,jj=j-1;ii

{ a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

} if(ii!=i+1)

yes=1;

}

}

if(i>1&&j>1)/*左上*/

{

for(k=i-1,kk=j-1;k>=0&&kk>=0;k--,kk--)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]!=0&&k>=0&&kk>=0)

{

for(ii=i-1,jj=j-1;ii>k&&k>=0;ii--,jj--)

{ a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

} if(ii!=i-1)

yes=1;

}

}

if(i<6&&j<6)/* 右下*/

{

for(k=i+1,kk=j+1;kk<8&&kk<8;k++,kk++)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]!=0&&kk<8&&k<8)

{

for(ii=i+1,jj=j+1;ii

{ a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

} if(ii!=i+1)

yes=1;

}

}

return yes;/*返回是否改变过棋子颜色的标记*/

}

void DoScore()/*处理分数*/

{

int i,j;

score1=score2=0;/*重新开始计分数*/

if(a[i][j]==1)/*分别统计两个人的分数*/

score1++;

else

if(a[i][j]==2)

score2++;

}

void PrintScore(int playnum)/*输出成绩*/

{

if(playnum==1)/*清除以前的成绩*/

{

setfillstyle(SOLID_FILL,BLUE);

bar(550,100,640,400);

}

setcolor(RED);

settextstyle(0,0,4);/*设置文本输出样式*/

if(playnum==1)/*判断输出哪个棋手的分,在不同的位置输出*/ {

sprintf(playone,"%d",score1);

outtextxy(550,200,playone);

}

else

{

sprintf(playtwo,"%d",score2);

outtextxy(550,300,playtwo);

}

setcolor(0);

}

void playWin()/*输出最后的胜利者结果*/ {

settextstyle(0,0,4);

setcolor(12);

if(score2>score1)/*开始判断最后的结果*/ outtextxy(100,50,"black win!");

else

if(score2

outtextxy(100,50,"white win!");

else

outtextxy(60,50,"you all win!");

}

第3章课程设计总结

这次实训是老师给了范例程序,经过自己的改写,实现要求。先做简单的输出,一步步的再做其它图案,在实际操作过程中犯的一些错误还会有意外的收获,感觉实训很有意思。. 我首先分析了程序的功能要求,划分程序功能模块。然后画出系统流程图并进行代码的编写。然后定义数据结构和各个功能子函数。最后程序的功能调试。完成系统总结报告以及使用说明书

在具体操作中对这学期所学的C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。.

由于课程设计的时间较短,自身的知识水平有限,该系统的开发还有许多不尽如人意的地方,比如用户界面不够美观,出错处理不够完善等问题。这些都有待进一步的改善。但是,在这次课程设计中,我通过自己的努力以及老师和同学们的帮助,基本解决了所遇到的困难,按期完成了任务。

计时在此希望以后应多进行这样的实训,加长设间,培养学生独立思考问题的能力,提高实际操作水平。

五子棋c课程设计

目录第一章:课程设计目的和要求 (2) 1.1数据结构课程设计的目的 (2) 1.2数据结构课程设计实现的要求 (2) 第二章:课程设计任务内容 (3) 2.1五子棋对弈系统 (3) 第三章:详细设计说明 (4) 3.1功能设计 (4) 3.2五子棋对弈系统流程图 (4) 3.3软件中实现各项功能的函数与程序代码 (5) 第四章:程序运行环境说明 (10) 4.1程序运行环境说明及出现的问题 (10) 4.2运行结果 (10) 第五章:课程设计心得与体会 (14) 附录 (15) 源程序: (16) 五子棋 第一章课程设计目的和要求 1.1数据结构课程设计的目的 进一步培养结构化程序设计的思想,加深对高级系统语言基本语言要素和控制结构的理解,针对数据结构中的重点和难点内容进

行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。 此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。 1.2数据结构课程设计实现的要求 使用C++语言编写一个基于控制台的简单程序,使学生掌握简单的程序设计技巧。同时设计一个简单的五子棋对弈系统,可以实现五子棋的基本功能,是一款娱乐用的小型程序。 第二章课程设计任务内容 2.1五子棋对弈系统 设计一个五子棋系统程序,实现对五子棋进行运行。 基本要求:五子棋是有两个人在一盘棋上进行对抗的竞技活动。在对局开始时,先由用户选择哪方开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围交叉点上落子,如此轮流落子,知道某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方程就算获胜。 此时算法结束,当有任何一方退时出,都可在算法中实现。 第三章详细设计说明 3.1功能设计 (1)由两个玩家分别下棋,当某一玩家五子相连,则赢。

C语言图书管理系统课程设计报告[1]

第三章图书管理系统的设计与实现 3.1系统的需求分析 图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界面的提示信息对图书馆信息进行查询、初始化等操作 系统功能需求分析描述如下: (1)系统主菜单:进入系统和退出系统 (2)功能菜单:显示可以进行的操作 (3)查询主菜单:根据图书编号、书名、作者进行查询,并可显示所有图书信息 (4)借还书主菜单:可以进行借书和还书等操作 3.2系统的设计 3.2.1 系统的总统设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。 (2)系统模块结构图 根据需求分析结果,图书管理系统可以分为三大模块:查询

图书模块、借书功能模块、还书功能模块。 系统模块结构如图: 3.2.2 系统的概要设计 ㈠系统主菜单。 显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。功能主要包括:退出系统、查询图书、借书、还书。 ㈡查询图书信息 进入此菜单功能模块,输入您要查询的图书的编号、名字、作者等。 图书查询模块流程如图:

3.3 测试结果系统主界面

功能菜单 查询系统菜单

借还系统菜单 3.4 源代码 # include # include # include typedef struct link { char number[100]; char bookname[100]; char author[100]; char publish[100]; char time[100]; float price; char status[100]; struct link *next;

C语言程序设计实验报告参考答案

长沙理工大学C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: Thedressislong Theshoesarebig Thetrousersareblack 答案: #include main() { printf("Thedressislong\n"); printf("Theshoesarebig\n"); printf("Thetrousersareblack\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序:a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { inta,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x);

printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4.设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { inta,b,c; a=0; b=-10; c=(a>b)?b:a; printf("c=%d\n",c); }

C语言图形五子棋课程设计报告

北京师范大学C语言课程设计汇报 课题名称:游戏五子棋 指导老师:尹乾 课题组员:罗福莉赵帅帅何虹达院系:信息科学和技术 时间:20XX.3.15-20XX.4.20

摘要 五子棋是一个两人对弈纯策略型棋类游戏,应用C语言编写程序能够在计算机上实现二人对弈五子棋功效。二人对弈五子棋程序由欢迎界面显示、游戏界面生成、光标移动和落子、判定胜败、悔棋功效、提供音效等子程序组成;程序中应用了结构体、数组、全局变量、按键处理和图形编程等元素和语句。程序经过棋盘和棋子图像生成、二人移子和落子和判定胜败等功效实现,在计算机上实现了二人五子棋对弈。

目录 摘要-------------------------------------------------------------------------------------- 2 第1章:需求分析-------------------------------------------------------------------- 3 1.1五子棋背景-------------------------------------------------------------------- 3 1.2 五子棋需求分析和步骤设计 -------------------------------------------- 4 第2章:概要设计-------------------------------------------------------------------- 7 2.1 各类头文件和全局变量--------------------------------------------------- 7 2.2 画面显示模块---------------------------------------------------------------- 8 第3章:具体设计------------------------------------------------------------------ 11 3.1 玩家操作模块-------------------------------------------------------------- 11 3.2音效提供模块 -------------------------------------------------------------- 11 3.3 胜败判定模块-------------------------------------------------------------- 12 第4章:调试分析------------------------------------------------------------------ 13 4.1 图形模块 -------------------------------------------------------------------- 13 4.2 玩家操作模块-------------------------------------------------------------- 13 4.3 胜败判定模块-------------------------------------------------------------- 14 第5章:用户手册------------------------------------------------------------------ 14

图书管理系统的设计(C语言)

图书管理系统设计 图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等 功能描述: 1.新进熟土基本信息的输入 2.图书基本信息的查询 3.对撤消图书信息的删除 4.为借书人办理注册 5.办理借书手续 6.办理换书手续 要求:以文件方式存储数据,系统以菜单方式工作。 这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中竟然在QQ网络硬盘中找到了当初的teta版,发布于此,以作纪念。

C源代码如下: #include #include #include struct book{ char book_name[30]; int bianhao; double price; char author[20];

char state[20]; char name[20]; char sex[10]; int xuehao; struct book *book_next; }; struct club{ char name[20]; char sex[10]; int xuehao; char borrow[30]; struct club *club_next; }; void Print_Book(struct book *head_book);/*浏览所有图书信息*/ void Print_Club(struct club *head_club);/*浏览所有会员信息*/ struct book *Create_New_Book();/*创建新的图书库,图书编号输入为0时结束*/ struct book *Search_Book_bianhao(int bianhao,struct book *head_book); struct book *Search_Book_name(char *b_name,struct book *head_book); struct book *Search_Book_price(double price_h,double price_l,struct book *head_book); struct book *Insert_Book(struct book *head_book,struct book *stud_book);/*增加图书,逐个添加*/

华中科技大学计算机学院C语言课设实验报告

华中科技大学计算机科学与技术学院 《C语言程序设计》课程设计 实验报告 题目:科研项目信息管理系统 专业:计算机 班级: 学号: 姓名: 成绩: 指导教师:李开 完成日期:2009年10 月20 日

科研项目信息管理系统一、系统功能结构模块图 二、数据结构设计及其用法说明 typedef struct lakey{ char name[30];/*团队名称*/ int total;/*自然科学基金的科研项目数*/ float dudu;/*经费数*/ struct lakey *next; }*plakey;/*统计3中用到的数据结构*/ typedef struct emmey{ char name[30];/*团队名称*/ int teacher;/*老师人数*/ int harden;/*项目数*/ float bizhi;/*比值*/ struct emmey *next; }*pemmey;/*统计4中用到的数据结构*/ typedef struct kPro{ char code[15];/*项目编号*/ char sort;/*项目种类*/ int aking1; char time[8];/*项目时间*/ float dudu;/*项目经费*/ int aking2;

char beiler[15];/*负责人*/ int aking3; char keynoName[30];/*所在团队名称*/ struct kPro *next; }harden,*pHarden; typedef struct Komo{ int teacher;/*老师人数*/ char name[20];/*院系名称*/ int student;/*学生人数*/ float bizhi;/*二者比值*/ struct Komo *next; }*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/ typedef struct kTea{ char name[30];/*团队名称*/ char beiler[15];/*负责人*/ int stuNum;/*学生人数*/ int aking2; int coco;/*老师人数*/ char colName[20];/*所在院系的名称*/ int aking1; struct kTea *next; pHarden child; }keyno,*pKeyno; typedef struct edward{ char name[20];/*院系名称*/ int totalnum;/*项目总数*/ int num973;/*973项目数*/ int num863;/*863项目数*/ float amount;/*经费数*/ struct edward *next; }*pedward;/*统计2中用到的数据结构*/ typedef struct kCol{ char name[20];/*院系名称*/ int aking; char beiler[15];/*院系负责人*/ struct kCol *next; char call[15];/*负责人电话号码*/ pKeyno child; }kekey,*pKekey;

课程设计-c语言设计-五子棋游戏 0528

课程设计-c语言设计-五子棋游戏

河南城建学院 测绘与城市空间信息系 测绘程序设计 题目: 五子棋游戏 班级: 0614112 人数: 3人 成员: 学号: 指导老师: 时间:2012年6月

目录 1课程设计报告-------------------2 1.1问题描述----------------------2 1.2 任务分工- - - - - - - - - - - - - - - 2 1.3需求分析---------------------------3 1.4概要设计-----------------------3 1.5详细设计-----------------------4 1.6调试分析---------------------5 2源程序---------------------6 3程序的说明文件-------------------12 4课设总结-----------------------13

1.课程设计报告 1.1问题描述 连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。此时,算法结束。当有任何一方想退出时,都可在算法中实现。 1.2 五子棋的背景 传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为15×15,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。 1.2 任务分工 组长:赵哲武 负责小组程序的输入和创新部分,分配任务,使工作衔接有序,以

图书管理系统 (c语言)

程序设计方法课程设计

问题提出: 设计一个图书馆的图书管理,具体要求如下: 1.录入新采购的图书信息,做成文件book.in,要求有良好的输入界面; 2.查询各种图书的基本信息,设计出良好的查询界面; 3.按图书编号进行排序,将排好序的图书信息输出到文件book.out中。 4.统计各类图书册数、图书馆的图书总册数。 5.统计图书的借阅情况。 1.需求分析 对于图书馆的管理系统,应该满足以下的用户需求: ○1用户能够增加和删除一些图书。 ○2用户根据一些基本信息查询相应的图书,系统可以准确输出所有符合条件的图书信息。 ○3用户可以借阅和归还图书馆中的图书。 ○4系统可以对图书做出统计,包括图书总数,各类图书数目,图书的借阅情况。 2.设计分析 定义图书结构体,其成员包括书名、作者、类型、出版社、价格、是否借阅(整型,1为借出,0为未借)、编号。 输入新书时,利用结构体储存书的信息,同时将新书信息以二进制写入book.in文件中,录入结束后,将新书按输入顺序写入book.out中,并且以原来存书的最大编号为基准对新书进行编号,这样可以保证book.out文件存储的图书都是按编号进行排序的。 查找图书时,获得所查书目基本信息后,以二进制依次读取文件中的每一本图书信息,并与输入信息相比较,输出符合信息的图书。 删除图书时,通过输入的图书编号(编号可通过查找图书获得)查找相应图书,删除相应数据并保存。 借阅或归还图书时,通过图书编号(编号可通过查找图书获得)查找相应图书,修改图书的属性(是否借阅)并保存。 实现统计功能时,以二进制依次读取文件中的每一本图书信息,设置变量统计图书类型、借阅情况和图书总数,到文件结尾时,输出各个变量的值。

c语言程序设计报告 图书管理系统

中国地质大学本科生课程论文封面 课程名称c语言课程设计 教师姓名樊媛媛 本科生姓名 本科生学 本科生专业 所在院系 类别: 日期: 课程设计评语

注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。 目录

课程设计评语 (1) 目录 (2) 1.课程论文题目 (3) 2.程序设计思路 (3) 3.功能模块图 (4) 4.数据结构设计 (4) 5.算法设计 (4) 6.程序代码 (5) 7.程序运行结果 (11) 8.编程中遇到的困难及解决方法 (14) 9.总结心得及良好建议 (15) 10.致谢 (15) 1.课程论文题目 图书管理系统 2.程序设计思路

根据要求,图书管理系统以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保持记录以进行删除,查询,借书,还书,退出,添加等等操作;另外还有键盘式旋转菜单以实现功能选择模块。 3.功能模块图 系统功能模块图 4.数据结构设计 先写主函数main (),然后设计个功能选项,用switch选择,然后进入不同模块,进行不同选择,实现不同功能。每个图书信息设置一个结构体,将输入信息存入文件,提供查询功能,还有删除功能以及借书还书功能。每运行一功能后都返回主界面,方便再次选择,还有设置退出模块,方便退出。 5.算法设计

先定义结构体数组struct books,然后设置主界面,主界面出现6个功能选项,分 别是输入sr() 、借书js()、还书hs()、删除sc()、退出tc()、查询cx().各模块设计如下: 输入模块sr(),先调用文件eup,对其进行读取,然后增加,再对其进行保存和调用。其中结构体只输入tsmc图书名称,tsbh图书编号,dj单价,zz作者, 然后自动生成,czzt存在状态,姓名xm,学号xh,性别xb. 查询模块cx(),有选项图书编号和图书名称,然后选择,用if选择,然后用for循环查找,当输入名称与文件中的名称相同时,便显示此信息。 删除模块就是在查找功能的图书后,选择删除,将strcpy将s[i+1]的值赋给s[i]。借出模块也是在查询的基础上,若s[i]的存在状态为已借出,则显示已借出,无法再借,若未借出,则将s[i]的存在状态czzt变为已借出,然后输入姓名,学号,性别,最后显示出已借出。 还书模块就是在查询的基础上,若s[i]的存在状态为未借出,则无法归还,若借出,则将存在状态变为未借出,然后自动将姓名,学号,性别变为初始值。 退出模块使flag=1,而在main就有bool flag 且main中已令main=0.这样就实现了退出功能。 其中若输入超过选项值后,都会显示输入错误,请重新输入。若字符错误,程序就直接出现错误了。 6.程序代码 #include #include #include #include #define M 100 struct books { char tsmc[12]; int tsbh; float dj; char zz[12]; char czzt[12]; char xm[12];

五子棋C语言代码

#include "graphics.h" /*图形系统头文件*/ #define LEFT 0x4b00 /*光标左键值*/ #define RIGHT 0x4d00 /*光标右键值*/ #define DOWN 0x5000 /*光标下键值*/ #define UP 0x4800 /*光标上键值*/ #define ESC 0x011b /* ESC键值*/ #define ENTER 0x1c0d /* 回车键值*/ int a[8][8]={0},key,score1,score2;/*具体分数以及按键与存放棋子的变量*/ char playone[3],playtwo[3];/*两个人的得分转换成字符串输出*/ void playtoplay(void);/*人人对战函数*/ void DrawQp(void);/*画棋盘函数*/ void SetPlayColor(int x);/*设置棋子第一次的颜色*/ void MoveColor(int x,int y);/*恢复原来棋盘状态*/ int QpChange(int x,int y,int z);/*判断棋盘的变化*/ void DoScore(void);/*处理分数*/ void PrintScore(int n);/*输出成绩*/ void playWin(void);/*输出胜利者信息*/ /******主函数*********/ void main(void) { int gd=DETECT,gr; initgraph(&gd,&gr,"c:\\tc"); /*初始化图形系统*/ DrawQp();/*画棋盘*/ playtoplay();/*人人对战*/ getch(); closegraph();/*关闭图形系统*/ } void DrawQp()/*画棋盘*/ { int i,j; score1=score2=0;/*棋手一开始得分都为0*/ setbkcolor(BLUE); for(i=100;i<=420;i+=40) { line(100,i,420,i);/*画水平线*/ line(i,100,i,420); /*画垂直线*/ } setcolor(0);/*取消圆周围的一圈东西*/ setfillstyle(SOLID_FILL,15);/*白色实体填充模式*/ fillellipse(500,200,15,15); /*在显示得分的位置画棋*/ setfillstyle(SOLID_FILL,8); /*黑色实体填充模式*/ fillellipse(500,300,15,15); a[3][3]=a[4][4]=1;/*初始两个黑棋*/ a[3][4]=a[4][3]=2;/*初始两个白棋*/

(完整版)C语言课程设计实验报告

目录 目录 (1) 第1章问题描述 (2) 1.1 题目 (2) 1.2基本要求 (2) 第2章需求分析 (2) 1.1软件的基本功能 (2) 1.2输入/输出形式 (2) 1.3测试数据要求 (3) 第3章概要设计 (3) 1.1主程序 (3) 第4章详细设计 (4) 1.1数据类型 (4) 1.2伪码算法 (4) 1.3 程序流程图 (7) 第5章操作 (8) 1.1 进入足球比赛积分排行榜界面 (8) 1.2进入目录 (8) 1.3输入球队比赛信息 (10) 1.4 显示九轮比赛排行榜 (12) 1.5 保存数据 (15) 1.6 由D 盘查看数据 (16) 第6章参考文献 (16)

第1章问题描述 1.1 题目 足球比赛积分排行榜程序 1.2基本要求 (1)10个足球队进行9轮循环赛,胜一场积3分,平一场积1分,输一场积0分。 (2)如果两个队积分相同,进行净胜球的比较,如果净胜球再相同进行总进球的比较。 (3)编写一程序输入每轮比赛的比分,并可以存储。 (4)最后统计出每轮比赛的积分榜。 第2章需求分析 1.1软件的基本功能 (1)输入10个足球队的9轮比赛进球数。 (2)计算10个球队的积分,净胜球,总进球。 (3)对9轮比赛进行排序。 1.2输入/输出形式 由键盘输入,屏幕输出,并且以TXT形式保存。

1.3测试数据要求 输入九轮比赛10个足球队的进球数,由系统统计积分、净胜球、总进球数,并输出。 第3章概要设计 1.1主程序 头文件: #include 说明:main函数的头文件,控制整个程序。 #include 说明:清屏的头文件。 #include 说明:包括了大量的函数原型,调用现成的库函数。 #include 说明:基于char*的字符串处理函数。 全局变量: void input(); 输入数据函数 void sort(); 排序数据函数 void display(); 显示数据函数 void save(); 保存数据函数

c语言程序设计五子棋

伊犁师范学院高级语言课程设计报告 学院:电子与信息工程学院 学生姓名: 学号: 专业届别: 指导教师: 完成时间:

五子棋游戏 1 设计目的及要求 目的: (1)学习综合运用C语言课程和其他相关课程的知识,提高分析解决实际问题的能力,进一步巩固、加深和拓宽所学的知识,进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。 (2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法,与同学合作设计整套程序,并且独立完成一定工作量的程序设计. (3)掌握程序设计中的常用算法和C语言的程序技巧,培养良好的程序设计风格。 (4)运用所学的知识了解五子棋游戏的制作结构,将所学的知识运用于实践中。 要求: (1)独自设计、编制、调试出一款五子棋游戏。 (2)要求该游戏具有趣味性和可操作性,能够正常运行。其中用到C语言中的各种语句、结构。(如其中需要注意全局变量和局部变量的申明,数组的使用等)(3)五子棋游戏要求能够进入欢迎界面,当有五颗相同颜色的棋子连续连成五颗,就胜出。 任务: 五子棋是一种传统的棋盘游戏,是我国古代传统的黑白棋种之一发展于日本,流行于欧洲任务内容就是设计一款老少皆宜、能够锻炼个人策略谋划能力棋。有助于孩子开发智力,或者闲暇时打发时间。原则: (1)系统性。系统作为统一整体而存在,因此,在设计中,要从系统的角度考虑。系统的代码要统一,传递语言要尽可能一致。 (2)可靠性。可靠性是指系统抵御外界干扰的能力及外界干扰时的恢复能力。

(3)规范性。游戏的运用以吸引玩家的乐趣为前提,一方面,系统设计应尽量避免不必要的复杂化,另一方面模块应尽量简洁,以缩短处理流程。 2 开发工具 C语言 3 应用平台 Windows xp 4 功能设计 游戏分析: 五子棋是两人之间的竞技游戏,该五子棋程序基本上实现了五子棋游戏的功能,有双方下棋之前的欢迎界面及下棋过程中的棋盘界面,还有最终会判断出输赢。同时,该游戏采用了二维坐标实现的,明了易懂,方便玩家在游戏过程中的基本操作,使游戏更加简便。细节方面,该程序有实时储存功能,随时记录。另外考虑到游戏挺简单的,就没有设置悔棋的相关模块。 游戏介绍: 该游戏是简单的双人五子棋,所实现的功能是能够显示欢迎界面,选择是否进行游戏,进入游戏界面以后,玩家开始下棋。玩家输入坐标则会在棋盘上显示棋子,(若是输入的坐标超出棋盘或者该位子已经有子则会提示玩家重新输入坐标位子),若输入则退出游戏。 4.1 算法设计 程序说明: 五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用盘为15*15方格,五个子的连接方向为横、竖、斜,当任一方的五个子在各方向上连成一线时,则该方获胜。 程序要求: 按照程序说明编写五子棋程序,要求可以进行双人之间的游戏。程序输出: 输出棋盘、棋子,并能够进行相应的操作。

c语言最全的图书管理系统程序

题目名称:图书管理系统 算法分析: 1用结构体标出信息系统的成员:图书书号,书名,作者姓名,出版社,价格 2 利用c语言的文件知识将系统的信息存放在c盘下的“project choose.txt”的文件夹下 3 定义各个子函数(1)定义输入信息函数,将图书信息按一定格式用scanf函数输入(统计M本的信息); (2)定义输出函数,每3个表一页直到最后一个; (3)定义信息查询函数。a,定义按书号查询函数,如果输入的数字等于图书编号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个作者姓名字符串则输出信息;c,定义按出版社名称查找函数,如果输入的字符串等于其中出版社名称,则输出该信息; e,定义查找总函数,输入一个数选择查找方式,1-4分别对应调用abc四个函数。 (4)定义删除信息函数。输入的数字作为要删除的图书编号,输出要删除的图书信息后选择是否删除,删除后将第g+1个的信息赋给第g个,输出删除后的信息表。 (5)定义信息修改函数。输入的数字等于要修改的图书编号,输出要修改的图书信息后选择是否修改,用switch,case语句选择要修改的项目,输入n,y决定是否继续直到不继续修改,输出图书信息。 (6)定义信息统计函数。输入一个字符串作为出版社,比较M 本书的出版社字符串是否等于输入的字符串,统计相等的个数n输出。 (7)定义图书编号排序函数。用冒泡排序法将M本的书的图书编号按从大到小的顺序排列后输出。 4 定义主函数。调用读取文件函数,输入数字1-5分别对应调用

修改图书信息函数,删除图书信息函数,查找图书信息函数,统计图书信息函数,图书排行信息函数,0表示退出系统。最后调用保存文件函数。结束程序。 流程设计:

C语言程序设计实验报告(实验1-12)

文档从网络中收集,已重新整理排版.word版本可编辑.欢迎下载支持. 《C语言程序设计》 实验报告 2013~2014学年第二学期 班级 姓名 学号 指导教师

实验一 实验项目名称:C程序的运行环境和运行C程序的方法 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C源程序的特点。 二、预习内容: 教材《C语言程序设计教程》第1章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入并运行下面的程序: #include int main( ) { printf("This is a C program.\n"); return 0; } 2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序 无语法错误,然后运行程序,并观察分析运行结果。 #include int main( ) { int a,b,sum a=3; b=4; sun=a+b; print(“%d+%d=%d\n”,a,b,sum); return 0; } 四、实验结果: 1. 运行结果(或截图): This is a C program. Press any key to continue

2. (1) 改正后的源程序: #include int main( ) { int a,b,sum; a=3; b=4; sum=a+b; printf("%d+%d=%d\n",a,b,sum); return 0; } (2) 运行结果(或截图): 3+4=7 五、思考题: 1. 一个C程序上机的步骤有哪些? 答:上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答:一个函数包括两部分:分别为函数头或函数首部和函数体。 成绩指导教师签名 实验二 实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.掌握整型、实型与字符型这三种基本类型的概念; 2.掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。 二、预习内容:

C++课程设计——五子棋

《面向对象程序设计课程设计》 ————五子棋 学号:201201051738 学院:信息科学与工程学院 班级:网络工程2班 指导老师: 学生姓名: 日期:2013 年06 月24 日

C++课程设计——五子棋 一、功能描述 设计一个五子棋游戏,实现双人对战,通过鼠标进行操作,具有悔棋功能,可以多次进行游戏,界面美观,有音效。重要的是按键进行弹窗提醒,由用户进行确认。 二、概要设计 窗口注册:向系统注册窗口。 建立窗口:初始化并建立窗口。 处理消息:等待消息传入,调用处理函数。 POINT_类:记录一个点及其处理函数,包括点的位置规范化函数。 Chess类:记录棋子相关信息及其处理函数,包括落子,起子函数。 GameGolbal类:记录一个五子棋游戏的整体信息及其处理函数,包括定义了POINT_类,Chess类的成员,及一些游戏中 会用到的整体变量。主要函数包括如下: 窗口刷新函数:通过储存的数据重新绘制窗口。 新游戏函数:对游戏的变量进行初始化的处理。 悔棋函数:对储存数据修改,达到悔棋的目的,会调用 窗口刷新函数。 声音播放函数:播放效果声音。

结果判断函数:每次落子后判断结果。 结果显示函数:绘制游戏胜利的结果。 程序运行流程及函数调用关系如下: 建立窗口 绘制棋子 注册窗口 悔棋 ID_BACK 标准化并记录坐标 窗口刷新 判断并累加操作的棋子 判断是否棋子覆盖 修改数据 调用声音函数 关于 IDM_ABOUT 退出 IDM_EXIT 鼠标左单击 WM_LBUTTO DOWN 新的一局 ID_NEW 数据初始化 窗口菜单命令 WM_COMMAND 判断胜负 判断胜负 显示结果 等待信息

基于C语言数据结构图书管理系统

计算机科学与技术专业课程设计任务书 1 需求分析 1本演示程序中,用户从键盘输入图书信息,图书编号,名称,类别,作者,出版社,价格,购买日期。 2演示程序以用户和计算机的对话方式执行,即在运行窗口出现提示信息,有用户从键盘录入,显示结果会在显示之后。 3程序执行的命令包括:查询图书信息,删除图书信息,对所有图书进行排序,

统计各种类的图书数目。显示所有图书信息 4 测试数据:2001 离散数学 X 左孝凌上海科学出版社 18.00 2009/6/8 2002 数据结构 B 严蔚敏清华大学出版社 30.00 2010/4/1 2 程序总体设计 (1)数据结构 依据输入的数据信息和数据格式,连表结点用结构体实现。采用链表方式存储,typedef:typedef struct //定义表示日期数据的结构体数据类型 { int month; int day; int year; } DATE; typedef struct Booktype //定义表示图书信息的结构体数据类型 { char id[10]; /* 图书编号*/ char name[40]; /* 图书名称*/ char type; /* 图书类型*/ char writer[10]; /* 图书作者*/ char publisher[20]; /* 图书出版社*/ float price; /* 图书价格*/ DA TE buydate; /* 图书购买日期*/ } Btype; typedef struct Booklist /* 定义表示所有图书信息的链表数据类型*/ { Btype *bk; struct Booklist *next; } Blist; (2)模块划分

C语言程序设计实验报告

C语言程序设计实验报告 实验名称计算出1000以内10个素数之和 实验目的 1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 实验内容 计算并输出1000以内的10个素数以及它们的和。 要求: 在程序内部加必要的注释。

由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3+…+素数10=总和值。 算法描述流程图 Main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数*/ { int t,i; t=sqrt(n); for(i=2;i1;i-=2)/* x为奇数时,做函数计算*/ { n=sushu(i); /* 做判断素数的函数调用*/

( 励志天下) if(n!=0)/* 对素数的处理*/ { a[j]=n;/* 把素数由大至小存入数组a[ ]中*/ j++; if(j<11) m+=n; /* 统计前10个素数之和*/ } } if(j<10)/* 当素数个数小于10个时,结果输出*/ { for(i=0;i { n=a[i]; printf("%d",n); printf("+");

五子棋课程设计实验报告

西南交通大学 程序语言综合课程设计 五子棋游戏 课程《程序语言综合课程设计》 学院信息科学与技术学 专业软件工程 姓名 学号 20119050 日期 2016年月日

目录 第一章课程设计的目的和要求 (3) 1.1 课程设计的目的 (3) 1.2 课程设计的要求 (3) 1.3 课程设计的实验环境 (3) 第二章功能描述 (4) 第三章总体设计 (5) 3.1 功能模块设计 (5) 3.1.1 任务执行流程图 (5) 3.1.2 下棋函数流程图 (6) 3.2 数据结构设计 (7) 3.2.1 定义结构体 (7) 3.2.2 定义数组 (7) 3.2.3 全局变量 (7) 3.3 函数功能描述 (7) 第四章程序实现 (8) 4.1源码分析 (8) 4.2运行结果及界面介绍 (22) 第五章后记 (27)

第一章课程设计的目的和要求 1.1 课程设计的目的 1.加深对C语言数据类型,运算,语句结构及其程序设计的基本方法理解和掌握; 2.熟练掌握流程图的绘制、程序设计文档的书写; 3.通过编写一个完整的程序,一方面可以检查我们这学期的学习情况,为以后的学习打下坚实的基础; 4.熟悉C语言游戏编程,掌握五子棋游戏开发的基本原理,从而为以后的程序开发奠定基础。 1.2 课程设计的要求 1、编写程序代码,调试所写程序使其能够正确运行; 2、能进行基本的五子棋操作,有图形界面,能够用键盘操作; 3、能够实现悔棋、存档和读档等附加功能 1.3 课程设计的实验环境 该课程设计在设计与实验过程中需要在windows XP系统/windows 2000以上系统中进行,程序设计要求在visual C++6.0平台中进行,完成代码的编写、编译、调试、测试等工作。本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下: 硬件:Cpu:2.1GHZ,内存,2GB,硬盘:320GB,操作系统:windows xp 软件环境:安装VC++6.0

C语言编写图书管理系统

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 分类号: 单位代码: 本科毕业设计说明书 C语言编写图书管理系统 姓名李彬 学号0114 年级2008级本科3班 专业机械设计制造及其自动化 系(院)机械工程学院 指导教师李培珍 年月日

目录 第一部分.................................................. 错误!未定义书签。职业生涯规划——十年创业路................................ 错误!未定义书签。1前言................................................... 错误!未定义书签。2自我剖析................................................ 错误!未定义书签。3环境分析................................................ 错误!未定义书签。 3.1国家环境............................................. 错误!未定义书签。 3.2社会环境............................................. 错误!未定义书签。 3.3职业环境............................................. 错误!未定义书签。 3.4分析小结............................................. 错误!未定义书签。4未来人生职业规划........................................ 错误!未定义书签。5总结................................................... 错误!未定义书签。第二部分.................................................. 错误!未定义书签。C语言编写图书管理系统.................................... 错误!未定义书签。摘要.................................................... 错误!未定义书签。Abstract.................................................. 错误!未定义书签。1需求分析................................................ 错误!未定义书签。 1.1 系统需求............................................ 错误!未定义书签。 1.2 功能分析............................................ 错误!未定义书签。2系统功能模块结构图...................................... 错误!未定义书签。 2.1 系统调用的函数...................................... 错误!未定义书签。 2.2 图书管理系统模块.................................... 错误!未定义书签。 3 图书管理系统的结构...................................... 错误!未定义书签。 3.1 主函数流程图........................................ 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 3.2 实体数据结构........................................ 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。

相关主题
文本预览
相关文档 最新文档