C语言关键字中英翻译机(用文件实现),有进阶(扩展了一个小游戏超有趣)

文章目录

    • 概要
    • 整体架构流程
    • 函数功能解释
    • 小结

概要

用c语言完成关键字中英翻译机。功能要求:要求输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整形”+回车,得到 int;输入英文的单词 int,则可以翻译成中文“基本整形”。可模拟文曲星来实现。可多次查询,输入 bye 时退出。

整体架构流程

用文件实现各函数功能menu1菜单search字典 game小游戏

利用文件操作来完成,可以多次查找,将各函数放在主函数中实现。

功能输入中文的名词和关键字,可以将其翻译成英语,扩展了一个关于关键字的小游戏。

利用while()来实现多组输入输出。

游戏里面一个for循环完成给用户三次机会。

函数功能解释

1 . void menu() 菜

2 . void search(char str[], int k);字典

3.  void menu1();菜单

4.  void game();小游戏

代码实现

注意由于使用文件实现故大家要把下面的数据拷到记事本里并重命名为"kkxixi.dat"

注意空格不能省略。

文件中要保存的数据(把下面这些数据拷到源程序对应的文件夹里的记事本里(如果没有记事本可自己创一个)一定记得把记事本重命名为"kkxixi.dat"


int 基本整型 char 字符型 float 浮点型 double 双精度浮点型 enum 枚举类型 long 长整型 short 短整型 struct 结构体类型 union 共用体类型 signed 有符号类型 longlong 长整型类型


思路:创建一个数组将文件中的数组保存下来后,遍历整个数组,找出答案并输出。扩展一个小游戏,也是用数组,不过这个数组只存放各各类型字节大小,和文件中的一一对应,判断输出即可。

采用while可多组输入输出。

菜单函数

void menu()
{printf("-----------------------------\n");printf("---<C语言关键字中英翻译机>---\n");printf("-----<输入bye退出程序>-------\n");printf("-----<输入play进入练习>------\n");printf("\n");
}

 字典函数

void search(char str[], int k)
{A s;FILE* fp;if ((fp = fopen("kkxixi.dat", "r")) == NULL){printf("cannot open file\n");exit(0);}A string[100];int i = 0;while (!feof(fp)){fscanf(fp, "%s %s", string[i].en, string[i].ch);i++;}fclose(fp);for (int t = 0; t <= i - 1; t++)//英变汉{if (strcmp(string[t].en, str) == 0){printf("%s\n", string[t].ch);return;}}for (int t = 0; t <= i - 1; t++)//汉变英{if (strcmp(string[t].ch, str) == 0){printf("%s\n", string[t].en);return;}}printf("找不到\n");
}

一个小菜单

void menu1()
{printf("请输入查找信息-->:");
}

进阶小游戏

void game()
{printf("\n");printf("-------练习---------\n");int t = 0;do{A s;FILE* fp;if ((fp = fopen("kkxixi.dat", "r")) == NULL)//打开文件{printf("cannot open file\n");exit(0);}A string[100];//用来存储文件信息int i = 0;while (!feof(fp)){fscanf(fp, "%s %s", string[i].en, string[i].ch);//读取文件信息并保存到string中i++;}fclose(fp);//关闭文件srand(time(NULL));//用rand生成随机数的前摇int k = rand() % 11;//生成随机数模上11是为了生成0~10直接的数字printf("%s", string[k].en);printf("请输入相对应的中文-->:");char str[100];scanf("%s", str);int x = 3;int a[40] = { 4,1,4,8,0,4,2,0,0,0,8 };if (strcmp(string[k].ch, str) == 0){printf("恭喜你答对啦!\n");printf("如果它是基本数据类型,你能输出它的字节吗(有的填数字,没有就写0)?->:");int temp;for (x=3;x>=1; x--){scanf("%d", &temp);if (a[k] == temp){printf("你真厉害!恭喜你完成挑战!\n");break;//printf("游戏结束\n");}else{if (x - 1 == 0){printf("很遗憾回答错误,再去复习复习吧\n");break;}printf("回答错误你还有%d次机会\n",x-1);}}}else printf("很遗憾答错了,快去刷几题力扣再来\n");printf("输入非0继续练习--输入0退出游戏\n");scanf("%d", &t);} while (t);
}

主函数

int main()
{menu();int num = 1;while (num){menu1();char str[100];scanf("%s", str);if (strcmp(str, "bye") == 0){printf("退出程序");return 0;}if (strcmp(str, "play") == 0) game();else search(str, num);}return 0;
}

总代码

#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
//课堂实验设计
///
typedef struct stk
{char en[100];char ch[100];
}A;
void menu()
{printf("-----------------------------\n");printf("---<C语言关键字中英翻译机>---\n");printf("-----<输入bye退出程序>-------\n");printf("-----<输入play进入练习>------\n");printf("\n");
}
void search(char str[], int k)
{A s;FILE* fp;if ((fp = fopen("kkxixi.dat", "r")) == NULL){printf("cannot open file\n");exit(0);}A string[100];int i = 0;while (!feof(fp)){fscanf(fp, "%s %s", string[i].en, string[i].ch);i++;}fclose(fp);for (int t = 0; t <= i - 1; t++)//英变汉{if (strcmp(string[t].en, str) == 0){printf("%s\n", string[t].ch);return;}}for (int t = 0; t <= i - 1; t++)//汉变英{if (strcmp(string[t].ch, str) == 0){printf("%s\n", string[t].en);return;}}printf("找不到\n");
}
void menu1()
{printf("请输入查找信息-->:");
}
void game()
{printf("\n");printf("-------练习---------\n");int t = 0;do{A s;FILE* fp;if ((fp = fopen("kkxixi.dat", "r")) == NULL)//打开文件{printf("cannot open file\n");exit(0);}A string[100];//用来存储文件信息int i = 0;while (!feof(fp)){fscanf(fp, "%s %s", string[i].en, string[i].ch);//读取文件信息并保存到string中i++;}fclose(fp);//关闭文件srand(time(NULL));//用rand生成随机数的前摇int k = rand() % 11;//生成随机数模上11是为了生成0~10直接的数字printf("%s", string[k].en);printf("请输入相对应的中文-->:");char str[100];scanf("%s", str);int x = 3;int a[40] = { 4,1,4,8,0,4,2,0,0,0,8 };if (strcmp(string[k].ch, str) == 0){printf("恭喜你答对啦!\n");printf("如果它是基本数据类型,你能输出它的字节吗(有的填数字,没有就写0)?->:");int temp;for (x=3;x>=1; x--){scanf("%d", &temp);if (a[k] == temp){printf("你真厉害!恭喜你完成挑战!\n");break;//printf("游戏结束\n");}else{if (x - 1 == 0){printf("很遗憾回答错误,再去复习复习吧\n");break;}printf("回答错误你还有%d次机会\n",x-1);}}}else printf("很遗憾答错了,快去刷几题力扣再来\n");printf("输入非0继续练习--输入0退出游戏\n");scanf("%d", &t);} while (t);
}
int main()
{menu();int num = 1;while (num){menu1();char str[100];scanf("%s", str);if (strcmp(str, "bye") == 0){printf("退出程序");return 0;}if (strcmp(str, "play") == 0) game();else search(str, num);}return 0;
}

小结

将文件读取的数据存放在数组中,由于本题的特性,要自己定义一个类型,遍历整个数组,需要读者对文件操作有一定的了解,不难。

如果此文章对你有用的话麻烦点个赞,阿里嘎多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZooKeeper 高级应用

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 概述 ZooKeeper 是 Apache 软件基金会的一个软件项目&#xff0c;它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册&#xff0c;在架构上&#xff0c;通过冗余服务实现高可用性&#xff08…

DFS BFS

用DFS和BFS分别实现 //这边给出DFS的模版 void dfs(int x,int y) {//判断是否到达终点&#xff08;只有给出结束点的时候需要&#xff09; if (x ex && y ey) {if (min_steps > step) {min_steps step;}return;}//给出移动方向int move[4][2] {{0, 1}, {0, -1}…

php学习06-魔术常量

有九个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 LINE 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写&#xff0c;如下&#xff1a; 参考

[Angular] 笔记 20:NgContent

chatgpt: 在Angular中&#xff0c;NgContent是用于内容投影&#xff08;Content Projection&#xff09;的一个重要概念。它允许你在一个组件中插入内容&#xff0c;并将这些内容投影到另一个组件中。 当你在一个组件中使用<ng-content></ng-content>标签时&…

基于轻量级GhostNet模型开发构建生活场景下生活垃圾图像识别系统

轻量级识别模型在我们前面的博文中已经有过很多实践了&#xff0c;感兴趣的话可以自行移步阅读&#xff1a; 《移动端轻量级模型开发谁更胜一筹&#xff0c;efficientnet、mobilenetv2、mobilenetv3、ghostnet、mnasnet、shufflenetv2驾驶危险行为识别模型对比开发测试》 《基…

【用户增长】引言:浅析游戏运营用户增长概念

1 游戏发行运营中的主要职能&#xff1a; ​ 一、发行运营通识l 运营介绍&#xff1a;职能分工、发行运营流程、职业发展能力及要求l 品类认知&#xff1a;行业品类布局、品类用户画像、运营节奏及特性&#xff0c;包含不同品类核心打法及长线运营思路l 海外运营&#xff1a;海…

GO学习记录 —— 创建一个GO项目

文章目录 前言一、项目介绍二、目录介绍三、创建过程1.引入Gin框架、创建main2.加载配置文件3.连接MySQL、redis4.创建结构体5.错误处理、返回响应处理 前言 代码地址 下载地址&#xff1a;https://github.com/Lee-ZiMu/Golang-Init.git 一、项目介绍 1、使用Gin框架来创建项…

论文阅读<Contrastive Learning-based Robust Object Detection under Smoky Conditions>

论文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2022W/UG2/papers/Wu_Contrastive_Learning-Based_Robust_Object_Detection_Under_Smoky_Conditions_CVPRW_2022_paper.pdf Abstract 目标检测是指有效地找出图像中感兴趣的目标&#xff0c;然后准确地确定它们…

springboot 项目新建流程

一、新建工程 二、工程建好后&#xff0c;在pom文件中加入springboot 依赖 <dependencies><!--SpringBoot启动依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>&l…

python+django在线学习教学辅助作业系统gp6yp

本课题使用Python语言进行开发。基于web,代码层面的操作主要在PyCharm中进行&#xff0c;将系统所使用到的表以及数据存储到MySQL数据库中 技术栈 后端&#xff1a;pythondjango 前端&#xff1a;vue.jselementui 框架&#xff1a;django/flask Python版本&#xff1a;python3.…

RobotFrameWork环境搭建及使用

RF环境搭建 首先安装python并且配置python环境变量pip install robotframeworkpip install robotframework-ride 生产桌面快捷方式 不行换豆瓣源检查一下pip list RF类库和扩展库 标准库 按F5快捷键查询&#xff0c;可以看到rf自带的库不需要额外安装这些标准库在python的 …

DragonEnglish:COCA20000+单词+释义

去年的时候接触到了 COCA20000 单词&#xff0c;对这种给单词特定顺序的方式蛮感兴趣的。因为我当时接触的版本只有单词或者单词释义的版本&#xff0c;所以我直接通过各种方式给它搭配了音标例句发音&#xff0c;然后每100个切割成1份&#xff0c;分成了 202 个文件来学习&…

计算机视觉 全教程目录

1、OpenCV 图像处理框架 实战系列 总目录 OpenCV 图像处理框架 实战系列 总目录 2、现代卷积网络实战系列 总目录 现代卷积网络实战系列 总目录 3、YOLO 物体检测 系列教程 总目录 YOLO 物体检测 系列教程 总目录 4、图像分割实战-系列教程 总目录 图像分割实战-系列教程 总目录…

超维空间S2无人机使用说明书——52、初级版——使用PID算法进行基于yolo的目标跟踪

引言&#xff1a;在实际工程项目中&#xff0c;为了提高系统的响应速度和稳定性&#xff0c;往往需要采用一定的控制算法进行目标跟踪。这里抛砖引玉&#xff0c;仅采用简单的PID算法进行目标的跟随控制&#xff0c;目标的识别依然采用yolo。对系统要求更高的&#xff0c;可以对…

项目中使用Java中List.subList()的注意事项

使用介绍 在Java中&#xff0c;subList是List接口的一个方法&#xff0c;用于获取原始列表的子列表 方法的声明如下 List<E> subList(int fromIndex, int toIndex);fromIndex&#xff1a;起始索引&#xff08;包括&#xff09;toIndex&#xff1a;结束索引&#xff08…

解密垃圾邮件分类:基于SVM的数据挖掘项目

垃圾邮件&#xff08;Spam&#xff09;的泛滥成灾一直是电子邮件系统中的一个严峻问题。随着垃圾邮件技术的不断演变&#xff0c;传统的过滤方法逐渐显得力不从心。因此&#xff0c;本项目旨在利用支持向量机&#xff08;SVM&#xff09;这一强大的机器学习工具&#xff0c;实现…

git、gitee、github、gitlab 区别以及功能

请直接看原文 原文链接:git、gitee、github、gitlab 区别以及功能_agit gitee-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------- Git git 是一种版本控制系统&#xff0c;是…

Activemq存储KahaDb详解

引言 ActiveMQ在不提供持久化的情况下&#xff0c;数据保存在内存中&#xff0c;一旦应用崩溃或者重启之后&#xff0c;数据都将会丢失&#xff0c;这显然在大部分情况下是我们所不希望的。对此ActiveMQ提供了两种持久化方式以供选择。 kahaDB kahaDB是一个基于文件&#xf…

WPF+Halcon 培训项目实战(10):HS组件绘制图案

文章目录 前言相关链接项目专栏运行环境匹配图片模板匹配加载模板文件运行结果 绘制十字标 WPF HS组件绘制图像绘制和生成的区别 前言 为了更好地去学习WPFHalcon&#xff0c;我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只…

元旦特辑:Note6---选择排序

目录 前言❌ 1. 基本思想⚠️ 2. 直接选择排序&#x1f7e2; 2.1 思路分析✳️ 2.2 代码实现❎ 2.2.1 sort.h 2.2.2 sort.c 2.2.3 test.c 2.3 问题解决❇️ 2.3.1 sort.c修改 2.4 特性总结✅ 3. 堆排序&#x1f535; 3.1 代码实现&#x1f3e7; 3.2 特性总结&…