C 語(yǔ)言編寫(xiě)一個(gè)計(jì)算器界面(可視化界面和多功能)
引言
在大學(xué)期間,C 語(yǔ)言或者數(shù)據(jù)結(jié)構(gòu)等課程,老師會(huì)要求學(xué)生編寫(xiě)一個(gè)小項(xiàng)目練手,或者期末編寫(xiě)一個(gè)小軟件等課程設(shè)計(jì)。今天在電腦看到大一學(xué)C語(yǔ)言時(shí),實(shí)驗(yàn)課上寫(xiě)的計(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ì)算器!再見(jiàn)!-----------------|\n");
return 0;
}
printf("\n請(qǐng)輸入兩個(gè)數(shù)(用空格隔開(kāi)兩個(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ì)算器!再見(jiàn)!-----------------|\n");
return 0;
}
printf("\n請(qǐng)輸入兩個(gè)數(shù)(用空格隔開(kāi)兩個(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ī)類(lèi)的專(zhuān)業(yè),一般都會(huì)學(xué)習(xí) C 語(yǔ)言,作為編程入門(mén)語(yǔ)言,大家一定要學(xué)習(xí)好此門(mén)語(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ǔ)言編寫(xiě)一個(gè)計(jì)算器界面(可視化界面和多功能)的詳細(xì)內(nèi)容,更多關(guān)于C 語(yǔ)言可視化計(jì)算器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C語(yǔ)言驅(qū)動(dòng)開(kāi)發(fā)之判斷自身是否加載成功詳解
在驅(qū)動(dòng)開(kāi)發(fā)中我們有時(shí)需要得到驅(qū)動(dòng)自身是否被加載成功的狀態(tài),這個(gè)功能看似沒(méi)啥用實(shí)際上在某些特殊場(chǎng)景中還是需要的。本文將通過(guò)示例詳細(xì)講講這一功能的實(shí)現(xiàn)方法,需要的可以參考下2022-10-10
淺析C++調(diào)用Java的Jar包(帶參數(shù))問(wèn)題
這篇文章主要介紹了C++調(diào)用Java的Jar包(帶參數(shù))問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11
Qt中QSettings配置文件的讀寫(xiě)和應(yīng)用場(chǎng)景詳解
這篇文章主要給大家介紹了關(guān)于Qt中QSettings配置文件的讀寫(xiě)和應(yīng)用場(chǎng)景的相關(guān)資料,QSettings能讀寫(xiě)配置文件,當(dāng)配置文件不存在時(shí),可生成配置文件,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10
Linux下控制(統(tǒng)計(jì))文件的生成的C代碼實(shí)現(xiàn)
這篇文章主要介紹了Linux下控制(統(tǒng)計(jì))文件的生成的C代碼實(shí)現(xiàn),感興趣的小伙伴們可以參考一下2016-01-01
Qt開(kāi)發(fā)之使用socket實(shí)現(xiàn)遠(yuǎn)程控制
本篇文章將會(huì)介紹下位機(jī)通過(guò)心跳包和上位機(jī)之間進(jìn)行數(shù)據(jù)交互和遠(yuǎn)程功能控制的實(shí)現(xiàn)方法。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-11-11
基于Turbo C(V2.0)編譯錯(cuò)誤信息的詳細(xì)介紹
本篇文章對(duì)Turbo C(V2.0)編譯的錯(cuò)誤信息進(jìn)行了詳細(xì)的介紹。需要的朋友參考下2013-05-05
利用C++實(shí)現(xiàn)最長(zhǎng)公共子序列與最長(zhǎng)公共子串
這篇文章主要給大家介紹了如何利用C++實(shí)現(xiàn)最長(zhǎng)公共子序列與最長(zhǎng)公共子串,文章一開(kāi)始就給大家簡(jiǎn)單的介紹了什么是子序列,子串應(yīng)該比較好理解就不用多介紹了,人后通過(guò)算法及示例代碼詳細(xì)介紹了C++實(shí)現(xiàn)的方法,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-12-12

