[实验目的]
1. 掌握软件开发的基本流程
2. 掌握常用的软件开发方式和工具。
[实验内容]
1. 设计一个包含登录界面的计算器软件,该软件可以实现第一次作业中的全部功能,同时可
以保存用户的历史计算记录(保存数据最好使用数据库)。
[实验要求]
1. 完成软件的UI设计、使用设计软件中所涉及的所有流程图。
2. 选择合适的集成开发环境和工具完成计算器软件的开发
3. 将开发好软件进行测试并截图
4. 将本次实验过程写成实验报告提交在本次作业的链接中
5. 关键代码部分以代码块格式粘贴在实验报告正文中
6. 软件架构以及开发技术不限
7. 本次作业为个人作业,发现雷同作业一律按0分处理。
[实验步骤]
1. 需求分析
功能需求
① 基本计算功能
支持四则运算(加、减、乘、除)
支持括号运算
支持简单的数学函数(如平方根、指数、对数等)
② 用户登录功能
用户注册
用户登录验证
支持密码找回
③ 历史记录功能
保存用户的历史计算记录
支持记录的导入和导出
④ 界面需求
美观、易用的图形化界面
支持皮肤更换
操作便捷,符合人机交互原则
⑤ 其他需求
支持全屏和正常模式切换
支持计算结果的复制和粘贴
支持多种格式的数据输入(如科学计数法等)
非功能需求
① 性能需求
响应速度快,计算结果准确
数据库查询速度优化
② 安全需求
保证用户数据的安全性
实施适当的加密和访问控制
③ 兼容性和可扩展性
支持跨平台运行(如Windows、macOS、Linux等)
良好的扩展性,方便添加新功能
④ 用户体验
界面简洁,易于上手
支持在线帮助和教程
2. UI设计
使用Visio来设计登录界面和计算器的主要操作界面。
登录界面
界面布局:包含用户名、密码输入框和登录按钮
用户名输入框:用于输入用户注册时的用户名
密码输入框:用于输入用户密码
登录按钮:用于提交用户名和密码进行登录验证
注册链接:指向注册页面,供用户注册新账号
计算器主界面
界面布局:包含数字键盘、功能键、结果显示区域和操作说明
数字键盘:包括0-9十个数字,以及小数点键
功能键:包括四则运算符、括号、清除、等于、切换全屏等操作键
结果显示区域:用于显示当前输入的数字和计算结果
操作说明:显示使用方法和快捷键提示
历史记录界面
界面布局:包含历史记录列表、导入导出按钮、清空记录按钮
历史记录列表:展示用户保存的历史计算记录
导入导出按钮:用于导入导出历史记录文件
清空记录按钮:用于清空历史记录列表
界面设计原则
美观、易用的图形化界面
操作便捷,符合人机交互原则
界面元素布局合理,避免拥挤和混淆
支持皮肤更换,提供多种界面风格选择
3. 流程图设计
使用 Visio 绘制软件开发流程图。
① 登录流程流程图
② 计算流程流程图
③ 数据保存与加载流程流程图
4. 开发工具
根据个人喜好和项目需求,选择合适的集成开发环境和工具,如Pycharm,Eclipse,Visual
Studio Code,IntelliJ IDEA等。
5. 编码实现
6. 软件测试
进行全面的单元测试和集成测试,确保软件在各种情况下都能正确运行。
7. 软件架构和开发技术
在报告中详细描述软件架构和开发技术,并说明为何选择这些技术。
8. 注意事项
代码规范:遵循良好的编程习惯,编写清晰、可维护的代码。
代码应该遵循PEP 8规范,包括命名约定、缩进、注释等,以提高代码的可读性和可维
护性。
模块化和封装:采用模块化设计,将不同的功能封装在不同的类中,以提高代码的复用性和可扩展
性。每个类应该有一个清晰的目的和职责,避免代码的冗余和重复。
异常处理:在程序中添加适当的异常处理机制,以处理可能出现的异常情况,如数据库操作失败、
网络请求失败等。这样可以提高程序的健壮性和可靠性。
测试:进行全面的单元测试和集成测试,确保软件在各种情况下都能正确运行。
编写测试用例,覆盖所有功能和边界情况,确保代码的质量和稳定性。
文档:编写详细的文档,包括用户手册、开发文档和API文档。
文档应该清晰、准确地描述软件的功能、使用方法和开发技术。
版本控制:使用版本控制工具(如Git)来管理代码的版本和变更。
这样可以方便地追踪代码的变更历史,进行协作开发和回滚错误的变更。
安全考虑:确保用户数据的安全,实施适当的加密和访问控制。
使用安全的密码哈希算法来存储用户密码,避免明文存储。
对数据库连接进行加密,以防止中间人攻击。
性能优化:在代码中进行性能优化,如避免不必要的计算、优化数据库查询等。
使用性能分析工具来找出程序中的瓶颈,并进行相应的优化。
用户反馈:提供用户反馈机制,允许用户报告问题和提供建议。
及时响应用户的反馈,修复问题和改进软件的功能。
更新和维护:定期更新和维护软件,修复已知问题和添加新功能。
发布更新说明,让用户了解软件的最新状态和变更。