基于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

相关推荐

  • 基于Java+JSP+Servlet的图书管理系统

    研究背景和当前研究现状: 随着信息技术的迅猛发展和互联网的普及,图书管理系统作为信息管理的重要工具,在图书馆,学校,企事业单位等各个领域得到了广泛应用,传统的图书管理方式已经无法满足日益增长的信息管理需求
    2024年05月07日
    9 1 1
  • 购物推荐网站

    这是一个🔥🔥基于SpringBoot框架的购物推荐网站设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    2 1 1
  • 基于Python制作的24点生成器

    基于 Python 制作的 24 点生成器 导语 看了下上周那篇推文,阅读量相对有些惨淡,看来大家都不太喜欢那个主题(说实话我也不喜欢),这周还是来点正常的吧
    2024年05月14日
    3 1 1
  • 基于SpringBoot框架的新闻稿件管理系统

    这是一套采用Java语言编写的新闻稿管理系统的源代码,基于流行的SpringBoot框架,我们利用了SpringBoot与Vue技术栈进行开发,支持Idea或Eclipse等集成开发环境
    2024年05月23日
    6 1 1
  • 二维非稳态热传导 膏体发动机之Python

    二维非稳态热传导 膏体发动机 一,划分网格: X 方向网格:20;Y 方向网格:20 材料 1:材料 2:材料 1=8:4:8 总网格数量:400 网格尺寸: 注意有界性条件:方程的各项系数大于 0 显式格式: 网格时 网格时 隐式格式: 有界性条件自动满足 C-N 格式: 二
    2024年05月14日
    1 1 1
  • 基于Python制作吃豆豆小游戏

    基于 Python 制作吃豆豆小游戏 导语 今天上 GitHub 发现 Python 制作小游戏系列文章的代码 repo 竟然有 500stars 了
    2024年05月14日
    4 1 1
  • 基于python制作一个打砖块小游戏

    基于 python 制作一个打砖块小游戏 导语 想起来好久没更这个系列的文章了,周末过来补一波好了,本期我们将利用 python 制作一个打砖块小游戏
    2024年05月14日
    1 1 1
  • 汽车资讯网站

    这是一个🔥🔥基于SpringBoot框架的汽车资讯网站设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    5 1 1
  • 基于JSP和Oracle实现的志愿服务银行系统

    基于JSP和Oracle实现的志愿服务银行系统 1,系统概述 1,1 系统背景 本次实习我们小组选择志愿服务银行网站的建设,志愿服务的行为是高尚的
    2024年05月14日
    43 1 8
  • 基于Java Web的智能二维码门禁管理系统

    基于 Java Web 的智能二维码门禁管理系统的设计与实现 摘要 我们身边的很多事物都已悄然接入互联网,由此本文提出基于 Java Web 和微信小程序的一套门禁系统的设计
    2024年05月14日
    5 1 1

发表回复

登录后才能评论