(下篇)C++ 科学计算器解析(源代码)

本计算器的代码在C+builder下完成,利用了大学里面学习的后缀表达式运算的功能,本人完善了计算器后面的一部分,希望对学习数据结构的各位同学有所帮助。也希望大家将开源的精神进行到底。//--------------------------------------
摘要由CSDN通过智能技术生成

    本计算器的代码在C+builder下完成,利用了大学里面学习的后缀表达式运算的功能,本人完善了计算器后面的一部分,希望对学习数据结构的各位同学有所帮助。也希望大家将开源的精神进行到底。


//---------------------------------------------------------------------------

运算后的界面如下:





#include <time.h>
#include <dos.h>
#include <vcl.h>
#pragma hdrstop
#include "data1.h"
#include "code.h"
#include <math.h>
 #include <iostream>
  #include <stack>
extern "C" __declspec(dllimport) int __cdecl test();
using namespace std;
#pragma package(smart_init)
#pragma resource "*.dfm"
 suff s[100];
 suff suffix[1000] ;
 int i=0,j=0,h=0,mn=0,left1=0,right1=0;
 char input[100];
 char quat[1000];
 double old=NULL;
 int se=0;//查看记录
TForm1 *Form1;
 stack<double>   qq;
 int but31,but30;
char stringt[7][20]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
struct tm *ptr;
time_t lt;
char str[80];
 char st[130];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{     Label3->Caption=str;
lt=time(NULL);
 ptr=localtime(&lt);
sprintf(str,"%d/%02d/%02d %s %02d:%02d:%02d",ptr->tm_year+1900,ptr->tm_mon+1,ptr->tm_mday,stringt[ptr->tm_wday], ptr->tm_hour,ptr->tm_min,ptr->tm_sec);
}
//---------------------------------------------------------------------------
void __insert(char c)
{
  input[j++]=c;
}

 bool search()
{
   for(i=0;i<j;i++)
   if(input[i]=='.')
   {return false;  break;}
   return true;
}

  void __ins(char c)
{
   quat[mn++]=c;
}

void __del()
{    double f    ;
if(input!=NULL)
{
if(fabs(atof(input))>little)
f=atof(input);
else
{ s[h].k=0.0;
 //ShowMessage(input); strcmp(input,"0")!=0
 }
 s[h].k=f;
  s[h].f=NULL;
 h++;
  memset(input,NULL,sizeof(input));
  j=0;
}
}
   void __clear()
{
  i=0;  j=0;  h=0; mn=0;
while(!qq.empty())
{
qq.pop();
}
memset(input,NULL,sizeof(input));
memset(s,NULL,sizeof(s));
memset(quat,NULL,sizeof(quat));
memset(suffix,NULL,sizeof(suffix));
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(!((j==1&&input[0]=='0')||(input[0]=='-'&&input[1]=='0'&&j==2)))
{ __insert('1')  ;
Edit1->Text=input;
 __ins('1')  ;
Edit3->Text=quat;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{      if(!((j==1&&input[0]=='0')||(input[0]=='-'&&input[1]=='0'&&j==2)))
{
__insert('2')  ;
Edit1->Text=input;
__ins('2')  ;
Edit3->Text=quat;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{      if(!((j==1&&input[0]=='0')||(input[0]=='-'&&input[1]=='0'&&j==2)))
{
__insert('3')  ;
Edit1->Text=input;
__ins('3')  ;
Edit3->Text=quat;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{       if(!((j==1&&input[0]=='0')||(input[0]=='-'&&input[1]=='0'&&j==2)))
{
__insert('4')  ;
Edit1->Text=input;
  __ins('4')  ;
Edit3->Text=quat; }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{       if(!((j==1&&input[0]=='0')||(input[0]=='-'&&input[1]=='0'&&j==2)))
{
__insert('5')  ;
Edit1->Text=input;
  __ins('5')  ;
Edit3->Text=quat; }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{      if(!((j==1&
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值