用多文件结构实现计算器程序
1.counter.h
#ifndef COUNTER
#define COUNTER
void counter(int a,int b,char op);
#endif
2.counter.cpp
#include<stdio.h>
#include<assert.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#include<stdbool.h>
#include"counter.h"
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int mul(int a,int b)
{
return a*b;
}
int divt(int a,int b)
{
return a/b;
}
void showsum(int a,int b,char op,int sum)
{
printf("%d %c %d %d\n",a,op,b,sum);
}
void counter(int a,int b,char op)
{
int sum=0;
bool tag=true;
switch(op)
{
case '+' : sum=add(a,b);break;
case '-' : sum=sub(a,b);break;
case '*' : sum=mul(a,b);break;
case '/' :
if(b==0)
{
printf("div 0 error\n");
tag=false;
}
else{sum=divt(a,b);break;}
default:
printf("operator input error");
tag=false;
break;
}
if(tag)
showsum(a,b,op,sum);
}
3.main.cpp
#include<stdio.h>
#include"counter.h"
int main()
{
int a=0,b=0;
char op='#';
char ch='\0';
do{
printf("input data:(dd c dd)\n");
scanf_s("%d %c %d",&a,&op,&b);
counter(a,b,op);
printf("是否继续\n");
//fflush(stdin);
rewind(stdin);
ch=getchar();
}
while(ch=='y'||ch=='Y');
return 0;
}