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