安卓开发日记47

所学时间:3小时

代码行数:178

博客园数:1篇

所学知识:

  在这一周计划中我学习了很多Python知识并完成了Python的大作业,综合运用了很多Python知识,比如

1.cv2:这是一个强大的图像处理库,它提供了处理图像的各种功能,包括加载、编辑和保存图像,以及实现各种图像处理算法,如滤波、边缘检测。

2.numpy:用于处理数组和矩阵数据。在图像处理中,它经常被用来进行图像数据的数学运算和转换,例如将图像转换为数组进行处理。

3.PIL:这是 Python 中用于图像处理的标准库,提供了创建、打开、编辑和保存图像的功能。

4.tkinter:用于创建用户界面。它提供了创建各种 GUI 组件的功能,如按钮、标签、文本框等,以及响应用户操作的功能。

5.filedialog:这是 tkinter 库中的一个模块,用于创建文件对话框,让用户选择文件。它用于让用户选择要进行美颜处理的照片文件。

1项目目的与意义

1.1项目背景说明

1. **提升游客体验**:通过导游系统,游客可以更方便地了解校园历史、建筑、文化等信息,提升他们的参观体验。

2. **科技创新应用**:结合现代科技,展现学校的独特魅力,吸引更多游客。

3. **学校宣传推广**:借助导游系统,学校可以展示自身的优势、特色和发展成就,提升学校形象和知名度。

4. **教育展示平台**:导游系统也可以成为学校教育资源的展示平台,展示学校教学成果、科研成果等,促进教育事业的发展。

5. **校园管理优化**:通过导游系统,学校可以更有效地管理游客流量,提升校园安全管理水平。

总的来说,导游系统项目旨在为游客提供更好的校园导览服务,同时也是学校宣传推广和教育教学资源展示的重要平台。通过科技创新和服务优化,这个项目有望促进学校的发展,提升社会认知度和吸引力。 

 

1.2项目目的与意义

1. **提升游客体验**: 通过导游系统,游客可以更轻松、便捷地了解校园的历史、文化和特色,提升他们的参观体验。这有助于吸引更多游客访问学校。

2. **协助校园宣传推广**: 导游系统是展示学校形象、特色和教育理念的重要工具。通过这一系统,学校可以向游客展示学校的优势、成就和发展规划,提升学校在公众心目中的知名度和声誉。

3. **教育资源展示平台**: 导游系统也承担着展示学校教育资源、科研成果和学术实力的重要角色。游客可以通过系统深入了解学校的教学质量、师资实力和学术氛围,有助于塑造学校的学术声誉。

4. **校园管理优化**: 导游系统不仅服务于游客,也可以为学校提供更好的校园管理服务。学校可以通过系统监控游客流量、改进安全管理措施,优化校园的管理运作,提升工作效率和安全保障水平。

5. **科技创新应用**: 项目通过结合现代科技,如移动应用、虚拟现实等,展现学校的创新力和科技实力,提升学校在科技领域的形象和吸引力。

综合来看,石家庄铁道大学导游系统项目的目的在于提升游客体验、宣传学校形象、展示教育资源、优化校园管理和推动科技创新,从而促进学校的发展和提升社会认知度。 

 

 

2 软件开发环境与技术说明

2.1软件开发环境

Python 3.12 

 

2.2软件开发技术描述

石铁大导游系统可以分为以下功能模块:

用户界面模块:

显示地点信息的表格;

提供输入框用于用户输入地点名字;

提供按钮触发获取地点介绍以及位置的信息。

数据获取模块:

调用高德 API 请求地点数据。

数据处理模块:

从 API 返回的数据中提取并解析出需要的位置信息,并从数据库中调用对本地点的介绍信息。

数据展示模块:

将获取的位置及介绍信息展示在用户界面的表格中。

 

 

3系统分析与设计

3.1项目需求分析说明

提供一个输入框,让用户输入要查询地点名称。

提供一个按钮,用户点击后系统可以获取并显示该地点所在的位置以及介绍信息。

显示地点信息的界面要清晰易读

 

3.2系统设计方案

  1. 前端界面使用Tkinter库来构建,定制样式以美化界面,提高用户体验。
  2. 后端通过调用高德API来获取学校地点信息。
  3. 数据库可以选择使用轻量级的SQLite数据库,存储地点信息和地点介绍信息等数据。
  4. 可以考虑使用Python的Requests库来处理HTTP请求,获取API返回的JSON数据,并解析成Python数据结构用于显示在界面上。
  5. 在系统设计中考虑错误处理和异常情况,例如用户输入错误的地点名称或API请求失败时如何处理。

 

4系统源代码

4.1系统源代码文件说明

1.py主程序代码

Line.py数据库代码

Connsql.py辅助代码

4.2源代码

  1. 1.Py

import tkinter as tk
from PIL import ImageTk, Image
from ConnSql import select    # 用于链接数据库并进行查询
from 大作业.line import selectline

def clear_text():
    text.delete(1.0, tk.END)  # 清空回显框的内容
def submit_location():
    text.delete(1.0, tk.END)  # 删除回显框中的所有文本
    name = entry.get()  # 获取输入框的文本内容
    des = "简介:"+select(name)
    location = entry.get()
    text.insert(tk.END,des)
    print("输入的地点是:", location)
def loca_get():
    text.delete(1.0, tk.END)  # 删除回显框中的所有文本
    location="第一教学楼"
    name = select(location)
    des="当前位置:"+location+"\n"+"简介:"+name
    text.insert(tk.END,des)
def line():
    text.delete(1.0, tk.END)  # 删除回显框中的所有文本
    line = entry2.get()
    print(line)
    des = "路线:"+selectline(line)
    text.insert(tk.END, des)
    print(des)

root = tk.Tk()
root.title("石家庄铁道大学校园导游程序:")

# 设置背景图片路径
background_image_path = "STD.jpg"

# 加载背景图片
background_image = Image.open(background_image_path)
background_image = background_image.resize((500, 500))  # 调整图片大小
photo = ImageTk.PhotoImage(background_image)

# 创建画布
canvas = tk.Canvas(root, width=800, height=500)
canvas.create_image(0, 0, anchor=tk.NW, image=photo)
canvas.pack()

# 创建回显框
text = tk.Text(root)
text.place(x=10, y=root.winfo_height() - 210, width=30, height=20)  # 设置回显框的位置和大小
text.pack()

#说明
label = tk.Label(root, text="请输入地点:")
label.place(relx=0.8, rely=0.2, anchor=tk.E)  # 设置相对坐标

# 创建文本输入框
entry = tk.Entry(root)
entry.place(relx=0.9, rely=0.2, anchor=tk.CENTER)  # 设置相对坐标

# 创建提交按钮
submit_button = tk.Button(root, text="地点查询", command=submit_location)
submit_button.place(relx=0.8, rely=0.26, anchor=tk.CENTER)  # 设置相对坐标

# 创建提交按钮2
submit_button2 = tk.Button(root, text="当前位置查询", command=loca_get)
submit_button2.place(relx=0.8, rely=0.4, anchor=tk.CENTER)  # 设置相对坐标


#说明2
label2 = tk.Label(root, text="请输入目的地:")
label2.place(relx=0.78, rely=0.5, anchor=tk.E)  # 设置相对坐标

# 创建文本输入框2
entry2 = tk.Entry(root)
entry2.place(relx=0.88, rely=0.5, anchor=tk.CENTER)  # 设置相对坐标
print(entry2.get())
# 创建提交按钮3
submit_button3 = tk.Button(root, text="目的地查询", command=line)
submit_button3.place(relx=0.96, rely=0.5, anchor=tk.CENTER)  # 设置相对坐标

# 创建清空按钮,点击清空回显框的内容
clear_button = tk.Button(root, text="清空", command=clear_text)
clear_button.pack()

root.mainloop()

 

 

Connsql.py

import mysql.connector
def select(name):
    # 连接MySQL数据库
    cnx = mysql.connector.connect(
        host="localhost",  # 主机名
        user="root",  # 用户名
        password="sqlsql",  # 密码
        database="db1"  # 数据库名
    )

    # 创建游标对象
    cursor = cnx.cursor()

    # 执行查询语句

    query = "SELECT introduce FROM tb_std where name=" + "'" + name + "'"

    cursor.execute(query)

    # 获取查询结果
    result = cursor.fetchall()

    # 处理查询结果
    des = "输入有误"
    for row in result:
        des= row[0]
        print(des)

    # 关闭游标和数据库连接
    cursor.close()
    cnx.close()

    return des

line.py

import mysql.connector


def selectline(end):
    cnx = mysql.connector.connect(
        host="localhost",  # 主机名
        user="root",  # 用户名
        password="sqlsql",  # 密码
        database="db1"  # 数据库名
    )

    # 创建游标对象
    cursor = cnx.cursor()

    # 执行查询语句

    query = "SELECT line FROM tb_line where end=" + "'" + end + "'"

    cursor.execute(query)

    # 获取查询结果
    result = cursor.fetchall()

    # 处理查询结果
    des = "查询失败"
    for row in result:
        des = row[0]


    # 关闭游标和数据库连接
    cursor.close()
    cnx.close()

    return des

 

 

 

 

 

5系统使用说明书

1在输入框中输入你要查询的学校地点

2点击查询按钮,会返回改地点的位置,及信息。

posted @ 2024-06-04 16:23  大虚胖子  阅读(3)  评论(0编辑  收藏  举报