零零散散學了很多概念上的一些皮毛,這些以前在學校的時候也知悉,只不過沒有時間去倒騰怎麼一步一個腳印去編寫代碼。這就是所謂的行而上學論吧。正所謂實踐纔是檢驗真理的唯一標準,所以最重要的還是要去實現想法。現在就從一些小程序,比如計算器開始吧,這是我們平常比較常見的小應用程序。經常用,但就是不知道怎麼去實現的。
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"),主要是爲了界面能夠停留結果,以讓我們看清楚結果。