基于 .Net Core+MySQL开发(WinForm)翻译平台【100010303】
翻译“king”平台
项目说明
项目目标
目前各家平台的翻译效果各有优劣,很多时候需要同时比较多个平台的结果,才能取得较好的效果。因此,我们小组要实现一个整合各大主流平台(百度、有道、讯飞、必应、谷歌等)的翻译接口,用户输入要翻译的文本后,将各个平台的翻译结果呈现给用户。除此以外,我们还为这个平台加入了社区功能,用户可以在社区内对需要翻译的文本进行提问、回答、采纳、记录,实现人工翻译与机器翻译的有机结合。本项目覆盖了本学期学习的重点内容,通过这个项目,我们每一位小组成员都可以很好地实践这个学期学习的内容,锻炼自己的代码能力。
软硬件环境需求
-
客户端运行环境:Windows操作系统; .Net Framework
-
服务器运行环境:Linux操作系统; .Net Core; MySQL数据库
使用的关键技术
-
通信与Web API
-
数据库
-
WPF技术
-
文字识别技术
-
语音识别技术
需求分析
系统用例
图 1 系统用例图
注册:
参与者:游客
基本事件流:游客进入社区时,显示登陆界面,如果没有社区账号,点击注册按钮,输入用户名和密码,点击确认注册。若用户名未重复,则注册成功。否则重新输入用户名。
登录:
参与者:游客
基本事件流:游客进入社区时,显示登陆界面,如果已有社区账号,在用户名和密码输入框中输入账号和密码,点击登录按钮,若用户名密码正确,则登录成功,变成用户。
查看社区的提问与回答:
参与者:用户,游客
基本事件流:用户进入社区时,可浏览社区中存在的问题,点击问题进入详情页,可浏览该问题下已有的回答。游客若选择不登录进入社区,则只可浏览社区的问题与回答。
提出问题:
参与者:用户
基本事件流:用户进入社区后,点击提问按钮,输入问题的标题、内容以及悬赏金额等信息,点击确定,将问题添加到社区。
回答问题:
参与者:用户
基本事件流:用户进入社区后,浏览社区中的问题,点击问题进入详情页,在输入框内输入回答,点击确定按钮,则提交回答。
采纳回答:
参与者:用户
基本事件流:用户进入社区后,点击查看自己提出的问题,点击问题进入详情页,在回答旁边的按钮点击采纳,则将该问题采纳回答。
查看自己的提问、回答:
参与者:用户
基本事件流:用户进入社区后,点击查看自己提出的问题,可浏览自己提出的问题。点击查看自己的回答,可看到自己回答过的问题列表与回答。
删除自己的提问、回答:
参与者:用户
基本事件流:用户进入社区后,点击查看自己的提问,可浏览自己的所有提问,点击提问旁的删除,即可删除提问。用户点击查看自己的回答,可浏览自己回答的提问题目与自己的回答,在旁边点击删除回答,即可删除。
查看自己的笔记:
参与者:用户
基本事件流:用户进入社区后,点击查看自己的笔记,可浏览自己的所有笔记(一般是收藏的句子翻译)。
添加、删除、修改笔记:
参与者:用户
基本事件流:用户进入社区后,点击查看自己的笔记,可浏览自己的笔记(一般是是句子翻译)。点击笔记可查看笔记内容,修改笔记的内容点击保存,即可修改。点击新增笔记,输入笔记的标题与内容即可添加。在笔记旁边点击删除即可删除。
调用翻译接口
参与者:用户、游客
基本事件流:用户和游客可以在客户端首页看到文本输入界面,通过文本、截图、语音等方式进行输入后,由客户端向服务器发送请求,调用各个平台的翻译接口,并将结果返回,呈现给用户。
业务流程
图 2翻译与社区流程图
概要设计
功能模块设计
图 3功能模块图
截图翻译
输入:从屏幕截取的一张图片
输出:提取图片中文字后的翻译结果
功能概述: 用户可以屏幕上截取一个区域,客户端对该截图进行OCR后,将得到的文本发送到服务器进行翻译。最后将翻译结果呈现在界面上,反馈给用户。
语音翻译
输入:录制的一段音频
输出:提取音频中文本后的翻译结果
功能概述:客户端对用户录音进行识别后,将得到的文本发送到服务器进行翻译。最后将翻译结果呈现在界面上,反馈给用户。
文本翻译
输入:录制的一段音频
输出:提取音频中文本后的翻译结果
功能概述:客户端对用户录音进行识别后,将得到的文本发送到服务器进行翻译。最后将翻译结果呈现在界面上,反馈给用户。
社区功能
社区包含以下功能:
1.注册
输入:注册的用户名、密码
输出:提示消息
功能概述: 使用用户名查询用户表,若无重复用户名,则在用户表中添加新的用户,提示注册成功。若有重复用户名,则提示用户名不可用。
2.登录
输入:登录用户名、密码
输出:提示消息
功能概述: 使用用户名查询用户表,若无该用户名,则返回无该用户。若有该用户名,对比输入的密码是否与用户表的密码相同,若密码正确则登录成功,将用户类的用户名属性设为用户名。若密码错误则返回错误提示消息。
3.查看社区的提问与回答
输入:无
输出:所有提问与提问所对应的回答
功能概述: 进入社区后,调用方法查询提问表,将社区中所有的提问显示在界面中。点击一个提进入提问的详情页,查询回答表,找出该提问的所有回答,显示在页面中。
4.提出问题
输入:用户名、问题标题、内容以及悬赏金额
输出:提示消息
功能概述: 将输入的问题的信息与提出该提问的用户名(作为外键)变成一条记录,添加至提问表,并将悬赏金额从用户表的金额属性扣除,提示 提出成功。
5.回答问题
输入:当前用户名、该问题的id以及回答内容。
输出:提示消息
功能概述: 将回答的内容与问题的id(外键)和用户名(外键)作为一条记录,添加至回答表,提示,回答成功。
6.采纳问题
输入:回答的用户名、该问题的id以及采纳的回答id。
输出:提示消息
功能概述: 用该问题的id在提问表中找到该问题,然后将该问题的采纳回答列改为采纳回答的id,并在回答表中将该采纳回答的是否采纳列设为已采纳(不可删除)。并在用户表中用回答的用户名找到该用户,给其金额列添加上该问题的悬赏金额。
7.查看自己提出的问题与回答
输入:当前用户的用户名。
输出:当前用户的所有提问、回答
功能概述: 用当前的用户名在提问表中查询出该用户名提出的所有问题,显示在 我的提问 中。用当前用户名在回答表中查询出该用户名回答的所有回答,显示在 我的回答 中(可以再用回答表的提问id(外键)查询出该回答对应的问题的标题内容,并与回答一起显示)。
8.删除自己的提问、回答:
输入:当前的用户名,要删除的问题的id、回答的id
输出:提示消息
功能概述: 删除提问时,使用要删除问题的id在提问表中删除该问题,并同时删除回答表中所有该问题的id,提示删除成功。删除回答时,用该回答的id从回答表中找到该回答,若该回答已被采纳,则提示无法删除;若未被采纳,则从表中删除该回答,提示删除成功。
9.查看自己的笔记
输入:当前的用户名。
输出:当前用户的所有笔记。
功能概述:使用当前用户名在笔记表中查询该用户所添加的所有笔记,并返回给界面。
10.添加、删除、修改笔记
输入:当前的用户名,笔记的内容,笔记的id。
输出:提示消息。
功能概述:添加笔记时,将笔记的内容和当前用户名(作为外键)作为一个记录添加进笔记表中。删除笔记时,使用当前要选中的笔记的id,在笔记表中删除该笔记。修改笔记时,使用当前要选中的笔记id,在笔记表中查询到该笔记,并且将其内容修改为输入的内容。
用户管理
输入:用户名与操作类型
输出:用户信息
功能概述: 对用户的登录、查询数据进行管理,可以删除,增加,修改,查询用户信息。
社区管理
社区管理包含以下功能:
1.问题数据管理
输入:用户名与操作类型
输出:问题信息
功能概述: 对提出问题进行处理筛选,正确处理提问数据,可以删除和增加提问,并且对问题可以在数据库中检索出对应解答。
2.回答数据管理
输入:用户名与操作类型
输出:回答信息
功能概述: 用户可以对自己提出的问题的解答予以确定,并且选出优质解答。
3.笔记数据管理
输入:用户名与操作类型
输出:笔记信息
功能概述: 用户可以将问题和回答添加至笔记,也可以从笔记中删除。
平台API调用
输入:需要翻译的文字与当前语言和需要转换的语言
输出:文字翻译结果
功能概述:用户输入需要翻译的文字,指定的语言后,调用百度等翻译平台的API,完成翻译工作,并接受翻译结果,以文本形式输出。
通信控制
输入:数据与操作类型
输出:对应操作的返回结果
功能概述:通信控制模块负责接收信息,并根据信息中的数据与操作类型调用对应的方法,最后将返回结果输出,发送出去。
核心类图
图 4客户端用户与社区核心类图
图 5服务器Controller核心类图
图 6服务器平台API调用核心类图
图 7服务器数据库管理核心类
界面设计
基于 .Net Core+MySQL开发翻译平台
图 8 翻译界面
图 9 社区界面
♻️ 资源
大小: 29.9MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87354539
相关文章
- docker安装mysql
- Mysql授权允许远程访问解决Navicat for MySQL连接mysql提示客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端
- ASP.NET Core EF Core+Mysql分层开发项目实战
- LINUX重启MYSQL的命令
- mysql 必知必会整理—数据库的维护[十八]
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
- 连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
- PYTHON--定期监测服务器端口,并将结果写入MYSQL
- 利用Navicat for MySQL管理数据库
- 数据库基础之Mysql(3)mysql删除历史binlog
- mysql 有报错 ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
- mysql 实现远程访问,phpmyadmin实现远程连接mysql
- Mysql索引数据结构有多个选择,为什么一定要是B+树呢?_面试 (MySQL 索引为啥要选择 B+ 树)
- Mysql 如果有多个可选条件怎么加索引_MySQL|mysql-索引
- 〖Python 数据库开发实战 - Python与MySQL交互篇⑱〗- 项目实战 - 实现用户管理 - 删除用户
- MySQL Study之--Mysql无法启动“mysql.host”
- Caused by: java.net.ConnectException: Connection refused/Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
- Mysql高性能优化规范建议(三)
- mysql_22 _ MySQL有哪些“饮鸩止渴”提高性能的方法?
- mysql锁 转
- 【MySQL】mysql查询语句大总结_Unit04
- MySQL — 利用命令:获取系统当前时间、打开系统服务、Mysql命令界面快速回到之前的语句
- MySQL INNER JOIN:内连接查询
- MySQL最后一次查询耗时查询