广东金融学院实验报告
课程名称:大学计算机Ⅰ
位于中国广东省肇庆市区北边,传说其七座山峰是女娲补天时留下的七块灵石。分别为星湖、阆风岩、玉屏岩、石室岩、天柱岩、蟾蜍岩、仙掌岩、阿坡岩七座石灰岩山峰组成。面积8.23平方公里,湖中有山,山中有洞,洞中有河,景在城中不见城,美如人间仙景。七星岩以喀斯特溶岩地貌的岩峰、湖泊景观为主要特色,七座排列如北斗七星的石灰岩岩峰巧布在面积达6.3平方公里的湖面上,20余公里长的湖堤把湖面分割成五大湖,风光旖旎。被誉为"人间仙境"。国家级文物保护单位七星岩摩崖石刻是南中国保存得最多最集中的摩崖石刻群,被取名为七星岩。
第二篇:(大学计算机综合实验第二题实验报告)
1. 实验流程及实验效果
(1)定义四个全局变量
(2)定义一个列表存放这四个变量
(3)定义游戏答案中的运算符号
(4)定义便用户更改四位数字重新开始游戏的函数
(5)打印出游戏的规则:
“str1="游戏说明:\n在这个游戏中,系统随机发四张牌,玩家需运用加减乘除四则运算尝试构建表达式,使得运算结果为24,每个数字均需用到,点击“开始”发牌,点击“完成”完成游戏,点击“提示答案”查看一种答案,点击“重新开始”重新发牌"”
(6)定义显示框并定义其属性
(7)定义清空函数表达式
(8)定义随机获取四个数的函数
(9)定义将新字符添加进表达式的函数
(10)定义制造随机运算法则的函数,为下面函数做准备
(11)排除分母为0的情况,输出100,使该式的值不可能为24
(12)定义函数计算对于一个排好序的列表中的四个数是否有可能出现24,为下面hard函数判断可能性做准备
(13)根据不同方式进行运算,符合条件则将对应的判断标志改为1,否则记为0
(14)定义函数输出供用户参考的正确答案
(15)将所有可能的方案列出
(16)定义一个列表存放对应的数字排序是否可行的标志
(17)定义变量用于判断确认是否有解决方案
(18)绘制窗口
(19)给窗口命名
(20)定义表达式为交互式对象
(21)定义显示框并定义其属性
(22)设置窗口背景颜色、长、宽
(23)将Label的内容与display关联
(24)布置按钮
(25)给出AC键大小、位置以及触发的操作
(26)给出(键大小、位置以及触发的操作
(27)给出)键大小、位置以及触发的操作
(28)给出-键大小、位置以及触发的操作
(29)完成'
(30)提示答案
(31) 重新开始
(32) 显示界面
2.代码
# -*- coding: utf-8 -*-
# please input your code here.
from tkinter import*
from random import randint
num1=randint(1,10)
num2=randint(1,10)
num3=randint(1,10)
num4=randint(1,10)
list=[]
list.append(num1)
list.append(num2)
list.append(num3)
list.append(num4)
operator=[]
for i in range(0,3):
operator.append('no')
def change():
global num1
global num2
global num3
global num3
num1=randint(1,10)
num2=randint(1,10)
num3=randint(1,10)
num4=randint(1,10)
global list
list[0]=num1
list[1]=num2
list[2]=num3
list[3]=num4
get()
str1="游戏说明:\n在这个游戏中,系统随机发四张牌,玩家需运用加减乘除四则运算尝试构建表达式,使得运算结果为24,每个数字均需用到,点击“开始”发牌,点击“完成”完成游戏,点击“提示答案”查看一种答案,点击“重新开始”重新发牌"
root1 = Tk()
root1.title("游戏说明")
frametext=Frame(root1,width=400,height=200,bg='green')
frametext.propagate(False)
frametext.pack(side=TOP)
t=Text(frametext)
t.pack(expand='yes',fill='both',pady=4)
t.insert(INSERT,str1)
def clear():
display.set("")
def get():
display.set(list)
def nExp(num):
exp=display.get()+num
display.set(exp)
def func(a,b,op,s):
if(op==1):
operator[s] ='+'
return(a+b)
if(op==2):
operator[s] ='-'
return(a-b)
if(op==3):
operator[s] ='*'
return(a*b)
if(op==4):
#排除分母为0的情况,输出100,使该式的值不可能为24
if(b!=0):
operator[s] ='/'
return(a/b)
else:return 100
def calculate(list):
get=0
k=1
while(get==0 and k<=4):
i=1
while(get==0 and i<=4):
j=1
while(get==0 and j<=4):
if(func(func(list[0],list[1],i,0),func(list[2],list[3],j,2),k,1)==24):
get=1
return 1
j=j+1
i=i+1
k=k+1
if(get==0):return 0
def hard():
mylist=[]
ele=[]
elep=[]
for i1 in range(0,4):
for i2 in range(0,4):
for i3 in range(0,4):
for i4 in range(0,4):
ele.append([i1,i2,i3,i4])
for i in range(0,256):
for m in ele[i] :
for n in ele[i] :
if(m==n):elep.append(0)
else:elep.append(1)
if(elep[i] !=0):
mylist.append([list[ele[i] [0]],list[ele[i] [1]],list[ele[i] [2]],list[ele[i] [3]]])
possibility=[]
solution=0
i=0
while(i<256 and solution==0):
possibility.append('no')
possibility[i] =calculate(mylist[i] )
if(possibility[i] ==1):
display.set("提示答案:("+str(mylist[i] [0])+str(operator[0])+str(mylist[i] [1])+")"+operator[1]+"("+str(mylist[i] [2])+operator[2]+str(mylist[i] [3])+")")
solution=1
i=i+1
if(solution!=1):
display.set("无解")
def easy():
exp=display.get()
res=eval(exp)
if res==24:
for i in range(len(list)):
if str(list[i]) in exp:
display.set("True")
else:
display.set("Unvalid Value")
else:
display.set("False")
root=Tk()
root.title('24点游戏')
display=StringVar()
LabelA=Label(root,relief='sunken',borderwidth=4,anchor=SE)
LabelA.configure(background='white',height=4,width=50)
LabelA['textvariable']=display
LabelA.grid(row=0,column=0,columnspan=4)
Button(root,text='AC',width=10,height=3,command=clear).grid(row=1,rowspan=2)
Button(root,text='(',width=10,command=lambda:nExp('(')).grid(row=1,column=1)
Button(root,text=')',width=10,command=lambda:nExp(')')).grid(row=1,column=2)
Button(root,text='-',width=10,height=3,command=lambda:nExp('-')).grid(row=1,rowspan=2,column=3)
Button(root,text='/',width=10,command=lambda:nExp('/')).grid(row=2,column=1)
Button(root,text='*',width=10,command=lambda:nExp('*')).grid(row=2,column=2)
Button(root,text='7',width=10,command=lambda:nExp('7')).grid(row=3)
Button(root,text='8',width=10,command=lambda:nExp('8')).grid(row=3,column=1)
Button(root,text='9',width=10,command=lambda:nExp('9')).grid(row=3,column=2)
Button(root,text='+',width=10,height=3,command=lambda:nExp('+')).grid(row=3,rowspan=2,column=3)
Button(root,text='4',width=10,command=lambda:nExp('4')).grid(row=4,column=0)
Button(root,text='5',width=10,command=lambda:nExp('5')).grid(row=4,column=1)
Button(root,text='6',width=10,command=lambda:nExp('6')).grid(row=4,column=2)
Button(root,text='1',width=10,command=lambda:nExp('1')).grid(row=5,column=0)
Button(root,text='2',width=10,command=lambda:nExp('2')).grid(row=5,column=1)
Button(root,text='3',width=10,command=lambda:nExp('3')).grid(row=5,column=2)
Button(root,text='0',width=10,command=lambda:nExp('0')).grid(row=6,column=0,columnspan=2)
Button(root,text='.',width=10,command=lambda:nExp('.')).grid(row=6,column=2)
Button(root,text='开始',width=10,height=3,command=lambda:get()).grid(row=7,rowspan=2)
Button(root,text='完成',width=10,height=3,command=lambda:easy()).grid(row=7,column=1,rowspan=2)
Button(root,text='提示答案',width=10,height=3,command=lambda:hard()).grid(row=7,column=2,rowspan=2)
Button(root,text='重新开始',width=10,height=3,command=lambda:change()).grid(row=7,column=3,rowspan=2)
root.mainloop()
3.截图
4.心得体会
在这一学期的python学习中,我更加深刻的了解到了计算机语言与其思想。从刚开始简单的输入输出,到后来逐渐自己设计一些小的程序,每一次进步都让我欢欣雀跃。同时,python的学习与c语言学习同时进行,在对比中明白了二者的共同点与差别,了解了计算机编程的主要思路。总之,这半年的学习让我受益匪浅,锻炼了我一个工科生的思维能力。也很感谢老师的细心教导,即使身体欠安也仍然坚持给我们带病上课,真的很感动。也谢谢助教老师每次上机实验的指导,让我们在实践中明白了自己的不足。