




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
需求分析 程序功能: C++源代码扫描程序识别C++记号。 C++记号: C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。 界面要求: 采用MFC界面实现。 文本压缩: 为了提高C++源程序的可读性,C++程序在书写过程中加入了空行、空格、缩进、注释等。假设想牺牲可读性,以节省磁盘空间,那么可以存贮一个删除了所有不必要空格和注释的C++源程序的压缩文本。 概要设计 关键字(67个): asm,auto,bool,break,case,catch,char,class,const,continue,default,delete,do,double,else,enum,except,explicit,extern,false,finally,float,for,friend,goto,if,inline,int,long,mutable,namesapce,new,operator,private,protectde,public,register,return,short,signed,szieof,static,struct,string,switch,template,this,throw,true,try,typedef,typename,union,unsigned,using,virtual,void,while,main,std,cin,cout,endl,scanf,printf,include,define 一元运算符或分隔符(25个): ,;(){}#^?:.[]+-*/%=><!~|& 二元运算符或分隔符(19个): &&||==>=<=!=++--::<<>>+=-=*=/=%=&=^=-> 程序流程图: 主流程图: 词法分析模块流程图: 文本压缩模块流程图: 详细设计 词法分析模块: //函数功能:扫描一行字符串识别C++记号 //函数参数:s表示C++源程序中的一行待分析的字符串 //参数返回值:无 voidanalyse(strings,LPVOIDIParam) { CScanDlg*q=(CScanDlg*)IParam;//获取对话框指针 charstr[300];//用于存储识别出的C++记号 CStringSt;//将上面str变量从char类型转换为CString类型 inti=0;//记录s字符串的移动的当前位置 intj;//记录str字符串的当前位置 if(note_flag)//过滤掉存在"/*.......*/"形式的屏蔽段 { while(s[i]!='*'&&s[i]!='\0'||s[i]=='*'&&s[i+1]!='/') //不存在"*/"串或当前串还没结束则s字符串的当前指针继续后移 { i++; } if(s[i]!='\0')//遇到"*/",将标志note_flag置为false { i=i+2; note_flag=false; } } while(s[i]!='\0')//串没结束则循环扫描 { if(s[i]==''||s[i]=='\t')//过滤空格和制表符 { i++; continue; } if((s[i]=='<'||s[i]=='"')&&s[0]=='#')//对include预处理字符串中头文件名的处理 { St.Format("%c",s[i]); q->m_list.InsertItem(count,St);//在列表控件中显示'<'或'"'字符 St.Format("%s","特殊符号"); q->m_list.SetItemText(count,1,St); count++; j=0; i++; while(s[i]!='>'&&s[i]!='"') { str[j]=s[i]; j++; i++; } str[j]='\0'; St.Format("%s",str); q->m_list.InsertItem(count,St);//在列表控件中显示头文件名 St.Format("%s","关键字"); q->m_list.SetItemText(count,1,St); count++; St.Format("%c",s[i]); q->m_list.InsertItem(count,St);//在列表空间中显示字符'>'或'"' St.Format("%s","特殊符号"

快乐****蜜蜂
实名认证
内容提供者


最近下载
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
论《离骚》诠释史中的“香草”意蕴.docx