1、Counter v60详细设计说明书Counter V1.0 详细设计说明书拟制TProject项目组日期2003-06-08评审人日期yyyy-mm-dd修订记录日期修订版本修改章节修改描述作者2001-06-081.00初稿完成TProject项目组2008-05-086.00文档细化企业培训部目 录1 简介 61.1 目的 61.2 范围 62 详细设计 62.1 用户界面模块详细设计 62.1.1 数据描述 62.1.2 函数描述 62.2 参数检查模块详细设计 102.2.1 数据描述 102.2.2 函数描述 102.3 统计空行模块详细设计 132.3.1 数据描述 132.3.
2、2 函数描述 132.4 统计代码行模块详细设计 142.4.1 数据描述 142.4.2 函数描述 152.5 统计注释行数模块详细设计 172.5.1 数据描述 172.5.2 函数描述 182.6 统计总行数模块详细设计 192.6.1 数据描述 192.6.2 函数描述 202.7 统计结果输出模块详细设计 212.7.1 数据描述 212.7.2 函数描述 21表目录Table1 *表 错误!未定义书签。表1 *表 错误!未定义书签。图目录图1 参数检查模块函数调用关系 10Counter V1.0 详细设计说明书关键词:摘 要:缩略语清单: 缩略语英文全名中文解释1 简介1.1 目
3、的本文档是对Counter V1.0软件概要设计说明书的细化。用以指导Counter V1.0的编码工作。1.2 范围本文档给出Counter V1.0的具体函数实现。2 详细设计2.1 用户界面模块详细设计2.1.1 数据描述简单数据描述无数据结构定义无2.1.2 函数描述标识:用户界面模块功能概述:该模块相应用户通过界面的输入。包括如下几个功能:选择被统计的文件、选择统计空行、选择统计代码行、选择统计注释行、选择统计总行、退出Counter、开始统计几大功能。每个功能对外提供独立的接口,彼此独立,没有逻辑关系。1. 函数选择被统计的文件Function: VOID SelectStatFi
4、le()Description: 该函数相应用户选择被统计文件的操作,得到被统计文件的全路径名Calls: 无Input: 无Output: g_szStatFileName全局变量,被统计的文件全路径Return: 无Others: 无-函数实现: VOID SelectStatFile()BEGIN弹出文件对话框,文件对话框列出当前目录后缀名为.c的所有文件用户按下“确定”按钮后,得到用户选择的文件全路径g_szStatFileName = 被统计文件的全路径END2. 函数选择统计空行项Function: VOID SetStatBlankLineFlag()Description: 相
5、应用户单击“统计空行”复选框Calls: 无Input: 无Output: g_bStatBlankLineFlag全局变量,统计空行标志位 Return: 无Others: 无-函数实现: VOID SetStatBlankLineFlag()BEGIN If (STAT = g_bStatBlankLineFlag) g_bStatBlankLineFlag = NOT_STAT Else g_bStatBlankLineFlag = STATEND3. 函数选择统计代码行项Function: VOID SetStatCodeLineFlag()Description: 相应用户单击“统计
6、代码行”复选框Calls: 无Input: 无Output: g_bStatCodeLineFlag全局变量,统计代码行标志位 Return: 无Others: 无-函数实现: VOID SetStatCodeLineFlag()BEGIN If (STAT = g_bStatCodeLineFlag) g_bStatCodeLineFlag = NOT_STAT Else g_bStatCodeLineFlag = STATEND4. 函数选择统计注释行项Function: VOID SetStatCommLineFlag()Description: 相应用户单击“统计注释行”复选框Call
7、s: 无Input: 无Output: g_bStatCommLineFlag全局变量,统计注释行标志位 Return: 无Others: 无-函数实现: VOID SetStatCommLineFlag()BEGIN If (STAT = g_bStatCommLineFlag) g_bStatCommLineFlag = NOT_STAT Else g_bStatCommLineFlag = STATEND5. 函数选择统计总行数项目Function: VOID SetStatTotalLineFlag()Description: 相应用户单击“统计总行数”复选框Calls: 无Input
8、: 无Output: g_bStatTotalLineFlag全局变量,统计总行数标志位 Return: 无Others: 无-函数实现: VOID SetStatTotalLineFlag()BEGIN If (STAT = g_bStatTotalLineFlag) g_bStatTotalLineFlag = NOT_STAT Else g_bStatTotalLineFlag = STATEND6. 函数退出Counter应用程序Function: VOID ExitCounter()Description: 退出应用程序CounterCalls: 无Input: 无Output: 无
9、Return: 无Others: 无-函数实现: VOID ExitCounter()BEGIN 退出应用程序CounterEND7. 函数-开始统计功能Function: VOID MainStatFun()Description: 该函数在用户通过界面单击“开始统计”按钮后,开始运行。该主控函数具有调度功能,分别调用参数检查模块、代码统计模块和统计结果输出模块,完成一次统计执行过程Calls: 无Input: 无Output: 无Return: 无Others: 无-函数实现: VOID MainStatFun ()BEGIN /为全局变量赋值,记录统计行数的变量均初始化为0g_iCode
10、LineNum = 0;g_iBlankLineNum = 0;g_iCommLineNum = 0;g_iTotalLineNum = 0;/定义调用函数的返回值变量BOOL iRetVal;iRetVal = CheckParameters(g_szStatFileName,g_bStatBlankLineFlag,g_bStatCodeLineFlag,g_bStatCommLineFlag,g_bStatTotalLineFlag); If (RET_FAIL = iRetVal) return;/统计文件中空行数目MainStatBlankLine(g_szStatFileName,
11、g_bStatBlankLineFlag);/统计文件中代码行数MainStatCodeLine(g_szStatFileName,g_bStatCodeLineFlag);/统计文件中的注释行数MainStatCommLine(g_szStatFileName,g_bStatCommLineFlag);/统计文件中的总行数MainStatTotalLine(g_szStatFileName,g_bStatBlankLineFlag,g_bStatCodeLineFlag,g_bStatCommLineFlag,g_bStatTotalLineFlag);/输出空行统计数目StatResult
12、Output(STAT_BLANK, g_iBlankLineNum);/输出代码行统计数目StatResultOutput(STAT_CODE, g_iCodeLineNum);/输出注释行统计数目StatResultOutput(STAT_COMM, g_iCommLineNum);/输出总行统计数目StatResultOutput(STAT_TOTAL, g_iTotalLineNum);END2.2 参数检查模块详细设计2.2.1 数据描述简单数据描述无数据结构定义 无2.2.2 函数描述标识:参数检查模块功能概述:该模块实现对用户输入参数,包括被统计文件名、统计项目的合法性检查 函数
13、调用关系: 参数检查模块函数调用关系“参数检查主函数”分别调用“被统计文件合法性检查函数”和“统计标志位合法性检查函数”,如果参数不合法,给用户提示信息。1. 函数参数检查主函数Function: BOOL CheckParameters(CString szStatFileName,BOOL bStatBlankLineFlag,BOOL bStatCodeLineFlag,BOOL bStatCommLineFlag,BOOL bStatTotalLineFlag)Description: 参数检查主函数 Calls: CheckStatFile();CheckStatItem()Inpu
14、t: szStatFileName被统计的文件全路径bStatBlankLineFlag统计空行标志位bStatCodeLineFlag统计代码行标志位bStatCommLineFlag统计注释行标志位bStatTotalLineFlag统计总行标志位Output: 无Return: RET_OK参数检查合法,RET_FAIL参数检查不合法Others: 无-函数实现: BOOL CheckParameters(CString szStatFileName,BOOL bStatBlankLineFlag,BOOL bStatCodeLineFlag,BOOL bStatCommLineFlag
15、,BOOL bStatTotalLineFlag)BEGINCString szErrorMsg; /给用户的提示信息Bool iRetVal; /调用函数的返回值/开始检查被统计文件的合法性iRetVal = CheckStatFile(szStatFileName);If ( RET_FAIL = iRetVal) szErrorMsg = “被统计文件” + szStatFileName + “不存在,或者正在被其他程序使用,或者后缀名不为.c,请检查!”;弹出警告对话框,对话框上的文字为szErrorMsg中的值; Return RET_FAIL;/开始检查统计项目的合法性iRetVa
16、l = CheckStatItem (bStatBlankLineFlag, bStatCodeLineFlag, bStatCommLineFlag, bStatTotalLineFlag);If ( RET_FAIL = iRetVal)szErrorMsg = “至少需要选择一个统计项目,否则无法统计”; 弹出警告对话框,对话框上的文字为szErrorMsg中的值; Return RET_FAIL;Return RET_OK;END2. 函数被统计文件检查函数Function: BOOL CheckStatFile(CString szStatFileName)Description:
17、检查被统计文件的合法性Calls: 无Input: szStatFileName被统计的文件全路径Output: 无Return: RET_OK参数检查合法,RET_FAIL参数检查不合法Others: 无-函数实现: BOOL CheckStatFile(CString szStatFileName)BEGINIF文件szStatFileName的后缀名不为.c Return RET_FAIL;Else If (文件szStatFileName不可读) Return RET_FAIL;Return RET_TRUE;END3. 函数统计项目检查函数Function: BOOL CheckSt
18、atItem(BOOL bStatBlankLineFlag,BOOL bStatCodeLineFlag,BOOL bStatCommLineFlag,BOOL bStatTotalLineFlag)Description: 统计项目检查函数Calls: 无Input: 无Output: bStatBlankLineFlag统计空行标志位bStatCodeLineFlag统计代码行标志位bStatCommLineFlag统计注释行标志位bStatTotalLineFlag统计总行标志位Return: RET_OK参数检查合法,RET_FAIL参数检查不合法Others: 无-函数实现: BO
19、OL CheckStatItem (BOOL bStatBlankLineFlag,BOOL bStatCodeLineFlag,BOOL bStatCommLineFlag,BOOL bStatTotalLineFlag)BEGIN /如果四个统计项目都没有被选中,则返回失败If ( (NOT_STAT = bStatBlankLineFlag) AND (NOT_STAT = bStatCodeLineFlag)AND (NOT_STAT = bStatCommLineFlag)AND (NOT_STAT = bStatTotalLineFlag) ) return RET_FAIL;Re
20、turn RET_OK;END2.3 统计空行模块详细设计2.3.1 数据描述简单数据描述无数据结构定义无2.3.2 函数描述标识:统计空行模块功能概述:统计文件中的空行数目 函数调用关系: MainStatBlankLine检查是否需要统计空行数目,如果需要,则调用 StatBlankLine开始具体的统计操作1. 函数统计空行数主函数Function: VOID MainStatBlankLine(CString szStatFileName,BOOL bStatBlankLineFlag)Description: 调用StatBlankLine 统计文件中空行数目Calls: StatB
21、lankLine (CString szStatFileName)Input: g_szStatFileName全局变量,被统计的文件全路径g_bStatBlankLineFlag全局变量,统计空行标志位Output: 无Return: 无Others: 无-函数实现: VOID MainStatBlankLine(CString szStatFileName,BOOL bStatBlankLineFlag)BEGIN /判断是否需要统计空行数 If (STAT = bStatBlankLineFlag) StatBlankLine(szStatFileName); END2. 函数统计空行数
22、函数Function: VOID StatBlankLine(CString szStatFileName)Description: 统计文件中空行数目Calls: 无Input: g_szStatFileName全局变量,被统计的文件全路径Output: g_iBlankLineNum全局变量,统计得到的空行数目Return: Others: 无-函数实现: VOID StatBlankLine(CString szStatFileName)BEGIN /定义被统计文件的句柄CStdioFile StatFilehandle;/定义保存文件中当前行字符串的变量CString szStatFi
23、leLine;打开文件szStatFileName,并使文件句柄StatFilehandle指向打开的文件szStatFileName;WHILE(没有读取到文件szStatFileName尾部) szStatFileLine = 文件szStatFileName的当前行中的文本; 删除szStatFileLine中的TAB字符; 删除szStatFileLine中的空格符; 删除szStatFileLine中的回车符; 删除szStatFileLine中的换行符号; If ( 0 = szStatFileLine的字符串长度) ( g_iBlankNum+;) 关闭文件szStatFileN
24、ame; END2.4 统计代码行模块详细设计2.4.1 数据描述简单数据描述无数据结构定义无2.4.2 函数描述标识:统计代码行模块功能概述:该模块实现对 文件中代码行的统计功能函数调用关系: MainStatCodeLine检查是否需要统计代码行数目,如果需要,则调用 StatCodeLine开始具体的统计操作1. 函数统计代码行数主函数Function: VOID MainStatCodeLine(CString szStatFileName,BOOL bStatCodeLineFlag)Description: 调用StatCodeLine 统计文件中空行数目Calls: StatCo
25、deLine (CString szStatFileName)Input: g_szStatFileName全局变量,被统计的文件全路径g_bStatCodeLineFlag全局变量,统计空行标志位Output: 无Return: Others: 无-函数实现: VOID MainStatCodeLine(CString szStatFileName,BOOL bStatCodeLineFlag)BEGIN /判断是否需要统计空行数 If (STAT = bStatCodeLineFlag) StatCodeLine(szStatFileName); END2. 函数统计代码行函数Function: VOID StatCodeLine(CString szStatFileName)Description: 统
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1