当前已经做好的exe,数据库是连服务器的,但是头像是存在本地的文件系统里面:

  https://cloud.tsinghua.edu.cn/d/059ef6b1f9a149ce879b/files/?p=/translation.rar

建议

  可能完善码风的一点建议和做大作业过程中遇到的坑:

  1. 尽可能不要在代码中出现魔法值,即常量尽可能用const赋予其意义,同时可以复用。全局常量建议在cpp文件中定义,其他文件通过头文件中的extern进行访问。

  2. 小心你的头文件结构,如果相互包含可能导致bug。

  3. Qt销毁元素时是会把它的子元素一并销毁的,所以我们并不需要太担心new出来的对象如何delete的问题。update:界面中的元素不要随意delete,手动delete可能在Qt内部删的时候导致崩溃。

代码结构

  先摆一个数字,当前所有.cpp、.h文件(不包括ui_****.h)总大小:173KB

  下面主要展示各对象中的数据成员及继承关系,我并不建议你在没有任何思考的情况下直接阅读(除非你大作业做不完了)。

User : Id, Nickname, password, Introduction, Age, Gender, Score, Balabce

  派生:Candidate, Author, Manager, Translator

Task : Stage, Name, Description, Content, Amount, Author(SubTask), Maneger(SubTask), Candidates, Translators(SubTask), RecruitManagerDDL, FinalDDL

SubTask:User, Task

  AuthorTask(SubTask)

  ManagerTask(SubTask)

  TranslatorTaks(SubTask) : From, To, Local, Submit, Comment

Database

Message

以下界面相关,带括号表示从中继承而来。

GetInformation

Translation(MainWindow): Menu*, Content*, Status*

  Menu(QMenuBar)

  Content(QWidget)  :

    Index(Content) :

    Login(Content, GetInformation) :

    Register(Content, GetInformation) :

    LeaderBoard(Content):

    Personal(Content)

    TaskList(Content)

    NewTask(Content)

    TaskInfo

    MessageView

  Status(QStatusBar)

  

  这里用了一个多继承,Login和Register有Centent和GetInformation两个父类,感觉写起来确实方便一些。但是都说多继承尽可能少用,我也不是很懂这里有没有增加耦合性,还是这么写了。后期应该可以用Lambda表达式替代掉。

最新文章

  1. nginx代理TCP端口
  2. 三分钟集成elmah xml 格式日志到mvc站点
  3. 将 expression 转换为数据类型 int 时发生算术溢出
  4. Tomcat启动时项目重复加载,导致资源初始化两次的问题
  5. Topology and Geometry in OpenCascade-Topology
  6. IOS-JSON & XML解析
  7. iis7下iis安全狗不能用怎么办(安装iis6兼容性)
  8. Jmeter代理录制脚本
  9. RM报表 文本框 自动换行 相关代码
  10. floodlight StaticFlowPusher 基于网段写flow,通配
  11. golang学习遭遇duang...duang...duang
  12. Lua的安装
  13. Linux Mysql 总结
  14. RabbitMQ教程(一)——安装配置
  15. 查看Oracle中存储过程长时间被卡住的原因
  16. C++ 基于凸包的Delaunay三角网生成算法
  17. 洛谷P2084 进制转换
  18. python之线程(threading)
  19. pom.xml复制过来的代码报错-Maven expected START_TAG or END_TAG not TEXT (positionTEXT se
  20. SIGALRM信号和SIGCHID信号

热门文章

  1. 前端移动框架Framework7入门
  2. C# - VS2019 WinFrm程序调用ZXing.NET实现条码、二维码和带有Logo的二维码的识别
  3. Linux用户和权限——权限管理
  4. SAP 如何得到交货单上的序列号清单?
  5. IPv6地址类型和操作
  6. 软件设计师【软件工程:软件开发模型、XP极限编程十二最佳实践】
  7. rem与em的使用和区别详解【转】
  8. 对Quene中的队列的状态进行操作
  9. devops 下测试组织管理面临的挑战及应对
  10. 源码详解Pytorch的state_dict和load_state_dict