一、设计要求
基本要求:体育彩票的模拟生成和兑奖
模拟36选7的中国体育彩票。从1~36中随机取出7个数作为一张彩票的号码,随机生成若干张彩票,采用五种不同的查找算法和指定的中奖号码进行比较,判断中奖情况。
设置一个界面可以选择用线性查找,哈希查找,二叉树查找,二分查找,顺序查找中的一个和指定的中奖号码进行比较,判断中奖情况。
使用步骤
- 系统启动
运行程序后,系统将提示输入生成的彩票数量。 - 生成彩票
输入需要生成的彩票数量(最多100张),系统将随机生成相应数量的彩票,每张彩票包含7个号码,范围在1到36之间。生成的彩票号码将立即展示。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈
- 生成中奖号码
系统将随机生成一组7个号码作为中奖号码,并展示这些号码。 - 选择查找算法
系统提供以下查找算法供用户选择:
- 线性查找
- 哈希查找
- 二叉树查找
- 二分查找
- 顺序查找(与线性查找相同)
- 退出
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈
二、设计思路
为了实现彩票系统的功能,需要设计并使用多种数据结构来存储和操作彩票号码、中奖号码以及进行各种查找操作。以下是详细的数据结构设计及其对应的代码块:
1. 数组
数组是最基本的数据结构,用于存储生成的彩票号码和中奖号码。
彩票号码数组
用途:存储每张彩票的7个号码。
数据类型:int
数组大小:SELECTED_NUMBERS(即7)
int ticket[SELECTED_NUMBERS];
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈
彩票集合数组
用途:存储所有生成的彩票号码。
数据类型:int
数组大小:MAX_TICKETS(即100) x SELECTED_NUMBERS(即7)
int tickets[MAX_TICKETS][SELECTED_NUMBERS];
中奖号码数组
用途:存储生成的7个中奖号码。
数据类型:int
数组大小:SELECTED_NUMBERS(即7)
int winning_numbers[SELECTED_NUMBERS];
2. 哈希表
用于哈希查找算法,提高查找效率。
哈希表
用途:标记中奖号码是否存在。
数据类型:int
数组大小:TOTAL_NUMBERS + 1(即37)
int hash_table[TOTAL_NUMBERS + 1] = {0};
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈
3. 二叉搜索树
用于二叉树查找算法,支持快速查找操作。
二叉搜索树节点
用途:存储二叉树节点的信息。
数据类型:TreeNode
成员变量:
int value:节点值 struct TreeNode* left:左子节点指针 struct TreeNode* right:右子节点指针 typedef struct TreeNode { int value; struct TreeNode *left, *right; } TreeNode;
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈
二叉搜索树插入函数
用途:在二叉搜索树中插入新节点。
数据类型:TreeNode*
参数:
TreeNode* root:当前树的根节点 int value:插入的值 TreeNode* insert(TreeNode* root, int value) { if (root == NULL) { TreeNode* new_node = (TreeNode*)malloc(sizeof(TreeNode)); new_node->value = value; new_node->left = new_node->right = NULL; return new_node; } if (value < root->value) { root->left = insert(root->left, value); } else { root->right = insert(root->right, value); } return root; }
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈
三、功能展示
输入彩票数量
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈
线性查找
哈希查找
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈
二叉树查找
二分查找
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈
顺序查找
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体彩模拟 ” 获取。👈👈👈