# 102101337_calculator_frontend
**Repository Path**: sxl_code/102101337_calculator_frontend
## Basic Information
- **Project Name**: 102101337_calculator_frontend
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-10-21
- **Last Updated**: 2023-10-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 软件工程第二次作业--前后端交互计算器
[toc]
作业基本信息
| 这个作业属于哪个课程 | < [2301-计算机学院-软件工程](https://bbs.csdn.net/forums/ssynkqtd-05)> |
| -------------------- | ------------------------------------------------------------ |
| 这个作业要求在哪里 | < [软工实践第二次作业](https://bbs.csdn.net/topics/617377308)> |
| 这个作业的目标 | < 实现一个前后端分离的计算器,用数据库储存相关数据 > |
| 其他参考文献 | < [python flask](https://www.bilibili.com/video/BV17r4y1y7jJ/?spm_id_from=333.337.search-card.all.click&vd_source=25de2f223623055354598b500af309f3) > < [ajax](https://www.bilibili.com/video/BV18y4y1L73h/?p=2&share_source=copy_web&vd_source=f0187d434b486c29f9bf52c4cf2b3fa5)> |
## Gitcode项目地址
### [前端]()
### [后端]()
## PSP表格
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
| :-------------------------------------- | :-------------------------------------- | :--------------: | :--------------: |
| Planning | 计划 | 60 | 80 |
| • Estimate | • 估计这个任务需要多少时间 | 20 | 25 |
| Development | 开发 | 700 | 1000 |
| • Analysis | • 需求分析 (包括学习新技术) | 800 | 1000 |
| • Design Spec | • 生成设计文档 | 60 | 50 |
| • Design Review | • 设计复审 | 50 | 60 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
| • Design | • 具体设计 | 100 | 150 |
| • Coding | • 具体编码 | 400 | 450 |
| • Code Review | • 代码复审 | 60 | 60 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 120 | 200 |
| Reporting | 报告 | 120 | 100 |
| • Test Report | • 测试报告 | 50 | 60 |
| • Size Measurement | • 计算工作量 | 30 | 30 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 80 | 90 |
| | 合计 | 2800 | 3385 |
## 设计实现过程
>首页:菜单选择计算器
>子页:1.基本计算器 2.利率计算器
## 成品展示
### 界面展示
> 菜单:
### 基础计算器
#### 功能一:加减乘除、取余、括号运算
>完成基础+,-,* ,/,%,()运算,并将输入的字符串和结果存储到后端数据库中
#### 功能二:清零回退
>实现字符串输入的清零和回退功能
#### 功能三:错误提示
>非法输入提示,例如:0不能作为除数,括号不匹配,语法错误等
#### 功能四:读取历史记录
>ans按钮返回上一个计算结果
>查看历史记录按钮,输出对应的计算式及结果
>数据皆从后端的数据库中读取
#### 附加功能一:科学计算器
>计算三角函数、lg、ln
#### 附加功能二:页面原型设计
### 利率计算器功能
#### 界面展示
#### 功能一:计算存款、贷款利息
>数据库中存储利率表(可随时修改利率),对应利率如下图所示
>用两个输入框分别读取前端的输入数据,1.输入存款/贷款金额,2.存/贷时长(单位:年)。
>从后端获取利率表,输出计算后对应的存/贷利息。
#### 功能二:前端修改存贷款利率
>在前端页面输入被修改的信息,数据库中表的数值相应修改
## 解题思路描述
### 问题1:实现前端与后端交互
>前端使用html、css、JavaScript,vue设计界面及效果展示;使用ajax进行数据传输
>后端使用python flask jinja2进行数据传输
### 问题2:实现后端与数据库连接
>后端使用python flask ORM模型的CRUD进行数据库的增删改查
>数据库使用mysq进行数据保存
### 问题3:Python实现基础计算器
>创建类Calculate,并定义Add(),Result(),Clear(),back()四个函数进行数据处理
>创建类Cal_History,连接数据库
### 问题4:Python实现利率计算器
>创建类deposit和类loan,连接数据库
## 关键代码展示
### html设计界面内容
>以基本计算器显示运算式和计算器第一行为例
>点击每个按键触发一个函数,执行运算操作
```python