zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

基于 .Net Core+MySQL开发(WinForm)翻译平台【100010303】

2023-09-11 14:17:50 时间

翻译“king”平台

项目说明

项目目标

目前各家平台的翻译效果各有优劣,很多时候需要同时比较多个平台的结果,才能取得较好的效果。因此,我们小组要实现一个整合各大主流平台(百度、有道、讯飞、必应、谷歌等)的翻译接口,用户输入要翻译的文本后,将各个平台的翻译结果呈现给用户。除此以外,我们还为这个平台加入了社区功能,用户可以在社区内对需要翻译的文本进行提问、回答、采纳、记录,实现人工翻译与机器翻译的有机结合。本项目覆盖了本学期学习的重点内容,通过这个项目,我们每一位小组成员都可以很好地实践这个学期学习的内容,锻炼自己的代码能力。

软硬件环境需求

  • 客户端运行环境:Windows操作系统; .Net Framework

  • 服务器运行环境:Linux操作系统; .Net Core; MySQL数据库

使用的关键技术

  1. 通信与Web API

  2. 数据库

  3. WPF技术

  4. 文字识别技术

  5. 语音识别技术

需求分析

系统用例

​ 图 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