第一章 课程设计目的和要求
1.1 课程设计的目的 ······························································ 3
1.2 课程设计的要求 ······························································· 3
第二章 课程设计任务内容 ······························································4
第三章 详细设计说明
3. 1 性能·················································································5
3. 2 输入项··············································································5
3. 3 输出项············································································· 5
3. 4 算法··················································································5
3. 5 流程逻辑············································································6
3. 6 数据文件存储说明····························································· 7
3. 7 限制条件···········································································7
3. 8 测试
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
············································································7
第四章 软件使用说明·····································································8
4.1系统使用说明及出现的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
······················································8
4.2 系统运行结果及运行截图························································8
4.3系统核心代码·······································································11
第五章
心得体会
决胜全面小康心得体会学党史心得下载党史学习心得下载军训心得免费下载党史学习心得下载
································································12
附录1: 参考文献················································································12
附录2: 程序清单·················································································13
第1章 课程设计目的和要求
1.1本课程设计的目的和任务
《面向对象程序设计课程设计》是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。通过课程设计,让学生能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。
1.2课程设计的基本要求:
1、掌握使用一种面向对象程序设计语言如Borland C++或Visual C++等。
2、培养调查研究、查阅技术文献、资料、
手册
华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载
以及编写技术文献的能力。
3、通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括:
⑴ 通过调查研究和上机实习,收集和调查有关技术资料。
⑵ 掌握设计课题的基本步骤和方法。
⑶ 根据课题的要求进行上机实验调试。
4、课程设计完成后,提交课程设计报告
第2章 课程设计任务内容
(1)将大于10点的点数改为半点(修改点数的类型)。
(2)高级玩家(经理级)可以查看下一张牌,即按H键,然后按要求输入密码,密码正确可以看牌,并决定是否要牌。
(3)超级玩家(总经理级)可以查看庄家(计算机)的所有牌面,并任意输入自己想要的牌,有赢无输,为保密起见,输入自己想要的牌后应立刻屏。
(4)每次要完牌后可以重新设定赔率,只能回流。也就是说如果牌好,可以加大赌注。
第三章:课程设计整体规划和设计
3.1 性能
该模块性能要求:
1.在进行该程序时要求具有高精度,在运行后输入数据,才能不会错误的信息出现。
2.灵活度要高,时间要短,才能快速有效的进行。
3.2 输入项
您现在有的赌本:$100
3.3输出项
输出下注的赌本
3.4算法
类class CCard
该程序只需要一个CCard类,其中有如下:
private:
int m_Pip[5];//一共五张牌
int m_Number;//发了多少张牌
int m_Dollar;//赌本
int m_Gamble;//赌注
int m_Win;//赢局数
int m_Lose;//输局数
int m_Draw;//平局数
public:
CCard();//构造函数。
void FirstPlayTwo();//最初的两张牌
int GetNumber();//返回牌张
int GetPip();//返回点数
void DisplayPip();//依次全部显示牌面的点数
void DisplayPip(int);//除了第一张牌,依次显示全部牌面点数(针对计算机牌的显示)
void TurnPlay();//出一张牌。
void Win();//赢了计算赌注
void Lose();//输了
void Draw();//平局
int SetGamble(int);//设置赌本,赌本不够返回-1
int GetMoney();//返回钱数
void DisplayInfo();//打印必要的信息
int GetCurrentCard();//返回当前的牌点
3. 5 流程逻辑
(1)程序的N-S流程图如下图所示:
初始化随机种子
显示游戏
规则
编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf
While(chChoice)
判断chChoice,(必须是Y/N)
Y/y
N/y
Do{……}
While(blLogic)
您的选择是明智的,赌博有碍家庭和睦!
欢迎再次使用此程序!
(2)do的模块N-S流程图
输出“您现在有的赌本:$100”
输出下注的赌本
执行Player.SetGamble(nMoney)
判断If(blLogic)
Y/y
N/y
您的赌本不够,请重新下注!
PlayTurn(cpu,player)
3.6 数据文件存储说明
编写完程序后把该程序以文件的形式保存在磁盘里,在运用该程序时,直接找到该文件,直接点击运行,则会出来结果。
3.7 限制条件
在输入所要的数字时,要按照程序中所要求输入的项,否则运行不出结果,影响程序的进行。
3.8 测试计划
(1)运行Microsoft Visual C++ 6.0,新建一个工程文件,立即保存在自己建的一个文件夹中,再建一个为21point.cpp。
(2)单击“save”按钮,出现21point.cpp的文件编辑窗口,输入附录的程序代码;再单击“save all”按钮保存文件。
(3)执行Microsoft Visual C++快捷菜单中的编译、连接。
(4)21point.cpp文件编译成功,如下图所示:
第四章:系统实现
4.1系统使用说明及出现的问题
该程序是模拟21点扑克牌游戏,玩家最多可以要5张牌,但如果牌的点数之和超过21点,则自动出局;在不超过21点的情况下,玩家与庄家比牌的点数的大小,大者为赢家。
4.2 系统运行结果及运行截图
输入y,回车开始游戏。如下图所示:
输入赌本10回车。如下图所示
输入y,回车。如下图所示:
输入y,回车后继续游戏。如下图所示:
当你输入错误的信息的时候如:1000。出现如下图
第5章 心得体会
过这次课程设计,我才深知数据结构灵活,对于相同的问题模型可以用多种不同的通存储结构来实现。在刚刚结束的一个学期里,我对数据结构的学习才仅仅是个入门,通过这次的课程设计,我才发现自己在以往学习中的诸多问题,比如对队列的学习不够深入,只是局限于书本上的某一种队列的理论学习,对循环队列的学习和应用还远远不够,对于同一问题没有多角度的思考,仅仅局限于一种方法,根本没有思考是否还有别的更简更快捷的方法,不能做到举一反三,还有太注重理论学习而忽视了上机实践,结果就是理论知识不扎实上机动手能力差,编译出现错误时不能很快的找出错误。在这次课设的编程过程中,我尽量把以往学过的知识全部用上,对于同一个问题从不同的角度考虑实现方法,所以我才发现了自己很多的问题,而且借此寒假,我会改正这些问题,并且深入学习数据结构和C++。在这次课程中,除了达到了课设目的,我想我最大的收获就是以上的发现并且能及时的解决单
本次可设能够顺利完成,首先要感谢我们的老师,他一次又一次耐心地为我们讲解基础知识,使我们的基础更扎实。而老师的循循善诱又使我们掌握基础知识时,得到了更多的启发,能力又得到了提高。另外,还要感谢其他对于本次课设给了我很大帮助的同学们,他们将自己所学毫不吝惜地与别人交流,使大家的理解有加深了很多。
附录1:参考文献
[1]谭浩强.C++面向对象程序设计.北京:清华大学出版社,2006.
[2]谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.
附录2:程序清单
#include
#include
#include
using namespace std;
class CCard
{
private:
int m_Pip[5];//一共五张牌
int m_Number;//发了多少张牌
int m_Dollar;//赌本
int m_Gamble;//赌注
int m_Win;//赢局数
int m_Lose;//输局数
int m_Draw;//平局数
public:
CCard();//构造函数。
void FirstPlayTwo();//最初的两张牌
int GetNumber();//返回牌张
int GetPip();//返回点数
void DisplayPip();//依次全部显示牌面的点数
void DisplayPip(int);//除了第一张牌,依次显示全部牌面点数(针对计算机牌的显示)
void TurnPlay();//出一张牌。
void Win();//赢了计算赌注
void Lose();//输了
void Draw();//平局
int SetGamble(int);//设置赌本,赌本不够返回-1
int GetMoney();//返回钱数
void DisplayInfo();//打印必要的信息
int GetCurrentCard();//返回当前的牌点
};
CCard::GetNumber()
{
return m_Number;
}
CCard::CCard()//构造函数,初始化
{
m_Number = 0;
m_Dollar = 100;//初始赌注为100美
for(int i=0;i<5;i++)
m_Pip[i] = 0;
m_Gamble = 0;
m_Win = m_Lose = m_Draw = 0;
}
int CCard::GetMoney()
{
return m_Dollar;
}
void CCard::DisplayInfo()//打印必要的信息
{
cout<<"\n\n\n\t\t\t您一共玩了"<21)
cout<<"\t\t\t\t\t\t\t\t暴了!"<21)
cout<<"\n暴了!"<21&&player.GetPip()>21)||cpu.GetPip()==player.GetPip())
{
cout<<"\n\n\t\t\t\t\t\t\t\t平局!\n";
cout<<"计算机数据:\t";
cpu.DisplayPip();
cout<<"牌面点数:"<21)||(player.GetPip()>cpu.GetPip()&&player.GetPip()<=21))
{
cout<<"\n\n\n\t\t\t\t\t\t\t\t恭喜您赢了!\n\n";
cout<<"计算机数据:\t";
cpu.DisplayPip();
cout<<"牌面点数:"<>chChoice;
if((chChoice == 'Y'||chChoice == 'y'))
{
if(player.GetNumber()<5)
{
player.TurnPlay();
cout<<"\n您要的这张牌是:"<21)
blPlayer = 0;
}
else
{
cout<<"对不起,您已经要了5张牌,不能再要牌了!";
blPlayer = 0;
}
}
if(chChoice=='n'||chChoice=='N')
blPlayer = 0;
}
if(cpu.GetPip()<16&&cpu.GetNumber()<5)
{
cpu.TurnPlay();
cout<<"\n计算机要牌,牌点是:"<>chChoice;
while(chChoice=='Y'||chChoice=='y')
{
do
{
cout<>nMoney;
blLogic = player.SetGamble(nMoney);
if(blLogic)
cout<<"您的赌本不够,请重新下注!\n";
}while(blLogic);
PlayTurn(cpu,player);//
cout<<"是否继续21点游戏(Y/N)?\t\t\t";
cin>>chChoice;
}
player.DisplayInfo();
cout<<"\t\t\t您的选择是明智的,赌博有碍家庭和睦!\n";
cout<<"\n\n\t\t\t\t欢迎再次使用此程序!"<
本文档为【21点扑克牌游戏】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。