高软第二次作业

本文介绍了一个使用C语言编写的命令行菜单程序,该程序实现了包括加减乘除在内的八种命令操作,并遵循了代码风格规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网易云课堂昵称:风清扬pty +http://mooc.study.163.com/course/USTC-1000002006 

一、实验要求

1、代码风格规范:

  • 代码风格的原则:简明、易读、无二义性;
  • 缩进、命名、注释等代码编排的风格规范;
  • 《构建之法》4.1代码规范

2、具体要求(参照视频中的具体实验过程):

  • 实现一个命令行的菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个;
  • 类似ftp的help目录或者bash的help目录;
  • 程序循环、接收用户的命令,如help、others等命令;

二、实验过程

1、更改vimrc设置

[cpp]  view plain  copy
  1. <span style="font-size:14px;">set tabstop=4</span>  
  2. <span style="font-size:14px;">set cindent</span>  
  3. <span style="font-size:14px;">set hlsearch</span>  
 

2、打开实验目录,新建并打开文件夹lab2

[html]  view plain  copy
  1. cd documents/code  
  2. mkdir lab2  
  3. cd lab2  

3、新建menu.c文件并进入vim编辑器

[html]  view plain  copy
  1. vi menu.c  

4、进行c语言编程,完成命令行的菜单小程序,完整代码如下

[html]  view plain  copy
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. void help();  
  4. void quit();  
  5. void hello();  
  6. void bigger();  
  7. void add();  
  8. void sub();  
  9. void multi();  
  10. void divi();  
  11. int main()  
  12. {  
  13.     char cmd[256];  
  14.     while (1)  
  15.     {  
  16.         scanf ("%s", cmd);  
  17.         if (strcmp(cmd, "help") == 0)  
  18.         {  
  19.             help();  
  20.         }  
  21.         else if (strcmp(cmd, "quit") == 0)  
  22.         {  
  23.             quit();  
  24.         }  
  25.         else if (strcmp(cmd, "hello") == 0)  
  26.         {  
  27.             hello();  
  28.         }  
  29.         else if (strcmp(cmd, "bigger") == 0)  
  30.         {  
  31.             bigger();  
  32.         }  
  33.         else if (strcmp(cmd, "add") == 0)  
  34.         {  
  35.             add();  
  36.         }  
  37.         else if (strcmp(cmd, "sub") == 0)  
  38.         {  
  39.             sub();  
  40.         }  
  41.         else if (strcmp(cmd, "multi") == 0)  
  42.         {  
  43.             multi();  
  44.         }  
  45.         else if (strcmp(cmd, "div") == 0)  
  46.         {  
  47.             divi();  
  48.         }  
  49.         else  
  50.         {  
  51.             printf("Error Command!\n\n");  
  52.             help();  
  53.         }  
  54.   
  55.     }  
  56.   
  57.     return 0;  
  58. }  
  59. void help()  
  60. {  
  61.     printf("+--------+---------------------------------+\n");  
  62.     printf("+ name   + desciption                      +\n");  
  63.     printf("+--------+---------------------------------+\n");  
  64.     printf("+ help   + cmd tips                        +\n");  
  65.     printf("+ quit   + exit cmd                        +\n");  
  66.     printf("+ hello  + welcome                         +\n");  
  67.     printf("+ bigger + bigger of two numbers           +\n");  
  68.     printf("+ add    + addition of two numbers         +\n");  
  69.     printf("+ sub    + subtraction of two numbers      +\n");  
  70.     printf("+ multi  + multiplication of two numbers   +\n");  
  71.     printf("+ div    + division of two numbers         +\n");  
  72.     printf("+--------+---------------------------------+\n");  
  73. }  
  74. void quit()  
  75. {  
  76.     exit(0);  
  77. }  
  78. void hello()  
  79. {  
  80.     printf("+-------*--------*--------*--------*-------+\n");  
  81.     printf("Hi~My name is He Jinlong\n");  
  82.     printf("Thank you for use my cmd program!\n");  
  83. }  
  84. void bigger()  
  85. {  
  86.     double num1,num2,bigger;  
  87.     printf("+-------*--------*--------*--------*-------+\n");  
  88.     printf("Bigger!\nplease input two numbers:");  
  89.     scanf("%lf %lf",&num1,&num2);  
  90.     bigger = num1 > num2 ? num1 : num2;  
  91.     printf("%lf is bigger than the other\n",bigger);  
  92. }  
  93. void add()  
  94. {  
  95.     double num1,num2,add;  
  96.     printf("+-------*--------*--------*--------*-------+\n");  
  97.     printf("Addition!\nplease input two numbers:");  
  98.     scanf("%lf %lf",&num1, &num2);  
  99.     add = num1 + num2;  
  100.     printf("%lf + %lf = %lf \n",num1, num2, add);  
  101. }  
  102. void sub()  
  103. {  
  104.     double num1,num2,sub;  
  105.     printf("+-------*--------*--------*--------*-------+\n");  
  106.     printf("Subtraction!\n please input two numbers:");  
  107.     scanf("%lf %lf",&num1, &num2);  
  108.     sub = num1 - num2;  
  109.     printf("%lf - %lf = %lf\n",num1, num2, sub);  
  110. }  
  111. void multi()  
  112. {  
  113.     double num1,num2,multi;  
  114.     printf("+-------*--------*--------*--------*-------+\n");  
  115.     printf("Multiplcation!\n please input two numbers:");  
  116.     scanf("%lf %lf",&num1, &num2);  
  117.     multi = num1 * num2;  
  118.     printf("%lf * %lf = %lf\n",num1, num2, multi);  
  119. }  
  120. void divi()  
  121. {  
  122.     double num1,num2,div;  
  123.     printf("+-------*--------*--------*--------*-------+\n");  
  124.     printf("Division!\n please input two numbers:");  
  125.     scanf("%lf %lf",&num1, &num2);  
  126.     if (num2 == 0)  
  127.     {  
  128.         printf("Error:divisor can not be zero!\n");  
  129.     }  
  130.     else  
  131.     {  
  132.         div = num1 / num2;  
  133.         printf("%lf / %lf = %lf\n",num1, num2, div);  
  134.     }  
  135. }  

5、程序代码部分截图








6、程序演示过程




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值