1.用C语言写的语言辅语言源码计算器源代码
2.cè¯è¨ç¨åºä»£ç
3.c语言怎么反编译源码?
用C语言写的计算器源代码
#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
typedef float DataType;
typedef struct
{
DataType *data;
int max;
int top;
}Stack;
void SetStack(Stack *S,int n)
{
S->data=(DataType*)malloc(n*sizeof(DataType));
if(S->data==NULL)
{
printf("overflow");
exit(1);
}
S->max=n;
S->top=-1;
}
void FreeStack(Stack *S)
{
free(S->data);
}
int StackEmpty(Stack *S)
{
if(S->top==-1)
return(1);
return(0);
}
DataType Peek(Stack *S)
{
if(S->top==S->max-1)
{
printf("Stack is empty!\n");
exit(1);
}
return(S->data[S->top]);
}
void Push(Stack *S,DataType item)
{
if(S->top==S->max-1)
{
printf("Stack is full!\n");
exit(1);
}
S->top++;
S->data[S->top]=item;
}
DataType Pop(Stack *S)
{
if(S->top==-1)
{
printf("Pop an empty stack!\n");
exit(1);
}
S->top--;
return(S->data[S->top+1]);
}
typedef struct
{
char op;
int inputprecedence;
int stackprecedence;
}DataType1;
typedef struct
{
DataType1 *data;
int max;
int top;
}Stack1;
void SetStack1(Stack1 *S,int n)
{
S->data=(DataType1*)malloc(n*sizeof(DataType1));
if(S->data==NULL)
{
printf("overflow");
exit(1);
}
S->max=n;
S->top=-1;
}
void FreeStack1(Stack1 *S)
{
free(S->data);
}
int StackEmpty1(Stack1 *S)
{
if(S->top==-1)
return(1);
return(0);
}
DataType1 Peek1(Stack1 *S)
{
if(S->top==S->max-1)
{
printf("Stack1 is empty!\n");
exit(1);
}
return(S->data[S->top]);
}
void Push1(Stack1 *S,DataType1 item)
{
if(S->top==S->max-1)
{
printf("Stack is full!\n");
exit(1);
}
S->top++;
S->data[S->top]=item;
}
DataType1 Pop1(Stack1 *S)
{
if(S->top==-1)
{
printf("Pop an empty stack!\n");
exit(1);
}
S->top--;
return(S->data[S->top+1]);
}
DataType1 MathOptr(char ch)
{
DataType1 optr;
optr.op=ch;
switch(optr.op)
{
case'+':
case'-':
optr.inputprecedence=1;
optr.stackprecedence=1;
break;
case'*':
case'/':
optr.inputprecedence=2;
optr.stackprecedence=2;
break;
case'(':
optr.inputprecedence=3;
optr.stackprecedence=-1;
break;
case')':
optr.inputprecedence=0;
optr.stackprecedence=0;
break;
}
return(optr);
}
void Evaluate(Stack *OpndStack,DataType1 optr)
{
DataType opnd1,opnd2;
opnd1=Pop(OpndStack);
opnd2=Pop(OpndStack);
switch(optr.op)
{
case'+':
Push(OpndStack,opnd2+opnd1);
break;
case'-':
Push(OpndStack,opnd2-opnd1);
break;
case'*':
Push(OpndStack,opnd2*opnd1);
break;
case'/':
Push(OpndStack,opnd2/opnd1);
break;
}
}
int isoptr(char ch)
{
if(ch=='+'||ch=='-'||ch=='*'||ch=='/'||ch=='(')
return(1);
return(0);
}
void Infix(char *str)
{
int i,k,n=strlen(str);
char ch,numstr[];
DataType opnd;
DataType1 optr;
Stack OpndStack;
Stack1 OptrStack;
SetStack(&OpndStack,n);
SetStack1(&OptrStack,n);
k=0;
ch=str[k];
while(ch!='=')
if(isdigit(ch)||ch=='.')
{
for(i=0;isdigit(ch)||ch=='.';i++)
{
numstr[i]=ch;
k++;
ch=str[k];
}
numstr[i]='\0';
opnd= atof(numstr);
Push(&OpndStack,opnd);
}
else
if(isoptr(ch))
{
optr=MathOptr(ch);
while(Peek1(&OptrStack).stackprecedence>=optr.inputprecedence)
Evaluate(&OpndStack,Pop1(&OptrStack));
Push1(&OptrStack,optr);
k++;
ch=str[k];
}
else if(ch==')')
{
optr=MathOptr(ch);
while(Peek1(&OptrStack).stackprecedence>=optr.inputprecedence)
Evaluate(&OpndStack,Pop1(&OptrStack));
Pop1(&OptrStack);
k++;
ch=str[k];
}
while(!StackEmpty1(&OptrStack))
Evaluate(&OpndStack,Pop1(&OptrStack));
opnd=Pop(&OpndStack);
cout<<"你输入表达式的计算结果为"<<endl;
printf("%-6.2f\n",opnd);
FreeStack(&OpndStack);
FreeStack1(&OptrStack);
}
void main()
{
cout<<"请输入你要计算的表达式,并以“=”号结束。"<<endl;
char str[];
gets(str);
Infix(str);
=================================================================
哈哈!助源给分吧!辅助
cè¯è¨ç¨åºä»£ç
Cè¯è¨æºä»£ç ï¼å°±æ¯ä¾æ®Cè¯è¨è§åæååºçç¨åºä»£ç ï¼å¸¸è§çåå¨æ件æ©å±å为.cæ件å.hæ件ï¼åå«å¯¹åºCæºæ件(source file)åC头æ件(header file)ãCè¯è¨æ¯ä¸é¨ç¼ç¨è¯è¨ï¼ç®åç¹è¯´ï¼å°±æ¯ç±äººç±»ä¹¦åæç §ä¸å®è§è书åçå符ï¼éè¿ä¸å®æ段ï¼ç¼è¯é¾æ¥ï¼è½¬æ¢åï¼å¯ä»¥è®©çµèæè å ¶å®çµåè¯çï¼è¯»æï¼ï¼å¹¶æç §å ¶è¦æ±å·¥ä½çè¯è¨ãå¨ææçç¼ç¨è¯è¨ä¸ï¼Cè¯è¨æ¯ç¸å¯¹å¤èèåå§çï¼åæ¶ä¹æ¯å¨åç±»è¯è¨ä¸æ´æ¥è¿ç¡¬ä»¶ï¼æ为é«æçç¼ç¨è¯è¨ã
ç¸å ³å 容ï¼
Cè¯è¨æ¯ä¸é¨é¢åè¿ç¨ç计ç®æºç¼ç¨è¯è¨ï¼ä¸C++ãC#ãJavaçé¢å对象ç¼ç¨è¯è¨ææä¸åãCè¯è¨ç设计ç®æ æ¯æä¾ä¸ç§è½ä»¥ç®æçæ¹å¼ç¼è¯ãå¤çä½çº§åå¨å¨ãä» äº§çå°éçæºå¨ç 以åä¸éè¦ä»»ä½è¿è¡ç¯å¢æ¯æ便è½è¿è¡çç¼ç¨è¯è¨ã
Cè¯è¨æè¿°é®é¢æ¯æ±ç¼è¯è¨è¿ éãå·¥ä½éå°ãå¯è¯»æ§å¥½ãæäºè°è¯ãä¿®æ¹å移æ¤ï¼è代ç è´¨éä¸æ±ç¼è¯è¨ç¸å½ãCè¯è¨ä¸è¬åªæ¯æ±ç¼è¯è¨ä»£ç çæçç®æ ç¨åºæçä½%-%ãå æ¤ï¼Cè¯è¨å¯ä»¥ç¼åç³»ç»è½¯ä»¶ã
å½åé¶æ®µï¼å¨ç¼ç¨é¢åä¸ï¼Cè¯è¨çè¿ç¨é常ä¹å¤ï¼å®å ¼é¡¾äºé«çº§è¯è¨åæ±ç¼è¯è¨çä¼ç¹ï¼ç¸è¾äºå ¶å®ç¼ç¨è¯è¨å ·æè¾å¤§ä¼å¿ã计ç®æºç³»ç»è®¾è®¡ä»¥ååºç¨ç¨åºç¼åæ¯Cè¯è¨åºç¨ç两大é¢åãåæ¶ï¼Cè¯è¨çæ®éè¾å¼ºï¼å¨è®¸å¤è®¡ç®æºæä½ç³»ç»ä¸é½è½å¤å¾å°éç¨ï¼ä¸æçæ¾èã
Cè¯è¨æ¥æç»è¿äºæ¼«é¿åå±åå²çå®æ´çç论ä½ç³»ï¼å¨ç¼ç¨è¯è¨ä¸å ·æ举足轻éçå°ä½ã
c语言怎么反编译源码?
需要准备的语言辅语言源码手机html源码工具:电脑,反编译工具ILSpy。助源1、辅助口令抽奖源码首先在百度上搜索下载反编译工具ILSpy,语言辅语言源码解压后如图,助源双击.exe文件打开解压工具。辅助
2、语言辅语言源码选择file选项,助源点击“打开”。辅助
3、语言辅语言源码订货通源码接着选择要反编译的助源文件,点击“打开”。辅助
4、源码马会这是会出现一个对话框,在这个对话框里面就可以看到源码了。
5、源码文本加密如果想把源码保存下来,自己在源码的基础上修改,点击"file"下的“Save code...”,保存即可。
6、如需用vs打开反编译后的源码,只需要打开这个.csproj文件即可。