如何用cfree編寫計算器

零零散散學了很多概念上的一些皮毛,這些以前在學校的時候也知悉,只不過沒有時間去倒騰怎麼一步一個腳印去編寫代碼。這就是所謂的行而上學論吧。正所謂實踐纔是檢驗真理的唯一標準,所以最重要的還是要去實現想法。現在就從一些小程序,比如計算器開始吧,這是我們平常比較常見的小應用程序。經常用,但就是不知道怎麼去實現的。

1、最簡易的計算器

主要是用的控制檯應用程序構建項目,所以主要顯示在出現的黑框框上。

這裏我用的IDE是cfree,每更改一段代碼,總是會彈出以下錯誤:Access violation at adress 004BFA14 in module "CPPIDE.exe",read of adress 0000000C.這是什麼意思呢?從字面上的理解是非法訪問了模塊CPPIDE.exe的 004BFA14地址,所以實際讀到的地址是0000000C。那怎麼解決這個問題呢?再仔細查看cfree中的CPPIDE.exe,這個文件不就是cfree的可行性文件嗎,暈死,難道又要重裝Cfree?估計是的。

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

int MoveCursor(int x,int y);

int main()
{
//	 float a,b;
//	 char c;
   
	 //MoveCursor(1,2);
	 printf("                          \n");   
	 printf("                          \n");
	 printf("                          \n");   
	 printf("                          \n");
	 printf("                          \n");
	 printf("  1   2   3     +   -     \n");
	 printf("                          \n");
	 printf("  4   5   6     *   /     \n");
	 printf("                          \n");
	 printf("  7   8   9     =   \x1b  \n");
	 printf("                          \n");
	 printf("  0   .             End   \n");
	 printf("                          \n");

 	MoveCursor(1,2);//將光標設置在計算器的前面 

//{
	 char ch;
	 int a,b;
	 printf("Enter formula:");
	 scanf("%d%c%d",&a,&ch,&b);
	 switch(ch)
 	{
	 case '+':printf("%d+%d=%d\n",a,b,a+b);break;
	 case '-':printf("%d-%d=%d\n",a,b,a-b);break;
	 case '*':printf("%d*%d=%d\n",a,b,a*b);break;
	 case '/':printf("%d/%d=%d\n",a,b,a/b);
 	}
 	system("pause"); //爲了生成release版本停留界面 
	//} 
}


int MoveCursor(int x,int y)    
{
	 HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE); 
	 COORD ord;
	 ord.X=x;
	 ord.Y=y;
	 SetConsoleCursorPosition(handle,ord);
	 return 1; 
}

實際上這個簡易計算器沒有調用windows的API函數,就只是簡單的模擬了計算器的形式,實現了加、減、乘、除等簡易計算。需要注意的是,在生成release版本的時候要在程序尾添加system("pause"),主要是爲了界面能夠停留結果,以讓我們看清楚結果。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章