軟件工程第二次實驗

一、實驗要求

1、代碼風格規範:

  • 代碼風格的原則:簡明、易讀、無二義性;
  • 縮進、命名、註釋等代碼編排的風格規範;
  • 《構建之法》4.1代碼規範
  • 高質量C++/C編程指南(林銳)

2、具體要求(參照視頻中的具體實驗過程):

  • 實現一個命令行的菜單小程序,執行某個命令時調用一個特定的函數作爲執行動作,實現的命令個數不少於8個;
  • 類似ftp的help目錄或者bash的help目錄;
  • 程序循環、接收用戶的命令,如help、others等命令;
  • 可以廣泛通用的命令行菜單子系統組件,可方便地定製而嵌入到其他系統;

二、實驗過程

1、更改vimrc設置

set tabstop=4
set cindent
set hlsearch

2、打開實驗目錄,新建並打開文件夾lab2

cd documents/code
mkdir lab2
cd lab2

3、新建menu.c文件並進入vim編輯器

vi menu.c

4、進行c語言編程,完成命令行的菜單小程序,完整代碼如下

#include <stdio.h>
#include <stdlib.h>
void help();
void caonima();
void hello();
void bigger();
void add();
void sub();
void multi();
void divi();
int main()
{
    char cmd[256];
    while (1)
    {
        scanf ("%s", cmd);
        if (strcmp(cmd, "help") == 0)
        {
            help();
        }
        else if (strcmp(cmd, "caonima") == 0)
        {
            caonima();
        }
        else if (strcmp(cmd, "hello") == 0)
        {
            hello();
        }
        else if (strcmp(cmd, "bigger") == 0)
        {
            bigger();
        }
        else if (strcmp(cmd, "add") == 0)
        {
            add();
        }
        else if (strcmp(cmd, "sub") == 0)
        {
            sub();
        }
        else if (strcmp(cmd, "multi") == 0)
        {
            multi();
        }
        else if (strcmp(cmd, "div") == 0)
        {
            divi();
        }
        else
        {
            printf("Error Command!\n\n");
            help();
        }

    }

    return 0;
}
void help()
{
    printf("+--------+---------------------------------+\n");
    printf("+ name   + desciption                      +\n");
    printf("+--------+---------------------------------+\n");
    printf("+ help   + cmd tips                        +\n");
    printf("+ caonima+ exit cmd                        +\n");
    printf("+ hello  + welcome                         +\n");
    printf("+ bigger + bigger of two numbers           +\n");
    printf("+ add    + addition of two numbers         +\n");
    printf("+ sub    + subtraction of two numbers      +\n");
    printf("+ multi  + multiplication of two numbers   +\n");
    printf("+ div    + division of two numbers         +\n");
    printf("+--------+---------------------------------+\n");
}
void caonima()
{
    exit(0);
}
void hello()
{
    printf("+-------*--------*--------*--------*-------+\n");
    printf("Hi~My name is li xueyu!\n");
    printf("Thank you for use my cmd program!\n");
}
void bigger()
{
    double num1,num2,bigger;
    printf("+-------*--------*--------*--------*-------+\n");
    printf("Bigger!\nplease input two numbers:");
    scanf("%lf %lf",&num1,&num2);
    bigger = num1 > num2 ? num1 : num2;
    printf("%lf is bigger than the other\n",bigger);
}
void add()
{
    double num1,num2,add;
    printf("+-------*--------*--------*--------*-------+\n");
    printf("Addition!\nplease input two numbers:");
    scanf("%lf %lf",&num1, &num2);
    add = num1 + num2;
    printf("%lf + %lf = %lf \n",num1, num2, add);
}
void sub()
{
    double num1,num2,sub;
    printf("+-------*--------*--------*--------*-------+\n");
    printf("Subtraction!\n please input two numbers:");
    scanf("%lf %lf",&num1, &num2);
    sub = num1 - num2;
    printf("%lf - %lf = %lf\n",num1, num2, sub);
}
void multi()
{
    double num1,num2,multi;
    printf("+-------*--------*--------*--------*-------+\n");
    printf("Multiplcation!\n please input two numbers:");
    scanf("%lf %lf",&num1, &num2);
    multi = num1 * num2;
    printf("%lf * %lf = %lf\n",num1, num2, multi);
}
void divi()
{
    double num1,num2,div;
    printf("+-------*--------*--------*--------*-------+\n");
    printf("Division!\n please input two numbers:");
    scanf("%lf %lf",&num1, &num2);
    if (num2 == 0)
    {
        printf("Error:divisor can not be zero!\n");
    }
    else
    {
        div = num1 / num2;
        printf("%lf / %lf = %lf\n",num1, num2, div);
    }
}

5、程序代碼部分截圖








6、程序演示過程





感謝孟老師的指導,課程來自 ykt1504834575963+ 《軟件工程(C編碼實踐篇)》MOOC課程作業http://mooc.study.163.com/course/USTC-1000002006 】


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章