由上图可看到一局游戏的整个过程:押钱 发牌 要牌 输出结果 输出余额 。
有一名玩家没钱了,一盘游戏结束,输出统计的战绩。 输入Y可进入新的一盘游戏。
16
庄家输光了,这盘游戏运行完毕,输出战绩。 输入N,退出游戏。
五、总结
通过此次课程设计,进一步掌握和巩固使用面向对象程序设计语言C++,对面向对象设计程序的设计方法和思想有了一定的了解,初步能应用面向对象设计程序的设计方法及思想解决实际问题的能力;培养了查阅文献资料的好习惯和能力;具备了完成编写任务并对任务加以提升、对程序加以改进的能力。 对系统进行的改进:
(1)增加了记录并计算玩家总金钱数的功能,玩家每局都要输入想要押的金
额。每局结束,系统自动输出各位玩家的余额。 Struct Player {
Int money; Int yq; ?? }
(2)一盘游戏结束,系统会自动输出该盘游戏中各玩家赢的局数和平局的
局数。
17
Struct Player {
?? Int sl; Int pj; }
(4)添加了幽默搞笑的输出语句,提高了游戏的趣味性。如:“你带了多少钱啊?”“你这个笨蛋,你已经只有¥_了! 少押点 :”“ 你这个化生子,你已经把钱输得精光了。”等。 (5)修改了输出界面的背景和字体颜色,提高了程序得美观度。 同时,还发现许多不足:
1、对以前所学的C++内容遗忘过多,不能灵活地运用C++知识解决问题;
2、独立解决问题的能力不强,无法完全独立完成设计,需要求助于老师同学以及文献资料。例如:在设计中参考了许多案例,向同学请教了一些函数的用法;
4、对设计系统界面的知识完全不熟悉,所以在系统界面上没有什么设计,影响了美观度。
参考书目:吕凤翥《C++语言程序设计教程》——人民邮电出版社
杨路明《C语言程序设计》—— 北京邮电大学出版社
钱 能《C++程序设计教程》——清华大学出版社
18
附件:
附件一: 源代码清单:
main.cpp
#include \
#include \ int main(void) {
do {
GameOf21Point objGame;
objGame.Game(); if(Pla[0].money<=0)
cout<<\我没钱了,但兄弟我讲义气,还要玩的话我就去拿钱,还玩不玩?\
else
cout <<\你想回去问妈妈要钱来再玩一次吗?\
} while (UserSaysYes()); system(\
return 0;
} card.h
#ifndef __CARD_H__ #define __CARD_H__ typedef enum {
ACE = 1, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING
} RankType; typedef enum {
19
CLUBS, DIAMONDS, HEARTS, SPADES
} SuitType; struct Card { RankType rank; SuitType suit;
};
ostream& operator<<(ostream& outStream, const Card &card) { if (card.suit == CLUBS) outStream << char(005);
else if (card.suit == DIAMONDS) outStream < if (card.rank == ACE) outStream << \ else if (card.rank == JACK) outStream << \ else if (card.rank == QUEEN) outStream << \ else if (card.rank == KING) outStream << \ else cout << (int)card.rank; return outStream; } #endif game_of_21_point.h #ifndef __GAME_OF_21_POINT_H__ #define __GAME_OF_21_POINT_H__ #include \ #define LEN_OF_MAX_NAME 21 struct Player { int money; 20