怎样做C语言课程设计?(二)

来源:互联网 发布:自动整点报时软件 编辑:程序博客网 时间:2024/04/30 14:51


(续一)


    调整方案:增加函数,实现批量加法运算。
    这里有些细节需要讨论一下:
    (1)既然要做批量的加法运算,要怎么得到数据?我懒,不想手工输入,所以一个直接的办法就是用随机数rand()生成,再用srand()设置随机数种子,我只要输入有多少道加法就可以了。
    (2)之前已经进行了IPO的分离,所以输入数据是要保存下来的,加法运算r=a+b涉及三个数,所以可以用一个3列MAXSIZE行的数组,这里MAXSIZE是多少?需要讨论一下,找出操作系统能够容忍的最大的MAXSIZE,在程序中,不妨设MAXSIZE为20。


    设计3:

#include "stdio.h"#include "stdlib.h"#include "time.h"#define MAXSIZE 20/* 输入两个整数,计算其和 */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);}/* 随机生成n个整数,计算其和 */int randomNum(int low, int high){    return low+rand()%(high-low+1);}void inputBatch(int *pn){    do {        printf("请输入计算次数(1-%d):", MAXSIZE);        scanf("%d", pn);    }while(*pn<1 || *pn>MAXSIZE);}void processBatch(int (*pn)[3], int n){    int i;    for(i=0; i<n; ++i)    {        pn[i][0]=randomNum(0,100);        pn[i][1]=randomNum(0,100);        pn[i][2]=process(pn[i][0], pn[i][1]);    }}void outputBatch(int (*pn)[3], int n){    int i;    for(i=0; i<n; ++i)        outputData(pn[i][0], pn[i][1], pn[i][2]);}void showMenu(){    int a, b, r;    int nums[MAXSIZE][3],n;    int in, exitFlag=0;    srand((unsigned)time(NULL));  /* 以当前时间做随机数种子 */    while(1)    {        system("cls");        printf("***************************************\n");        printf("*************** 欢迎使用 **************\n");        printf("***************************************\n");        printf("请选择:\n");        printf("    1----输入两个整数A和B,计算A+B\n");        printf("    2----输入多对整数,批量计算A+B\n");        printf("    0----结束程序\n");        printf("请输入(1,2,0):");        scanf("%d", &in);        switch(in)        {        case 1:             inputData(&a, &b);             r=process(a,b);             outputData(a,b,r);             system("pause");  break;        case 2:             inputBatch(&n);             processBatch(nums,n);             outputBatch(nums,n);             system("pause");  break;        case 0:    exitFlag=1;  break;        }        if (exitFlag)        {        printf("***************************************\n");        printf("********* 感谢您的使用,再见!*********\n");        printf("***************************************\n");        break;        }    }    system("pause");}main(){    showMenu();}

    现在应该对函数的好处有了一个直观的理解,这里增加了4个函数,只修改了1个函数,增加永远比修改要容易!圆满完成设计了......吗?


    (未完待续)


0 0
原创粉丝点击