👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
一、设计要求
该程序将从单词库文件中随机地选择一个单词,显示该单词的中文意思,并显示第一个字母,用户每次输入一个单词,程序判断该该单词是否正确,用户可以最多有3次猜测的机会。如果用户猜中该单词,则显示下一个单词, 设置游戏的时间。主要基本功能有:开始猜单词、榜单(记录每个用户历史记录,并排名次)、单词管理(对单词库中的单词进行增删改)。程序设计题:猜单词。
1. 主菜单:
1.游戏开始
2.单词管理
3.玩家记录
4.退出
2. 基本规则
- 实现猜单词的游戏:游戏规则不限制。
- 单词管理:程序中用来做谜题的单词必须存放在硬盘的文件中。可以增加单词。单词增加要做到快速导入
- 玩家记录:程序要求记录前三名比较好的成绩。记录的时候要求有排名、玩家姓名、猜的次数/单词长度三项。这三条记录要求保存在硬盘上的文件中,在程序开始运行的时候就必须读入,以便随时供玩家查询、并且根据玩家的成绩进行更新。玩家退出系统的时候,最新记录也要存的硬盘中去。
👉👉👉源码关注【测试开发自动化】公众号,回复 “ 猜单词游戏 ” 获取。👈👈👈
3. 其他要求:
- 变量、函数命名符合规范。
2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数。返回值也要以注释的形式说明用途:关键的语句要求有注释。
3)程序的层次清晰,可读性强。
二、功能展示
整体设计思路如下:
2.1 玩家记录
2.2 单词管理
👉👉👉源码关注【测试开发自动化】公众号,回复 “ 猜单词游戏 ” 获取。👈👈👈
2.3 游戏开始
👉👉👉源码关注【测试开发自动化】公众号,回复 “ 猜单词游戏 ” 获取。👈👈👈
2.4 添加单词
2.5 退出
👉👉👉源码关注【测试开发自动化】公众号,回复 “ 猜单词游戏 ” 获取。👈👈👈
三、代码分析
3.1. 主函数
主函数负责程序的入口和主循环。显示主菜单,接受用户的选择。根据用户的选择调用相应的功能模块。
int main() { int choice; while (1) { printf("主菜单\n1.游戏开始\n2.单词管理\n3.玩家记录\n4.退出\n"); printf("请输入你的选择:"); scanf("%d", &choice); switch (choice) { case 1: startGame(); break; case 2: wordManagement(); break; case 3: viewRecords(); break; case 4: return 0; default: printf("无效选择,请重新输入。\n"); } } return 0; }
3.2 开始游戏模块
加载单词库。随机选择一个单词。提示用户,显示单词的中文意思和第一个字母。允许用户猜测,最多三次机会。根据猜测结果给予相应的反馈。
void startGame() { // ...(详细见前文startGame()函数的分析) }
👉👉👉源码关注【测试开发自动化】公众号,回复 “ 猜单词游戏 ” 获取。👈👈👈
3.3 单词管理模块
显示单词管理菜单,接受用户选择。根据用户选择调用相应的功能模块。
void wordManagement() { int choice; printf("单词管理\n1. 添加单词\n2. 查看单词\n3. 返回\n"); printf("请输入你的选择:"); scanf("%d", &choice); switch (choice) { case 1: addWord1(); break; case 2: displayWords(); break; case 3: return; default: printf("无效选择,请重新输入。\n"); } }
3.4 添加单词模块
用户输入新单词和中文意思。将新单词追加到单词文件中。
void addWord1() { // ...(详细见前文addWord1()函数的分析) }
👉👉👉源码关注【测试开发自动化】公众号,回复 “ 猜单词游戏 ” 获取。👈👈👈
3.5 查看单词模块
加载单词库。显示所有单词。
void displayWords() { // ...(详细见前文displayWords()函数的分析) }
3.6 查看玩家记录模块
加载玩家得分记录。显示玩家得分记录。
void viewRecords() { // ...(详细见前文viewRecords()函数的分析) }
👉👉👉源码关注【测试开发自动化】公众号,回复 “ 猜单词游戏 ” 获取。👈👈👈
3.7 文件操作模块
loadWords(): 从文件加载单词到内存数组。
addWord(): 将新单词追加到单词文件中。
loadScores(): 从文件加载玩家得分记录到内存数组。
saveScores(): 保存玩家得分记录到文件。
3.8 得分排序模块
用于qsort函数的回调,比较两个玩家得分。
int compareScores(const void* a, const void* b) { // ...(详细见前文compareScores()函数的分析) }
👉👉👉源码关注【测试开发自动化】公众号,回复 “ 猜单词游戏 ” 获取。👈👈👈