基于Python之枚举法的应用

1, 课程设计目的 《软件设计基础-Python》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖Python的知识点,又接近工程实际需要

本文包含相关资料包-----> 点击直达获取<-------

1. 课程设计目的

《软件设计基础-Python》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖Python的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握Python这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。

2. 课程设计任务与要求

本次课程设计利用《软件设计基础-Python》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。

要求:

  • 对系统进行功能需求分析
  • 设计合理的数据结构和系统框架
  • 界面设计美观、清楚、合理
  • 编程简练,程序功能齐全,能正确运行
  • 具有一定的创新性
  • 说明书、流程图要清楚
  • 课题完成后必须按要求提交课程设计报告

任务:

1)一辆卡车违反了交通规则,撞人后逃逸。现场有三个目击证人,但都没有记住车牌号,只记住车牌号的一些特征。甲说:车号的前两位数字是相同的;乙说:车号的后两位数字是相同的,但与前两位不同;丙说:四位数字的车号正好是一个整数的平方。请根据以上线索,协助警方找出车号,尽快破案。(车牌号是4位数) 2)三色球问题 若一个口袋中放有12个球,其中有3个红的,3个白的和6个黒的,问从中任取8个共有多少种不同的颜色搭配?

3. 课程设计说明书

1.主要数据和主要函数介绍:

函数car:

使用枚举法,使用4个for循环解决该问题,结合三条线索进行判断,协助警方找出撞人的车的车牌号

函数Tricolore:

使用枚举法,使用2个for循环,枚举三色球各种组合方案,最后输出结果。

a1,a2,a3,a4 依次是犯罪分子的车牌号的4位数字

S 三色球问题中的组合方案的种数

Choose 用户的选择

2.流程图及代码实现:

程序流程图:

源代码:

``` import math def car(): print("罪犯的车牌号为:",end="") for a1 in range(0,10): for a2 in range(0,10): if(a1==a2): for a3 in range(0,10): for a4 in range(0,10): if(a3==a4 and a1!=a3): a = a1 1000+a2 100+a3*10+a4 for i in range(100): if(a == i * i): print(a1,a2,a3,a4) def Tricolore(): s = 0 for i in range(4): # 红球 for j in range(4): #黄球 k = 8 - i - j #绿球 if k <= 6: s += 1 print("三色球问题共有",s,"种不同的颜色搭配.")

if name == " main ": while(True): print("\n\n------------------------") print("1.帮助警察破案") print("2.三色球问题") print("3.退出系统") choose = int(input("请选择你要求解的问题:")) if(choose ==1 ): car() elif(choose == 2): Tricolore() elif(choose == 3): break else: print("输入错误!") ```

2.设计中遇到的问题

在问题1中,对于现实中车牌号,并不可能都是有效数字的情况,也有可能时0011这样的情况,所以枚举范围是range(1000,10000)是不正确的。本解决方案是以枚举车牌号中每位出现的情况,最终解决了该问题。

4. 课程设计成果

运行结果:

注意事项:

​ 在用户选择的界面请不要输入字母,汉字等错误选择,一定要根据菜单进行输入。

5. 课程设计心得

通过本次课设,我更加明白了枚举法,枚举法并不是简简单单的暴力法,其中也有一些简单的技巧,通过一些技巧,减少不必要的枚举方案,可以大大提高算法的效率,例如在求解三色球问题中我并没有全部枚举,我通过枚举前两个球便可以推出第三个球的数量,可以说在一些问题中,如果找不到更好的解决方案,枚举法也是一种办法。

参考文献

  • 基于B/S的考卷搜索和标记系统的设计与实现(华中师范大学·沈亮)
  • 法院司法统计报表生成核对系统的设计与实现(南京大学·刘持)
  • 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航)
  • 山西省计算机应用能力考试系统的设计与实现(电子科技大学·牛燕珠)
  • NN-sort:学习型数据分布感知排序算法(云南大学·朱筱可)
  • 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航)
  • 基于J2EE的地区电子政务系统的设计与实现(电子科技大学·薛刚)
  • 基于B/S结构的新闻发布系统(吉林大学·郭蕊)
  • 文本综合处理平台的研究与实现(济南大学·王孟孟)
  • 基于Web使用挖掘的在线报名推荐系统的研究与实现(电子科技大学·王玥)
  • 基于J2EE架构的软件开发方法研究及实例(吉林大学·盛青)
  • 人工智能应用敏捷构建系统关键技术研究与实现(北京邮电大学·熊亮)
  • 分布式应用系统的研究与开发(武汉理工大学·廖斌)
  • 基于J2EE平台的代码生成器(山东大学·王继瑞)
  • NN-sort:学习型数据分布感知排序算法(云南大学·朱筱可)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设货栈 ,原文地址:https://m.bishedaima.com/yuanma/36103.html

相关推荐

  • 基于Python建立小型搜索引擎

    建立小型搜索引擎实验报告 1 整体介绍 本项目总工分为六天完成,在本次编程集训中针对以下五个网站: 中国人民大学教务处( ‘http://jiaowu
    2024年05月14日
    2 1 1
  • 基于Python模仿流量攻击的方法对字节编码攻击

    基于Python模仿流量攻击的方法对字节编码攻击 一,总目标 NIDS 配置:FE(bytes encoding)+ ML(textCNN) 二
    2024年05月14日
    2 1 1
  • Python实现基于主动学习的实体关系抽取

    基于主动学习的关系抽取题目方法研究 摘要 当代社会的知识已呈爆炸性增长,其中最常见的知识蕴含在非结构化的自然语言文本当中,信息抽取(Information Extraction)技术通过一组被提及的实体
    2024年05月14日
    2 1 1
  • 基于SSM开发通用权限管理系统

    基于 SSM 框架的 JavaWeb 通用权限管理系统 01 概述 这是一个通用权限管理系统项目,基于 SSM(Spring + Spring-MVC +Mybatis)框架开发
    2024年05月14日
    10 1 2
  • 基于JavaEE的在线考试管理系统源码

    这是一个🔥🔥基于JavaEE的在线考试管理系统源码🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 JavaEE在线考试开发技术栈为SSH项目
    2024年05月23日
    16 1 6
  • 教学资源库

    这是一个🔥🔥基于SpringBoot框架的教学资源库设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    2 1 1
  • python数据分析

    python数据分析(9)——挖掘建模(4)时序模式 1, 时间序列算法 2, 时间序列的预处理 2,1平稳性检验 2,1,1 时序图检验 平稳的时序图序列值在一个常数附近随机波动
    2024年05月14日
    1 1 1
  • 基于SpringBoot框架的在线教育系统

    这是一套采用Java编程语言,基于SpringBoot框架构建的在线教育系统源代码,该项目运用了SpringBoot和Vue的技术栈,开发工具为Idea或Eclipse
    2024年05月23日
    11 1 4
  • 基于Android的通讯录app开发与实现

    这是一个🔥🔥基于Android的通讯录app开发与实现🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 通讯录App开发技术栈为安卓项目,可以作为毕业设计课程设计作业该android课程设计是实现一个通讯录APP
    2024年05月23日
    5 1 3
  • python制作海底飞行棋

    python制作海底飞行棋(含源码) 飞行棋玩过吗?玩过python制作的海底飞行棋玩过吗?额,,,,,, 今天就来教制作海底飞行棋 核心玩法 两名玩家通过→和←操控游戏角色
    2024年05月14日
    3 1 2

发表回复

登录后才能评论