91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-07-12
  • 語言: C/C++
  • 標簽: C++??無符號數??

資源簡介

用C++實現的無符號數的詞法分析程序。

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
using?namespace?std;

int?w=0;??//尾數累加器?
int?p=0;??//指數累加器?
int?j=0;??//十進制小數位數計數器?
int?e=1;??//用來記錄十進制數的符號,當指數為正時為1,為負時為-1????
int?i=0;??//用來標志元素位置?
int?d=0;??//用來表示每個數值型元素對應的數值?

const?int?N=40;//用來確定輸入識別符的最大長度
char?data[N];//存放輸入的識別符?
bool?is_digit;?//標志是否是數字?
string?CJ1;//確定是整形還是實型?
double?CJ2;//記數值?

//函數聲明?
void?check(char?c);//檢查首字母是否是數字的函數?
void?deal_integer(char?c);//處理識別符的整數部分?
void?deal_point(char?c);//用來處理小數部分?
void?deal_index(char?c);//用來處理指數部分
void?s_next();//?確定實型?
void?z_next();//確定整型?
void?last();//?計算?CJ2
void?error();//程序中錯誤處理程序?
void?deal();//處理函數主體?
int?main(){??//主函數?
????
????cout<<“please?input?your?dataand?its?maximum?length?is?“<????cin>>data;
????deal();//處理函數主體?
????last();//?計算?CJ2
????system(“pause“);
????return?0;
????}
????
????
??void?check(char?c)?//判斷輸入的首字母是否是數字?
??????{?????
????????is_digit=isdigit(c);
?????????while(is_digit!=true){//輸入的首字母不是數字時?
??????????cout<<“\nError!?Try?again..“<??????????cin>>data;
??????????check(data[0]);
??????????}
??????}
??????
???void?deal_integer(char?c){//處理識別符的整數部分?

????????d=(int)c-48;
????????w=w*10+d;
????????i++;
????????if(isdigit(data[i])!=0)//下一個仍是數值時,調用程序本身?
??????????????deal_integer(data[i]);
????}
???
???void?deal_point(char?c){//用來處理小數部分?
????????int?temp=i;
????????if(isdigit(c)!=0)//是數值字符時?
?????????????deal_integer(c);?
??????????????????????
????????else
????????????{?error();?//錯誤處理程序
??????????????deal();//處理函數主體
????????????}
????????j=i-temp;//記錄十進制小數位數?
????????}
????????
??void?deal_index(char?c){//用來處理指數部分
???????if(c==‘-‘)??{e=-1;i++;}//是‘-‘號時?
???????else???{if(c==‘+‘)?i++;//是‘+‘?號時?
???????????????else?{
????????????????????if(isdigit(c)==false)?//非數值字符時??
???????????????????????????{???error();//錯誤處理程序
???????????????????????????????deal();//處理函數主體
???????????????????????????}
???????????????????????????????????????????
????????????????????else
??????????????????????{?d=(int)c-48;//把輸入字符轉換為整型?
????????????????????????goto?pro2;}
??????????????????????}
??????????????}
???if(isdigit(data[i])!=0)
pro1:???d=(int)(data[i])-48;

pro2:???p=p*10+d;
????????i++;

???????if(isdigit(data[i])!=0)//是數值字符時?
???????????goto?pro1;????
???????else?if(data[i]!=‘\0‘){//非結束標志?
???????????????error();//錯誤處理程序
???????????????deal();//處理函數主體
?????????????}
???????????else?s_next();?//?確定實型????
??}
void?s_next(){//?確定實型?
???????i--;//退一個字符?
???????CJ1=“實型“;
???????}
void?z_next(){//確定整型?
?????i--;//退一個字符?
?????CJ1=“整型“;
?????}
void?last(){//?計算?CJ2
?????CJ2=w*pow((double)10e*p-j);
?????cout<?????}
void?error(){//程序中錯誤處理程序?
?????cout<<“\nError!?Try?again..“<?????cin>>data;
?????p=0;w=0;j=0;?//所有全局變量重新初始化?
?????e=1;i=0;d=0;
?????//exit(0);
?????}
?????
void?deal(){
????check(data[0]);//判斷輸入的首字母是否是數字

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4348??2008-06-04?15:38??wfhs.cpp

-----------?---------??----------?-----??----

?????????????????4348????????????????????1


評論

共有 條評論