21点游戏课程设计
21点游戏设计

课程设计(大作业)报告课程名称:算法设计与分析设计题目:21点游戏设计院系:信息技术学院专业及班级:计算机科学与技术设计者:学号:指导教师:设计时间:2014年6月30日至7月4日昆明学院昆明学院课程设计(大作业)任务书目录昆明学院课程设计(大作业)任务书 (2)一、概述 (5)1.1 题目要求 (5)1.2 JAVA工作平台的简介 (5)1.3 21点游戏发展历史 (6)1.4 21点游戏介绍 (6)二、设计分析 (6)三、总体设计 (7)3.1程序总体结构 (7)3.2重要数据的数据结构设计 (7)3.3总体功能框图 (8)3.4主要算法流程图 (9)四、运行结果与分析 (10)4.1开始游戏 (10)4.2返回上级菜单的示意图 (10)4.3查看玩家记录 (11)4.4结束游戏 (11)五、总结 (12)六、参考文献 (12)附录源代码: (13)一、概述近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而一些游戏能起到锻炼人的思维和修身养性的作用。
越来越多的具有智能的机器进入了人类的生活,人工智能的重要性如今显而易见。
自己对人工智能比较感兴趣,而21点游戏程序的开发实现了这个课题,正好提供给我这样一个研究的机会,通过对人工智能中博弈方面的研究(人机对弈),让我在简单的人机对弈全局设计,以及具体到相关算法上有了深入的了解。
人工智能大致可以分成几个任务,这时,这些学科之间的差别就变的很模糊。
人工智能在机器人学、模式识别、物景分析、数据库的智能检索、机器下棋(实际上是博弈论问题)和家用电气智能化等领域都有广泛的应用。
而这个课程设计就是和人工智能中博弈论领域紧密相关的,我们会尽全力做好它。
1.1 题目要求本次算法设计与分析课程设计题目是“21点纸牌游戏”,系统的主要功能是娱乐游戏,根据52张扑克牌,随机发出两手牌,其中一个玩家为人,另外一方为计算机。
玩家设法使自己的牌的总分达到21分,并要比电脑开的点数大而且不超过这个数值。
C#课程设计游戏21点

{ case 1: {
pictureBox1.Image = Image.FromFile("tupian\\53.jpg"); //电脑台面 上的第一张 牌, 为背面, 无用 a = randon.Next(52);//随机选出第一张牌,为电脑台面上的第二张牌, 因为是第一张随机选出的牌,所以不用判断是 否与其它的牌重复 pictureBox2.Image = Image.FromFile("tupian\\" + a.ToString() + ".jpg"); //电脑台面上的第二张牌, 同时也是作为基础 牌面要计算数值的第一张牌; d1 = a % 13 + 1; //将所得的牌转换成1~13的数字 if (d1 > 10) //判断是否为11、12、13 这三个数字,如果是,就 将它转换为10; d1 = 10; b = randon.Next(52);//这里往下就是玩家的第一张牌,与之相应的是 在文件夹中名字为0~51的图片; while (b == a) //当玩家的这个随机得到的牌与庄家得到的第一 张随机的牌相同时,则重新生成一个随机数,让 它与前面的牌的点数不一样; { b = randon.Next(52); } w1 = b % 13 + 1; //计算出随机得到的数所在的牌的点数 if (w1 > 10) //当得到的点数>10的时候,即11、12、13,将它 们变成10(作为21点游戏的规则而设定的) w1 = 10; zongshu += w1; //zongshu是玩家所得的点数相加之和的定义 pictureBox8.Image = Image.FromFile("tupian\\" + b.ToString() + ".jpg"); //将玩家随机得到的第一张牌显 示出来 c = randon.Next(52);//这里往下为玩家的第二张牌,一直往下相似的 代码均为此效果; while (c == a || c == b) { c = randon.Next(52); } w2 = c % 13 + 1; if (w2 > 10) w2 = 10; zongshu += w2; pictureBox9.Image = Image.FromFile("tupian\\" + c.ToString() + ".jpg");
数据结构与算法课设-纸牌游戏21点

目录备注: (2)一、游戏简介 (2)二、设计要求 (2)2.1 问题描述 (2)2.2 要求分析 (2)三、程序功能 (3)3.1 程序的主要功能描述 (3)3.2序流程图 (3)3.3主界面 (4)3.4功能测试 (4)四、源程序 (6)五、课设心得 (14)备注:由于这次课设开始时以为可以做其他题目,知道周四才知道不行。
但我的21点一几个基本成型,因此没有继续改动,希望老师能够理解。
一、游戏简介又名黑杰克,起源于法国,现已流传到世界各地。
现在在世界各地的赌场中都可以看到二十一点,随着互联网的发展,二十一点开始走向网络时代,比如菲律宾的博彩公司就有该游戏。
该游戏由 2 到 6 个人玩,使用除大小王之外的52 张牌,游戏者的目标是使手中的牌的点数之和不超过 21 点且尽量大。
有着悠久的历史。
1700年左右法国赌场就有这种21点的纸牌游戏。
1931年,当美国内华达州宣布赌博为合法活动时,21点游戏第一次公开出现在内华达州的赌场俱乐部,15年内,它取代掷骰子游戏,而一举成为非常流行的赌场庄家参与的赌博游戏。
二、设计要求编写程序实现游戏,该程序是模拟古老的“21点纸牌游戏”,实现一对一的人机大战。
要求游戏过程中任意一方牌的点数之和超过 21 点,则自动出局;在不超过 21 点的情况下,玩家下注由电脑随机发牌与庄家比累积牌的点数的大小,大者为赢家。
2.1 问题描述本次C++课程设计题目是“21点纸牌游戏”,系统的主要功能是娱乐游戏,有电脑和玩家一起玩这个游戏,玩家设法使自己的牌达到总分21并要比电脑开的点数大而且不超过这个数值。
扑克牌的分值取它们的面值。
J,Q,K分别是11, 12和13分。
2.2 要求分析编写程序实现游戏,该程序是模拟古老的“21点纸牌游戏”,实现1对1的人机大战。
要求游戏过程中任意一方牌的点数之和超过21点,则自动出局;在不超过21点的情况下,玩家下注由电脑随机发牌与庄家比累积牌的点数的大小,大者为赢家。
C语言课程设计实现21点游戏

《C语言课程设计》题目:程序设计基础课程设计班级:姓名:指导教师:所属系部:电子科学与技术系2009年 6 月24 日21点游戏设计1 游戏规则此游戏,原则上是可以由不限定的人数来玩,但是随着参与人数的增加,在最后成绩的比较方面会比较的繁琐,不像两个人之间的比赛结果那么明显,所以也应该将参与人数控制在一定的范围之内。
确定参与人数后,系统会随机为每个人发三张牌,然后计算这三张牌的和进行比较。
如果这三张牌的和大于21,则此人将会输掉比赛,除非其他人的和也大于21(即假若每个人的三张牌的和都大于21时,该局为平局,打成平手)。
如果有的和大于21,有的和小于21,则大于21的人输掉比赛,再比较小于21的部分,谁的三张牌的和最接近21,则谁是该局的赢家。
一局玩完后,玩者可以根据自己情况进行选择是否要再玩一局。
若选择再玩时,系统会再进行下一次的循环。
2 程序算法○1由系统随机产生几组随机数,每组3个随机数。
○2计算每一组的三个随机数的和。
○3比较每组和的大小。
○4得出比赛结果3 关键算法流程图总体框架4 程序代码/* Note:Your choice is C IDE */#include <stdlib.h>#include <stdio.h>#include <time.h>#define N 5main( ){int i,t,flag, j,m;int b[8],a[3*N];char c;b[1]=0;flag=1;while (flag) //控制循环{srand(time(NULL)); /scanf("%d",&j); //用j控制组数for(t=0;t<3*j;t++) //产生几组随机数{if (t%3==0)printf("\n");a[t]=rand()%13+1;printf("%5d",a[t]);}printf("\n");for(i=1;i<=j;i++) //求每组随机数的和{for(t=3*(i-1);t<3*i;t++)b[i]=b[i]+a[t];printf("b[%d]=%d\n",i,b[i]);b[i+1]=0;}printf("\n");{for(t=1;t<j;t++) //对和的大小进行排序for(i=1;i<=j-t;i++)if(b[i]>b[i+1]){m=b[i+1];b[i+1]=b[i];b[i]=m;}for (i=1;i<=j;i++)printf("%5d",b[i]);}printf("\n");for (i=1;i<=j;i++) //得出结论if(b[i]>21){printf("这一局为第%d个人赢\n是否再玩一局,若输入'Y'则继续游戏,输入'N'结束游戏\n",i-1);getchar(); //与while语句是一个系统c=getchar();if(c=='Y')flag=1;elseflag=0;}}}5在程序设计中,出现的问题和解决方案:由于是多组数据之间的比较,首先在同时产生几组随机数时遇到障碍,产生随机数的代码是从网上搜索得到的,再加上一些修改,达到所需的要求,同时有一些小的细节是在老师帮助下完成的。
纸牌游戏“21点”实验设计报告

湖北第二师范学院《面向对象程序设计》课程设计报告书题目:纸牌游戏——“21点”院系:计算机学院专业:网络工程姓名:李林学号:0850311013同组人员:陈易俊、吴鑫、易龙、张帅指导老师:张琪设计时间:2011年2月26日~2011年3月19日目录一.课程设计目的 (3)二.问题描述 (3)三.需求分析 (4)四.概要设计 (5)4.1 系统中类类型定义及系统各类类成员功能说明 (5)4.2 系统各类间关系 (6)五.详细设计 (7)5.1 数据类型定义及伪代码描述 (7)5.2系统主要子程序详细设计(加注释的源程序) (8)六.测试分析 (19)七.技术难点及创新 (19)八.自己完成模块说明 (36)九.源程序清单 (23)一.课程设计目的在Visual C++6.0或者C++ Builder 6.0环境中编译运行纸牌游戏——“21点”,通过编程练习、程序调试、程序纠错等过程训练,真正掌握所学知识、提高编程水平。
二.问题描述“21点”是一个古老的扑克牌游戏,游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。
扑克牌的分值取它们的面值,A充当1分或者11分(由玩家自己选择一种分值),J.Q 和K人头牌都是10分。
庄家对付1到7个玩家。
在一局开始时,包括庄家在内的所有参与者都有两张牌。
玩家可以看到他们的所有牌以及总分,而庄家有一张牌暂时是隐蔽的。
接下来,只有愿意,各个玩家都有机会依次再拿一张牌。
如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。
在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。
只要庄家的总分等于或小于16,那么他就必须再拿牌,如果庄家引爆了,那么还没有引爆的所有玩家都将获胜。
引爆的玩家打成平局。
否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。
如果二者的总分相同,则玩家与庄家打成平局。
(1)将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。
21点游戏策划书3篇

21点游戏策划书3篇篇一《21 点游戏策划书》一、游戏概述1. 游戏名称:21 点2. 游戏类型:桌面纸牌游戏3. 游戏目标:通过玩家与庄家的牌面点数比较,争取使手中牌的点数最接近 21 点且不超过 21 点,超过 21 点则为失败。
二、游戏规则1. 参与人数游戏可由 2 到多名玩家进行。
2. 发牌玩家开始时各获得一定数量的牌,庄家也会获得相应牌。
3. 牌面点数计算A 牌既可算 1 点也可算 11 点,其他牌面按其面值计算点数。
4. 比较点数玩家与庄家分别比较手中牌的点数大小,点数接近 21 点且不超过者胜,超过 21 点则失败。
5. 胜负判定若玩家点数超过 21 点则为爆牌,直接输掉游戏;若庄家爆牌则玩家获胜;若双方点数均未超过 21 点,则点数高者胜,若点数相同则为平局。
6. 特殊情况若玩家的前两张牌刚好为 21 点(即 blackjack),则直接获胜,称为“天然 21 点”。
三、游戏流程1. 玩家选择是否参与游戏并进行投注。
2. 庄家发牌给玩家和自己。
3. 玩家根据牌面情况可以选择继续要牌(hit)、停止要牌(stand)或进行其他操作(如加倍等,视具体规则设定)。
4. 庄家根据规则决定是否继续要牌,直到庄家或玩家满足特定条件(如达到一定点数等)停止发牌。
5. 比较双方点数,判定胜负并进行相应的筹码结算。
四、游戏策略1. 玩家要根据手中牌的情况合理决定是否要牌,尽量追求接近 21 点但不超过。
2. 可以根据庄家露出的牌面等情况进行一些策略性的判断和决策。
五、游戏道具1. 一副标准的扑克牌,去掉大小王。
2. 用于放置筹码的筹码盘等。
六、游戏环境与氛围营造1. 提供舒适的游戏桌面和合适的灯光环境。
2. 营造轻松、刺激的游戏氛围,让玩家能够全身心投入游戏。
七、游戏扩展与变化1. 可以增加一些特殊规则,如允许玩家进行保险投注等。
2. 设计不同的游戏难度级别,满足不同玩家的需求。
篇二《21 点游戏策划书》一、游戏简介21 点是一种广受欢迎的扑克牌游戏,玩家通过与庄家竞争点数大小来获取胜利。
21点c++程序设计报告

课题题目:21 点的扑克牌游戏 姓名:鲍浩东
班级:11101902 学号:1110190214 程序功能简介:
一个 21 点的扑克牌游戏,玩家一共可以要 5 张牌,但如果牌的点数超过 21。则 为输了,自动出局;在不超过 21 点的情况下,玩家与庄家比较牌的点数大小, 大者为赢。
cin>>ans;
if((ans=='h')||(ans=='H'))
{cout<<"非常感谢!";}
else
{cout<<"请您输入超级密码";
cin>>m2;
if(s2==m2)
{cout<<"您要的牌点数:"<<endl;
player=player-card;
cin>>w1;
if(w1<11)
cin>>ans; if((ans=='h')||(ans=='H')) {
f1.mima(ans,card,player); f1.Gamble(money,bett);
bet+=bett; cout<<"\t\t\t 你是继续要牌还是停止?(是'H'/否'S')"; cin>>ans; if((playerturns<5)&&(ans=='h')&&(player<=21)) {cout<<endl; cout<<"\t\t\t 这牌是:"<<card<<endl; cout<<"\t\t\t 总数是 :"<<player<<endl; cout<<"\t\t\t 你的剩余资本为:"<<money<<endl; } else{player=player-card; bet=bet-bett; money+=bett;}
C语言课程设计指导书21点双人对战与人机对战

《C/C++语言课程设计》指导书一、课程设计概要课题名称:21点双人对战和人机对战二、课题背景概述21点扑克是牌类游戏中的比较基础游戏,其基本打法为双人共玩一副洗好的52张牌(大小王拿走),采用回合制比每回合输赢,直至打完一副牌算总积分决出胜负。
每回合双方轮流拿牌,每人牌数2-5张,每回合拿牌结束时统计两人手上牌的总点数,并裁决本回合输赢。
如果轮到一方拿牌而放弃,则本回合此人不能再拿牌;如果手上牌的点数超过21点,则算爆。
如果双方都没爆,则点数较高者获胜;如果一方爆另一方没爆,则没爆者获胜;如果双方都爆,则爆的少的人(点数超过21点较少者)获胜。
牌点计算方式:牌面10、J、Q、K均算10点;牌面2-9的点数同数字;花牌A既可以当1点用,也可以当11点用,具体当什么用,由持有花牌者按有利于自己的策略决定,但是计算机裁决程序总是会按最有利于持花牌者的算法自动进行点数计算。
三、课程设计目标1、课题实现的功能目标渐进开发实现21点双人对战和人机对战,并最终实现其类封装和面向对象程序设计。
2、知识应用能力的培养目标通过项目开发、调试、完善的过程,渐进地理解、正误、巩固和掌握基本数据类型的使用和转换、顺序-分支-循环的组合应用、变量声明和引用、函数的定义/声明/调用、数组和指针使用、结构体和类的使用等语法知识,熟练掌握常用测试和调试技术手段,达到理论联系实践、融会贯通的目的。
3、数学建模能力的培养目标随机数产生无重复无遗漏牌张、随机插牌、A牌的用法、计算胜率(在最后的人机对战要用)都涉及一定数学建模和算法设计应用能力,因此在无形中也锻炼了这种能力。
4、软件工程方法论培养目标从项目开发过程体会、理解和自觉应用程序设计和测试的思路及方法。
理解和应用ADT概念和面向对象程序设计思想的由顶向下设计方法,从顶层抽象设计开始,通过过程抽象和数据抽象,逐层分解、渐进推进程序设计实现和测试改进,理顺程序设计和测试完善的思路。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*玩家最多可以要5张牌,但是如果牌的点数之和超过21,则自动出局,在不超过21点的情况下,玩与庄家比牌的点数大小,大者为赢家。
*/#include <iostream>#include <cstdlib>#include <ctime>using namespace std;class CCard{private:int naPip[5]; //定义一个数组,一共是5张牌。
int nNumber; //发了多少张牌。
int nDollar; //有多少钱int nGamble; //赌注int nWin; //赢局数int nLose; //输局数int nDraw; //输局数public:CCard(); //构造函数void FirstPlayTwo();//最初两张牌int GetNumber();//返回牌张数int GetPip(); //返回点数void DisplayPip();//一次全部显示牌面点数。
void DisplayPip(int ); //除了第一张牌,一次全部显示牌面点数(针对计算机牌的显示)void TurnPlay();//出了一张牌void Win();//赢了计算赌注void Lose();//输了void Draw();//平局int setGamble(int );//设置赌注,赌本不够返回1int getMoney();//返回钱数void DisplayInfo();//打印必要的信息int GetCurrentCard();//返回当前牌点。
};CCard::CCard(){nNumber=0;//开始没有发牌nDollar=100;//初始赌本为0for(int i=0;i<5;i++)naPip[i]=0; //五张牌全部为0nGamble=0;nWin=nLose=nDraw=0; //没输没赢没有平局}int CCard::getMoney(){return nDollar;}void CCard::DisplayInfo()//打印相关信息。
{cout<<"您一共玩了"<<nWin+nLose+nDraw<<"局"<<endl; cout<<"其中输了"<<nWin<<"局"<<endl;cout<<"赢了"<<nLose<<"局"<<endl;cout<<"平了"<<nDraw<<"局"<<endl;cout<<"您还有赌本"<<nDollar<<endl;}int CCard::setGamble(int gamble){if(nDollar-gamble<0)return -1;if(gamble<0){if(nDollar-20<0)return -1;nGamble=20;}elsenGamble=gamble;nDollar-=nGamble;return 0;}void CCard::FirstPlayTwo(){naPip[0]=rand()%13+1;naPip[1]=rand()%13+1;nNumber=2; //现在有两张牌}int CCard::GetCurrentCard() {return naPip[nNumber-1];}int CCard::GetNumber() //返回牌数{return nNumber;}int CCard::GetPip() //返回点数{int nPip=0;for(int i=0;i<nNumber;i++){if(naPip[i]>=10)nPip=nPip+10;elsenPip+=naPip[i];}return nPip;}void CCard::DisplayPip() //依次显示牌面点数{for(int i=0;i<nNumber;i++)cout<<naPip[i]<<"\t";cout<<endl;}void CCard::TurnPlay() //出一张牌面{nNumber++;naPip[nNumber-1]=rand()%13+1;}void CCard::Win(){cout<<"赢家牌面";DisplayPip();cout<<"牌面点数"<<GetPip()<<endl;nDollar=nDollar+2*nGamble;nWin++;cout<<"赌本:$"<<nDollar<<" 赢了"<<nWin<<"次"<<"输了"<<nLose<<"次"<<"平局"<<nDraw<<"次"<<endl;cout<<endl<<endl<<endl;}void CCard::Lose(){nLose++;cout<<"输家牌面:";DisplayPip();if(GetPip()>21)cout<<"暴了!"<<endl;elsecout<<"牌面点数:"<<GetPip()<<endl;cout<<"赌本:$"<<nDollar<<" 赢了"<<nWin<<"次"<<"输了"<<nLose<<"次"<<"平局"<<nDraw<<"次"<<endl;cout<<endl<<endl<<endl;}void CCard::Draw(){nDraw++;nDollar+=nGamble;cout<<"平局牌面"<<endl;DisplayPip();if(GetPip()>21)cout<<"暴了!"<<endl;elsecout<<"牌面点数:"<<GetPip()<<endl;cout<<"赌本:$"<<nDollar<<" 赢了"<<nWin<<"次"<<"输了"<<nLose<<"次"<<"平局"<<nDraw<<"次"<<endl;cout<<endl<<endl<<endl;}void CCard::DisplayPip(int n){cout<<"[*]"<<"\t";cout<<"[*]"<<"\t";for(int i=2;i<nNumber;i++)cout<<naPip[i]<<"\t";cout<<endl;}//非成员函数区域void DisplayRule(){cout<<"\t欢迎进入21点游戏世界!\n\n"<<endl;cout<<"\t游戏规则\n";cout<<"\t玩家最多可以要五张牌\n";cout<<"\t如果牌的总点数超过21点则自动判输\n";cout<<"\t赢家可得双倍赌注\n";cout<<"\t计算机在大于等于16点时不要牌\n";cout<<"\t朱文丽祝您好运!\n";cout<<endl<<endl;}void Judge(CCard &cpu,CCard &player){cout<<endl;if((cpu.GetPip()>21&&player.GetPip()>21)||cpu.GetPip()==player.GetPi p()){cout<<"\n\n平局\n!";cout<<"计算机数据:\t";cpu.DisplayPip();cout<<"牌面点数:"<<cpu.GetPip()<<endl;cout<<"\n您的数据\t";player.Draw();cout<<endl;}elseif((cpu.GetPip()>21||(player.GetPip())>cpu.GetPip()&&player.GetPip()< =21)){cout<<"\n\n恭喜您,您赢了\n!";cout<<"计算机数据:\t";cpu.DisplayPip();cout<<"牌面点数:"<<cpu.GetPip()<<endl;cout<<"\n您的数据\t";player.Win();cout<<endl;}else{cout<<"\n\n很遗憾,您输了\n!";cout<<"计算机数据:\t";cpu.DisplayPip();cout<<"牌面点数:"<<cpu.GetPip()<<endl;cout<<"\n您的数据\t";player.Lose();cout<<endl;}}void playTurn(CCard &cpu,CCard &player)char chChoice;int blCpu=1,blPlayer=1;cpu.FirstPlayTwo();do{cout<<"您的牌点为:\t"<<endl;player.DisplayPip();cout<<"计算机的牌点为"<<endl;cpu.DisplayPip(1);cout<<"您的牌面点数是"<<player.GetPip()<<endl;if(blPlayer){cout<<"\n\n您是否继续要牌?(Y/N)"<<endl;cin>>chChoice;if((chChoice=='Y'||chChoice=='y')){ if(player.GetNumber()<5){ player.TurnPlay();cout<<"您要的这张牌是"<<player.GetCurrentCard()<<endl;if(player.GetPip()>21)blPlayer=0;}else{cout<<"对不起,您已经要了五张牌了!"<<endl;blPlayer=0;}}}if(chChoice=='N'||chChoice=='n')blPlayer=0;if(cpu.GetPip()<16&&cpu.GetNumber()<5){cpu.TurnPlay();cout<<"计算机要牌,牌点是:"<<cpu.GetCurrentCard()<<endl;}elseblCpu=0;if(blCpu&&player.GetNumber()<5&&player.GetPip()<21)blPlayer=1;}while(blCpu||blPlayer);Judge(cpu,player);}int main(int argc, char *argv[]){srand((unsigned)time(NULL));CCard cpu,player; //人和计算机赌int blLogic;int nMoney; //下注的数目DisplayRule();//打印规则char chChoice;cout<<"是否开始游戏(Y/N)?\n";cin>>chChoice;while(chChoice=='Y'||chChoice=='y'){do{cout<<"您现在有的赌本:"<<player.getMoney()<<endl;cout<<"请下注:(赌注不能超过赌本)"<<endl;cin>>nMoney;blLogic=player.setGamble(nMoney);if(blLogic)cout<<"您的赌本不够!请重新下注:"<<endl;}while(blLogic); //注意do while的使用,后面有分号。