c语言是程序化,C语言模块化编程的代码示例

C语言模块化编程的代码示例

C语言模块化编程的代码示例

C语言模块化编程的代码示例

老赵最近写了一个小代码,是关于C语言程序化编程的,挺有趣的,和大家分享一下啦。

一、程序概述

二、程序结构

三、 具体代码

1、主函数

2、随机数函数

3、产生算法题函数

4、答错反馈函数

5、答对反馈函数

四、运行结果

五、为什么要模块化编程?

老赵最近写了一个小代码,是关于C语言程序化编程的,挺有趣的,和大家分享一下啦。

程序的主要功能是随机产生10道数学加减乘除题,用户输入答案,答错或者答对随机给出一句称赞或者鼓励。答对8道题及以上输出分数,否则重新答题。

程序主要分为两大部分:.c代码文件和.h头文件,如下图所示:

c语言是程序化,C语言模块化编程的代码示例_第1张图片

1、主函数

#include

#include

#include

#include "Question.h"

int main()

{

int i,Q;

int score = 0; //统计答题分数

for(i=0;i<10;i++) //循环产生10道题

{

Q = Question();

if(Q)

score++;

}

if(score < 8) //得分少于8分重做

{

printf("your score is poor,please try again!\n");

for(i=0;i<10;i++) //循环产生10道题

{

Q = Question();

if(Q)

score++;

}

}

else //得分大于8分,显示分数。

printf("your score is:%d\n",score);

return 0;

}

2、随机数函数

包含随机数函数的头文件,头文件里面只需要写函数声明和宏定义常量。

//这是Random.c的代码,用“#include "Random.h"”调用头文件的内容

#include

#include

#include "Random.h"

//产生1-10的随机数

int Random(void)

{

int number;

srand(time(NULL));

number = (rand()%(MAX_NUMBER -MIN_NUMBER+1)) + MIN_NUMBER;

return number;

}

//这是Random.h头文件的内容

#ifndef RANDOM_H_INCLUDED

#define RANDOM_H_INCLUDED

#define MAX_NUMBER 10 //宏常量

#define MIN_NUMBER 1 //宏常量

int Random(void);//函数声明

#endif // RANDOM_H_INCLUDED

3、产生算法题函数

//这是Question.c的代码

#include

#include

#include

#include "Random.h"

#include "IsError.h"

#include "IsRight.h"

#include "Question.h"

int Question(void)

{

int a,b,i;

int reply = 0; //学生给出的答案

int answer=0; //算式的正确答案

a = Random();

sleep(1); //让两个随机数生成时间隔1秒,不然短时间内生成的随机数一样

b = Random();

i = (rand()%(MAX_NUMBER -MIN_NUMBER+1)) + MIN_NUMBER;//随机产生加减乘除

switch(i)

{

case 1:

answer = a+b;

printf("%d+%d=?\n",a,b);

scanf("%d",&reply);

break;

case 2:

answer = a-b;

printf("%d-%d=?\n",a,b);

scanf("%d",&reply);

break;

case 3:

answer = a*b;

printf("%d*%d=?\n",a,b);

scanf("%d",&reply);

break;

case 4:

answer = a/b;

printf("%d/%d=?\n",a,b);

scanf("%d",&reply);

break;

}

if(reply == answer)

{

IsRight(); //回答正确调用正确评价

return 1;

}

else

{

IsError(); //回答错误调用错误评价

return 0;

}

}

//这是Question.h的代码

#ifndef QUESTION_H_INCLUDED

#define QUESTION_H_INCLUDED

#define MAX_NUMBER 4

#define MIN_NUMBER 1

int Question(void);

#endif // QUESTION_H_INCLUDED

4、答错反馈函数

//这是IsError.c的代码

#include

#include "IsError.h"

void IsError() //回答错误随机给出下面一句评价

{

int i;

i = (rand()%(MAX_NUMBER -MIN_NUMBER+1)) + MIN_NUMBER;

switch(i)

{

case 1:

printf("No. Please try again!\n");

break;

case 2:

printf("Wrong. Try once more!\n");

break;

case 3:

printf("Don’t give up!\n");

break;

case 4:

printf("Not correct. Keep trying!\n");

break;

}

}

//这是IsError.h的代码

#ifndef ISERROR_H_INCLUDED

#define ISERROR_H_INCLUDED

#define MAX_NUMBER 4

#define MIN_NUMBER 1

void IsError();

#endif // ISERROR_H_INCLUDED

5、答对反馈函数

//这是IsRight.c的代码

#include

#include "IsRight.h"

void IsRight() //回答正确随机给出下面一句评价

{

int i;

i = (rand()%(MAX_NUMBER -MIN_NUMBER+1)) + MIN_NUMBER;

switch(i)

{

case 1:

printf("Very good!\n");

break;

case 2:

printf("Excellent!\n");

break;

case 3:

printf("Nice work!\n");

break;

case 4:

printf("Keep up the good work!\n");

break;

}

}

//这是IsRight.h的代码

#ifndef ISRIGHT_H_INCLUDED

#define ISRIGHT_H_INCLUDED

#define MAX_NUMBER 4

#define MIN_NUMBER 1

void IsRight();

#endif // ISRIGHT_H_INCLUDED

c语言是程序化,C语言模块化编程的代码示例_第2张图片

模块化编程的思想是:根据功能将工程划分为不同模块。主函数只调用函数,而不定义函数。在各模块文件中定义功能函数,并将要用到的函数利用同名头文件申明外部函数供其他文件调用。

使用模块化编程可以使代码更有序,可以便捷地编写大型项目。模块化将不需要的细节尽可能对外部隐藏,实现函数的封装。便于重复利用代码,实现某一功能代码可以在多处调用,可以在别的项目使用。便于分工合作,团队共同开发一个项目,可以将程序分为多个模块,每个人只完成一个模块的内容。

以上就是本周老赵分享的全部内容,如果你感觉对你有用,欢迎收藏和点赞哦。如果你有什么地方不懂,记得评论区找老赵。咱们大家一起快快乐乐学编程,奥利给!

C语言模块化编程的代码示例相关教程

shell编程:break和comtinue循环的实例----shell脚本求和!

shell编程:break和comtinue循环的实例----shell脚本求和! 本章目录 一.break应用实例 二.continue应用实例 三.求1到任意数的奇数和,偶数和 3.1:求1到任意数的奇数和 3.2:求1到任意数的偶数和 3.3:通过取余来算出1到100的奇偶数的和 一.break应用实例 br

Go-http编程

Go-http编程 Go-http编程 web工作流程 HTTP协议 HTTP服务端 HTTP客户端 运行HTTP服务端和客户端进行测试 本文转载自http编程 Web服务器的工作原理可以简单地归纳为 1.客户机通过TCP/IP协议建立到服务器的TCP连接 2.客户端向服务器发送HTTP协议请求包,请求服

图的邻接矩阵--C语言

图的邻接矩阵--C语言 由于没做输入挑选工作,所以只能按照写对。( 无向图 ) 完整代码如下: #include stdio.h#include stdlib.h#include string.h#define MVNum 100void Interrupt(void)//创建一个中断函数 {while(1)//用于检测换行符,使函数脱离scanf的连

shell编程:编写9x9乘法表和菱形的9x9乘法表,有脚本分析!很详

shell编程:编写9x9乘法表和菱形的9x9乘法表,有脚本分析!很详细!! 本章目录 一:shell脚本编写9x9乘法表 二:编写一个菱形的9x9乘法表 一:shell脚本编写9x9乘法表 创建脚本 [[emailprotected] ~]# vi first2.sh 如图所示: 编辑脚本: #!/bin/bashsum=0f

python基础之面向对象编程

python基础之面向对象编程 记录学习的点点滴滴-150天从python小白到大神的转变(day17-19) ? 本周结束也就意味着python基础课的结束。python基础课大致分为以下几个板块:数据类型,函数,python中的模块,包,文件操作,异常处理,正则表达式,以及面向对象编

币值转换

币值转换 PTA基础编程题目集7-23 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代

Windows10下利用DOSBOX和MASM32搭建汇编语言环境

Windows10下利用DOSBOX和MASM32搭建汇编语言环境 一、dosbox+masm环境的配置 1.下载dosbox安装程序:DOSBox0.74-win32-installer.exe 工具介绍:DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。DOSBox的最新版本已经

Java网络编程之爬虫——计算机网络、应用层协议的综合应用

Java网络编程之爬虫——计算机网络、应用层协议的综合应用 前言: 前几天在B站上面,看到了一个使用C/C++实现的网络爬虫,我没有看视频,只是看了评论,这位up主应该就是只使用语言本身提供的包实现的爬虫。但是,我对这种方式很有兴趣,所以我就来实现一个Ja

你可能感兴趣的:(c语言是程序化)