zoukankan      html  css  js  c++  java
  • c++小学期大作业攻略(零)建议+代码结构(持续更新)

      当前已经做好的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表达式替代掉。

  • 相关阅读:
    搭建微信小程序开发环境
    DOM 的classList 属性
    mui监听多个下拉刷新当前处于哪个选项卡
    mui常用功能链接地址
    css 弹性盒模型Flex 布局
    定义变量let,const
    微信小程序从零开始开发步骤(六)4种页面跳转的方法
    微信小程序从零开始开发步骤(五)轮播图
    展开符和解构赋值
    POJ 3660 Floyd传递闭包
  • 原文地址:https://www.cnblogs.com/Enceladus/p/11216384.html
Copyright © 2011-2022 走看看