(002)(任务书 - 自动发牌)(学号)(姓名 )
更新时间:2023-05-21 22:13:01 阅读量: 实用文档 文档下载
- 论文任务书推荐度:
- 相关推荐
自动发牌课程设计
本程序就是帮同学们过关而已,没有完成全部功能,因为我木有那么多时间,害人也不能还到底啊。不过通过本代码的指导,我相信你一定能写出属于自己的代码!祝你一切顺利……
我是我们学校的,舍友弄了学弟学妹的题目回来,我花了点时间写,平时不用C,但通过这个程序,我又想起当初学C
的痛苦经历,但C很能体现编程的本质。 我觉得能用C写大项目的,他就是我的上帝……
把代码复制,粘贴到VC,即可运行了。
字很小很小,故意的…………
中南民族大学计算机科学学院本科课程设计
任 务 书
指导教师: XXXXXXXX 下达时间: 2013-3-20 学生姓名: XXXXX 学 号:111111111 专 业: 计算机科学与技术
一、 课程设计的基本要求
根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。通过课程设计,加深对《C语言程序设计》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用(时间函数、绘图函数以及文件的读写操作函数等);复杂任务功能分解
自动发牌课程设计
方法(自顶向下逐步求精、模块化设计、信息隐藏等)。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。
具体要求如下:
1、 采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。学生也可根据自己对题目的理解增加新的功能模块(视情况可另外加分)。
2、 系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
3、 程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。
4、 编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等);
5、 写出规范的课程设计报告,具体要求见相关说明文档。
二、 课程设计的主要内容
一副扑克有52张牌,打升级时应将牌分给四个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S(Spaces)表示;红桃用H(Hearts)表示;方块用D(Diamonds)表示;梅花用C(Clubs)表示。 问题分析与算法设计
按照打升级的规定,每人应当有13张牌。在人工发牌时,先进行洗牌,然后将洗好的牌按一定的顺序发给每一个人。为了便于计算机模拟,可将人工方式的发牌过程加以修改:先确定好发牌顺序:1、2、3、4;将52张牌顺序编号:黑桃2对应数字0,红桃2对应数字1,方块2对应数字2,梅花2对应数字3,黑桃3对应数字4,红桃3对应数字5,…然后从52 张牌中随机的为每个人抽牌(也可以采取其它的编号方式)。
这里可以采用C语言库函数的随机函数,生成0到51之间的共52个随机数,以产生洗牌后发牌的效果。 运行示例: S K J 8 H A J 5 3 D Q 8 C K J 7 5
S A T 6 4 2 H 4 2 D 7 6 4 C Q T 9
S 9 7 5 3 H K Q T 9 D J 3 2 C 8 2
S Q H 8 7 6 D A K T 9 5 C A 6 4 3
思考题(必须完成):完成2副牌的自动发牌,每人应当有26张牌,而且需将每家所得的牌
自动发牌课程设计
进行排序。
要求:有清晰的菜单供选择,运行的结果需显示在屏幕上,并存入文件中。
三、 课程设计的进程安排
1.2013年3月20日(第4周):布置并下达课程设计题目。
2.2013年4月12日(第7周)之前:联系指导教师,理解课程设计题目及相关要求,查阅相关资料,进行课程设计。
3.2013年3月20日至4月18日(第4~8周):课程设计源程序的调试、修改与检查,书写设计报告。
地点:学院实验机房9-202、203、204、205、206。
4.2013年4月19日之前(第8周):上交、检查设计报告。
地点:计算机科学学院实验机房。
指导教师: XXXXXXXX
2013年 3 月 20 日
#include<iostream> #include<string> #include<sstream> #include<ctime> #include<vector> using namespace std;
void parseIntoPockerCards(int *numCars, string
pockerCars[])
{
for(int i=0;i<13;i++) {
stringstream str; string a;
switch((numCars[i]-1)/13)
{case 0:;
str<<numCars[i];str>>a;switch(numCars[i]){case 1:
pockerCars[i]="黑桃"+ string("A");break;
case 2:case 3:case 4:case 5:case
6:case 7:case 8:case 9:case 10:
pockerCars[i]="黑桃"+ a;break;
case 11:
自动发牌课程设计
pockerCars[i]="黑桃"+ string("J");break;
pockerCars[i]="黑桃"+ string("Q");break;
pockerCars[i]="黑桃"+ string("K");break;
pockerCars[i]="红桃"+ string("A");break;
6:case 7:case 8:case 9:case 10:
pockerCars[i]="红桃"+ a;break;
pockerCars[i]="红桃"+ string("J");break;
pockerCars[i]="红桃"+ string("Q");break;
pockerCars[i]="红桃"+ string("K");break;
pockerCars[i]="梅花"+ string("A");break;
case 12:
case 13:
}break;
case 1:
str<<numCars[i]-13str>>a;switch(numCars[i]-13){case 1:
case 2:case 3:case 4:case 5:case
case 11:
case 12:
case 13:
}break;
case 2:
str<<numCars[i]-26str>>a;switch(numCars[i]-26){case 1:
case 2:case 3:case 4:case 5:case
自动发牌课程设计
6:case 7:case 8:case 9:case 10:
pockerCars[i]="梅花"+ a;break;
pockerCars[i]="梅花"+ string("J");break;
pockerCars[i]="梅花"+ string("Q");break;
pockerCars[i]="梅花"+ string("K");break;
pockerCars[i]="方片"+ string("A");break;
6:case 7:case 8:case 9:case 10:
pockerCars[i]="方片"+ a;break;
pockerCars[i]="方片"+ string("J");break;
pockerCars[i]="方片"+ string("Q");break;
pockerCars[i]="方片"+ string("K");break;
}}}case 11:
case 12:
case 13:
}break;
case 3:
str<<numCars[i]-39str>>a;switch(numCars[i]-39){case 1:
case 2:case 3:case 4:case 5:case
case 11:
case 12:
case 13:
}break;
default:
break;
自动发牌课程设计
voiddisplayCards(int *p1,int *p2,int *p3,int *p4){string player1[13];string player2[13];string player3[13];string player4[13];parseIntoPockerCards(p1,player1);//将每位玩家手里的牌输出为扑克牌样式parseIntoPockerCards(p2,player2);
parseIntoPockerCards(p3,player3);
parseIntoPockerCards(p4,player4);
cout<<"player1的牌为:"<<endl;
for(int i=0;i<13;i++)cout<<player1[i]<<",";
cout<<endl;cout<<"player2的牌为:"<<endl;
for(int j=0;j<13;j++)cout<<player2[j]<<",";
cout<<endl;cout<<"player3的牌为:"<<endl;
for(int k=0;k<13;k++)cout<<player3[k]<<",";
cout<<endl;cout<<"player4的牌为:"<<endl;
for(int q=0;q<13;q++)cout<<player4[q]<<",";
cout<<endl;}voidgetRandomCards(int p1[],int p2[],int p3[],int p4[]){int totalCards[52]={1,2,34,56,78,9101112,13,14,15,1617,18,19,20,21222324,25,2627,28,293031,32,33,34,353637,38,39,40,414243,44,45,46,474849,50,51,52}; //该数组存放了所有的牌vector<int> dc;
int countOfDispachCards=1;//记录发牌次数int currentIndex_p1=0;//记录玩家1的发牌次数int currentIndex_p2=0;//记录玩家2的发牌次数int currentIndex_p3=0;//记录玩家3的发牌次数int currentIndex_p4=0;//记录玩家4的发牌次数//获取伪随机数srand((unsigned)time(0));
int ran_num;ran_num=rand() % 52dc.push_back(ran_num);for(int i=0;i<52;i++,countOfDispachCards++){//这个for循环要来确保每次产生的随机数都是不同的,因为每个玩家的牌都是不一样的ran_num=rand() % 52for(int j=0;j<dc.size();j++){if(ran_num==dc[j])
{ran_num=rand() % 52j=0}
自动发牌课程设计
if(j==dc.size()-1){dc.push_back(ran_num);break;
}}switch(countOfDispachCards%4)//用发牌的次数对4取余,便能按顺序给每位玩家发牌{case 1:
p1[currentIndex_p1]=totalCards[ran_num];
currentIndex_p1++;break;
case 2:
p2[currentIndex_p2]=totalCards[ran_num];
currentIndex_p2++;break;
case 3:
p3[currentIndex_p3]=totalCards[ran_num];
currentIndex_p3++;break;
case 0:
p4[currentIndex_p4]=totalCards[ran_num];
currentIndex_p4++;break;
default:
cout<<"ERROR";break;
}}}int main()
{int player1[13];int player2[13];int player3[13];int player4[13];
getRandomCards(player1,player2,player3,player4);//给每位玩家发牌 displayCards(player1,player2,player3,player4);//牌 return 0; 打印每位玩家的}
正在阅读:
(002)(任务书 - 自动发牌)(学号)(姓名 )05-21
高中语文 第一单元《沁园春 长沙》教案 新人教版必修103-08
江西省临川二中高二第一次月考题及答案11-08
工业企业环境保护手册07-27
2021年街道办组织工作要点08-08
校园便利店营销策划案(1)01-08
每日英语学习阅读材料(A4打印版) - 18051403-08
环境改进建议书500字07-09
2011年gct测试样卷12-02
关于发展红色旅游的调研报告06-30
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 任务书
- 发牌
- 学号
- 姓名
- 自动
- 002
- 四川省小金县中学2016-2017学年七年级地理上学期期末考试试题无答案新人教版
- 辽宁皇亚贵金属交易所投资手册
- 计算机操作员考试(高级)操作指南-10.19版
- 台军守备旅山地防御作战研究
- 起重机械安全教育培训
- 2015年爱婴医院知识培训测试题及答案
- 税务知识应知应会
- 浅谈山西大院文化的保护与旅游开发
- 玉米收获机摘穗机构的工作原理及改进
- 建筑构造教学大纲,很好很实用
- 计算机职称考试练习题
- Abnormal Crowd Behavior Detection Based on the Energy Model
- 五年级语文下学期教学工作总结
- 2011中国手机市场背景分析
- 内存池使用整理C语言实现
- 全国模范教师、全国教育系统先进工作者审批表
- 第二 章民事法律关系
- 内部控制客观题复习资料
- 2000 J Viral Hepatitis- How can the cellular immune response control hepatitis B virus replication
- 酒店圣诞活动策划文案