基于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的PyGame实现的横板动作小游戏

    基于Python的PyGame实现的横板动作小游戏 游戏玩法 玩家操纵主角进行移动和攻击,主角有四种攻击,不同操作惊醒不同的攻击和动画播放,敌人可以对玩家进行攻击 代码思想 利用精灵类绘制主角
    2024年05月14日
    4 1 1
  • 设计一个web服务器

    设计一个web服务器 课程设计目的 《Java&,net》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践,本课程设计的目的就是要达到理论与实际应用相结合
    2024年05月14日
    2 1 1
  • springboot实现商品进销存管理系统CRM系统源代码javaweb

    这是一个🔥🔥springboot实现商品进销存管理系统CRM系统源代码javaweb🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 商品进销存管理系统开发技术栈为SpringBoot项目
    2024年05月23日
    5 1 3
  • 基于springboot实现在线新闻网站源码-仿头条

    这是一个🔥🔥基于springboot实现在线新闻网站源码-仿头条🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 SpringBoot在线新闻开发技术栈为SpringBoot项目
    2024年05月23日
    1 1 1
  • springboot个人记账本系统源码

    这是一个🔥🔥springboot个人记账本系统源码🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 个人记账本开发技术栈为SpringBoot项目
    2024年05月23日
    1 1 1
  • 基于SpringBoot框架的信息技术知识竞赛

    这是一份关于构建信息技术知识竞赛的源代码项目,采用了🔥🔥SpringBoot基础框架🔥🔥,主要编程语言为Java,并结合了Vue技术进行开发,开发工具选择的是Idea或Eclipse
    2024年05月23日
    5 1 1
  • 基于Android的通讯录app开发与实现

    这是一个🔥🔥基于Android的通讯录app开发与实现🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 通讯录App开发技术栈为安卓项目,可以作为毕业设计课程设计作业该android课程设计是实现一个通讯录APP
    2024年05月23日
    1 1 1
  • 基于Python的预测商品销售数据

    预测商品销售数据 实验目的 通过使用一个具有挑战性的时间序列数据集,该数据集由每日销售数据,由俄罗斯最大的软件公司之一 1C 公司提供, 数据集中提供了 2013 年 1 月到 2015 年 10 月每日每个店铺中的商品历史销售数据
    2024年05月14日
    4 1 1
  • 基于springboot电商系统的设计与实现

    这是一个🔥🔥基于springboot电商系统的设计与实现🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 电商设计与实现开发技术栈为SpringBoot项目
    2024年05月23日
    2 1 2
  • Java+SSM实现复杂权限控制的教务管理,教务评教系统

    这是一个🔥🔥SSM实现复杂权限控制的教务管理,教务评教系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 教务管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业为大学教务处实现一个带有权限控制的教务管理系统
    2024年05月23日
    10 1 2

发表回复

登录后才能评论