系统设计框图:
图形模块的 概要设计(设计数据结构和接口):
数据结构:
float 表示面积和周长
长方形的数据(一般typedef都是定义在对应模块的头文件中)
typedef struct{
float width;
float height;
}Rect_st;
三角形的数据
typedef struct{
float bottom;
float height;
}Triangle_st;
圆形的数据
typedef struct{
float ridus;
}Circle_st;
接口设计(外部接口,使用extern定义在对应模块的头文件中):
//设置长方形的长、宽
void setRectAtribute(Rect_st* pRect);
//长方形周长
float getRectGirth(const Rect_st* pRect);
//长方形面积
float getRectArea(const Rect_st* pRect);
//设置三角形的底、高
void setTriangleAtribute(Triangle_st* pTriangle);
//三角形周长
float getTriangleGirth(const Triangle_st* pTriangle);
//三角形面积
float getTriangleArea(const Triangle_st* pTriangle);
//设置圆的半径
void setCircleAtribute(Circle_st* pCircle);
//圆的周长
float getCircleGirth(const Circle_st* pCircle);
//圆的面积
float getCircleArea(const Circle_st* pCircle);
详细设计(设计每一个接口函数的具体算法和流程,接口函数的实现要放在对应的源文件中):
长方形的周长:
2 * (pRect->width + pRect->height)
长方形面积:
pRect->width * pRect->height
二期项目:
所有的图形计算,需要进行密码验证,验证通过,才能计算出正确的面积。否则返回0。
用户验证模块的概要设计(设计数据结构和接口):
数据结构(变量的定义 一定要在源文件中定义,声明在头文件中):
对于变量的设计,能用局部就用局部,不能用的,用内部变量,实在不行的再用外部变量
char password[6];(不能为局部变量,设计为静态static的全局变量比较合理,作用范围只在password.c中)
设置密码:
设计外部函数(接口函数):
void setPassword(char* password);
bool checkPassword(); //返回true代表密码验证OK,返回false密码验证失败
详细设计:
setPassword算法和流程
判断必须是6位,如果是,将用户设置的密码保存到char password[6];
checkPassword算法和流程
判断参数inpass和password[6]是不是相同,相同返回true,失败返回false。