团队作业3

一、编码规范和编码原则

 1、代码风格规范

  (1)在每个类声明之火、每个函数定义结束之后都要加空行

  (2)if ,for,while,do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都加上{ },方便代码阅读,防止书写失误

  (3)尽可能在定义变量的同时初始化该变量(就近原则),对于头文件的指针变量最好在构造函数中赋NULL

  (4)'(’向后紧跟,‘,’,‘)’,‘;’向前紧跟,紧跟处不留空格

  (5)‘,’之后要留空格,如Function(x, y, z), 如果‘;’不是一行的结束符号,其后要留空格,如for (int i = 0; i<n; ++i)

  (6)对于“=”、“+=”、“>=”、“%”、“||”、“<<”等二元操作符的前后应当加空格

  (7)对于“!”、“~”、“++”、“--”、“&”(取地址)等一元操作符前后不加空格

  (8)对于表达式比较长的for语句和if语句,为了紧凑可以适当去掉一些空格,如for (i=0; i<10;++i)和if ((a<=b) && (c<=d))

  (9)长表达式要在低优先级操作符处拆分成新行,操作符放在行首突出。拆分的新行要适当缩进,整齐排版

  如:

    if ((very_longer_varible1 >= very_longer_varible12)

    && (very_logner_varible2 >= very_longer_varible22)

    && (very_longer_varible3 >= very_longer_varible32))

 2、代码设计规范

  (1)变量命名规则首选Microsoft公司的“匈牙利”法:变量名=属性+类型+对象,若是指针变量加前缀p,常量全大写 const int MAX = 100,其他变量用类似方法

  (2)不可将浮点变量用“==”或是“!=”与任何数据比较,正确方式:if ((x>=-EPSINON) && (x<=EPSINON)) ,EPSINON是允许误差,即精度

  (3)if判断中 if (bool)或是if (int ==0)或是if (p==NULL),p为指针

  (4)在多重循环中,如果允许,应当将最长的循环放在最内层,最短循环放在最外层,以减少CPU跨切循环的次数

  (5)一般将目的参数放在前面,源参数放在后面:void StringCopy(char *strDestination, char *strSource)

  (6)如果输入参数以值传递方式传递对象,应该用“const &”方式传递,节省临时对象的构造和析构过程,提高效率

  (7)函数体的规模要小,尽量控制在50行以内,函数之间低耦合方便调用

  (8)使用断言,assert仅在VS中debug版本起作用,帮助我们找到错误发生的原因,使用断言要明确注释

  (9)在malloc或是new申请内存之后,应该立即检查指针值是否为NULL,方式使用指针为空的内存,free或是delete释放内存之后,立即将指针设置为NULL,防止产生“野指针”

  (10)注意数组作为函数参数时会自动退化为指针

  (11)关于野指针:"野指针不是NULL指针,是指向“‘垃圾’”内存的指针,一般不会错用NULL指针,因为用if语句容易判断,但是“野指针”没办法用if语句判断。生成野指针的主要原因:a)指针变量没有初始化,应该赋值为NULL或是指向合法内存。b)指针被free或是delete后没有置为NULL。如果一个指针是NULL指针,那么free多少次都不会出问题,如果不是NULL,那么连续free两次就会导致程序运行错误

  (12)头文件只是用到类指针时,添加类的申明而不是整个类文件,避免生成的工程文件过大,节省编译时间,尤其是在Qt中。

  (13)如果派生类的函数与基类的函数同名,但是参数不同,此时无论有无virtual关键字,基类的函数将被隐藏(区别于重载,重写(参数相同))

  (14)参数缺省值只能出现在函数的声明中,而不能出现在定义体中,在编译时,缺省值由编译器自动插入。如果函数由多个参数,则只能由后到前挨个缺省。不合理的使用参数的缺省值会导致重载函数产生二义性(当只传入非缺省值时,编译器不能选择哪个重载函数)

  (15)构造函数的初始化列表:如果类存在继承关系,派生类必须在其初始化表里调用基类的构造函数

  (16)一个类中相同的代码,最好是提炼成一个独立的方法,方便调用。不同类中重复的代码,提炼成一个新的类

二、数据库设计

玩家

 

关卡 

 

诗句

 

 角色

 

三、项目E-R图

 

四、功能流程

1.点击“开始游戏”会发生.....

     

 

 

2.点击“选择人物”会发生....

 

 

五、分工及贡献分

杨爽:主要负责美工以及后期优化代码     贡献分:10

陆旺:主要负责主程序员    贡献分:10

胡骏驰:主要负责程序员及测试    贡献分:10

许欢:主要负责数据处理及产品管理   贡献分:10

posted on 2019-05-29 08:56  高原文化至臻守护者  阅读(204)  评论(0编辑  收藏  举报

导航