怎樣做C語言課程設計?(一)

怎樣做C語言課程設計?


    其實,這個應該是C語言課程設計所有博客的第一篇,不過寫在這裏也不算晚。我們在做課程設計之前,一定要回答這個問題,同時,我們也需要明確要怎麼樣做纔是“圓滿”地進行了設計。
    在很多人的認知裏,甚至在很多老師的認知裏,“圓滿”完成C語言課程設計的標準就是按照課題的要求,寫出了可以運行的程序。個人覺得,這個只能算“碼農”標準,算不上“設計”!
    設計的真諦就是:我的程序我做主,只要不違背課題要求,或者不太違背課題要求,就可以課題要求的基礎上自由發揮。設計體現的是一個人對課題的理解和對課程知識的覆蓋式應用。
   
    這樣講當然比較抽象,不妨舉個例子。
    問題描述:設計程序,求解兩個整數相加問題。
    相信如果誰拿到這個題目做課程設計,一定會樂暈吧,不要5分鐘 就可以搞定。


    設計1:

#include "stdio.h"

main()
{
    int a, b;
    printf("請輸入兩個整數:");
    scanf("%d%d", &a, &b);
    printf("%d+%d=%d\n", a,b,a+b);
}


    分析:第一,輸入之前有友好的提示;第二,沒有特別說明,使用默認的分隔符輸入數據;第三,有友好的輸出。沒有什麼可改進的了,設計做完了!

    真的做完了嗎?仔細想想:
    (1)C語言實現的結構化程序,是一個IPO的過程,函數實現程序功能,main()只是程序的入口;
    (2)程序是“一直”運行的,不能每次做加法都運行一次程序,程序的結束應該由用戶決定。

    調整方案:增加函數,分離I-P-O,並提供選項菜單。


    設計2:

<pre class="cpp" name="code">#include "stdio.h"

void inputData(int *pa, int *pb)
{
    printf("請輸入兩個整數:");
    scanf("%d%d", pa, pb);
}
int process(int a, int b)
{
    return a+b;
}
void outputData(int a, int b, int r)
{
    printf("%d+%d=%d\n", a,b,r);
}

void showMenu()
{
    int a, b, r;
    int in, exitFlag=0;
    while(1)
    {
        system("cls");
        printf("***************************************\n");
        printf("*************** 歡迎使用 **************\n");
        printf("***************************************\n");
        printf("請選擇:\n");
        printf("    1----輸入兩個整數A和B,計算A+B\n");
        printf("    0----結束程序\n");
        printf("請輸入(1,0):");
        scanf("%d", &in);
        switch(in)
        {
        case 1:
             inputData(&a, &b);
             r=process(a,b);
             outputData(a,b,r);
             system("pause");  break;
        case 0:    exitFlag=1;  break;
        }
        if (exitFlag)
        {
        printf("***************************************\n");
        printf("********* 感謝您的使用,再見!*********\n");
        printf("***************************************\n");
        break;
        }
    }
    system("pause");
}

main()
{
    showMenu();
}




    現在程序暴漲了幾十行,太有成就感了,現在是圓滿完成了吧!

    運行程序,如果要做10次加法,是不是很麻煩?
   

    (未完待續)


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