怎样做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
- 怎样做C语言课程设计?(二)
- 怎样做C语言课程设计?(一)
- 怎样做C语言课程设计?(三)
- 怎样做C语言课程设计?(四)
- 怎样做C语言课程设计?(五)
- C语言课程设计(停车场)
- 课程设计扫雷(c语言)
- 怎样做研究(二)
- (C语言课程设计)图书管理系统
- (c语言课程设计)学生成绩管理系统
- 图书管理系统(c语言课程设计)
- 2016程序设计基础(C语言)课程设计
- 课程设计--图书信息管理系统(C语言)
- C语言课程设计任务书
- C语言课程设计
- C语言课程设计
- C语言课程设计
- c语言课程设计
- JavaScript DOM学习(1)
- linux 定时任务
- 如何输出类的非静态成员函数地址
- Shiro实现验证码认证
- 基础整理02
- 怎样做C语言课程设计?(二)
- 在別人眼中別樣的幸福
- C++易错易混知识点
- Spring MVC与JAX-RS比较与分析
- arcgis数据类型
- Android Recovery 移植 Busybox
- c++调用matlab程序
- 数据库思考1:?
- bzoj 1500 splay伸展树