C 語(yǔ)言編寫一個(gè)計(jì)算器界面(可視化界面和多功能)
引言
在大學(xué)期間,C 語(yǔ)言或者數(shù)據(jù)結(jié)構(gòu)等課程,老師會(huì)要求學(xué)生編寫一個(gè)小項(xiàng)目練手,或者期末編寫一個(gè)小軟件等課程設(shè)計(jì)。今天在電腦看到大一學(xué)C語(yǔ)言時(shí),實(shí)驗(yàn)課上寫的計(jì)算器功能,挺有意思。所以在此分享給學(xué)C語(yǔ)言的學(xué)弟學(xué)妹,記得收藏保留!
計(jì)算器
簡(jiǎn)單版本計(jì)算器,主要實(shí)現(xiàn)的是簡(jiǎn)單兩個(gè)數(shù)的加法,減法,乘法,除法,求余功能。用戶可以在主菜單選擇需要計(jì)算的功能,然后根據(jù)用戶輸入的數(shù)字,進(jìn)行計(jì)算,輸出結(jié)果。
首先,我們定義五個(gè)方法,實(shí)現(xiàn)兩個(gè)數(shù)的加法,減法,乘法,除法,求余功能。代碼如下:
// 加法
float add(float a, float b) {
return a + b;
}
// 減法
float sub(float a, float b) {
return a - b;
}
// 乘法
float mul(float a, float b) {
return a * b;
}
// 除法
float mod(float a, float b) {
return a / b;
}
// 求余
int com(int a, int b) {
return a % b;
}
然后定義一個(gè)打印主菜單界面的函數(shù),使用簡(jiǎn)介美觀的菜單界面,供用戶選擇要計(jì)算的功能,代碼如下:
// 打印主功能菜單
void printMenu() {
// 清屏
// system("cls");
printf("|----------------------- 計(jì)算器 -----------------------|\n");
printf("| |\n");
printf("| By -- 陳皮的JavaLib |\n");
printf("| |\n");
printf("|---------------------- 1:加法 -----------------------|\n");
printf("|---------------------- 2:減法 -----------------------|\n");
printf("|---------------------- 3:乘法 -----------------------|\n");
printf("|---------------------- 4:除法 -----------------------|\n");
printf("|---------------------- 5:求余 -----------------------|\n");
printf("|---------------------- 6:退出 -----------------------|\n");
printf("| |\n");
printf("|----------------------- 計(jì)算器 -----------------------|\n");
}
最后,我們?cè)谥骱瘮?shù) main 中,定義一個(gè) while 循環(huán)代碼塊,不斷讀取用戶輸入的內(nèi)容,進(jìn)行數(shù)字計(jì)算,代碼如下:
int main() {
// 選擇的功能
int select = 0;
// 定義算術(shù)的兩個(gè)數(shù)
float a, b;
while (select != 6){
select = 0;
// 打印主菜單
printMenu();
// 只允許選擇菜單欄內(nèi)的數(shù)字,不是則重新選擇
while (select < 1 || select > 6) {
printf("請(qǐng)輸入菜單功能(1-6):");
scanf("%d", &select);
}
if (6 == select) {
printf("\n|----------------- 歡迎使用計(jì)算器!再見!-----------------|\n");
return 0;
}
printf("\n請(qǐng)輸入兩個(gè)數(shù)(用空格隔開兩個(gè)數(shù)):");
scanf("%f %f", &a, &b);
switch (select) {
case 1:
printf("%f+%f=%f\n\n", a, b, add(a, b));
break;
case 2:
printf("%f-%f=%f\n\n", a, b, sub(a, b));
break;
case 3:
printf("%f*%f=%f\n\n", a, b, mul(a, b));
break;
case 4:
printf("%f/%f=%f\n\n", a, b, mod(a, b));
break;
case 5:
printf("%f/%f=%d\n\n", a, b, com((int)a, (int)b));
break;
case 6:
default:
break;
}
}
}
下面我們演示幾個(gè)例子,能更加直觀體驗(yàn)計(jì)算器的功能:
菜單功能選擇錯(cuò)誤,會(huì)提示重新選擇

加法

除法

退出

簡(jiǎn)單版本計(jì)算器,完整代碼如下:
#include <stdio.h>
#include <stdlib.h>
// 加法
float add(float a, float b) {
return a + b;
}
// 減法
float sub(float a, float b) {
return a - b;
}
// 乘法
float mul(float a, float b) {
return a * b;
}
// 除法
float mod(float a, float b) {
return a / b;
}
// 求余
int com(int a, int b) {
return a % b;
}
// 打印主功能菜單
void printMenu() {
// 清屏
// system("cls");
printf("|----------------------- 計(jì)算器 -----------------------|\n");
printf("| |\n");
printf("| By -- 陳皮的JavaLib |\n");
printf("| |\n");
printf("|---------------------- 1:加法 -----------------------|\n");
printf("|---------------------- 2:減法 -----------------------|\n");
printf("|---------------------- 3:乘法 -----------------------|\n");
printf("|---------------------- 4:除法 -----------------------|\n");
printf("|---------------------- 5:求余 -----------------------|\n");
printf("|---------------------- 6:退出 -----------------------|\n");
printf("| |\n");
printf("|----------------------- 計(jì)算器 -----------------------|\n");
}
/**
* 簡(jiǎn)單版本計(jì)算器功能 By -- 陳皮的JavaLib
* @return
*/
int main() {
// 選擇的功能
int select = 0;
// 定義算術(shù)的兩個(gè)數(shù)
float a, b;
while (select != 6){
select = 0;
// 打印主菜單
printMenu();
// 只允許選擇菜單欄內(nèi)的數(shù)字,不是則重新選擇
while (select < 1 || select > 6) {
printf("請(qǐng)輸入菜單功能(1-6):");
scanf("%d", &select);
}
if (6 == select) {
printf("\n|----------------- 歡迎使用計(jì)算器!再見!-----------------|\n");
return 0;
}
printf("\n請(qǐng)輸入兩個(gè)數(shù)(用空格隔開兩個(gè)數(shù)):");
scanf("%f %f", &a, &b);
switch (select) {
case 1:
printf("%f+%f=%f\n\n", a, b, add(a, b));
break;
case 2:
printf("%f-%f=%f\n\n", a, b, sub(a, b));
break;
case 3:
printf("%f*%f=%f\n\n", a, b, mul(a, b));
break;
case 4:
printf("%f/%f=%f\n\n", a, b, mod(a, b));
break;
case 5:
printf("%f/%f=%d\n\n", a, b, com((int)a, (int)b));
break;
case 6:
default:
break;
}
}
}
總結(jié)
在大學(xué)期間,如果是計(jì)算機(jī)類的專業(yè),一般都會(huì)學(xué)習(xí) C 語(yǔ)言,作為編程入門語(yǔ)言,大家一定要學(xué)習(xí)好此門語(yǔ)言,而且如果學(xué)好了,其實(shí)學(xué)習(xí)其他編程語(yǔ)言就很容器上手的,不同語(yǔ)言其實(shí)大同小異,只要你編程思維提升了,基礎(chǔ)語(yǔ)法掌握了,才能學(xué)習(xí)更加深入的知識(shí)。其中一個(gè)路徑是要多敲代碼,從基礎(chǔ)代碼到經(jīng)典題型,不斷鍛煉編程思維和敲代碼能力。
以上是演示簡(jiǎn)單版本計(jì)算器,實(shí)現(xiàn)了加法,減法,乘法,除法,求余功能之外,用戶可以在主菜單選擇需要計(jì)算的功能,然后根據(jù)用戶輸入的數(shù)字,進(jìn)行計(jì)算,輸出結(jié)果。感興趣的同學(xué),可以實(shí)現(xiàn)更加高級(jí)的玩法,例如支持括號(hào),多項(xiàng)式加減乘除等。
以上就是C 語(yǔ)言編寫一個(gè)計(jì)算器界面(可視化界面和多功能)的詳細(xì)內(nèi)容,更多關(guān)于C 語(yǔ)言可視化計(jì)算器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++實(shí)現(xiàn)特殊矩陣的壓縮存儲(chǔ)算法
在實(shí)際存儲(chǔ)時(shí),會(huì)發(fā)現(xiàn)矩陣中有許多值相同的數(shù)據(jù)或有許多零數(shù)據(jù),且分布呈現(xiàn)出一定的規(guī)律,稱這類型的矩陣為特殊矩陣。本文將利用C++實(shí)現(xiàn)特殊矩陣的壓縮存儲(chǔ),感興趣的可以了解一下2022-08-08
opencv實(shí)現(xiàn)定時(shí)錄像功能
這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)定時(shí)錄像功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
C語(yǔ)言中字符串庫(kù)函數(shù)的實(shí)現(xiàn)及模擬
C語(yǔ)言中有很多數(shù)據(jù)類型,比如int(整數(shù)類型)、char(字符類型)、以及浮點(diǎn)型的double(雙精度)等。但是有一點(diǎn)就是我們發(fā)現(xiàn)這里并沒有提到我們常見的有關(guān)字符串的類型。本文為大家介紹了C語(yǔ)言中字符串庫(kù)函數(shù)的實(shí)現(xiàn)及模擬,需要的可以參考一下2022-11-11
C語(yǔ)言內(nèi)存函數(shù)的使用及其模擬實(shí)現(xiàn)
這篇文章主要介紹了C語(yǔ)言內(nèi)存函數(shù)的使用及其模擬實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10

