C语言教程 – 制作单位转换器

C语言教程 - 制作单位转换器

C 语言是一个强大而通用的编程语言。这款诞生于 1972 年的编程语言起初用于开发 UNIX 操作系统,而它如今已是广泛用于开发各类操作系统、数据库、编译器及其他软件等的主流编程语言。

作为编程界的奠基语言之一,学习 C 语言有助于软件编程领域的学生甚至专业人士深入了解编程原理。学习 C 语言其实非常简单,C 语言本身的语言结构化,而其高效的程序编译过程也能让初学者深入浅出地掌握编程知识,从最基础的程序开始到复杂的操作系统都能实现。 这篇教程通过使用 C 语言编写简易单位转化器,从而讲解如何从最基本的编辑器开始接触 C 语言,通过说明变量类型、绘制程序流程、编写程序等过程,讲解编程中的逻辑、函数功能及原理。

编辑器选择

纵使 C 语言是编程语言的老——,我们依旧可以借助比 C 语言更年轻的编辑器来进行编程。如果将编辑器与编程语言相对比,那么编辑器就像纸笔一样,只要是自己用的称心的纸笔都能写程序。编辑器的选择有很多,但好的编程体验从合适的编辑器开始,而类似 C 语言在线编译器 Lightly 就能满足我们的编程需求。

C语言教程 - 制作单位转换器

在信息爆炸的年代,好的编辑器能提高编程效率,降低学习编程的成本。原本复杂的环境部署程序,在 Lightly 只需要登录编辑器,选择 ​C 语言在线编程即可。

引入 C 语言库

​#include <stdio.h>​​​ 是 C 语言的标准库头文件,其中的 std 为英语 Standard 的缩写,i/o 分别表示 input 和 output,而 ​​.h​​​ 则是头文件 header 的后缀。另外,这篇教程也会使用 ​​#include <stdlib.h>​​,即 Standard Library。

C 语言的标准库头文件中包含 ​​printf()​​​、​​scanf()​​​、​​system()​​​、​​exit()​​ 等常用的功能函数,这篇教程将重复使用这些函数,从而巩固大家对这些函数的应用能力。

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

定义变量

C语言教程 - 制作单位转换器

在 C 语言中,变量大致可分为以上几种类型。我们在 C 语言中使用变量之前,需要为这些变量定义,以便程序识别变量类型。

char category;           // 种类选择
int backChoice; // 返回选项
int tempChoice; // 温度选择
int currencyChoice; // 货币选择
int massChoice; // 质量选择
int userinputF; // 输入华氏度
int userinputC; // 输入摄氏度
int userinputUSDtoEuro; // 输入美金 → 欧元
int userinputUSDtoJPY; // 输入美金 → 日元
int userinputUSDtoRMB; // 输入美金 → 人民币
int userinputOunce; // 输入盎司
int userinputGram; // 输入克
int fahrenheitToCelcius; // 华氏度 → 摄氏度
int celciusToFahrenheit; // 摄氏度 → 华氏度
float USDtoEURO; // 美金 → 欧元
float USDtoJPY; // 美金 → 日元
float USDtoRMB; // 美金 → 人民币
float ounceToPounds; // 盎司 → 斤
float gramsToPounds; // 克 → 斤

// 子程序清单
void tempConverter(); // 温度转换器
void currencyConverter(); // 货币转换器
void massConverter(); // 质量转换器
void backTemp(); // 温度返回界面
void backCurrency(); // 货币返回界面
void backMass(); // 质量返回界面

看到长串的变量先不必慌张,我们只需要养成建立变量清单的习惯,在编写程序的过程中逐个添加即可。注意:每一行程序末端需要写上分号 ​​;​​,以结束一行程序,否则编译的时候就会报错。

绘制程序流程图

我们在开始编程之前,可以养成绘制流程图的习惯,以便编写程序的时候逻辑更加清洗。这种流程图不一定需要用软件绘制,即便是最原始的纸笔有时候也能有效地帮助我们理清程序思路。

C语言教程 - 制作单位转换器

编写主程序

我们的主程序一般写在 ​​int main()​​​ 函数内,其中的程序内容包含在花括号 ​​{ ... }​​ 中。

也许有细心的同学发现,我们的主程序函数和前面列出的子程序函数不太一样,主程序的变量使用的是 ​​int​​​ 整数而非 ​​void​​ 空变量。没错,主程序本身确实会返回整数!当我们结束程序时,一般会使用 ​​return 0​​​ 或 ​​exit(0)​​。如此一来,主程序就会读取变量,根据返回的变量判断程序是否运行。

int main()void main() 之间的差别 当我们使用 void 变量来保存函数时,这类函数并不会保存整数。因此,当我们需要程序完整运行,而非使用 ​​exit()​​ 函数终止程序时,我们就可以使用 void 作为变量类型。然而,当我们需要返回特定整数时,void 变量就不再适用。因此,我们需要适当地判断程序用途来选择变量类型。

C语言教程 - 制作单位转换器

在我们的主程序中,除了前面已经讲解过的 ​​int main()​​,我们还使用了几种不同的新函数。

While 循环

​while()​​​ 是 C 语言中的一种循环类型,当变量与括号 ​​()​​ 中数值相符时,程序便会持续运行。

Printf 输出

​printf()​​​ 即输出括号中的内容。其中的内容可以是文本,也可以是数字。如果需要在文本下方空格,还可以输入 ​​n​​。

Scanf 输入

​scanf()​​​ 即监听输入。我们通过这个函数向程序输入数据并保存在相应的变量中。其中,​​"%c"​​​ 表示数据类型为文本,另外也有 "%d" 等表示整数的输入类型;而后者的 ​​&category​​ 则表示储存数据的变量。

Switch 切换

​switch()​​​ 可根据输入的内容切换子程序,我们需要在括号内填入读取的变量内容,然后通过不同的 ​​case​​ 切换程序。

System 系统

​system("clear")​​ 即清屏。

编写子程序

完成主程序编写后,我们可以再逐个转到子程序。这种区分主次的编程方法可以让程序变得更加简洁,减少代码出错。如果代码出现错误,我们只需根据报错修改相应的代码即可,而其他程序之间也不会因此受到影响。

void tempConverter() {

system("clear");
printf("欢迎使用温度转换器! nn");
printf("请选择需要转换的类型: nn");
printf("华氏度 → 摄氏度 请按 1 n");
printf("摄氏度 → 华氏度 请按 2 nn");
printf("返回页面 请按 0 nn");
scanf("%d", &tempChoice);

if (tempChoice == 1) {
system("clear");
printf("n输入华氏度: n");
scanf("%d", &userinputF);
fahrenheitToCelcius = ((userinputF - 32) * (5.0 / 9.0));
printf("n摄氏度: %d", fahrenheitToCelcius);

backTemp();

} else if (tempChoice == 2) {
system("clear");
printf("n请输入摄氏度: n");
scanf("%d", &userinputC);
celciusToFahrenheit = ((9.0 / 5.0) * userinputC + 32);
printf("n华氏度: %d", celciusToFahrenheit);

backTemp();

} else if (tempChoice == 0) {
} else
printf("请输入正确的数字。n");
}

与主程序中的 ​​switch()​​​ 函数不同,我们在编写温度转换器时使用了 ​​if()​​​、​​else if()​​​ 和 ​​else​​ 函数切换程序。

If 条件

在 ​​if()​​​ 函数中,程序通过判断变量是否符合条件来执行接下来的步骤。若条件不符,则程序会直接执行 ​​else​​ 中的内容。

在 ​​printf()​​ 中调用变量

在我们的转换器子程序中,我们同样通过 ​​scanf()​​​函数监听所输入的数据,然后再通过相应的公式计算出结果。在 ​​printf()​​​ 中调用结果时,同样可以使用 ​​"%d"​​​ 指定数据类型,但指定的变量则无需添加 ​​&​​,直接写入变量名称即可。

即便在子程序中,我们也同样可以引用类似 ​​backTemp()​​ 等更多的子程序,减少代码的重复性,也让代码变得更简洁。

发表评论

相关文章