当前位置:文档之家› “21点”纸牌游戏实验报告

“21点”纸牌游戏实验报告

“21点”纸牌游戏实验报告
“21点”纸牌游戏实验报告

课 程 设 计 报 告

完成时间:2012年 3 月 30 日

肇庆学院计算机学院

课程名称: 面向对象程序设计与开发课程设计 设计题目: “21点”纸牌游戏

年 级: 09 系 别: 计算机学院 专 业:

计算机科学与技术 小组成员名单:

陈坚鹏 李浩艺 陈子龙

任课教师:

莫家庆老师

课程设计结果评定

评阅意见:

(1)内容设计(20分):优()、良()、中()、一般()、差();(2)流程分析(20分):优()、良()、中()、一般()、差();(3)数据定义(30分):优()、良()、中()、一般()、差();(4)代码编写(20分):优()、良()、中()、一般()、差();(5)创新能力(10分):优()、良()、中()、一般()、差();(6)格式规范性、设计态度及考勤是否降等级:是()、否()

其它意见:

评阅人:

2012 年月日

成绩等级:

目录

“21点”纸牌游戏 (1)

1 概述 (1)

2 实验内容 (1)

3 概要设计 (2)

4 测试结果和分析 (5)

5 课程设计体会 (5)

“21点”纸牌游戏

1 概述

本课程设计通过编写相关代码实现“21点”游戏。

使用语言:C++语言

编译环境:VC++ 6.0

2 实验内容

1、问题描述

“21点”是一个古老的扑克牌游戏,游戏规则是:各个参与者设法使自己的派达到总分21而不超过这个数值。扑克牌的分值取它们的面值,A充当1分或11分(由玩家自己选择一种分值),J、Q和K人头牌都是10分。

庄家对付1—7个玩家。在一局开始时,包括庄家在内的所有参与者都有两张牌。玩家可以看到他们的所有牌以及总分,而庄家有一张牌暂时是隐藏的。接下来,只要愿意,各个玩家都有机会再拿一张牌。如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只要庄家的总分等于或小于16,那么他就必须再拿牌。如果庄家引爆,那么还没有引爆的所有我那家都将获胜,引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家和庄家打成平局。

基本要求:

编写程序实现游戏,计算机作为庄家,1—7个人作为普通玩家参与游戏。游戏程运行输出如下所示。

多少人加入游戏?(1—7):2

输入第1位玩家的姓名:张三

输入第2位玩家的姓名:李四

游戏开始:

庄家:<隐藏>梅花7

张三:红桃7方块J总分值17

李四:红桃J红桃3总分值13

张三,你想再要一张牌吗(y,n)?n

李四,你想再要一张牌吗(y,n)?y

李四:红桃J红桃3梅花10总分值23

李四引爆!

庄家:方块10,梅花7总分值17

张三,唉,你打平局了!

李四,对不起,你输了!

你想再玩一次吗(y,n)?

2、需求分析

(1)测试边界内的值。

(2)测试边界值。

(3)测试边界外的值。

(4)输出结果。

3 概要设计

1、存储结构

typedef enum{

//扑克牌面值:ACE(A),TWO(2)~TEN(10),JACK(J),QUEEN(Q),KING(K)

ACE=1,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,Q UEEN,KING

}RankType;

typedef enum{

//扑克牌花色:CLUBS(梅花),DIAMONDS(方块),HEARTS(红桃),SPADES(黑桃)

CLUBS,DIAMONDS,HEARTS,SPADES

}SuitType;

struct Card{ //扑克牌结构体

RankType rank; //扑克牌面值

SuitType suit; //扑克牌花色

//21点游戏类gameof21point声明

class GameOf21Point{

private:

Card deck[52]; //一副扑克牌

int dealPos; //发牌位置

Card hands[8][21]; //hand[0]存储于庄家手中的扑克牌,hand[1~7]存储于各位玩家手中的扑克牌

int numOfCard[8]; //庄家numOFCard[0]及玩家numOFCard[1~7]手中的扑克牌数

char name[8][LEN_OF_MAX_NAME]; //庄家与玩家姓名

int numOfPlayer; //玩家人数

void Shuffle(); //洗牌,将扑克牌混在一起以便产生一种随机的排列

int GetTotalScore(Card hand[21],int n); //返回一手扑克牌的总分值

void ShowStatus(int num,bool hideFirstCardAndTotalScore=false); //显示庄家(对应num=0)或玩家(对应num>0)当前的状态

Card DealOneCard(){return deck[dealPos++];} //发一张扑克牌

public:

GameOf21Point();

virtual~GameOf21Point(){}

void Game(); //运行游戏

};

2、函数

ostream& operator<<(ostream& outStream, const Card &card)

//该函数用来重载<<运算符

void Shuffle();

//该函数实现洗牌功能,将扑克牌混在一起以便产生一种随机的排列

int GetTotalScore(Card hand[21],int n);

//该函数用来返回一手扑克牌的总分值

void ShowStatus(int num,bool hideFirstCardAndTotalScore=false);

//该函数用来显示庄家(对应num=0)或玩家(对应num>0)当前的状态Card DealOneCard(){return deck[dealPos++];}

//该函数用来发一张扑克牌

int GameOf21Point::GetTotalScore(Card hand[21],int n )

//返回一手扑克牌的总分值

V oid Game();

//该函数实现游戏的运行,开始。

3、流程图

输入加入游戏的人数 输入游戏者姓名 游戏开始 随机发牌 开始

玩家是否添牌

添加一张牌,下个玩家 显示庄家的牌 点数<=16 添加一张牌 否 是 是

否 否 点数>21 庄家引爆 玩家是否引爆 是

打平局

玩家赢

玩家是否引爆

是 玩家输

否 玩家点数是否大于庄家 是 否 否 玩家点数是否等于庄家 是 否 显示结果 再玩一次

是 否

4 测试结果和分析

5 课程设计体会

本次课程设计,使我对C++面向对象程序设计有了进一步的认识和掌握,在设计的过程中,我们更好的懂得了团队合作的重要性,程序设计过程中,出现过几次小错误,都是在头文件处出现的,通过大家的努力还有查阅了相关资料,最后终于把问题解决了。

软件测试 扫雷游戏

软件测试 实验报告(20 15 -20 16 学年第 2学期) 学号: 学生姓名: 专业班级: 学院: 学生成绩:

1.引言 1.1编写目的 编写该测试报告目的为: (1).查找并总结该模块程序所存在的问题; (2).为更改存在的问题,提供参考。 (3).评估测试测试执行和测试计划是否符合 1.2 程序功能 扫雷游戏中各个功能实现 1.3 测试对象 扫雷软件游戏规则测试 1.4 测试方法 黑盒测试 2.测试计划 2.1、条件: ?方块当前状态:标识问号方块、方块初始状态、方块标识红旗、 标识数字X且周围已标记了X个雷、标识数字X且周围没有标记完X个雷,标识数字X标雷错误 ?鼠标操作:左键、右键、双击 ?方块状态:有雷、无雷 2.2、动作: ?方块白色 ?方块标识问号 ?方块标识数字 ?方块旗子 ?炸弹爆炸,游戏结束

?未标识方块闪速 ?周围所有的非雷显示 2.4、简化公式: 6*3*2 =(1+1+1+1+1+1)*3*2 =1*3*2+1*2*2+1*3*2+1*1*1+1*1*1+1*1*1 =6+4+6+1+1+1 =19

3.测试结果分析 3.1结果分析 在程序代码基本完成后,经过不断的调试和修改,最后测试本次所设计的扫雷游戏能够正常运行,没有出现明显的错误和漏洞,但是在一些细节方面仍然需要完善,总的来说本次设计在功能上已经基本达到要求,在其他细节方面有待以后完善。 3.2 修改建议 1.在游戏中可以假如一些声音的提示,在游戏完成和失败的时候弹出一些小 的Flash动画。 2.完善一下扫雷英雄榜等。 4.测试评估 4.1测试任务评估 本次测试执行准备充足,完成了既定目标。 4.2 测试对象评估 测试对象尚未完善,不符合现阶段测试质量要求,存在着一些缺陷,本测试需要进一步修正,重新进行测试。

C课程设计点纸牌游戏程序

C课程设计点纸牌游戏 程序 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

#i n c l u d e<> #include<> #include<> #include<> #include<> #include<> class Game { public: Game() { win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=100,bet=0; player=0,cpu=0; char answer1[]="123456"; strcpy(answer,answer1); char answer2[]="654321"; strcpy(daan,answer2); }; void rules();...."<10).){ cout<<"你的输入有误!:(请重新输入 "<5) { cout<<"\t\t\t你不能多于5张牌!"<

} }while((ans=='h')||(ans=='H')); for(;(cpu<16)&&(cputurns<6);cputurns++) { cout<>ans; label1: if(ans=='y'||ans=='Y') { (20,'\n');//把输入行中的其余字符取空,以便后面的输入从新一路轮开始 cout<<"请输入特别玩家的6位密码:"; (s1,7);//提取密码 if(!strcmp(s1,answer)) { cout<<"\t\t\t这张牌是:"<>ans; if(ans=='y'||ans=='Y') { cout<<"你的现金还有 $"<>bet1; if(money-bet1<0) { cout<<"你没有足够的赌注"; }

北京理工大学汇编实验报告3

北京理工大学汇编实验报告3

本科实验报告实验名称:实验三字符串操作实验 课程名称: 课程设计Ⅰ(CPU与汇编)(实 验)实验时间: 第5-10周周五 下午 任课教师:聂青实验地点:10-102 实验教师:苏京霞 实验类型:?原理验证□综合设计□自主创新 学生姓名:罗逸雨 学号/班级:1120141208 05211401 组号:3 学院:信息与电子学院同组搭档: 专业:通信工程成绩:

CX 中值减 1,当 CX 中值减至 0 时,停止重复执行,继续执行下一条指令。当REP无条件重复前缀,重复串操作直到计数寄存器的内容 CX 为0为止。经常与REP 配合工作的字符串处理指令有MOVS、STOS和LODS。 当REPE/REPZ判断计数寄存器的内容 CX 是否为0或ZF=0(即比较的两个操作数不等),只要满足一个则重复执行结束,否则继续执行。可以与 REPE/REPZ 配合工作的串指令有CMPS和SCAS。 当REPNE/REPNZ判断计数寄存器的内容是否为0或ZF=1(即比较的两个操作数相等),只要满足一个则重复执行结束,否则继续执行。可以与 REPE/REPZ 配合工作的串指令有CMPS和SCAS。 3)字符串操作指令 lodsb、lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据 DF 标志增减 SI; stosb、stosw:把AL或AX中的数据装入ES:DI指向的存储单元,然后根据 DF 标志增减 DI; movsb、movsw:把 DS:SI 指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据 DF标志分别增减SI和DI; scasb、scasw:把AL或AX 中的数据与ES:DI 指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI; cmpsb、cmpsw:把DS:SI 指向的存储单元中的数据与 ES:DI 指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI; rep:重复其后的串操作指令。重复前先判断 CX 是否为0,为0就结束重复,否则CX减1,重复其后的串操作指令。主要用在MOVS和STOS前。一般不用在 LODS 前。 上述指令涉及的寄存器:段寄存器DS和ES、变址寄存器SI和DI、累加器 AX、计数器CX。 涉及的标志位:DF、AF、CF、OF、PF、SF、ZF。 三、实验步骤 1) 编写程序,比较两个字符串BUF1和BUF2所含的字符是否相同,相同则AL 返回0,不同AL返回1,字符串长度要求自动获取,要求用字符串处理方法。提示:输入两个字符串之后,将串操作所必须的寄存器等参数设置好,然后使用串操作指令进行从头到尾的比较,两个字符串相等的条件是串长度相等且对应的字符相同。 2) 编写程序,设有一字符串存放在以BUF为首址的数据区中,其最后一字符‘$’作为结束标志,计算该字符串的长度并输出。提示:从串的第一个字符开始统计,直到遇到定义的字符串结束符为止,看看在这个过程中总共有多少个字符,

纸牌游戏实验报告

纸牌游戏实验报告 篇一:纸牌游戏Go Fish实验报告 纸片游戏Go Fish课程设计 一目的 通过对GO FISH的课程设计,明白数据结构设计理念,理解并掌握链表的操作,进一步的了解数据结构的含义。 二需求分析 决定玩家的数量,先简单化,建立两个玩家,完成设计; 1、确定数据结构模版; 2、建立数据结构类型; 3、完成数据操作; 4、确立算法设计。 三概要设计 1、数据结构设计 该课程设计采用链表和类相结合模式,建立牌堆和牌操作的链表结构: class Card { public: }; 牌堆类:采用整型数组建立牌堆,并用随机数打乱牌序。 class Node { public:

Node(); Node(int value,Node *next);//初始化节点构造函数 int ListLength(Node* L); //链表的计数 int Search(Node* L , int num); //链表的查找Node* head_Insert(Node* head , int num);//从表头插入节点Node* Delete(Node* head , int num); //删除节点 void Print(Node *head);//链表输出 int card_num; char clore; Node *Link; void NewCard();//新建牌 void Shuffle();//洗牌int Licensing(int n);//发牌int CARD_A[52]; private: private: 采用链表结构方式,来构造玩家手牌。用链式结构进行操作进行删除和插入。 2、算法函数 int Scoring(NodePtr &player,int score)//计分; int Players_operations(NodePtr &player1,NodePtr &player2,int Choose,int i,Card CardBign)//玩家操作; 两个函数分别用来计算与进行牌的操作。 2、主函数 main();//主函数 主函数进行数据接收和输出显示。 四详细设计 1、类的构造与实现 类的构造:

C课程设计点纸牌游戏程序

#i n c l u d e #include #include #include #include #include class Game { public: Game() { win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=100,bet=0; player=0,cpu=0; char answer1[]="123456"; strcpy(answer,answer1); char answer2[]="654321"; strcpy(daan,answer2); }; void rules();//显示规则 void BET(); //下注 void deal();//交易

void run(Game &);//进行异常处理 void hit1();//拿下一张牌 void hit2();//确保庄家不会爆庄并且点数大于16 void print();//打印出最后结果 void results();//最后的胜利结果 void check();//检查是否爆庄 Game operator=(Game &d);//运算符重载 void replay(char &ans);//是否进行新一轮的游戏 void clean();//清屏 void wait(int); void pause(); int GetInt(int,int); int random(long,long); private: int playerturns,cputurns,money; int win,lose,draw,bet; float player,cpu; char answer[7]; char daan[7]; }; //---------------------------------------------------------------------------------------

汇编课程设计报告

四川大学计算机学院 学生实验报告 实验名称:汇编课程设计报告 指导教师:唐宁九 姓名:廖偲 学号:0943111209 班级:软件09级一班 日期:20101114

实验报告 班级______________姓名_______________学号_________ 一、实验一:DEBUG基本命令与数据传输指令 二、实验的目的和要求: ? 1.熟练掌握DEBUG的基本调试命令,能够使用DEBUG编写、调试汇编语言程序片段。 ? 2.在理解数据传输指令的基础上按照实验内容中指定的程序片段对程序进行调试和记录; 三、实验的环境: 1.硬件环境:cpu 2.26gHZ、内存2G、显存1G、64位总线笔记本电脑 2.软件环境:win7 32位操作系统、8086/8088指令集系统(在windows系统中)、masm的汇编工具。 四、源程序清单: ?MOV AL, 01H ?MOV SI, 0002H ?LEA SI, [SI] ?MOV BYTE PTR [SI], 80H ?LAHF ?XCHG AL, AH ?SAHF ?XCHG AH, [SI] ?SAHF 五、操作内容: 1.从cmd在debug下进入用A命令进行汇编 格式: A [地址] 功能:从键盘输入汇编程序, 并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。如果不指定汇编地址, 则以CS:IP为地址 2. 反汇编命令U使用 格式: U [地址]/[地址范围] 功能: 将指定地址范围内的机器代码翻译成汇编源程序指令显示出来, 并同时显示地址及代码。 注意: 反汇编时一定确认指令的起始地址, 否则得不到正确的结果。 3.寄存器查看/编辑命令r或r寄存器名称 功能: 显示当前所有寄存器内容, 状态标志及将要执行的下一条指令的地址、代码和汇编指令形式。

《数据结构》课程设计报告-运动会分数统计 一元多项式 迷宫求解 文章编辑 纸牌游戏等

南京林业大学 数据结构课程设计报告 专业:计算机科学与技术 课程名称:数据结构 姓名: 学号:090801126 指导老师: 时间: 2011年1月

目录要点: 一.具体内容(题目) (1) 二.需求分析(功能要求) (2) 三.概要设计(程序设计思想) (3) 四.详细设计(源代码) (6) 五.调试分析(运行结果显示及说明) (31) 六.课设总结 (34) 具体内容: 题目1: 运动会分数统计** 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7,5,3,2,1,取前三名的积分分别为:5,3,2,;哪些取前五名或前三名由学生自己设定。(m〈=20,n〈=20); 题目2:一元多项式** 任务:能够按照指数降序排列建立并输出多项式; 能够完成两个多项式的相加,相减,并将结果输入; 题目4:迷宫求解 任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出; 题目5:文章编辑** 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 题目6:Joseph环 任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m 时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有的人出列为止。设计一个程序来求出出列的顺序。

高级编程技术课程实验报告-扫雷游戏

高级编程技术课程实验报告 班级通信一 班 姓名陈远春学号201100120084 课程实验内容 扫雷游戏,是Windows操作系统自带的一款经典游戏。其规则简单,上手容易,不论男女老少皆可娱乐。扫雷的目的就是要把所有非地雷的格子揭开即胜利。踩到地雷格子就算失败。 设计的扫雷游戏应包含以下功能:能够显示主菜单和界面;能够接收鼠标输入功能;能够根据规则翻转相应的格子;能够标记指定格子的功能;游戏胜负判断功能;游戏支持背景音乐功能;游戏提供帮助说明。 设计分工安排 本程序由三人共同完成。 其中我主要负责程序代码编写调试和上台讲解方面的工作。 其余两个主要负责游戏设计部分模块的工作。 一、系统概述 扫雷游戏,是Windows操作系统自带的一款经典游戏。其规则简单,上手容易,不论男女老少皆可娱乐。扫雷的目的就是要把所有非地雷的格子揭开即胜利。踩到地雷格子就算失败。 本设计的扫雷游戏包含以下功能:能够显示主菜单和界面;能够接收鼠标输入功能;能够根据规则翻转相应的格子;能够标记指定格子的功能;游戏胜负判断功能;英雄榜记录更新;游戏支持背景音乐功能;游戏提供帮助说明。 二、需求分析 随着世界经济的长足发展和计算机技术的日益成熟,计算机被应用到人类活动的各个领域,各种应用软件也相继问世,这其中有相当一部分是游戏软件。使用游戏软件自然是为了满足人们对娱乐性的要求,而有些软件大都采用3D设计对系统配置的要求较高。 在众多游戏软件中,也不乏一些小游戏的身影,它们对系统的配置要求较低。能够满足人们对娱乐性的需求,是人们在完成工作娱乐时候的最好选择。在各种操作系统中都附带了一些小的游戏,而这些游戏也成为电脑用户软件中不可或缺的一部分。 扫雷游戏是比较经典的一款小游戏,过去的几年里Windows操作系统历经数次换代,变得越来越庞大、复杂,但这个可爱的小游戏在任何版本的Windows操作系统里去却依然保持着原貌。但几乎每个电脑使用者都接触过它,并且深爱着这款小游戏。

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

计算机组成原理与大全实验报告

计算机组成原理与汇编课程设计 实验报告 字符统计.asm 2.斐波那契数(小于50).asm (29) 一、课程设计目标 通过课程设计使学生综合运用所学过的计算机原理与汇编知识,增强解决实际问题的能力,加深对所学知识的理解与掌握,提高软硬件开发水平,为今后打下基础。

课程设计的目的和要求: 1、使学生巩固和加强《计算机原理与汇编语言》课程的基本理论知识。 2、使学生掌握汇编语言程序设计的方法及编程技巧,正确编写程序。 3、使学生养成良好的编程习惯并掌握调试程序的基本方法。 4、使学生养成规范书写报告文档的能力,撰写课程设计总结报告。 5、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。 1 2 3 4 1 2 3 00001001 00100000 00001011 00110000 00001011

01000000 00000000 00000001 本实验设计机器指令程序如下: 4)这里做的是个加法运算,第一个加数已经存入到内存的0000 1010单元中, 第二个加数是需要手工输入的。在实验运行面板中点击“运行”按钮,选择 “输入”芯片,设置输入的数据后,双击连接“输入”芯片的单脉冲,这样 第二个加数就设置好了。 5)在实验运行面板中双击连续脉冲,模型机便开始工作,观察各个芯片的状态。 或者在模型机调试窗口中(如图2所示)点击“指令执行”选项卡,在模型 机调试窗口中点击“下一时钟”,模型机机执行到下一个时钟,点击“下一

微指令”,模型机机执行到下一个微指令,点击“下一指令”,模型机机执行到下一条指令。观察各个芯片的状态,思考模型机的运行原理。 四、课程设计的要求 1、根据题目内容,查阅资料。 2、编写课程设计预习报告。 3、编制程序及调试程序。 4、分析总结,写出课程设计报告,报告中应该包含程序功能与使用说明、程序功能 实现方法说明、如流程图与算法参数说明等内容,设计经验体会总结,源程序清 5 6 1 通 三、实验设计内容 读取文件代码段: MOV AX,DATAS MOV DS,AX ;置数据段寄存器 ; MOV DX,OFFSET FNAME MOV AX,3D00H ;读打开指定文件

C++课程设计报告---21点纸牌游戏程序

#include #include #include #include #include #include class Game { public: Game() { win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=100,bet=0; player=0,cpu=0; char answer1[]="123456"; strcpy(answer,answer1); char answer2[]="654321"; strcpy(daan,answer2); }; void rules();//显示规则 void BET(); //下注 void deal();//交易 void run(Game &);//进行异常处理 void hit1();//拿下一牌 void hit2();//确保庄家不会爆庄并且点数大于16 void print();//打印出最后结果 void results();//最后的胜利结果 void check();//检查是否爆庄 Game operator=(Game &d);//运算符重载 void replay(char &ans);//是否进行新一轮的游戏 void clean();//清屏 void wait(int); void pause(); int GetInt(int,int); int random(long,long); private: int playerturns,cputurns,money; int win,lose,draw,bet; float player,cpu; char answer[7]; char daan[7]; }; //--------------------------------------------------------------------------------------- void Game::wait(int milli) {

java_扫雷_课程设计_报告

《JAVA程序设计》 课程设计报告 系别:计算机与电子系 专业班级:计算机科学与技术0803班 学生姓名:曾一墙 指导教师:徐鹏 (课程设计时间:2011年6月13日——2011年6月24日) 华中科技大学武昌分校

课程设计报告撰写内容、格式与成绩评定 一、课程设计报告的撰写内容与要求 1.课程设计总结报告应包括:前言、基本原理或理论、设计计算书或实验报告、结论、图纸(框图、流程图)、参考资料等;或调查、访谈报告、调查问卷、调查提纲等。 2.课程设计总结报告应书写工整,文句通顺、精炼、逻辑性强,图纸和曲线的绘制应符合规范。 3.调查型课程设计应根据调查结果撰写调查报告。调查报告内容包括:题目、参加时间、地点、方式、过程、调查对象一般情况、调查内容、发现的问题、调查结果和调查分析及体会等。调查报告要求语言简练、准确;叙述清楚、明白;数据、资料可靠;结论有理、有据。 4.图纸应布局合理,比例恰当,线条分明,字体工整,符合国家制图标准。 5.课程设计报告字数要求:理工、艺术类不少于2000字,其他专业不少于3000字。 二、课程设计成绩评定 1.学生的课程设计成绩由平时成绩、业务考核成绩两部分组成,均为百分制记分,其中平时成绩占总成绩的30%,业务考核成绩占70%。业务考核含设计报告(计算说明书、调查提纲、调查问卷等)、绘制的图纸、编制的软件、制作的模型、撰写的论文或问卷统计、调查分析等的完成及质量情况;平时成绩含设计表现、到课率等。 2. 教师按学生实际成绩(百分制,含平时成绩和业务考核成绩两部分)登记并录入教务MIS系统,由系统自动转化为“优秀(90~100分)、良好(80~89分)、中等(70~79分)、及格(60~69分)和不及格(60分以下)”五等。

数据结构课程设计报告—纸牌游戏

课题设计2:扑克牌游戏 1、问题描述 编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的 倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?存储结构: 源程序:#include void main() { int i,j,a[52]; for(i=2;i<=52;i++) for(j=i-1;j<52;j+=i) a[j]=!a[j]; printf("正面向上的牌有:"); for(i=0;i<52;i++) if(a[i]) printf("%4d",i+1); } 测试结果:正面向上的牌有:1 4 9 16 25 36 49 算法的时间复杂度:T(n)=O(n2) 课题设计3:joseph环 一. 需求分析:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。首先创建一个空链表,初始化链表,构造出一个只有头结点的空链表,建立好一个约瑟夫环。 1. 输入的形式和输入值的范围 本程序中,输入报数上限值m和人数上限l,密码,均限定为正整数,输入的形式为一个以“回车符”为结束标志的正整数。 2. 输出的形式 从屏幕显示出列顺序。 3. 程序功能 提供用户从键盘输入,Joseph约瑟夫环的必要数据,并显示出列顺序。 二、概要设计 以单向循环链表实现该结构。 1. 抽象数据类型的定义为:

ADT LNode { 数据对象:D={ai | ai∈CharSet,i= 1,2,…,n,n≥0} 数据关系:R1={< ai-1 ,ai > | ai ∈D,I=2,…,n} 三.源程序:#include #include typedef struct Node { int key;//每个人持有的密码 int num;//这个人的编号 struct Node *next;//指向下一个节点 }Node,*Link; void InitList(Link &L) //创建一个空的链表 { L=(Node *)malloc(sizeof(Node)); if(!L) exit(1); L->key=0; L->num=0; L->next=L; } void Creater(int n,Link &L) //初始化链表 { Link p,q; q=L; for(int i=1;i<=n;i++) { p=(Node *)malloc(sizeof(Node)); if(!p) exit(1); printf("the key_%d is:",i); scanf("%d",&p->key); p->num=i; L->next=p; L=p; } L->next=q->next; free(q); } void main() { Link L,p,q; int n,x; L=NULL; InitList(L);//构造出一个只有头结点的空链表 printf("please input the totle number of people:"); scanf("%d",&n);//总共的人数n printf("the start key is:");

汇编器实验报告doc

汇编器实验报告 篇一:汇编实验报告 实验一(1)熟悉汇编语言程序调试环境及顺序程序设计 一、实验目的及要求: 1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。 2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。 3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。 二、熟悉汇编语言程序调试环境 1.汇编语言源程序的建立 本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。设定源程序的文件名为ABC。 DATA SEGMENT BUFDB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FH CN EQU $-BUF DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: PUSH DS

XOR AX,AX PUSH AX MOVAX,DATA MOV DS,AX MOV BX,OFFSET BUF MOV CX,CN DEC CX MOV AL,[BX] INC BX LP:CMP AL,[BX] JBE NEXT MOV AL,[BX] NEXT: INC BX DEC CX JNZ LP MOV AH,4CH INT 21H CODE ENDS END START 键入以下命令: C:\>EDIT ABC.ASM 此时屏幕的显示状态如图1所示。

1 图1 用EDIT编辑ABC.ASM程序窗口 程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。 2.将源程序文件汇编成目标程序文件 一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。 (2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。 (3)若程序中使用了宏指令,则汇编程序将展开宏指令。 源程序建立以后,在DOS状态下,采用宏汇编程序MASM 对源程序文件进行汇编,其操作过程如图2所示。 图2 MASM宏汇编程序工作窗口 汇编过程的错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种。其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。 3.用连接程序生成可执行程序文件

数据结构纸牌游戏课程设计报告

合肥学院 计算机科学与技术系 课程设计报告 2009~2010学年第二学期 课程数据结构与算法 课程设计名称纸牌游戏 学生姓名常丽君 学号0704013024 专业班级08计科(3) 指导教师李红沈亦军

2010年6月 题目:(纸牌游戏)编号为1~52张牌,正面向上,从第二张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后从第三张牌开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;直到以52为基数的翻过,输出:这时输出正面向上的牌有哪些? 一、问题分析和任务定义 1、问题分析:编号为1的牌没有进行翻牌,即翻牌的次数为0,仍然为正面朝上;编号为2的牌在整个过程中只翻了一次,为反面朝上;编号为3的牌在整个过程中只翻了一次,为反面朝上;编号为4的牌在整个过程中翻了两次,为正面朝上;编号为5的牌在整个过程中翻了一次,为反面朝上;编号为6的牌在整个过程中翻了三次(由于6是 2、 3、6的倍数),为反面朝上;以此类推直至编号为52的牌,从上述过程可以总结出这样的规律:从编号为1的第一张牌到编号为52的最后一张牌,只要它翻过的次数为偶数则是正面朝上,反之则为反面朝上。因此我们可以依据每张牌翻过的次数来确定它最终是否为正面向上,从而输出实验所需要的结果:所有正面向上的牌的编号。 2、任务定义:实现本程序需要解决以下几个问题: (1)如何存储52张牌,所选择的存储结构要便于实现题给要求的操作。 (2)如何设计翻牌程序。 (3)在经过所有的翻牌以后,如何知道每一张牌是否为正面向上。 (4)如何输出所有正面向上的牌的编号。 本问题的关键在于选择合适的数据结构存储52张牌,难点在于在所选的数据结构下实现题给要求的翻牌操作。最主要的难点在于如何设计翻牌程序。第二个难点在于所有的牌都进行了翻牌操作后,如何知道每一张牌是否为正面向上。 3、原始数据的输入、输出格式:用户选择开始游戏后,输入一个正整数K(1<=K<=51),窗口将显示翻牌K次之后所有正面向上的牌的编号,然后选择继续游戏或结束游戏。 二、数据结构的选择和概要设计 1、数据结构的选择 本实验可以选择顺序表或单链表存储52张纸牌的信息,我选用单链表这种数据结构来对52张牌进行链接存储。单链表是有限个具有相同类型的数据元素组成的链表,且该链表中的每一个结点只有一个指针域。根据第一部分的问题分析可知该单链表中每个结点应包括三个部分:存储该结点所对应的牌的编号信息number域、记录该结点所对应的牌的翻牌次数times域、存储其直接后继的存储位置的next域(指针域)。 图1 单链表结点数据类型 故可创建以单链表为存储结构的结构体,如下: //自定义单链表结点数据类型 typedef struct node { int number; //纸牌的编号 int times; //翻牌的次数 struct node *next; //指向下一个结点的指针 }LinkList;

《汇编语言+微型计算机》课程设计实验报告

长江大学工程技术学院《汇编+微机》课程设计报告 ?? 数据采集系统的设计与调试 学生姓名:袁春云学号:200960720?序号:25 专业班级:计本60901 指导老师:李华贵许建国 报告日期: 2011 年9月10日 ???

一.课程设计题目:数据采集系统的设计与测试 利用《汇编语言+微型计算机》课程中所学的可编程接口芯片8253、8255A、ADC0809和微机内部的中断控制器8259A设计一个数据采集系统,并且编程与调试。 二.设计目的 1.通过本设计,使学生综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制奠定一定的基础。 2.主要掌握并行I/O接口芯片8253、8255A、ADC0809及中断控制芯片8259A等可编程器件的使用,掌握译码器74LS138的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。 三.课程设计要求 1.功能要求 ①利用《汇编语言+微型计算机系统》课程中所学的可编程接口芯片8253、8255A、ADC0809和微机内部的中断控制器8259A(从保留的IRQ2或TRQ10端引入)设计一个数据采集系统、并且编程与调试。 ②用8253定时器定时10MS,每次定时10MS后启动一次模/数转换,要求对所接通道变化的模拟电压值进行采集。 ③每次模/数转换结束后,产生一次中断,在中断服务程序中,采集来的数字量被读入微处理器的累加器AL中,然后通过8255A输出到8个LED发光二极管显示。 2.设计所需器材与工具 ④微机原理与接口综合仿真实验平台。 ⑤可编程接口芯片8253、8255A、ADC0809和译码器芯片74LS138、74LS 245等。 ⑥可调电位器4.7KΩ一个。 ⑦其他逻辑器件、导线若干。 ⑧万用表、常用工具等。 四.设计思路 1. 4.7Ω电位器一端接+5V,一端接地,调节电位器得到变化的模拟电压,

数据结构课程设计纸牌游戏

攀枝花学院 学生课程设计(论文)题目:纸牌游戏 学生姓名: 00000 学号:200000000000 所在院(系):数学与计算机学院 专业:网络工程 班级: 2012级1班 指导教师:李世文职称:教授 2014年01月03日 攀枝花学院教务处制

攀枝花学院本科学生课程设计任务书 课程设计(论文)指导教师成绩评定表

摘要 数据结构课程是计算机专业中必修的核心课程之一,也是一门理论性很强的一门课程,同时也是一门锻炼程序涉及能力的实践课程,“数据结构”成为计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已成为其它理工专业的热门选修课。主要包括线性表、树和二叉树以及图等基本类型的数据结构。数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科,包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容,其中逻辑结构可分为线性结构和非线性结构;存储结构可分为顺序存储和链式存储两类,图则属于逻辑结构中的非线性结构。广度优先搜索(BFS)用的队列一步一步完成的,从而找到的是最短路径。 纸牌游戏课程设计包括纸牌信息的建立、了解其翻拍的原理、并简明阐述翻牌的具体步骤与流程、最后输出与打印翻牌结果,整个过程使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。掌握一般软件设计的基本内容和设计方法,培养学生进行规范化软件设计的能力。而且使学生掌握使用各种计算机资料和有关参考资料的方法,提高学生进行程序设计的基本能力。 关键词:数据结构,纸牌游戏,BFS,遍历

实验一 21点纸牌游戏

冰之龙设计 实验一21点纸牌游戏 专业:软件工程班级:09软工学号:1200911041XX 姓名:XXX 实验日期:2010-09-30 实验地点:B102 指导老师:吴景岚 一.实验原理 “21点”是一个古老的扑克牌游戏,游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。扑克牌的分值取它们的面值,A充当1分或者11分(由玩家自己选择一种分值),J.Q和K人头牌都是10分。 二.实验目的 庄家对付1到7个玩家。在一局开始时,包括庄家在内的所有参与者都有两张牌。玩家可以看到他们的所有牌以及总分,而庄家有一张牌暂时是隐蔽的。接下来,只有愿意,各个玩家都有机会依次再拿一张牌。如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只要庄家的总分等于或小于16,那么他就必须再拿牌,如果庄家引爆了,那么还没有引爆的所有玩家都将获胜。引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家与庄家打成平局。 三.实验方法 1.首先定义表示扑克牌花色与面值的枚举类型,这样程序可读性更

强 2.其次,方法Game()用来运行游戏,下面为用伪代码描述的整个游戏的流程: 洗牌 给庄家和玩家发最初的二张牌 隐藏庄家的第一张牌 显示庄家和玩家手中的牌 依次向玩家发额外的牌 显示庄家的第一张牌 给庄家发额外的牌 if(庄家引爆) 没有引爆的玩家人赢 引爆的玩家平局 else for(每个玩家) if(玩家没有引爆且玩家的总分比庄家大) 宣布玩家赢 else if(玩家的总分与庄家相等) 宣布平局 else 宣布玩家赢 四.实验步骤 (1)建立工程game_of_21_point (2)将软件包中的utlity.h复制到game_of_21_point文件夹中,并将utility.h加入到工程中。 (3)建立头文件card.h,声明相关用户自定义类型,结构体Card 的运算符 << 进行重载,具体内容如下: //文件路径名:game_of_21_point\card.h #ifndef__CARD_H__ #define__CARD_H__ Typedef enum { //扑克牌面值:ACE(A),TWO(2)到TEN(10),JACK(J),QUEEN(Q),KING(K) ACK=1,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING } RankType; Typedef enum { //扑克牌花色:(梅花),DIAMONDS(方块),HEARTS(红桃)和SPADES(黑桃)

可编程控制器原理与及实践课程设计实验报告

可编程控制器原理与及实践 课程设计实验报告 目录 一、PLC课程设计目的及要求----------------------3 二、PLC的技术特点及应用------------------------3 三、课程设计内容--------------------------------5 3.1智能抢答器系统-----------------------------5 3.1.1控制要求 3.1.2I/O编址,梯形图及运行过程分析 3.1.3 PLC硬件连接图 3.1.4 总结与体会

3.2 自动交通灯系统----------------------------9 3.2.1控制要求 3.2.2I/O编址,梯形图及运行过程分析 3.2.3 PLC硬件连接图 3.2.4 总结与体会 3.3 小球分拣器系统----------------------------15 3.3.1控制要求 3.3.2I/O编址,梯形图及运行过程分析 3.3.3 PLC硬件连接图 3.3.4 总结与体会 3.4 电梯模型----------------------------------19 3.4.1控制要求 3.4.2I/O编址,梯形图及运行过程分析 3.4.3 PLC硬件连接图 3.4.4 总结与体会 一、PLC课程设计目的及要求 课程设计目的: (1)通过对实际的PLC控制系统的编程训练,提高分析问题、解决问题的能力; (2)熟悉工业生产中PLC的应用和系统构成,了解PLC控制的电路的设计方法。(3)通过本次课程设计增进实际动手能力的培养。 (4)用PLC实现工件加工模型,四层电梯模型的运动控制和模拟系统的程序设计,掌握编程的一般方法和技巧。 课程设计要求: (1)理解实际系统的运动过程,分解动作过程使之容易编程。 (2)列写PLC控制系统的I/O配置。 (3)画出硬件电路图,实现PLC与控制装置的连线。 (4)编写梯形图程序,完成系统的调试。 (5)完成课程设计报告。 二、PLC的技术特点及应用

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