安卓开发日记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系统设计方案
- 前端界面使用Tkinter库来构建,定制样式以美化界面,提高用户体验。
- 后端通过调用高德API来获取学校地点信息。
- 数据库可以选择使用轻量级的SQLite数据库,存储地点信息和地点介绍信息等数据。
- 可以考虑使用Python的Requests库来处理HTTP请求,获取API返回的JSON数据,并解析成Python数据结构用于显示在界面上。
- 在系统设计中考虑错误处理和异常情况,例如用户输入错误的地点名称或API请求失败时如何处理。
4系统源代码
4.1系统源代码文件说明
1.py主程序代码
Line.py数据库代码
Connsql.py辅助代码
4.2源代码
- 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点击查询按钮,会返回改地点的位置,及信息。