实验二:命令行菜单小程序V1.0
咖啡机《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006
新创建一个目录lab2完成实验。
一、实验要求
1. 代码风格规范:
- 代码风格的原则:简明、易读、无二义性;
- 缩进、命名、注释等代码编排的风格规范;
2. 具体要求:
- 实现一个命令行的菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个;
- 类似ftp的help目录或者bash的help目录;
- 程序循环、接收用户的命令,如help、others等命令;
- 可以广泛通用的命令行菜单子系统组件,可方便地定制而嵌入到其他系统;
二、实验过程
1. 创建lab2文件夹,创建menu.c文件:
2. 编写程序
- 实现8个数值计算相关命令,命令选择逻辑如下:
while (1)
{
printf("Plesea choose a command and type it:\n");
scanf("%s", cmd);
if (strcmp(cmd, "info") == 0)
{
info();
}
else if (strcmp(cmd, "plus") == 0)
{
plus();
}
else if (strcmp(cmd, "minus") == 0)
{
minus();
}
else if (strcmp(cmd, "multiply") == 0)
{
multiply();
}
else if (strcmp(cmd, "divide") == 0)
{
divide();
}
else if (strcmp(cmd, "power") == 0)
{
power();
}
else if (strcmp(cmd, "square") == 0)
{
square();
}
else if (strcmp(cmd, "factorial") == 0)
{
factorial();
}
else if (strcmp(cmd, "absolute") == 0)
{
absolute();
}
else if (strcmp(cmd, "quit") == 0)
{
printf("Quit the program!\n");
return 0;
}
else
{
printf("Error:unsupported command!\n");
printf("Type 'info' for the available commands.\n");
}
}
菜单命令包括以下9种:
- 介绍命令信息info()
- 加法运算plus()
- 减法运算minus()
- 乘法运算multiply()
- 除法运算divide()
- 幂运算power()
- 平方根运算square()
- 阶乘运算factorial()
- 绝对值运算absolute()
限制于报告篇幅,以上命令的具体实现代码就不在文中贴出,烦请移步github工程中查看。
3. 编译并执行menu.c文件
初始运行情况,info()介绍可用指令的相关信息:
检测plus()、factorial()、absolute()、power()、quit()等指令的识别情况:
4. 将代码利用git同步到github:
三、实验心得
按照实验要求完成了命令行菜单小程序,实现了9种命令的命令行解释调用。在本次实验中,也了解了代码书写规则,并开始严格遵循其要求,写出了规范的程序代码。