Python课程设计实训报告时钟和玫瑰花制作_第1页
Python课程设计实训报告时钟和玫瑰花制作_第2页
Python课程设计实训报告时钟和玫瑰花制作_第3页
Python课程设计实训报告时钟和玫瑰花制作_第4页
Python课程设计实训报告时钟和玫瑰花制作_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Python语言程序课程设计》(报告)题目:时钟和玫瑰花制作摘要本次设计主要设计了时钟小程序和玫瑰花。采用python语言编程经过多次运算编译修改,时钟设计是一个可以实现秒表计时、时钟显示时间,并且可以扩展功能的小程序程序具有人机交互界面,虽然本程序只需选择“是”或“否”即可决定是否使用程序,但这给予程序很大的提开空间。玫瑰花程序主界面为菜单栏形式,在此基础上可以添加页面实现更多功能关键词:玫瑰花时钟程序模板目录第1章概述 41.1课题选择 41.2设计目的 4第2章设计内容 52.1题目1时钟 52.1.1相关引用库和模块简介 52.1.2主要数据类型 52.1.3编译调试及运行结果 82.2题目2玫瑰花 92.2.1设计任务及要求 122.1.2程序代码 132.2.3编译调试及运行结果 14总结 15参考文献 16第一章概述1.1课题选择随着人工智能和机器学习的不断发展,Python已成为这些领域的事实标准。【1】许多著名的机器学习和数据科学库,如TensorFlow、PyTorch、Keras和OpenCV,都是Python开发的。【2】Web开发:Python也是Web开发的强大工具。它可以与许多Web框架配合使用,如Django和Flask。【3】这些框架提供了丰富的功能,包括数据库集成、模板渲染、安全性检查等,大大简化了Web开发的工作。【4】科学计算:Python还在科学计算领域中使用广泛。NumPy、SciPy和Pandas等库提供了许多数学函数和科学计算方法,可以轻松地处理计算、统计和可视化数据。【5】1.2设计目的选择这个时钟与玫瑰花作为课题,一方面是想学习和掌握python的课外知识,另一方面可增加学习的趣味性和培养对此课程的兴趣。相对国外对python研究的热火朝天,国内则显得比较冷淡,甚至商场上都没有一本完整地介绍python框架的指导书,希望通过这次的课程设计,使得更多人投入研究python框架中。1.3设计工具Python3.3.5/m0_46287244/article/details/107525370第二章设计内容2.1题目一(一)相关引用库和模块简介引用的库和模块功能简介tkinter.messagebox调用tkinter.messagebox库实现弹窗提示,包括登录选项选择“否”后的提示等。time调用time库,实现对时间的各种操作,包括获取当前时间、时间计算、时间获取频率控制等,作为以时间为主要对象的程序来说,time库起到了极大的作用。MainPage.py建立了MainPagepy模块,创建了一个MainPage类,其下建立一个含有三个选项的菜单栏(可任意添加选项,实现不同功能),并用frame组件进行排版装饰。菜单栏分为StopWatchPage、ClockPage、AboutPage三个界面,分别实现秒表、时钟,“关于”界面可用于添加更多的功能。myclock.py建立了myclockpy模块,用于对MainPagepy模块下的各个界面实现功能的实现,包括秒表计时器的开始、暂停、重置功能,时钟的时间获取功能,以及“关于”界面的其他功能。(二)主要数据类型数据数据类型数据及数据类型介绍timestr字符串为Label显示动态时间的字符串,秒表计时、钟表显示等。minutes整形代表分钟,为整形数据。seconds整形代表秒钟,为整形数据hsecond整形代表毫秒,为整形数据。running布尔类型取值为“true&false”判断秒表是否运行。starttime整形秒表开始时间,取值为0,为获取的当前时间实现参考,从而通过计算获取分钟、秒钟、毫秒的值。elapsedtime浮点型时间差,因为获取的时间为浮点型,为了增加时间计算的准确性。将时间差设置为浮点型数据。(三)编译调试及运行结果主要算法思路程序结构:采取主界面调用功能模块,登录界面调用主界面模块,主函数调用登录界面的思路,层层递进,有层次感。秒表;计时采用时间差计算分钟、秒钟和毫秒,调用time库获取当前时间,初始时间设为0.通过不同的计算方法获取分钟、秒钟、亳秒的值。每一毫秒更新一次。时钟:调用t=timestrftime'%Y-%m-%d%H:%M:%Stime.localtime(timetime()))来获取本地时间,每1秒更新一次,通过label显示在界面上。登录界面:为了方便,直接采用单选的判断方式,当然此处可以引申优化出更严谨的方式。主界面:调用tkinter库中的menubar来建立菜单栏,实现不同功能的切换,用frame来装饰界面,定位按钮、文本框、单选框等的位置。程序整体上完全采用面向对象的思想,建立了5个类,3次调用模块,运用了类的继承等思想。使程序更加牢固,更加容易扩展,更加易懂,思路也更加清晰。函数代码说明#coding=utf-8importturtlefromdatetimeimport*#由于表盘刻度不连续,需频繁抬起画笔,放下画笔defskip(step):turtle.penup()#画笔抬起turtle.forward(step)#画笔移动stepturtle.pendown()#画笔落下#建立表针,定制表针形状和名字defmake_hand(name,length):turtle.reset()skip(-length*0.1)#表针一端,过表盘中心一小段,开始绘制turtle.begin_poly()#开始记录多边形的第一个顶点。turtle.forward(length*1.1)#设置表针长度,绘制表针turtle.end_poly()#停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。handForm=turtle.get_poly()#返回最后记录的形状turtle.color('black')turtle.register_shape(name,handForm)#三个表针初始化,实例化definit_hand():globalsec_hand,min_hand,hou_hand,printer#重置Turtle指向北turtle.mode("logo")#logo:向上(北)顺时针standard:向右(东)逆时针#建立三个表针Turtle并初始化make_hand("sec_Hand",135)make_hand("min_Hand",110)make_hand("hou_Hand",70)sec_hand=turtle.Turtle()sec_hand.shape("sec_Hand")min_hand=turtle.Turtle()min_hand.shape("min_Hand")hou_hand=turtle.Turtle()hou_hand.shape("hou_Hand")#笔的属性forhandinsec_hand,min_hand,hou_hand:hand.shapesize(1,1,3)hand.speed(0)#建立输出打印的文字Turtleprinter=turtle.Turtle()#隐藏画笔的turtle形状printer.hideturtle()printer.penup()#设置表盘defset_clock(radius):turtle.reset()turtle.pencolor('red')#设置画笔颜色turtle.fillcolor('pink')#设置绘制图形的填充颜色turtle.pensize(10)#画笔宽度foriinrange(60):skip(radius)#逢五使用线条并加粗ifi%5==0:turtle.forward(20)skip(-radius-20)skip(radius+20)#设置数字的位置及字体,大小ifi==0:turtle.write(int(12),align="center",font=("Courier",14,"bold"))elifi==30:skip(25)turtle.write(int(i/5),align="center",font=("Courier",14,"bold"))skip(-25)elifi==25ori==35:#coding=utf-8importturtlefromdatetimeimport*#由于表盘刻度不连续,需频繁抬起画笔,放下运行结果展示题目二玫瑰花设计任务及要求编程实现一个图形界面的玫瑰花,输入python语言,可运用函数输出。可根据不同的运行方式与计算过程绘制出不同的花朵。程序代码importturtleastltl.speed(0)tl.setup(600,650)#设置画面尺寸tl.title('玫瑰花')tl.up()tl.goto(-180,275)#坐标移至(-200,290)#绘制文字tl.color('blue')#写标题的颜色(蓝色)tl.write('漂亮的玫瑰花',align='center',font=('微软雅黑',24))R=1/3#设置比例因子,用数据的1/3大小绘制x0,y0=R*650,R*850#设置玫瑰花中心位置偏移量#花瓣背景(花瓣主体)tl.goto(R*1109-x0,y0-R*308)#花瓣背景起点坐标tl.color('red')#设置花瓣为红色(画笔、填充都为红色)tl.seth(-25);tl.down();tl.begin_fill()tl.circle(-400*R,38);tl.rt(115);tl.circle(300*R,45);tl.circle(-700*R,20)tl.circle(700*R,4);tl.circle(-550*R,10);tl.circle(-300*R,27)tl.circle(50*R,35);tl.circle(-800*R,5);tl.circle(-60*R,70)tl.circle(900*R,12);tl.circle(100*R,27);tl.circle(-800*R,14)tl.circle(-30*R,121);tl.circle(-800*R,15);tl.lt(90);tl.circle(400*R,18)tl.circle(-50*R,140);tl.lt(130);tl.circle(-130*R,110);tl.circle(100*R,30)tl.circle(-450*R,20);tl.circle(-250*R,60);tl.lt(70);tl.circle(-130*R,60)tl.circle(500*R,21);tl.circle(-130*R,95);tl.circle(-200*R,20);tl.end_fill()#画花叶tl.color('green')#设置花叶为绿色tl.up();tl.goto(R*560-x0,y0-R*1230)#花叶起点坐标tl.down();tl.seth(80);tl.begin_fill()foriinrange(5): #画第一片花叶tl.circle(410*R,20);tl.lt(120);tl.fd(35*R);tl.rt(120) #画叶缘tl.fd(160*R);tl.lt(150);tl.fd(150*R)foriinrange(4):#画叶缘tl.rt(130);tl.fd(30*R);tl.lt(120+i*3);tl.circle(600*R,11-i)tl.rt(130);tl.fd(30*R);tl.lt(125);tl.circle(500*R,30);tl.end_fill()tl.up();tl.seth(-35);tl.fd(150*R);tl.lt(185);tl.down()#画叶脉tl.color('darkgreen')#叶脉用深绿色tl.begin_fill();tl.circle(-470*R,20);tl.circle(750*R,25);tl.fd(200*R)tl.lt(175);tl.fd(190*R);tl.circle(-750*R,20);tl.circle(500*R,15)tl.fd(100*R);tl.end_fill();tl.up();tl.lt(175);tl.fd(250*R)tl.rt(45);tl.down();tl.pensize(3);tl.fd(160*R)foriinrange(2):tl.up();tl.lt(120);tl.fd(110*R);tl.rt(115);tl.down();tl.fd((150-i*20)*R)tl.up();tl.lt(140);tl.fd(150*R);tl.lt(120);tl.down();tl.fd(100*R)foriinrange(2):tl.up();tl.rt(110);tl.fd((100+i*5)*R);tl.lt(110);tl.down();tl.fd(140*R)tl.color('green')#设置线条颜色和填充颜色同为绿色tl.up();tl.seth(-80)#第二片花叶tl.fd(250*R);tl.pensize(1);tl.down();tl.seth(125);tl.begin_fill()foriinrange(5):tl.circle(330*R,20);tl.lt(120);tl.fd(30*R);tl.rt(120)tl.fd(130*R);tl.lt(150);tl.fd(120*R)foriinrange(4):tl.rt(130);tl.fd(25*R);tl.lt(120+i*3);tl.circle(460*R,11-i)tl.rt(130);tl.fd(25*R);tl.lt(125);tl.circle(400*R,30);tl.end_fill()tl.up();tl.seth(12);tl.fd(120*R);tl.lt(182);tl.down()tl.color('darkgreen');tl.begin_fill();tl.circle(-380*R,20)tl.circle(600*R,30);tl.fd(130*R);tl.lt(175);tl.fd(120*R)tl.circle(-600*R,25);tl.circle(400*R,15);tl.fd(80*R);tl.end_fill()tl.up();tl.lt(175);tl.fd(200*R);tl.rt(45);tl.down();tl.pensize(3)tl.fd(150*R)foriinrange(2):tl.up();tl.lt(120);tl.fd(90*R);tl.rt(115);tl.down();tl.fd((100-i*15)*R)tl.up();tl.lt(140);tl.fd(110*R);tl.lt(120);tl.down();tl.fd(100*R)foriinrange(2):tl.up();tl.rt(110);tl.fd((80+i*5)*R);tl.lt(110);tl.down();tl.fd(110*R)tl.up();tl.rt(10);tl.fd(500*R);tl.seth(90);tl.color('green');tl.pensize(1)tl.begin_fill()#画第三片花叶foriinrange(5):tl.circle(-410*R,20);tl.rt(120);tl.fd(35*R);tl.lt(120)tl.fd(160*R);tl.rt(150);tl.fd(150*R)foriinrange(4):tl.lt(130);tl.fd(30*R);tl.rt(120+i*3);tl.circle(-600*R,11-i)tl.lt(130);tl.fd(30*R);tl.rt(125);tl.circle(-500*R,30);tl.end_fill()tl.up();tl.lt(40);tl.fd(160*R);tl.lt(180);tl.down();tl.color('darkgreen')tl.begin_fill();tl.circle(470*R,20);tl.circle(-750*R,25);tl.fd(200*R)tl.rt(175);tl.fd(190*R);tl.circle(750*R,20);tl.circle(-500*R,15)tl.fd(100*R);tl.end_fill();tl.up();tl.rt(175);tl.fd(250*R);tl.lt(45)tl.down();tl.pensize(3);tl.fd(160*R)foriinrange(2):tl.up();tl.rt(120);tl.fd(110*R);tl.lt(115);tl.down();tl.fd((150-i*20)*R)tl.up();tl.rt(140);tl.fd(150*R);tl.rt(120);tl.down();tl.fd(100*R)foriinrange(2):tl.up();tl.lt(110);tl.fd((100+i*5)*R);tl.rt(110);tl.down();tl.fd(140*R)tl.lt(45);tl.fd(230*R);tl.lt(45)tl.color('saddlebrown','#976123')#花梗色tl.begin_fill()#画花梗tl.fd(460*R);tl.circle(250*R,15);tl.rt(120);tl.circle(80*R,45);tl.rt(100)tl.circle(-100*R,35);tl.circle(700*R,15);tl.fd(360*R);tl.circle(300*R,10)tl.fd(220*R);tl.rt(90);tl.fd(35*R);tl.rt(90);tl.fd(220*R)tl.circle(-320*R,10);tl.fd(70*R);tl.end_fill()tl.up()#画花萼tl.rt(160);tl.fd(400*R);tl.lt(80);tl.pensize(1);tl.color('darkgreen','green')tl.down();tl.begin_fill();tl.circle(520*R,10);tl.circle(100*R,75)tl.circle(-100*R,60);tl.lt(150);tl.circle(220*R,85);tl.rt(140)tl.circle(240*R,30);tl.circle(-240*R,15);tl.lt(140);tl.circle(-240*R,20)tl.circle(240*R,25);tl.rt(120);tl.circle(180*R,80);tl.circle(100*R,40)tl.lt(100);tl.circle(-310*R,23);tl.lt(57);tl.circle(-520*R,35);tl.end_fill()tl.up();tl.seth(90)#画花芯花瓣(蕃茄红色)tl.fd(595*R);tl.lt(90);tl.fd(60*R);tl.rt(120);tl.down();tl.color('tomato')tl.begin_fill();tl.circle(-80*R,45);tl.circle(-30*R,120);tl.circle(-10*R,50)tl.circle(-250*R,30);tl.circle(-20*R,60);tl.circle(-80*R,100)tl.circle(-290*R,40);tl.circle(-110*R,90);tl.circle(110*R,70)tl.circle(-110*R,80);tl.circle(-220*R,25);tl.rt(70);tl.fd(25*R);tl.rt(110)tl.circle(220*R,30);tl.circle(80*R,70);tl.circle(-120*R,30);tl.lt(125)tl.circle(200*R,20);tl.rt(45);tl.circle(220*R,50);tl.rt(80);tl.fd(21*R)tl.rt(105);tl.circle(-400*R,33);tl.lt(50);tl.circle(-240*R,15)tl.circle(850*R,5);tl.circle(90*R,87);tl.circle(270*R,40);tl.circle(60*R,100)tl.circle(10*R,63);tl.circle(250*R,25);tl.lt(90);tl.circle(28*R,100)tl.end_fill();tl.up();tl.rt(150);tl.fd(95*R);tl.rt(30);tl.begin_fill()tl.down();tl.circle(-160*R,30);tl.circle(-270*R,30);tl.circle(-100*R,50)tl.rt(150);tl.circle(250*R,50);tl.circle(150*R,20);tl.end_fill();tl.up()tl.lt(130);tl.fd(280*R);tl.rt(65);tl.begin_fill();tl.down()tl.circle(-350*R,20);tl.circle(-100*R,10);tl.circle(-470*R,10);tl.rt(110)tl.fd(20*R);tl.rt(60);tl.circle(-470*R,8);tl.circle(150*R,25)tl.circle(470*R,8);tl.circle(-30*R,50);tl.end_fill();tl.up();tl.lt(186,)tl.fd(480*R);tl.lt(195);tl.down();tl.begin_fill();tl.circle(-500*R,22)tl.circle(280*R,20);tl.circle(130*R,90);tl.circle(15*R,175);tl.fd(20*R)tl.rt(105);tl.circle(-300*R,70);tl.rt(120);tl.circle(-800*R,3);tl.rt(70)tl.circle(100*R,30);tl.lt(160);tl.circle(-50*R,75);tl.circle(-100*R,100)tl.circle(200*R,20);tl.lt(30);tl.fd(25*R);tl.lt(135);tl.fd(35*R);tl.rt(95)tl.circle(-100*R,80);tl.circle(800*R,15);tl.circle(-100*R,100)tl.circle(-200*R,30);tl.circle(800*R,20);tl.circle(10*R,180)tl.circle(-800*R,20);tl.circle(220*R,22);tl.circle(120*R,105)tl.circle(-800*R,15);tl.circle(110*R,90);tl.rt(85);tl.circle(-400*R,5)tl.circle(130*R,100);tl.rt(60);tl.circle(600*R,5);tl.rt(50)tl.circle(600*R,5);tl.circle(40*R,120);tl.circle(600*R,15);tl.lt(50)tl.circle(-600*R,15);tl.lt(130);tl.circle(170*R,55);tl.lt(165)tl.circle(-160*R,40);tl.rt(120);tl.fd(90*R);tl.rt(45)tl.circle(-600*R,14);tl.circle(-30*R,130);tl.circle(500*R,20)tl.circle(300*R,50);tl.rt(95);tl.circle(-120*R,85);tl.circle(700*R,19)tl.end_fill();tl.up();tl.rt(66);tl.fd(150*R);tl.rt(57);tl.down()tl.begin_fill();tl.circle(50*R,50);tl.fd(150*R);tl.circle(600*R,8)tl.circle(-200*R,10);tl.circle(-30*R,145);tl.circle(-300*R,45)tl.circle(-350*R,20);tl.circle(500*R,40);tl.circle(-200*R,20)tl.circle(-50*R,100);tl.circle(-200*R,20);tl.circle(-500*R,20)tl.circle(-250*R,40);tl.circle(-500*R,20);tl.circle(-700*R,20)tl.circle(100*R,45);tl.fd(30*R);tl.rt(180);tl.circle(-120*R,45)tl.circle(800*R,15);tl.circle(500*R,25);tl.circle(275*R,38)tl.circle(500*R,27);tl.circle(70*R,110);tl.circle(220*R,25)tl.circle(-420*R,43);tl.circle(320*R,65);tl.circle(55*R,141)tl.circle(100*R,10);tl.fd(280*R);tl.end_fill();tl.up();tl.rt(165)tl.fd(210*R);tl.lt(20);tl.down();tl.begin_fill();tl.circle(700*R,20)tl.circle(30*R,120);tl.circle(800*R,15);tl.circle(-80*R,30)tl.circle(-800*R,12);tl.circle(80*R,70);tl.circle(500*R,10);tl.lt(135)tl.fd(20*R);tl.lt(42);tl.circle(-480*R,8);tl.circle(-70*R,70)tl.circle(800*R,13);tl.circle(70*R,30);tl.circle(-800*R,13)tl.circle(-25*R,123);tl.circle(-680*R,17);tl.end_fill();tl.up();tl.lt(80)tl.fd(200*R);tl.lt(20);tl.down();tl.begin_fill();tl.circle(-130*R,100)tl.circle(250*R,20);tl.circle(-400*R,30);tl.circle(-250*R,20)tl.circle(-200*R,35);tl.rt(90);tl.fd(20*R);tl.rt(90);tl.circle(200*R,35)tl.circle(230*R,20);tl.circle(380*R,30);tl.circle(-260*R,20)tl.circle(115*R,105);tl.end_fill();tl.up();tl.lt(55);tl.fd(870*R)tl.rt(25);tl.down();tl.begin_fill();tl.circle(-400*R,40);tl.rt(115)tl.circle(300*R,45);tl.circle(-700*R,19);tl.rt(135);tl.fd(25*R);tl.rt(43)tl.circle(700*R,18);tl.circle(-300*R,39);tl.lt(113);tl.circle(400*R,35)tl.end_fill();tl.lt(20);tl.up();tl.fd(300*R);tl.lt(25);tl.down()tl.begin_fill();tl.c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论