一月份的数据结构课设完成后,我对Python的了解也更加深刻。现将课设报告及源码开源,不足之处希望大家指正。源码我放在博客主页的资源中,需要的话大家自行下载(用户信息保存在 users.json 文件中,地图信息保存在 campus_map.json 文件中,源码在 main.py 中。)。
一. 设计目的
本次课程设计旨在完善和拓展校园导航系统,使其更具实用性和用户友好性。通过该系统,用户能够轻松查询校园内地点信息、获取最短路径和相关路径信息,同时实现对校园平面图的灵活管理,包括地点和路径的增加、删除、查询等功能。在完善系统的同时,设计目的还包括强调对数据结构概念的深入理解和实际运用,培养学生在软件设计和实现方面的综合能力,尤其注重系统设计、用户体验和团队协作等方面的技能。
二. 设计内容
用户管理模块:
提供用户登录、注册、注销功能。
管理用户信息,包括用户名、密码、用户类型等。
用户友好的登录和注册界面,通过弹窗给予用户清晰的反馈。
地图管理模块:
管理校园平面图信息,包括地点和路径。
提供地点和路径的增加、删除、查询功能。
实现地图信息的存储和读取功能,支持从文件加载和保存到文件。
路径查询模块:
实现最短路径查询算法,包括最短简单路径和带权长度最短路径。
提供用户界面,让用户输入起始地点和目标地点,显示查询结果。
用户界面模块:
使用 tkinter 模块设计用户界面。
提供登录后的主菜单,包括查询地点信息、查询路径、相关路径查询、增加路线、撤销路线、增加新地点、撤销旧地点、查看地图、注销等功能。
系统运行模块:
利用主循环实现系统的运行逻辑。
管理用户登录状态,根据用户操作调用相应的功能模块。
异常处理模块:
在关键位置添加异常处理机制,确保系统对用户输入非法或操作无效时能够给予清晰的提示。
文件操作模块:
提供用户信息和地图信息的读取和保存功能,保证数据的持久性。
创新性和扩展性考虑:
在用户界面和功能上添加创新性设计,如图形界面、动态演示等。
在系统设计中考虑扩展性,使得今后可以轻松添加新的功能或模块。
三.概要设计
1.功能模块图;
系统运行模块 用户管理模块 菜单信息模块 地图管理模块 路径查询模块 文件操作模块
2.各个模块详细的功能描述。
系统运行模块:
功能: 管理整个系统的启动和运行,协调不同模块的交互。
详述: 负责初始化系统,处理用户登录和退出系统的流程,维护用户当前状态,确保系统能够在用户进行不同操作时正常切换状态。
用户管理模块:
功能: 处理用户相关的操作,包括用户登录、注册、注销和权限管理。
详述: 提供用户注册、登录和注销的功能,验证用户身份,管理用户权限,确保系统安全可靠。与权限相关的操作如管理员功能在此模块实现。
菜单信息模块:
功能: 维护用户可用功能列表,根据用户类型动态生成菜单。
详述: