怎样做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次加法,是不是很麻烦?
   

    (未完待续)


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值