《大学计算机Ⅰ》实验报告实验二 周桂滨

时间:2024.3.31

广东金融学院实验报告

课程名称:大学计算机Ⅰ


肇庆七星岩位于中国广东省肇庆市区北边,传说其七座山峰是女娲补天时留下的七块灵石。分别为星湖、阆风岩、玉屏岩、石室岩、天柱岩、蟾蜍岩、仙掌岩、阿坡岩七座石灰岩山峰组成。面积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语言学习同时进行,在对比中明白了二者的共同点与差别,了解了计算机编程的主要思路。总之,这半年的学习让我受益匪浅,锻炼了我一个工科生的思维能力。也很感谢老师的细心教导,即使身体欠安也仍然坚持给我们带病上课,真的很感动。也谢谢助教老师每次上机实验的指导,让我们在实践中明白了自己的不足。


更多相关推荐:
大学计算机基础实验报告

大学计算机基础课程实验报告手册学院年级专业姓名学号2220xx319xx20xx任课教师上机地点以上由学生填写实验教师签字西南大学计算机与信息科学学院计算机基础教育系年月日1一实验说明本课程实验分为一般性实验验...

大学计算机基础实验报告

大学计算机基础教学班级课程教师实验报告学号姓名实验辅导教师西南交通大学20xx年9月大学计算机基础实验报告实验一微机基本操作与上网冲浪教学班级学号姓名实验日期实验地点机房指导教师签名实验成绩一实验目的1掌握计算...

《大学计算机Ⅱ》实验报告实验一

广东金融学院实验报告课程名称:大学计算机Ⅱ

北理大学计算机实验基础 实验九 实验报告表

五实验报告学号姓名班级实验时间年月日实验报告图像生成与图像处理一填写下载图像的相关数据二查看左侧的图像请填写相应的图像编码三计算机中实际存储的图像可能有数几百万像素为了减少图像存储的空间有一种游程压缩方法可以减...

大学计算机一实验报告二

广东金融学院实验报告课程名称:大学计算机Ⅰ柠檬,lemon,那个和柠檬一样单纯的女生的名字,她说,她喜欢柠檬的苦涩与酸甜,就像,她一样。像柠檬一样的女生,她的爱情,是那般的青涩、酸甜,也让她有了前所未有的幸福。…

大学计算机Ⅱ》实验报告实验一

广东金融学院实验报告课程名称大学计算机第1页共2页实验一计算机组装与维护实验第3页共2页实验一计算机组装与维护实验第5页共2页

大学计算机基础网页制作实验报告

网页制作报告计算机基础网页制作报告20xx913网页制作报告目录一制作目的3二制作内容3三遇到的问题及解决方案3四报告成果截图展示4五制作体会5网页制作报告一制作目的掌握Dreamweaver的基本操作掌握网页...

1 《大学计算机Ⅰ》实验报告实验二

实验二中文Word20xx实验广东金融学院实验报告课程名称大学计算机第1页共2页实验二中文Word20xx实验神舟八号无人飞行器是中国神舟系列飞船的第八个也是中国神舟系列飞船进入批量生产的代表神八已于20xx年...

《大学计算机Ⅱ》实验报告实验一

广东金融学院实验报告课程名称:大学计算机Ⅱ

太原理工大学 计算机软件技术基础 线形顺序表的插入与删除 实验报告

太原理工大学现代科技学院计算机软件技术基础课程实验报告专业班级学号姓名指导教师太原理工大学现代科技学院实验报告太原理工大学现代科技学院实验报告ifilt1i1forjnjgtijvjvj1vi1bnn1retu...

北理大学计算机实验基础 实验三实验报告表

实验三实验报告表实验名称字符编码与信息交换学号姓名班级实验时间年月日实验报告表31西文字符显示过程编码记录表实验报告表32汉字显示过程编码记录表实验报告表33不同字体的字型码

《大学计算机Ⅰ》实验报告实验一1

广东金融学院实验报告课程名称大学计算机第2页共2页第3页共2页第4页共2页

大学计算机实验报告(48篇)