Python(单词识别、汉诺塔、学生信息管理系统、生词本)

news2024/10/7 17:23:38

一、单词识别

周一到周日的英文依次为:Monday、Tuesday、Wednesday、Thusday、Friday、Saturday和Sunday,这些单词的首字母基本都不相同,在这7个单词的范围之内,通过第一或前两个字母即可判断对应的是哪个单词。

本任务要求编写程序,实现根据第一或前两个字母输出Monday、Tuesday、Wednesday、Thusday、Friday、Saturday和Sunday之中完整单词的功能。

分析:

本任务的完整单词包含7个,它们分别是Monday、Tuesday、Wednesday、Thusday、Friday、Saturday和Sunday。其中,Monday、Wednesday、Friday可根据用户输入的首字母判断, Tuesday和Thusday、Saturday和Sunday需根据用户连续输入两次字母才能进一步判断,具体规则如下:

(1)若用户第一次输入的字母为 “m”、“w”和“f”,则直接返回“Monday”、“ Wednesday”和“Friday”;

(2)若用户第一次输入“t”,需要再输入第2个字母进行判断,输入“h”返回“Thusday”,输入“u”返回“Tuesday”;

(3)若用户第一次输入“s”,需要再输入第2个字母进行判断,输入“a”返回“Saturday”,输入“u”返回“Sunday”;

(4)若用户第一次输入其它字母,则提示用户“请输入正确的字母”。

从以上分析可知,第一个或第二个字母可以作为获取完整单词的键,因此这里可以创建一个包含7个键值对的字典,其中,键“m”、“w”和“f”对应的值为“Monday”、“Wednesday”和“Friday”,则键“t”和“s”对应的值是字典{'h': 'thursday', 'u': 'tuesday'}和{'a': 'saturday', 'u': 'sunday'}。

二、汉诺塔

汉诺塔是一个可以使用递归解决的经典问题,它源于印度一个古老传说:大梵天创造世界的时候做了三根金刚石柱子,其中一根柱子从下往上按照从大到小的顺序摞着64片黄金圆盘,大梵天命令婆罗门把圆盘从下面开始按照从大到小的顺序重新摆放在另一根柱子上,并规定:小圆盘上不能放大圆盘,三根柱子之间一次只能移动一个圆盘。问一共需要移动多少次,才能按照要求移完这些圆盘。三根金刚柱子与圆盘摆放方式如图1所示。

图1 汉诺塔格局图

本任务要求编写程序,实现输出汉诺塔移动过程的功能。

分析:

我们先来分析一下移动n个圆盘的过程:

(1)假设现在A柱子上只有1个圆盘,此时无需B柱子中转而直接将圆盘从A柱子移动到C柱子上。

(2)假设A柱子上有2个圆盘,此时可以先将小盘子移动到B柱子上,再将大盘子移动到C柱子上,最后将小盘子移动到C柱子上。我们既可以借助柱子B将2个盘子从A移动到C,也可以借助C将2个盘子从A移动到B。

(3)假设A柱子上有3个圆盘,则可以根据移动2个盘子的过程,先借助柱子C将柱子A上的两个盘子先移动到柱子B,将A上的大盘子移动到柱子C上,此时A成为空柱子,再借助柱子A,将柱子B上两个盘子移动到C。

(4)以此类推,假设A柱子上有n个盘子,则可以将n-1个盘子看作一个整体,也就是递归中的子问题。例如,借助柱子C先将柱子A上的n-1个盘子移动到柱子B上,再将柱子A上最大的盘子移动到柱子C上,此时A成为空柱子,最后借助柱子A,将柱子B上n-2个盘子移动到柱子A上,将柱子B上最大的盘子移动到柱子C上,此时B成为空柱子......如此往复。

经过上述分析的过程,递归函数边界条件和递归公式分别如下:

(1)边界条件:当n为1时,直接将盘子从A移动到C;

(2)递归公式:当n为n时,直接将n-1个盘子先从A移动到空柱子B上,再将第n个盘子移动到柱子C上,最后将柱子B上的n-1个盘子移动到柱子C上。

运行程序,在控制台输入“1”之后的结果如下所示:

请输入盘子的数量:1

A -> C

再次运行程序,在控制台输入“2”之后的结果如下所示:

请输入盘子的数量:2

A -> B

A -> C

B -> C

再次运行程序,在控制台输入“3”之后的结果如下所示:

请输入盘子的数量:3

A -> C

A -> B

C -> B

A -> C

B -> A

B -> C

A -> C

三、学生信息管理系统

学生信息管理系统是用于管理学生信息的管理软件,它具备学生信息的查找、修改、增加和删除功能,利用该系统可实现学生信息管理的电子化,提高信息管理效率。

本任务要求编写程序,实现学生信息管理系统。

分析:

由任务描述可知,本实例的学生管理系统具备5个功能,分别是打印功能菜单、添加学生信息、删除学生信息、修改学生信息和显示学生信息,每个功能可以抽取成一个函数,在程序执行的过程中调用即可。

除此之外,还可以定义一个主函数main(),该函数主要描述使用一次学生管理系统的过程,包括打印功能菜单、接收用户的输入、根据输入调用函数执行相应的功能。

运行程序,在控制台输入“1”之后的结果如下所示:

==============================

学生管理系统

1.添加学生信息

2.删除学生信息

3.修改学生信息

4.显示所有学生信息

0.退出系统

==============================

请选择功能:1

请输入新学生的姓名:小红

请输入新学生的性别:

请输入学生的手机号码:123456

在控制台输入“3”之后的结果如下所示:

请选择功能:3

请输入学生序号:1

请输入学生姓名:小明

请输入学生性别(男/女):男

请输入学生的手机号码:123

在控制台输入“4”之后的结果如下所示:

请选择功能:4

学生的信息如下:

==============================

序号    姓名    性别    手机号码

1    小明        123

在控制台输入“2”之后的结果如下所示:

在控制台输入“0”之后的结果如下所示:

请选择功能:0

亲,真的要退出么?(Yes or No):Yes

 

四、生词本

背单词是英语学习中最基础的一环,不少学生在背诵单词的过程中会整理自己的生词本,以不断拓展自己的词汇量。本实例要求编写生词本程序,该程序需具备以下功能。

(1)查看生词列表功能:输出生词本中全部的单词;若生词本中没有单词,则提示“生词本内容为空”。

(2)背单词功能:从生词列表中取出一个单词,要求用户输入相应的翻译,输入正确提示“太棒了”,输入错误提示“再想想”。

(3)添加新单词功能:用户分别输入新单词和翻译,输入完成后展示添加的新单词和翻译,并提示用户“单词添加成功”。若用户输入的单词已经存在于生词本中,提示“此单词已存在”。

(4)删除单词功能:展示生词列表,用户输入单词以选择要删除的生词,若输入的单词不存在提示“删除的单词不存在”,生词删除后提示“删除成功”。

(5)清空生词本功能:查询生词列表,若列表为空提示“生词本内容为空”,否则清空生词本中的全部单词,并输出提示信息“生词本已清空”。

(6)退出生词本功能:退出生词本。

分析:

本实例的生词本主要用于保存多个单词及其翻译,其中的单词与翻译是互相对应的,且单词是不能重复的,因此这里可将每组单词与翻译视为一个字典,将生词本视为包含多个单词的集合。但集合中存储的元素必须是可哈希类型的,其中不能包含字典,这时需要将字典转换为字符串之后再添加到集合中。

生词本具有5个功能,分别是查看生词本、背单词、添加新单词、删除单词和清空生词本。其中背单词的功能相当于遍历集合元素的操作,添加新单词的功能相当于往集合中添加元素的操作,删除单词和清空生词本的功能相当于删除和清空集合元素的操作。

运行程序,在控制台输入“3”之后的结果如下所示:

====================

欢迎使用生词本

1.查看生词本

2.背单词

3.添加新单词

4.删除单词

5.清空生词本

6.退出生词本

====================

请输入功能编号:3

请输入新单词:new

请输入单词翻译:新的

单词添加成功

new: 新的

请输入功能编号:3

请输入新单词:perfect

请输入单词翻译:完美的

单词添加成功

perfect: 完美的

在控制台输入“1”之后的结果如下所示:

请输入功能编号:1

{'new': '新的', 'perfect': '完美的', }

在控制台输入“2”之后的结果如下所示:

请输入功能编号:2

请输入new翻译:

新的

太棒了

请输入perfect翻译:

简陋的

再想想

在控制台输入“4”之后的结果如下所示:

请输入功能编号:4

{'new': '新的', 'perfect': '完美的', }

请输入要删除的单词:new

删除成功

在控制台输入“5”之后的结果如下所示:

请输入功能编号:5

生词本清空成功

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

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

相关文章

案例分析篇04:数据库设计相关28个考点(1~8)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12601310.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

Docker 容器化技术:构建高效、可移植的开发环境和部署流程|Docker 的分层设计

容器技术是云原生的核心技术之一,利用容器化技术,可以将微服务以及它所需要的配置、依赖关系、环境变了等都可以便捷地部署到新的服务器节点上,而不用再次重新配置,这就使得微服务具备了强大的可移植性。 二、Docker 的分层设计 …

研发效能DevOps: OpenEuler 部署 drone 持续集成平台

目录 一、实验 1.环境 2.OpenEuler 部署 drone 持续集成平台 二、问题 1.drone登录失败 一、实验 1.环境 (1)主机 表1 主机 系统架构版本IP备注LinuxopenEuler22.03 LTS SP2 192.168.204.145(动态) 192.168.204.141&…

github 中的java前后端项目整合到本地运行

前言: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未…

安卓多个listView拖动数据交换位置和拖动

注意这里只是给出大概思路&#xff0c;具体可以参考修改自己想要的 public class MainActivity extends AppCompatActivity {private ListView listView1;private ListView listView2;private ArrayAdapter<String> adapter1;private ArrayAdapter<String> adapter…

搭建交换机模拟环境及SSH连接,华为NSP软件入门使用教程

搭建交换机模拟环境及SSH连接&#xff0c;华为NSP软件入门使用教程 如果你是通过搜索搜到了这篇文章&#xff0c;那么一定是工作或者学习中需要用交换机&#xff0c;但是又没物理机测试学习&#xff0c;所以需要搭建本地的虚拟环境学习。 这篇文章是我进行交换机命令入门学习写…

阅读欣赏推荐之(三)——纪录片《地平线系列:大数据时代》

现今的我们正处于一个时代转型中&#xff0c;因为科技的发展与互联网的日益强大&#xff0c;数据将逐步取代旧事物&#xff0c;创造出新事物。当今社会以一种前所未有的方式&#xff0c;通过对海量数据进行分析&#xff0c;获得巨大价值的产品和服务&#xff0c;或深刻的洞见。…

Jmeter+Ant+Git/SVN+Jenkins实现持续集成接口测试,一文精通(二)

前言 上篇内容已经介绍接口测试流程以及了解如何用jmeter接口测试&#xff0c;本篇将介绍如何在实战中应用 一、Jmeter接口关联 1.使用正则表达式实现接口关联&#xff08;可以作用于任意值&#xff09; 如果说一个请求里面有多次请求服务器。 2.使用Jsonpath表达式实现接口关…

【CV论文阅读】【计算机视觉中的Transformer应用综述】(1)

0.论文摘要 摘要——自然语言任务的Transformer model模型的惊人结果引起了视觉社区的兴趣&#xff0c;以研究它们在计算机视觉问题中的应用。在它们的显著优点中&#xff0c;与递归网络例如长短期记忆&#xff08;LSTM&#xff09;相比&#xff0c;Transformer能够模拟输入序…

Cocos2dx-lua ScrollView[二]进阶篇

一.概述 本文缩写说明:sv = ScrollView, item代表ScrollView的一个子节点 如果对sv熟系程度还不够,请阅读基础篇: Cocos2dx-lua ScrollView[一]基础篇-CSDN博客 本文介绍sv的一种封装类库,来实现快速创建sv,有如下几个优点: 1.item的位置通过参数控制,提高开发效率…

【MySQL】1.在Centos 7上如何卸载/安装/配置MySQL(保姆级教程)

MySQL 在 Centos 7环境安装 说明&#xff1a; • 安装与卸载中&#xff0c;用户全部切换成为root&#xff0c;⼀旦安装&#xff0c;普通用户能使用的 • 初期练习&#xff0c;mysql不进行用户管理&#xff0c;全部使用root进行&#xff0c;尽快适应mysql语句&#xff0c;后⾯学…

机器学习,剪刀,石头,布

计算机视觉:剪刀,石头,步 TensorFlow AI人工智能及Machine Learning训练图集的下载建立分类模型并用图像进行训练检验模型总结当前AI Machine Learning 异常火爆,希望在MCU上使用机器学习,做图像识别的工作。看到一个剪刀,石头,步的学习程序,给大家分享一下。 TensorFl…

记录一个vue编辑的移动端页面

<template><div class"wrap"><el-form :model"queryParams" ref"queryForm" size"small" :inline"true" label-width"120px"><el-form-item label"班级" prop"classId"…

K8s — PVC|PV Terminating State

在本文中&#xff0c;我们将讨论PV和PVC一直Terminating的状态。 何时会Terminting? 在以下情况下&#xff0c;资源将处于Terminating状态。 在删除Bounded 状态的PVC之前&#xff0c;删除了对应的PV&#xff0c;PV在删除后是Terminting状态。删除PVC时&#xff0c;仍有引用…

使用飞书机器人发送消息与文件

本文默认你已拥有一个机器人&#xff0c;如果没有请点击以下链接创建机器人 检查机器人权限 如果需要跨部门发送消息&#xff0c;检查是否开通跨部门权限 在发布版本时选择作用范围为所有员工 机器人发送消息需要获取以下权限&#xff1a; 通过手机号或邮箱获取用户 ID查看…

ETL的数据挖掘方式

ETL的基本概念 数据抽取&#xff08;Extraction&#xff09;&#xff1a;从不同源头系统中获取所需数据的步骤。比如从mysql中拿取数据就是一种简单的抽取动作&#xff0c;从API接口拿取数据也是。 数据转换&#xff08;Transformation&#xff09;&#xff1a;清洗、整合和转…

Flutter可重排的列表控件ReorderableListView详解

文章目录 ReorderableListView 介绍主要属性使用示例注意事项 ReorderableListView 介绍 ReorderableListView 是 Flutter 中一个可重排的列表控件&#xff0c;允许用户通过拖动来改变列表项的顺序。它继承自 ListView&#xff0c;并提供了一些额外的功能来实现重排功能。 主…

应用方案 | DCDC电源管理芯片MC34063A

DCDC电源管理芯片 MC34063A MC34063A 为一单片 DC-DC 变换集成电路&#xff0c;内含温度补偿的参考电压源&#xff08;1.25V&#xff09;、比较器、能有效限制电流及控制工作周期的振荡器&#xff0c;驱动器及大电流输出开关管等。外配少量元件&#xff0c;就能组成升压、…

Mysql 学习(十五)redo 日志

redo 日志 什么是redo日志&#xff1f;在说这个之前我们先来想一个场景&#xff0c;在访问磁盘的页面之前&#xff0c;我们会先把页面缓存到Buffer Pool之后&#xff0c;才会访问。写页面的时候也会先将buffer pool中的页面修改之后&#xff0c;然后在某个时机才会刷新到磁盘中…

Centos7 安装mongodb 7.0

官方手册参考&#xff1a; https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat/ Mongodb支持的版本 安装 MongoDB 社区版 按照以下步骤使用包管理器安装 MongoDB Community Edition yum。 配置包管理系统 ( yum) 创建一个/etc/yum.repos.d/mongodb-o…