命令行界面就是那个输入输出数据的黑框子,用命令行界面显示函数图像原理并不复杂,非常适合C语言小白练手。具体思路如下:
首先,只需定义一个二维字符数组,里面的值全被赋予空格,把空格当作空白将图像填满,再用for循环填补字符显示两条X,Y轴,最后在用选择结构将满足X,Y的函数关系的小单元用字符显示。
唯一复杂一点的X,Y轴的坐标转换,
具体代码如下:
#include<stdio.h>
#include<math.h>
#define Xc 51 //X轴显示长度,可更改
#define Yc 51 //Y轴显示长度,可更改
//当前代码X,Y轴必须相等 ,且不宜太长
#define cX 'o' //用来显示X轴的符号,可更改
#define cY 'o' //用来显示Y轴的符号,可更改
#define F '*' //用来显示图像的符号,可更改
#define X (j-(Xc/2)) //X,Y的坐标转换
#define Y ((Yc/2)-i)
#define Fx (Y==X*X/4-10) //函数表达式,可更改,
int main()
{
char xy[100][100];
int i,j;
for(i = 0; i<Yc; i++)
{
for(j = 0; j<Xc; j++)
{
xy[i][j] = ' '; //填满空格
}
}
for(i = 0; i<Xc; i++)
{
xy[i][Xc/2] = cY; //填上Y轴
}
for(j = 0; j<Yc; j++)
{
xy[Yc/2][j] = cX; //填上X轴
}
for(i = 0; i<Yc; i++)
{
for(j = 0; j<Xc; j++)
{
if(Fx)
xy[i][j] = F; //显示函数图像
}
}
for(i = 0; i<Yc; i++)
{
for(j = 0; j<Xc; j++)
{
printf("%2c",xy[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
结过实验,许多常见的函数图像都能显示,也可以同时显示多个函数及交点,只需在表达式一行用||和&&运算符并列起来就行了,不过只能显示整数,如sin,cos图像是无法显示的。
上面代码显示效果如下: