1、 课课 程程 设设 计计 报报 告告 课程设计名称:数据结构课程设计数据结构课程设计 课程设计题目:扑克牌的排序扑克牌的排序 I 目目 录录 1 课程设计介绍课程设计介绍 1 1.1 课程设计内容 1 1.2 课程设计要求 1 2 课程设计原理课程设计原理 2 2.1 课设题目粗略分析 2 2.2 原理图介绍 2 2.2.1 功能模块图 . 2 2.2.2 流程图分析 . 3 3 数据结构分析数据结构分析 6 3.1 存储结构 6 3.2 算法描述 6 4 调试与分析调试与分析 12 4.1 调试过程 12 4.2 程序执行过程 12 参考文献参考文献 15 附附 录(关键部分程序清单)录(关
2、键部分程序清单) 16 1 1 课程设计介绍课程设计介绍 1.1 课程设计内容课程设计内容 编写算法能够用基数排序算法对扑克牌进行排序。应能够选择按花色优 先或按面值优先,初始扑克牌牌序要求能自动生成(随机生成) 。 1.2 课程设计要求课程设计要求 1花色的符号可自定,输出要求给出初始牌序和结果牌序。 2参考相应资料,独立完成课程设计任务。 3交规范课程设计报告和软件代码。 2 2 课程设计原理课程设计原理 2.1 课设题目粗略分析课设题目粗略分析 根据课设题目要求,拟将整体程序分为三大模块。此三个模块相互独立, 没有嵌套调用的情况,以下是三个模块的大体分析: 1建立一个结构体数组存放整副扑
3、克。 2 根据要求的扑克数及生成的随机数建立一个结构体数组存放需要排序 的扑克。 3用基数排序的方法对随机生成的扑克进行相应要求的排序 2.2 原理图介绍原理图介绍 2.2.1 功能模块图功能模块图 图 2. 1 功能模块图 随机生成需排序的扑克 对扑克按花色优先排 序并输出 对扑克按面值优先排序并 输出 初始化生成整副扑克 3 2.2.2 流程图分析流程图分析 1随机生成需排序的扑克函数流程图,如图 2.2 所示: Y Y 图 2.2 生成随机扑克的流程图 开始 i+ i=1 i=t n=rand() ri.huase=pokern.huase ri.num=pokern.num ri.or
4、der=pokern.order ri.key0=pokern.huase rikey1=pokern.order k=(n+2)%13 K=0,1,11,12 以%c 输出 value 以 %d 输 出 value N 结束 ri.huase=pokern.huase ri.num=pokern.num ri.order=pokern.order ri.key0=pokern.huase rikey1=pokern.order k=(n+2)%13 4 利用一个 for 循环及随机函数 rand(),利用每次循环生成的随机数对应的 数值 num建立初始的无序扑克,同时将 huase、value 分别赋给关键字 key0、 key1以对其进行排序 2. 对扑克进行花色优先排序的函数流程图,如图 2.3 所示: Y 图 2.3 对扑克进行花色优先排序的流程图 开始 i=0 in-1 ri.next=i+1 i+ rn.next=0 i=